bacula, autoloader

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
metallic
рядовой
Сообщения: 49
Зарегистрирован: 2007-04-29 13:02:48

bacula, autoloader

Непрочитанное сообщение metallic » 2010-03-29 10:48:48

Имеется сервер бекапов на FreeBSD 8.0 и Bacula 5.0.0
На сервере установлен стример HP StorageWorks 1/8 G2 Tape Autoloader с
приводом LTO3, подключенный к серверу через SCSI.
На него и бекапятся клиенты. В нем один привод и 8 слотов для
картриджей (автозагрузчик). Вот конфиг stogare daemon:

Код: Выделить всё

Autochanger {
 Name = Autoloader
 Device = Autoloader-drive0
 Changer Command = "/usr/local/share/bacula/mtx-changer %c %o %S %a
%d"
 Changer Device = /dev/pass1
}

Device {
 Name = Autoloader-drive0
 Media Type = LTO3
 Archive Device = /dev/nsa0.0
 Autochanger = yes
 Autoselect = yes
 Random Access = no;
 AutomaticMount = yes;
 RemovableMedia = yes;
 AlwaysOpen = yes;
}
У меня для большого бекапа используется порядка 24 картриджей (все
добавлены в пул и размечены(label)). В документации по бакуле
написано, что менять картриджи надо следующим образом:

Код: Выделить всё

unmount
(remove magazine)
(insert new magazine)
update slots
mount

Суть проблемы:
Загружаю первые 8 картриджей, запускаю бекап, самый первый картридж
приходится монтировать вручную (это нормально?), т.к. бакула ждет,
пока ей его примонтируют. После этого начинается запись и далее все
идет отлично, последующие картриджи бакула меняет сама. Собственно
проблема в том, что когда заканчивается последний 8-ой картридж,
бакула его выгружает и пытается монтировать следующий, 9-ый картридж
из пула(его имя SJ8599L3), но он-то еще не вставлен в автозагрузчик,
отсюда проблема:

Код: Выделить всё

*status sd
The defined Storage resources are:
    1: baculasrv-Autoloader
    2: baculasrv-filedevice1
Select Storage resource (1-2): 1
Connecting to Storage daemon baculasrv-Autoloader at bacula.domain.net:
9103

baculasrv-sd Version: 5.0.0 (26 January 2010) amd64-portbld-freebsd8.0
freebsd 8.0-RELEASE-p2
Daemon started 19-Mar-10 06:54, 34 Jobs run since started.
 Heap: heap=0 smbytes=357,741 max_bytes=460,456 bufs=120 max_bufs=151
Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8

Running Jobs:
Writing: Full Backup job SeadevilAllBJob JobId=21 Volume="SJ8599L3"
   pool="AllBackupPool2" device="Autoloader-drive0" (/dev/nsa0.0)
   spooling=0 despooling=0 despool_wait=0
   Files=1,616,722 Bytes=12,729,514,744,699 Bytes/sec=26,237,441
   FDReadSeqNo=202,909,398 in_msg=199713337 out_msg=5 fd=6
====

Jobs waiting to reserve a drive:
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name
===================================================================
...
====

Device status:
Autochanger "Autoloader" with devices:
  "Autoloader-drive0" (/dev/nsa0.0)
Device "Autoloader-drive0" (/dev/nsa0.0) open but no Bacula volume is
currently mounted.
   Device is being initialized.
   Drive 0 status unknown.
   Total Bytes Read=0 Blocks Read=0 Bytes/block=0
   Positioned at File=0 Block=0
Device "FileDevice1" (/data/backups) is not open.
====

Used Volume status:

SJ8599L3 on device "Autoloader-drive0" (/dev/nsa0.0)
   Reader=0 writers=1 devres=0 volinuse=1
====

====

*
*unmount
The defined Storage resources are:
    1: baculasrv-Autoloader
    2: baculasrv-filedevice1
Select Storage resource (1-2): 1
3901 Device "Autoloader-drive0" (/dev/nsa0.0) is already unmounted.
*
Т.е. даже размонтировать не могу, т.к. привод у стримера находится в
состоянии:
Drive Status Loading
(это видно через веб-панель управления стримером, она встроена в сам
стример)

При том, что у него статус Loading, в самом приводе картриджа нет, все
картриджи выгружены в карзины и ничего с ними не происходит. Из-за
этого смена картриджей превращается в пляски с бубном. После замены
левой корзины(магазина), стример некоторое время (пару минут) не
отдает правую корзину, потом отдает, после замены карзин, бакула,
похоже, понимает, что появились новые картриджи и пытается что-то
делать, о чем есть сообщения:

Код: Выделить всё

29-Mar 08:09 baculasrv-sd JobId 21: Invalid slot=0 defined in catalog
for Volume "SJ8599L3" on "Autoloader-drive0" (/dev/nsa0.0). Manual
load may be required.
29-Mar 08:09 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:09 baculasrv-sd JobId 21: 3991 Bad autochanger "loaded?
drive 0" command: ERR=Child exited with code 1.
Results=mtx: Request Sense: Long Report=yes
mtx: Request Sense: Valid Residual=no
mtx: Request Sense: Error Code=70 (Current)
mtx: Request Sense: Sense Key=Unit Attention
mtx: Request Sense: FileMark=no
mtx: Request Sense: EOM=no
mtx: Request Sense: ILI=no
mtx: Request Sense: Additional Sense Code = 28
mtx: Request Sense: Additional Sense Qualifier = 00
mtx: Request Sense: BPV=no
mtx: Request Sense: Error in CDB=no
mtx: Request Sense: SKSV=no
Mode sense (0x1A) for Page 0x1D failed
mtx: Request Sense: Long Report=yes
mtx: Request Sense: Valid Residual=no
mtx: Request Sense: Error Code=70 (Current)
mtx: Request Sense: Sense Key=Not Ready
mtx: Request Sense: FileMark=no
mtx: Request Sense: EOM=no
mtx: Request Sense: ILI=no
mtx: Request Sense: Additional Sense Code = 04
mtx: Request Sense: Additional Sense Qualifier = 01
mtx: Request Sense: BPV=no
mtx: Request Sense: Error in CDB=no
mtx: Request Sense: SKSV=no
READ ELEMENT STATUS Command Failed

29-Mar 08:10 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:10 baculasrv-sd JobId 21: 3302 Autochanger "loaded? drive
0", result: nothing loaded.
29-Mar 08:11 baculasrv-sd JobId 21: Warning: mount.c:227 Open device
"Autoloader-drive0" (/dev/nsa0.0) Volume "SJ8599L3" failed: ERR=dev.c:
491 Unable to open device "Autoloader-drive0" (/dev/nsa0.0):
ERR=Device not configured

29-Mar 08:11 baculasrv-sd JobId 21: Invalid slot=0 defined in catalog
for Volume "SJ8599L3" on "Autoloader-drive0" (/dev/nsa0.0). Manual
load may be required.
29-Mar 08:11 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:11 baculasrv-sd JobId 21: 3302 Autochanger "loaded? drive
0", result: nothing loaded.
Также замечено, что сразу после смены картриджей, если сделать slots
update, то получаем информацию, что у стримера 0 слотов:

Код: Выделить всё

*update slots
The defined Storage resources are:
    1: baculasrv-Autoloader
    2: baculasrv-filedevice1
Select Storage resource (1-2): 1
Connecting to Storage daemon baculasrv-Autoloader at bacula.domain.net:
9103 ...
3306 Issuing autochanger "slots" command.
Device "Autoloader" has 0 slots.
No slots in changer to scan.
Еще спустя какое-то вреся (до 5 минут), снова появляются собообщения:

Код: Выделить всё

29-Mar 08:12 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:12 baculasrv-sd JobId 21: 3302 Autochanger "loaded? drive
0", result: nothing loaded.
29-Mar 08:14 baculasrv-sd JobId 21: Warning: mount.c:227 Open device
"Autoloader-drive0" (/dev/nsa0.0) Volume "SJ8599L3" failed: ERR=dev.c:
491 Unable to open device "Autoloader-drive0" (/dev/nsa0.0):
ERR=Device not configured

29-Mar 08:14 baculasrv-sd JobId 21: Invalid slot=0 defined in catalog
for Volume "SJ8599L3" on "Autoloader-drive0" (/dev/nsa0.0). Manual
load may be required.
29-Mar 08:14 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:14 baculasrv-sd JobId 21: 3302 Autochanger "loaded? drive
0", result: nothing loaded.
29-Mar 08:15 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:15 baculasrv-sd JobId 21: 3302 Autochanger "loaded? drive
0", result: nothing loaded.
интересно... бакула опять говорит, первый картридж сам замонтируй
(Manual load may be required)

Пробуем опять update slots

Код: Выделить всё

*update slots
The defined Storage resources are:
    1: baculasrv-Autoloader
    2: baculasrv-filedevice1
Select Storage resource (1-2): 1
Connecting to Storage daemon baculasrv-Autoloader at bacula.domain.net:
9103 ...
3306 Issuing autochanger "slots" command.
Device "Autoloader" has 8 slots.
Connecting to Storage daemon baculasrv-Autoloader at bacula.domain.net:
9103 ...
3306 Issuing autochanger "list" command.
Catalog record for Volume "SJ8588L3" updated to reference slot 1.
Catalog record for Volume "CLN005L1" updated to reference slot 2.
Catalog record for Volume "SJ8602L3" updated to reference slot 3.
Catalog record for Volume "CLN002L1" updated to reference slot 4.
Catalog record for Volume "SJ8599L3" updated to reference slot 5.
Catalog record for Volume "SJ8607L3" updated to reference slot 6.
Catalog record for Volume "SJ8603L3" updated to reference slot 7.
Catalog record for Volume "CLN003L1" updated to reference slot 8.
*
Ага, на этот раз увидел картриджи, но сам ничего не замонтировал, как
я уже говорил. Нужный нам картридж находится в слоте 5, двигаю его сам
в автозагрузчик:

Код: Выделить всё

# mtx -f /dev/pass1 load 5
Drive 0 Full (Storage Element 0 loaded)
интересно, лезу смотреть в веб-интерфейс управления стримером, там не
смотря на то, что в приводе картрижа нет, написано, что привод full,
чудеса

Код: Выделить всё

Element Status Information
Drive (1)       Full
       Slot 1 (1)      Full, Gen. 3    SJ8588L3
       Slot 2 (1)      Full, Gen. 1    CLN005L1
       Slot 3 (1)      Full, Gen. 3    SJ8602L3
       Slot 4 (1)      Full, Gen. 1    CLN002L1
       Slot 5 (1)      Full, Gen. 3    SJ8599L3
       Slot 6 (1)      Full, Gen. 3    SJ8607L3
       Slot 7 (1)      Full, Gen. 3    SJ8603L3
       Slot 8 (1)      Full, Gen. 1    CLN003L1
Что ж, придется перезагрузить стример. Полез перезагружать, опаньки,
статус привода сменился на idle, как будто в нем есть картридж,
запустил перезагрузку стримера и полез поглядеть, что там у нас с
бакула-директором. А бакула-директор тем временем прибил бекап,
сказал, что проблемы какие-то, смотрим сообщения:

Код: Выделить всё

*messages
29-Mar 08:16 baculasrv-sd JobId 21: Warning: mount.c:227 Open device
"Autoloader-drive0" (/dev/nsa0.0) Volume "SJ8599L3" failed: ERR=dev.c:
491 Unable to open device "Autoloader-drive0" (/dev/nsa0.0):
ERR=Device not configured

29-Mar 08:16 baculasrv-sd JobId 21: 3301 Issuing autochanger "loaded?
drive 0" command.
29-Mar 08:16 baculasrv-sd JobId 21: 3302 Autochanger "loaded? drive
0", result: nothing loaded.
29-Mar 08:16 baculasrv-sd JobId 21: 3304 Issuing autochanger "load
slot 5, drive 0" command.
29-Mar 08:21 baculasrv-sd JobId 21: Fatal error: 3992 Bad autochanger
"load slot 5, drive 0": ERR=Child died from signal 15: Termination.
Results=Program killed by Bacula (timeout)

29-Mar 08:21 baculasrv-sd JobId 21: Job write elapsed time =
135:36:44, Transfer rate = 26.07 M Bytes/second
29-Mar 11:17 seadevil-fd JobId 21: Fatal error: backup.c:1019 Network
send error to SD. ERR=Broken pipe
29-Mar 08:21 baculasrv-dir JobId 21: Error: Bacula baculasrv-dir 5.0.0
(26Jan10): 29-Mar-2010 08:21:32
 Build OS:               amd64-portbld-freebsd8.0 freebsd 8.0-RELEASE-
p2
 JobId:                  21
 Job:                    SeadevilAllBJob.2010-03-23_15.29.37_55
 Backup Level:           Full
 Client:                 "seadevil-fd" 5.0.0 (26Jan10) x86_64-unknown-
linux-gnu,ubuntu,8.04
 FileSet:                "SeadevilAll-FS" 2010-03-23 15:21:43
 Pool:                   "AllBackupPool2" (From User input)
 Catalog:                "BaculaCatalog" (From Client resource)
 Storage:                "baculasrv-Autoloader" (From Job resource)
 Scheduled time:         23-Mar-2010 15:29:20
 Start time:             23-Mar-2010 15:29:39
 End time:               29-Mar-2010 08:21:32
 Elapsed time:           5 days 15 hours 51 mins 53 secs
 Priority:               10
 FD Files Written:       1,616,722
 SD Files Written:       1,616,722
 FD Bytes Written:       12,729,193,116,214 (12.72 TB)
 SD Bytes Written:       12,729,514,744,699 (12.72 TB)
 Rate:                   26025.1 KB/s
 Software Compression:   None
 VSS:                    no
 Encryption:             no
 Accurate:               no
 Volume name(s):         SJ8604L3|SJ8587L3|SJ8584L3|CLN008L1|SJ8583L3|
SJ8585L3|SJ8606L3|CLN007L1
 Volume Session Id:      20
 Volume Session Time:    1268970843
 Last Volume Bytes:      64,512 (64.51 KB)
 Non-fatal FD errors:    0
 SD Errors:              0
 FD termination status:  Error
 SD termination status:  Error
 Termination:            *** Backup Error ***
Т.е. бакула увидела, что нужный картридж появился в слоте 5 и
попыталсь его замонтировать, но стрим счиал, что у него есть какой-то
картридж в приводе и операция не удалась, в итоге бакула прибила
бекап. Вот таким образом, если мне повезет, я успеваю заменить
картриджи и замонтировать, если нет - бекап останавливается.

Вобщем как сделать так, чтобы бакула после заполнения 8-ми картриджей
(или того кол-ва, которое в данный момент в стримере загружено),
терпеливо ждала пока загрузят следующие картриджи, а не терзала
стример?

П.С. если кто-то использует автозагрузчики, расскажите как это
происходит у вас (смена картриджей).

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: bacula, autoloader

Непрочитанное сообщение Alex Keda » 2010-05-16 21:12:03

х.з...
Убей их всех! Бог потом рассортирует...

Trol`
проходил мимо

Re: bacula, autoloader

Непрочитанное сообщение Trol` » 2014-11-10 20:43:50

Попробуй

/etc/init.d/bacula-sd stop
sg_prevent --allow --verbose /dev/nst0
sg_prevent --allow --verbose /dev/nst1
...
sg_prevent --allow --verbose /dev/nstX
/etc/init.d/bacula-sd start