среда, 25 января 2017 г.

Установка клиента netbackup на linux

После выполнения install.sh скрипта, необходимо:
  1. Открыть порты в брандмауэре.
    Например для centos 6:
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 1556 -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 13724 -j ACCEPT
  2. Добавить медиа сервера.
    Если у NetBackup более одного сервера (например мастер + медиа), то в файле /usr/openv/netbackup/bp.conf все они должны быть указаны. Например так:

    SERVER = master.domain.ru
    SERVER = media1.domain.ru
    SERVER = media2.domain.ru
    CLIENT_NAME = client.domain.ru
    CONNECT_OPTIONS = localhost 1 0 2
  3. Если предполагается архивирование/восстановление oracle баз данных, нужно запустить /usr/openv/netbackup/bin/oracle_link (см. article.TECH87072 )

понедельник, 14 ноября 2016 г.

Asterisk cdr viewer + postgresql

config.inc.php
...
$db_type = 'pgsql';
...

Для базы в которой находится таблица cdr:

CREATE OR REPLACE FUNCTION public.unix_timestamp (
  date timestamptz
)
RETURNS double precision AS
$body$
SELECT  date_part('epoch', date)
$body$
LANGUAGE 'sql';

среда, 19 октября 2016 г.

Очередной nway call в asterisk через confbridge

Написано для  Asterisk 13.11.0.

confbridge.conf
...
[nway_menu]
type=menu
1=dialplan_exec(nway-invite,0,1)

features.conf
...
[applicationmap]
nway =>*0,self,AGI(nway.pl),default

extensions.conf
...
[from-internal]
exten = _1XX,1,Set(CHANNEL(language)=ru)
 same = n,Set(__DYNAMIC_FEATURES=nway)
...
[nway-invite]
exten = 0,1,NoOp()
 same = n,Read(DEST,,3)
 same = n,GoSub(subDialString,start,1,(${DEST}))
 same = n,Originate(${GOSUB_RETVAL},exten,dynamic-nway,${CONFNO},1)
exten = i,1,SoftHangup(${BRIDGEPEER})
exten = t,1,SoftHangup(${BRIDGEPEER})

[dynamic-nway]
exten = _X.,1,Answer()
 same = n,Set(__CONFNO=${EXTEN})
 same = n,ConfBridge(${EXTEN},,,nway_menu)

/var/lib/asterisk/agi-bin/nway.pl
#!/usr/bin/perl
use strict;
use warnings;

use Asterisk::AGI;
use Asterisk::AMI;

my $agi = Asterisk::AGI->new();
my $channel = $agi->get_variable('CHANNEL');
my $bridgepeer = $agi->get_variable('BRIDGEPEER');
my ($confno) = split /\./,$agi->get_variable('UNIQUEID');

my $ami = Asterisk::AMI->new(
    PeerAddr => '127.0.0.1',
    PeerPort => '5038',
    Username => 'script',
    Secret => '123456');

my $action = $ami->action({
    Action => 'Redirect',
    Channel => $channel,
    Context => 'dynamic-nway',
    Exten => $confno,
    Priority => 1,
    ExtraChannel => $bridgepeer,
    ExtraContext => 'dynamic-nway',
    ExtraExten => $confno,
    ExtraPriority => 1
     });

$agi->hangup();
exit();

Примечания:
  1. Подпрограмма subDialString создает строку подключения для разных каналов по заданному номеру. Например для unistim USTM/100@100, для sip SIP/101 и т.д. Если все аппараты используют один протокол, строка GoSub не нужна, следующую строку можно изменить на, например, same = n,Originate(SIP/${DEST},exten,dynamic-nway,${CONFNO},1).
  2. В строчке exten = _1XX шаблон должен быть конечно Ваш, как и длина номера в same = n,Read(DEST,,3)
  3. В качестве номер конференции используется часть UNIQUEID для того, чтобы начавший конференцию, мог выйти из нее и начать новую.

Порядок работы:
  1. Если в ходе разговора есть необходимость подключить третьего, нажать *0 (features.conf) при этом разговор преобразуется в конференцию (можеть делать и caller, и callee)
  2. Для подключения дополнительного собеседника нажать 1 (confbridge.conf) и номер (может делать любой участвующий в конференции)
К сожалению, другие способы (более простые?): channelredirect(), agi из macro и прочее у меня не работает. Только agi (ami) из features.conf.

пятница, 9 сентября 2016 г.

При попытке настроить asterisk realtime в связке с postgresql 9.2.13 (через odbc), после создания таблиц (либо через alembic, либо используя /usr/src/asterisk/contrib/realtime/postgresql/postgresql_config.sql) при попытке зарегестрировать sip пользователя (таблица sippeers) получал ошибки несоотвествия типов полей lastms, regseconds... Со стороны сервера это выглядит так: ОШИБКА:  колонка "lastms" имеет тип integer, а выражение - character (символ 136). Т.е регистрация аппарата проходит, но поля ipaddr, port, regseconds, fullcontact и т.д. не заполняются.
Для pjsip пользователей подобные ошибки в таблице ps_contacts. Аппарат так же регистрируется, но данные в ps_contacts не добавляются.
Удаление полей порождающих ошибки и их создание с типом char помогают для таблицы sippeers, но после изменений в ps_contacts asterisk стал перезагружатся с периодом около минуты.
Помогло явное создание неявного преобразования типов в БД :).
Для sippeers достаточно:
create cast (character as integer) with inout as implicit;
Для ps_contacts необходимо добавить:
create cast (character as double precision) with inout as implicit;
create cast (character as bigint) with inout as implicit;
create cast (character as yesno_values) with inout as implicit;


вторник, 21 апреля 2015 г.

Заполнение поля Media Management Settings в Enterprise Manager для архивирования Oracle через NetBackup

Если для настройки архивирования БД Oracle на ленту\с использованием Media Manager (NetBackup) используется Enterprise Manager, то поле Media Management Vendor Library Parameters (Availability - Backup Settings) следует заполнить следующим образом:

SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=master.domain.ru, NB_ORA_CLIENT=client.domain.ru)

Понятно, что master.domain.ru - мастер сервер вашей инсталяции NetBackup, client.domain.ru - сервер на которой установлен БД Oracle.

Если клиент NetBackup уже связан с oracle ( запущен oracle_link из /usr/openv/netbackup/bin/ ) и создана политика (обязательно тип Oracle - Application Backup - указан клиент), то после нажатия кнопки Test Tape Backup не должно выдаваться сообщений об ошибках, а в консоли управления NetBackup можно будет увидеть два выполненных задания с этого клиента - backup и restore.

четверг, 19 февраля 2015 г.

Ошибка "The requested lookup key was not found in any active activation context"

MS SQL 2000 (32 бит) на Win 2003 r2 (64 бит) + symantec netbackup (у меня - 7.5.0.6)
Решение есть по ссылке http://blogs.msdn.com/b/psssql/archive/2009/02/26/you-encounter-error-message-the-system-cannot-find-the-file-specified-when-attempting-to-perform-backups-using-sqlvdi.aspx.
 У меня:
  •  x86 библиотека  - версия 2000.85.1054.0, размер 119 296 байт
  • x64 библиотека - версия 2000.85.1054.0, размер 156 160 байт
 С x86 библиотекой после установки SP4 ( версия 2000.80.2039.0, размер 43 008 байт ) не заработало.
Перезагрузка не нужна.

Предварительное создание файлов БД при восстановлении ms sql 2000

При тестовых восстановлениях БД MS SQL 2000 через symantec netbackup получил несколько ошибок связанных с таймаутами:
  1. Created VDI object for SQL Server instance "instance". Connection timeout is "300" seconds.
  2. Client read timeout.
Обе ошибки были в принципе излечимы:
  1.  Установить VDITIMEOUTSECONDS в скрипте восстановления
  2. Установить нужный timeout в свойствах мастер сервера symantec netbackup.
Однако они не решали еще одной проблемы - восстановление идет очень долго. Причем большую часть времени занимает не запись данных из архива, а создание файлов БД и заполнение их нулями (zero initialization). Поскольку в sql 2000 нет возможности instant file initialization, то создание "пустышки" для 300 ГБт базы данных становилось оченььььь долгим делом. Ситуацию также усугубляло то, что разбалованный Windows 2008 R2, я в созданной виртуальной машине Windows 2003 не выровнял диски.
Существует однако простая замена instant file initialization на "педальном" приводе:
  1. Создаем пустые файлы для данных и логов нужного размера. Можно посмотреть текущие и сделать несколько больше (перед копированием данных они будут подрезаны в нужный размер). Я использовал для этого  fsutil file createnew filename length. Например: fsutil file createnew XXX_data.MDF 300000000000
  2. Запускаем задание восстановления с перемещением. Для symantec netbackup скрипт может выглядеть как то так
OPERATION RESTORE
OBJECTTYPE DATABASE
RESTORETYPE MOVE
DATABASE "XXX"
MOVE  "XXX_Data"
TO  "d:\DATA\XXX_data.MDF"
MOVE  "XXX_Log"
TO  "d:\DATA\XXX_Log.LDF"
#
# The following image is type: Full
NBIMAGE "srv-sql01.MSSQL7.SRV-SQL01.db.XXX.~.7.001of001.20150217180955..C"
SQLHOST "srv-stend12"
NBSERVER "SRV-BCK01"
BROWSECLIENT "srv-sql01"
MAXTRANSFERSIZE 6
BLOCKSIZE 7
RESTOREOPTION REPLACE
RECOVEREDSTATE NOTRECOVERED
NUMBUFS 2
ENDOPER TRUE

OPERATION RESTORE
OBJECTTYPE DATABASE
DUMPOPTION INCREMENTAL
RESTORETYPE MOVE
DATABASE "XXX"
# The following image is type: Full database differential
NBIMAGE "srv-sql01.MSSQL7.SRV-SQL01.inc.XXX.~.7.001of001.20150218180207..C"
SQLHOST "srv-stend12"
NBSERVER "SRV-BCK01"
BROWSECLIENT "srv-sql01"
MAXTRANSFERSIZE 6
BLOCKSIZE 7
RESTOREOPTION REPLACE
RECOVEREDSTATE RECOVERED
NUMBUFS 2
ENDOPER TRUE

 Где XXX_data.MDF, XXX_Log.LDF - созданные ранее файлы.

Судя по perfmon файл лога обнуляется, а основной файл нет. В моем случае время начала заливки данных сократилась с нескольких часов до пары минут.

понедельник, 21 января 2013 г.

Сброс "плохого" состояния кассеты

Выполнить omnimm -reset_poor_medium названиеассеты на cell manager. Например: omnimm -reset_poor_medium Ultrium_3. Должна ответить: Reset poor flag on medium Ultrium_3

вторник, 11 декабря 2012 г.

lan free и vss transportable

Разбирался с возможность гонять данные при архивировании/восстановлении не по сети. Похоже здесь имеются две возможности:

  1. То что в документации называется lan free. Например имеются пара серверов с данными лежащими на полке подключенной через FC, имеется также стриммер (или устройство его ) подключенный также по FC. Делаем эти сервера медиа серверами, подключаем к ним стриммер (ставим галку Fibre Channel устройств), пишем данные как локальный бэкап. Данные с полки текут на стриммер без выхода в сеть.
  2. То что в документации - vss transportable. Например имеется сервер с данными на полке подключенной через FC, имеется медиа сервер с массивом локальных дисков (этот момент не принципиален) и картой FC. Нужно писать с сервера на диски медиа сервера без выхода в сеть. Ставим VSS hardware provider для имеющейся полки и на сервер и на медиа сервер. При создании задания архивирования MS Shadow Copy Writers выбираем Backup type - VSS transportable backup.
Это может быть объединено: сервер с данными на полке, медиа сервер со стриммером.
  • Сервер командует полке создать снимок своего раздела
  • Медиа сервер обращается к полке и получает снимок по оптике
  • Медиа сервер по оптике же пишет на стриммер

среда, 7 ноября 2012 г.

Ошибка svn: Could not authenticate to server: ignored NTLM challenge

При попытке подключения к svn серверу через https (webdav) например:

svn list https://svn/svn/configs

выдает приведенную в заголовке ошибку. Имя пользователя и пароль не запрашивает.

Вот причина: http://savannah.nongnu.org/support/?108061

Вот как предлагается решить: http://lists.manyfish.co.uk/pipermail/neon/2012-May/001470.html

Вот что сделал я:

  1. apt-get install libneon27
  2. удалил /usr/lib/@libneon-gnutls.so.27 указывающую на libneon-gnutls.so.27.2.6
  3. создал /usr/lib/@libneon-gnutls.so.27 указывающую на libneon.so.27.2.6
Ошибка исчезла. Пользователь/пароль запрашивается.

У меня авторизация через MS AD. Пробовал указавать пользователя как username и как DOMAIN\username - оба варианта были приняты.

среда, 11 июля 2012 г.

Время ожидания устройства

По умолчанию DP ожидает устройство занятое другим заданием 60 минут. Если за это время устройство не освобождается, то сессия завершается неудачей (failed). Для изменения периода ожидания нужно изменить значение SmWaitForDevice в файле global. В win 2008 этот файл лежит в \ProgramData\OmniBack\Config\Server\Options

среда, 30 мая 2012 г.

Ошибка mdadm: No devices listed in conf file were found

Поставил wheezy на софт raid1. Установка прошла без ошибок. Однако загрузиться после установки не удалось. Пляски вокруг:
  • grub2
    • /boot/grub/grub.cfg ( /etc/default/grub, /etc/grub.d/*.* -> update-grub2)
  • mdadm
    • /etc/mdadm/mdadm.conf (mdadm --examine --scan)
успеха не принесли. Поковырялся с разными uuid ами: blkid, mdadm. Менял все и в различных сочетаниях (напрямую из меню grub, через grub.cfg, через 09_softraid в /etc/grub.d, даже в mdadm.conf). Но все как обычно решилось одной строкой: http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg345155.html

Решение:
  1. Вернул все (конфигурационные файлы mdadm.conf, grub.cfg) в состояние после установки.
  2. Добавил в /usr/share/initramfs-tools/init /bin/sleep 10
    перед

    maybe_break mount
    log_begin_msg "Mounting root file system..."
    . /scripts/${BOOT}
  3. Удалил и создал заново initrd:
    update-initramfs -k all -c
  4. Пересоздал конфигурацию и переустановил grub2:
    update-grub2
    grub-install /dev/sda
    grub-install /dev/sdb
  5. Перезагрузил
     

понедельник, 14 мая 2012 г.

Сжатие при копировании на ленту

Хотелось бэкап для удаленного хранения сделать на одну ленту. Надеялся, что можно будет указать выполнить software compression при object copy с дисковых библиотек на ленту. Похоже это невозможно. В GUI нет ничего, в cli для omniobjcopy соответствующего ключа также нет. В документации понятно - тишина. Т.е. если нужно сжимать, то делать это нужно при бэкапе на дисковую библиотеку.

суббота, 12 мая 2012 г.

IDB Positions records

При просмотре использования IDB насторожил процент использования записей в Positions - 99% (при этом файл CDB был далек от наполнения).

Пытался снизить его: проверил выполняется ли Daily Maintenance, начал чистить базу вручную. Без видимого результата.

Оказалось зря волновался: http://h30499.www3.hp.com/t5/Data-Protector-Support-and-News/IDB-Positions/td-p/4870066

Показывается использование файла актуального размера, а не максимального. При необходимости файл увеличится.

среда, 18 апреля 2012 г.

Удаление не существующего клиента

На cell manager редактировать файл cell_info. В windows 2008 r2 этот файл лежит по пути:

%SYSTEMDRIVE%\ProgramData\OmniBack\Config\Server\cell\

четверг, 29 марта 2012 г.

Ошибка: media of type distributed file media format cannot be exported

File Library Media Pools ощищаются автоматически. Поэтому, когда file library media содержат только незащищенные данные (срок защиты истек, либо был установлен в None) эти media удаляются из Data Protector (на диске они остаются, но их можно удалить руками) при следующем бэкапе в этот медиа пул.

После удаления всех file library media можно удалить file library device.

Если "теория" не нужна:
  1. Для всех ненужных file media выполнить Recycle ( в Devices & Media)
  2. В Devices & Media -> Devices -> нужная file library -> Settings снять галку Use distributed file media format (для удаления временного бэкапа - см. п.3-4)
  3. Создать и выполнить задание backup на эту file library (что бы не ждать, лучше создать задание маленького размера)
  4. После завершения этого бэкапа исчезнут помеченные в п.1 file media, но появится задание из п.3. Поскольку этот бэкап не distributed file media format, то для его удаления сработает Recycle, Export.
  5. Если были удалены все file media для этой file library, то можно ее удалить.

http://h30499.www3.hp.com/t5/Data-Protector-Support-and-News/Deleting-Media-Pool-for-File-Library/td-p/4279434

пятница, 2 марта 2012 г.

Data protector Импорт данных из File Library

При потеряной БД можно импортировать сохранившиеся backup ы:
  • Во вновь установленном cell manager создать новую File Library (правильнее наверное на том же месте, что бы избежать дополнительного копирования)
  • Выполнить: omnidownload -library storage1 -file C:\FileLibrary_Name.txt (storage1 - название File Library у меня)
  • В файл C:\FileLibrary_Name.txt добавить секцию REPOSITORY (если ее еще нет) и заполнить ее путями до файлов, которые нужно импортировать. Например, так:

NAME "storage1"
DESCRIPTION "storage1"
HOST host.site.ru
POLICY Filelibrary
TYPE File
REPOSITORY
"D:\FileLibrary\2c94272254f5083935075850001.fd"
"D:\FileLibrary\3e00a8c054f3a40485056050001.fd"
DIRECTORY
"5120 2 0 10 D:\FileLibrary"
MGMTCONSOLEURL ""

  • Выполнить omniupload -modify_library storage1 -file C:\FileLibrary_Name.txt
  • Сканировать File Library (Devices & Media -> Devices -> storage1 -> Drives -> storage1_Writer0 -> Scan...)
  • Импротировать Library Slots (Devices & Media -> Media -> Pools -> storage1_MediaPool -> Import...)

четверг, 23 сентября 2010 г.

Настройка dhcp-relay

Собрал сначала все на debian (и relay, и dhcp-server).

На relay:

  • etc/network/interfaces...

auto ... vlan20 ...

...

iface vlan20 inet static
address 192.168.8.2
netmask 255.255.255.224
network 192.168.8.0
vlan_raw_device eth0

...

  • /etc/default/isc-dhcp-relay
servers="192.168.0.10"
interfaces="... vlan20 ..."
options="-a -D"

На dhcp-server:

  • /etc/dhcp3/dhcpd.conf
...
local-address 192.168.0.10;
subnet 192.168.0.0 netmask 255.255.255.0 {
}
...
class "VLAN20" {
match if (option agent.circuit-id = "vlan20");
}

...

shared-network vlan20 {
...
pool {
...
allow members of "VLAN20";
}
}

Затем перенес relay на cisco 2821. Для этого:
  1. сделал траковую связь
  2. ip dhcp relay information option
  3. cоздал vlan20
  4. для интерфейса vlan20 задал: ip helper-address 192.168.0.10
Пришлось также изменить /etc/dhcp3/dhcpd.conf:

class "VLAN20" {
match if binary-to-ascii(10,16,"", substring( option agent.remote-id,10,2)) = "20";
}

Для просмотра что собственно присылает релей на dhcp-server использовал dhcpdump.

пятница, 10 сентября 2010 г.

Установка debian на сервер с adaptec 2010s

При установке lenny, grub не устанавливается (lilo собственно то же). Возможная причина - он хочет установиться на hda, которым в моей системе является DVD. Рейд же спрятался в /dev/i2o/hda. После чтения интернетов выкрутился так:
  1. Установку завершил без установки загрузчика.
  2. Загрузился еще раз с установочного CD и вошел в rescue mode до командной строки.
  3. mkdir -p /mnt/recovery
  4. mount /dev/i2o/hda1 /mnt/recovery (/dev/i2o/hda1 - root раздел)
  5. mount -o bind /dev /mnt/recovery/dev (делаем копию устройств загруженной оси в chroot)
  6. chroot /mnt/recovery /bin/bash
  7. apt-get install grub
  8. grub-install /dev/i2o/hda (ставим загрузчик на рейд)
  9. update-grub (создаем конфигурацию grub, т.е. файлы в /boot/grub)
Если у /boot на отдельном разделе - смонтировать его до пункта 6

среда, 20 мая 2009 г.

Перепрошивка iriver x20 8 ГБт

Около 1,5 лет назад купил этот плеер. За время гарантии получал два раза сообщение о создании библиотеки, которая никак не создавалась. Относил в сервисный центр. Во второй раз там установили прошивку 1.07 с которой горя не знал. Однако пару дней назад вероятно не вовремя (во время копирования) выдернул шнур. Поскольку гарантия закончилась решил попробовать прошить плеер сам. Инструкцию со всем необходимым брал тут - http://ifolder.ru/873088 ; прошивку 1.07 - http://ifolder.ru/8730931. Инструкция подробна и работает. Хотелось бы только отметить два момента, которые мне стоили 1.5 часов и нервов:
  1. У меня по умолчанию при запуске программы FWDN(VTC)_V3720.exe в разделе Settings -> Device selection по умолчанию стояло NOR FLASH. Нужно поставить NAND FLASH
  2. Сколько бы у Вас ни было памяти ставить нужно 16Мх32 (SDRAM Size).
В противном случае при подключении плеера постоянно будет выдаваться сообщение (возможно после некоторого - 1-2 минуты размышления) - FAIL

Все остальное - по инструкции.