Solaris Как обновить список доступных LUN?

Дано:

Сервер c Solaris 10 на борту и HBA Qlogic. К нему по FC подключено хранилище и презентовано 2 новых LU.

Задача:

Пересканировать LUN, желательно без выключения HBA и перезагрузки сервера, чтобы не прервать работу приложений.

Как это сделать?

Решения

 

Первое:

Если у Вас Solaris 8, 9 или 10 и HBA Qlogic, как у меня, то обычно достаточно запустить следующую команду

cfgadm –al

cfgadm позволяет управлять динамически-изменяемыми аппаратными ресурсами сервера.

ключ –l позволяет вывести статус устройств

ключ –а указывает, чтобы –l так же вывел список динамических ресурсов

Всё, диски уже появились

image

Второе

К этому шагу есть смысл приступать, если первый результатов не дал. Вводим в консоли:

luxadm probe –p

luxadm отвечает за управление FC AL устройствами и выполняет различные команды управления и опроса оборудования

Подкоманда probe выполняет поиск и отображает все FC устройства.

Ключ –p дополнительно к probe выводить физические пути для найденных устройств. Полезно для диагностики зонирования SAN сети и проверки доступности путей.

image

Третье

Если предыдущие решения не помогли, то продолжаем:

devfsadm -c disk

devfsadm содержит пространство имен /dev и заменяет собой устаревший набор приложений из пакета devfs, включая drvconfig, disks, tapes, ports и еще парочку.

Ключ –c ограничивает типы устройств, которые нужно опросить и требует явно указать ему, что проверять. В моём случае – это тип disk

После этой операции диски тоже обычно появляются.

 

Четвертое

Команду cfgadm я описывал чуть выше. Я вынес это в отдельное решение потому, что тут потребуется немного больше действий для добавления устройства и несколько больше вариантов.

1. cfgadm -c configure cХ

или

2. cfgadm -c configure cX::216000c0ff804351

или

3. cfgadm -o force_update -c configure cX

Ключ –c отвечает за функции изменения состояния устройств на каналах.

Параметр configure выполняет конфигурацию аппаратного обеспечения, чтобы оно могло использоваться в ОС Solaris.

Ключ –o позволяет передать определённые опции к аппаратному компоненту, в нашем случае это force_update, которая выполняет принудительное обновление.

Теперь о вариантах подробнее:

В первом варианте, вместо cX”, нужно указать номер канала, на котором расположено нужное устройство, для этого вернёмся к картинке из первого способа:

image

Допустим это будет канал 2, тогда команда будет выглядеть следующим образом:

cfgadm -c configure c2

В варианте 2 мы уточняем, какое именно устройство нужно настроить:

cfgadm -c configure c2::216000c0ff804351

В третьем варианте мы указываем системе принудительно обновить конфигурацию устройства:

cfgadm -o force_update -c configure c2

или даже так

cfgadm -o force_update -c c2::216000c0ff804351

После всех этих манипуляций обязательно потребуется выполнить команду:

devfsadm -c disk

 

Пятое

Перезагрузить драйвер HBA, этот метод уже может быть связан с небольшим простоем.

В случае Qlogic перезагрузка драйвера вызывается следующей командой:

update_drv qlc

или

update_drv -f qlc

update_drv как раз отвечает за пересканирование настроек драйвера.

Параметр –f заставляет принудительно перечитать конфигурацию драйвера, даже если модуль не может быть выгружен из ядра. (При этом сам модуль драйвера из ядра не выгружается)

Шестое

Как бы банально это не звучало – перезагрузите сервер.

Чтобы сообщить ОС Solaris о необходимости просканировать все устройства при загрузке можно использовать следующие методы:

А) В загруженной ОС

touch /reconfigure

init 6

B) Из загрузчика OpenBoot сервера указать команду:

boot -r

 

 

Возможно тем, кто работает с ОС Solaris эти ответы покажутся совсем простыми или явными. Но моё знакомство с Solaris довольно ограниченное, так что данные советы вполне могут пригодиться и другим людям начинающим работать с Solaris серверами.

 

Запись изначально опубликована в блоге volnyanskiy.ru, автор Волнянский Виталий.

Leave a Reply

Your email address will not be published. Required fields are marked *