NetWorker. Поиск и устранение неисправностей при заказе накопителей ленточных библиотек
Сводка: В этой статье описывается хорошо известная проблема ленточных библиотек в среде SAN, которая приводит к изменению имен устройств операционной системой, что приводит к сбоям приложений.
Симптомы
В операционной системе Plug 'N Play устройствам назначаются целевые адреса SCSI в порядке обнаружения.
Поскольку порядок обнаружения сетей SAN различается, а потеря подключения приводит к переназначению по принципу Plug-and-Play, целевые значения изменяются и не могут оставаться неизменными.
Функция Plug-and-Play переименовывает устройства в соответствии с порядком перечисления, поэтому любое преднамеренное или случайное прерывание соединения может привести к тому, что устройствам будут переименованы новые имена.
Проблема «порядка дисков» описывает состояние, при котором настроенное NetWorker имя драйвера для устройства не совпадает с фактическим именем. Чаще всего это происходит в результате изменения имени драйвера в операционной системе после первоначальной настройки библиотеки NetWorker. Как правило, это проблема Plug 'N Play операционной системы, затрагивающая Windows и Linux.
Существует множество ошибок и условий, связанных с этой проблемой, включая, но не ограничиваясь:
- Ошибка. '
nsrd: media info: failed unloading drive `{driver handle}' to slot {slot number}, error '69'' - Ошибка. '
{hostname} the destination component full' - Ошибка. '
{driver handle} read open error, no such device or address' - Ошибка. '
opening: I/O error' - Ошибка. '
nsrd: Jukebox '{jukebox}' failed: expected volume '{volid}' got {volid}' - Ошибка. '
nsrd: Jukebox '{jukebox}' failed: expected volume '(volume_name)' got 'NULL'' - Ошибка. '
read open error, device not ready' - Ошибка. '
nsrjb: Jukebox error, All allocated drives are not usable, unrecoverable operation errors' - Ошибка. '
nsrd: Jukebox '{jukebox}' failed: expected volume '{volid}' got {volid}' - Ошибка. '
nsrd: Jukebox '{jukebox}' failed: expected volume '{volume}' got 'NULL'' - Ошибка. '
read open error, device not ready' - Ошибка. '
nsrjb: Jukebox error, All allocated drives are not usable, unrecoverable operation errors' - Ошибка. '
nsrd: media warning: {driver handle} reading: read open error: No media in drive.' - Ошибка. '
inventory: Bar code label `{barcode}' does not match media db bar code label, updating media db' - Ошибка. '
Illegal request, medium not present' - Ошибка. '
nsrd: media info: failed unloading drive `{driver handle}' to slot {slot number}'
Причина
NetWorker создает объект библиотеки во время начальной настройки, связывая ленточные накопители с сгенерированными ОС дескрипторами устройств, которые они имеют в этот момент. Это статическая ассоциация, отражающая взаимосвязь на момент настройки. Например, в библиотеке может быть два устройства:
Физический диск 1 = \\.\Tape0 (или, возможно, /dev/nst0 в Linux)
Физический диск 2 = \\.\Tape1 (или /dev/nst1
В системах Plug-and-Play, таких как Windows или Linux, любое исчезновение устройства, включая перезагрузку или изменение подключения, может привести к тому, что ОС переименует устройства. В частности, в сетях SAN, где обнаружение устройств может быть неупорядоченным, при следующей перезагрузке устройства могут называться по-другому, например, в отличие от указанных выше:
Физический диск 1 = \\.\Tape1 or /dev/nst1
Физический диск 2 = \\.\Tape0 or /dev/nst0
Команды для этих устройств могут по-прежнему работать, если любое устройство использует нужное имя. NetWorker теряет контроль за именами устройств, так как ассоциации дескрипторов драйверов библиотеки больше не соответствуют физическим элементам после того, как ОС переименовывает устройства. Например, NetWorker может загрузить ленточный картридж в один накопитель, но использовать устаревшее, неправильное имя устройства, выдавая команды не на тот накопитель после переименования ОС. Это может привести к широкому спектру ошибок, если обнаружен непредусмотренный том (или вообще его отсутствие). Существует множество возможных причин возникновения условий заказа накопителей:
- Неправильная настройка библиотеки вручную с помощью
jbconfigилиjbeditКоманды - Перезагрузка хоста, адаптера хранилища, оборудования для подключения хранилища или ленточных устройств
- Временная потеря подключения к устройству
- Отключение и повторное включение устройства в операционной системе
- Обновления операционной системы
- Обновления драйверов устройства или адаптера хранилища
Разрешение
Постоянное присвоение имен:
Это считается передовым подходом и может быть рекомендовано службой поддержки, даже если вы не испытываете проблем, чтобы заблаговременно защитить себя. Используйте информацию из следующих статей:
- Реализация обеспечения отказоустойчивости приложений с использованием имени ленточного устройства для Windows
- Реализация обеспечения отказоустойчивости приложений Tape Device Name для Linux
Дополнительная информация
Изменение конфигурации
вручнуюЕсли вы не можете немедленно включить отказоустойчивость приложений и перенастроить библиотеку, можно рассмотреть несколько альтернативных действий, сделанных вручную:
- Изменение конфигурации NMC: Вы можете обновить конфигурацию NetWorker, используя параметр Перенастроить экземпляра библиотеки, чтобы удалить определения устройств для всех затронутых устройств, затем удалить оставшиеся экземпляры ленточных устройств из контейнера Devices , а затем повторно выполнить сканирование и перенастройку с правильными новыми именами.
jbconfig: Эти команды по-прежнему входят в пакет NetWorker, но больше не используются и требуют более продвинутых знаний как NetWorker, так и ленточных библиотек и транспортных технологий хранилища.- Чтобы начать с нуля, используйте
jbconfigДля ручного управления созданием библиотеки: Настройка ленточной библиотеки NetWorker вручную с помощью команды jbconfig
- Чтобы начать с нуля, используйте
- Принудительное переименование: Устройства можно отключать или удалять, а также добавлять/повторно включать в том порядке, который соответствует их текущей конфигурации в NetWorker. Например, в простом сценарии Windows для приведенного выше сценария можно отключить оба устройства, повторно включив экземпляр, настроенный как Tape0 в NetWorker, чтобы операционная система снова назвала это устройство Tape0. Методология Linux будет аналогичной, но с использованием файла /proc/scsi/scsi для прямого удаления и повторного сканирования устройств.