Содержание


Сопоставление устройств VIOS LUN с минимальными требованиями

Comments

Создание UDID-сценария с минимальными требованиями

Не так давно я пытался найти с помощью Google какой-нибудь сценарий, который бы сопоставлял LUN-устройства клиента и сервера AIX VIOS при помощи уникальных идентификаторов дисков (UDID), подобно сопоставлению на основе идентификаторов физических томов (PVID). Мои поиски не увенчались успехом, поэтому я решил написать свой собственный сценарий, который мог бы выполняться в любой виртуальной среде и быть также полезным при миграции SAN и VIOS-серверов.

Сценарий очень прост в использовании. Он запускается на управляющем AIX-сервере, с которого можно устанавливать беспарольное SSH-подключение к клиенту и серверу VIOS. При этом вы либо должны обладать root-привилегиями, либо можете использовать собственный идентификатор пользователя. В последнем случае потребуется изменить сценарий, добавив команду sudo. Для сопоставления номеров LUN сценарий не использует SSH-подключение к HMC-консоли, используя вместо этого идентификаторы UDID. Для получения подробной информации изучите сценарий map_vio_client_report.

Этот сценарий не только создает отчет о сопоставлении LUN-устройств, но и призван помочь администраторам, выполняющим миграцию SAN и VIOS-серверов. Он будет особенно полезен, если вы переходите с версии VIOS 1.5 на версию VIOS 2.2. В версии VIOS 1.5 недоступна команда viosbr.

Также к статье прилагается дополнительный файл сценария map_vio_client_report_all, который использует описанный здесь сценарий для создания отчета о нескольких VIOS-серверах и их клиентах. Для его запуска следуйте инструкциям в файле.

Сравнение идентификаторов PVID и UDID

Для сопоставления LUN-устройств я решил использовать идентификаторы UDID. Существует три способа сопоставления LUN-устройств.

1. Использование VSCSI на клиенте, HMC-консоли и команды lsmap на VIOS-сервере.

2. Использование идентификаторов PVID на клиенте и сервере VIOS.

3. Использование идентификаторов UDID на клиенте и сервере VIOS.

Используя VSCSI на VIOS-клиенте, можно получить информацию об идентификаторе логического раздела (LPAR) и номере слота. Затем необходимо подключиться к HMC и найти номер соответствующего слота на VIOS-сервере. И, наконец, нужно запустить команду lsmap на VIOS-сервере. Для меня это слишком много работы.

Сначала можно запустить команду lspv на VIOS-клиенте и получить идентификатор PVID устройства hdisk. После этого можно запустить команду lspv на VIOS-сервере и, используя PVID в качестве аргумента команды grep, выяснить, какое устройство hdisk ему соответствует. Этот способ работает, но не всегда. Может оказаться, что VIOS-сервер не содержит PVID-идентификатора соответствующего устройства hdisk. Вот, как это может произойти. Предположим, что вы подключили к VIOS-серверу новое LUN-устройство. Допустим, что вы не используете команду chdev для назначения PVID-идентификатора новому диску, а вместо этого назначаете этот диск одному из VIOS-клиентов. Далее, на клиенте вы добавляете его в группу и используете в этой группе. Теперь при выполнении команды lspv вы не увидите PVID-идентификатор этого диска на VIOS-сервере, но увидите его на клиенте. Если теперь вы попытаетесь назначить PVID на VIOS-сервере с помощью команды chdev, то получите сообщение о том, что сделать это невозможно, поскольку диск занят. Диск оказывается занят потому, что он используется клиентом и является частью группы. Подводя итог, можно сказать, что при сопоставлении дисков нельзя на 100% полагаться на PVID-идентификаторы. Существуют и другие ситуации, когда PVID-идентификаторы на VIOS-сервере и VIOS-клиенте могут различаться, но их рассмотрение выходит за рамки этой статьи.

Идентификатор UDID (уникальный идентификатор диска) используется в технологии многопутевого ввода/вывода (MPIO). UDID-идентификатор точен на 100%, и поэтому его можно использовать для сопоставления LUN-устройств. Чтобы узнать UDID на VIOS-клиенте, я использовал в качестве примера команду lsattr -El hdisk30. На VIOS-сервере я использовал ODM-команду odmget -q 'name=hdisk4 AND attribute=unique_id' CuAt. Ниже показаны результаты их выполнения.

Клиент: hdisk0 48333321360050768018E0218580000000000034304214503IBMfcp05VDASD03AIXvscsi

Сервер: hdisk2 3321360050768018E0218580000000000034304214503IBMfcp

Обратите внимание на то, что оба UDID-идентификатора содержат подстроку, являющуюся номером LUN-устройства SAN (в нашем примере это подстрока "60050768018E02185800000000000343"). Кроме того, UDID-идентификатор клиента состоит из числа 4833, за которым следуют UDID-идентификатор сервера и подстрока "05VDASD03AIXvscsi". Другими словами, в данном случае UDID-идентификатор сервера является частью UDID-идентификатора клиента. Эту закономерность я и использовал для сопоставления LUN-устройств.

Информация, выводимая сценарием

Мой сценарий выводит большое количество информации. Он поддерживает версию VIOS 1.5 и не содержит команды viosbr. Таким образом, этот сценарий очень удобно использовать для сбора информации о среде, а также при миграции VIOS с версии 1.5 на версию 2.2. Информация выводится в формате CSV, поэтому ее удобно копировать и вставлять в таблицы Microsoft® Excel. Необходимо обратить внимание на номера LUN, поскольку Excel может отображать их в экспоненциальном формате. Выводимый сценарием отчет также содержит заголовки столбцов.

Отчет содержит следующие заголовки столбцов:

CLIENT NAME, CLIENT DISK, CLIENT VG, CLIENT VSCSI, ENABLED|FAILED, ACTIVE VSCSI, ALGORITHM, VIO NAME, VIO DISK, VHOST, VTD, LUN, STORAGE TYPE, COMMAND

Первые семь полей относятся к VIOS-клиенту. Следующие шесть – к VIOS-серверу. Последний столбец содержит команду для повторного создания виртуального конечного устройства (Virtual Target Device, VTD). Названия первых трех столбцов говорят сами за себя. Значение четвертого поля "CLIENT VSCSI" является результатом выполнения команды kdb. Поскольку в VIOS версии 1.5 команда kdb не работает, то при работе с этой версией в данном поле вы увидите строку "kdb_command_FAILED". Значение пятого поля " ENABLED|FAILED " является результатом выполнения команды lspath. Это поле может содержать и другие значения, о которых я не буду упоминать здесь. Шестое поле называется ACTIVE VSCSI. Его значение является результатом выполнения команды lspath для определенного устройства hdisk. Предположим, что у нас имеется два устройства VSCSI – vscsi0 и vscsi1, и мы работаем с устройством hdisk5. Если вы запустили команду lspath для hdisk5, и в ее выводе устройство vscsi0 отображается перед устройством vscsi1, то значением этого поля будет vscsi0. Если же вначале отображается устройство vscsi1, то значением поля будет vscsi1. В выводе команды lspath первым отображается активное VSCSI-устройство. На самом деле это зависит от алгоритма, указанного в команде lsattr -El hdisk5. Если задан алгоритм round_robin, то VSCSI будет переключаться между устройствами vscsi0 и vscsi1, и вы не сможете определить значение этого поля. В идеальном случае для параметра ALGORITHM следует задавать значение fail_over, в этом случае значение поля ACITIVE VSCSI будет определено. Следующее поле говорит нам о том, какое значение задано для параметра ALGORITHM. Значение поля ALGORITHM является результатом выполнения команды lsattr. Это поле должно напоминать вам, что если вы хотите создать резервные дисковые пути к другому VIOS-серверу, то сначала необходимо настроить определенные параметры для устройства hdisk (аналогично настройке параметра ALGORITHM перед использованием reserve_policy и hcheck_interval). Это своего рода напоминание – вы знаете, что если значение не установлено в fail_over, это не будет работать. Названия всех последующих полей, вплоть до STORAGE TYPE, говорят сами за себя. Информация о системе хранения извлекается командой lsdev -Cc disk. Это поле говорит вам о том, что в системе используется, например, система хранения данных IBM System Storage® SAN Volume Controller (SVC) или IBM System Storage DS8000®. Ниже приведен список всех типов систем хранения:

2105 - Displays all 2105 models (ESS) 
2145 - Displays all 2145 models (2145 used for SVC) 
1750 - Displays all 1750 devices (DS6000) 
2107 - Displays all 2107 devices (DS8000) 
1724 - Displays all 1724 devices (DS 4100) 
1814 - Displays all 1814 devices (DS3950 and DS4200 and DS4700 and DS5020)
1722 - Displays all 1722 devices (DS4300) 
1742 - Displays all 1742 devices (DS4400 and DS4500) 
1815 - Displays all 1815 devices (DS4800) 
1818 - Displays all 1818 devices (DS5000) 
1820 - Displays all 1820 devices (RSSM)

Последнее поле называется COMMAND и содержит команду, с помощью которой вы при необходимости можете заново создать VTD-устройство для устройства hdisk.

Вы можете одновременно запустить этот сценарий для одного VIOS-сервера и одного клиента. Если у вас возникнут проблемы при работе сценарии с клиентом, то вы можете запустить этот отчет, чтобы просмотреть все сопоставления дисков. Если вам нужно назначить LUN-устройства определенному клиенту, то запустите это сценарий перед началом и по завершении этой процедуры и убедитесь в том, что номера LUN назначены правильно. Если вы выполняете переход на новую SAN-систему, то с помощью этого сценария можно проверить, что все LUN-устройства корректно перенесены и можно безопасно отключать старые LUN-устройства.

В таблице 1 приведен пример выводимых сценарием данных, отсортированных по полям “CLIENT NAME”, “CLIENT VG” и “CLIENT DISK” (т. е. по группам томов VG).

Я поясню значения трех последних строк в этой таблице. Вот они:

 SEA, ent6 not active, on VIO1
ACTIVE VSCSI is, vscsi0, on VIO1, iostat -DlaTR 
ACTIVE VSCSI, column above, from lspath, first occurrence, of hdisk

Первая строка показывает статус SEA-адаптера (активен или неактивен) на VIOS-сервере. Эта информация выводится командой entstat -d ent6. Вторая строка выводит имя активного VSCSI-устройства и имя VIOS-сервера, на котором оно расположено. Это значение отличается от значения столбца "ACTIVE VSCSI", полученного от команды lspath, и является результатом выполнения команды iostat -DlaTR|grep vscsi. На одном из VIOS-клиентов путь hdisk может иметь соединение либо с VIO1, либо с VIO2 (хотя скорее всего этого не случится), что будет отражено в столбце "CLIENT VSCSI". В большинстве случаев эти значения должны быть одинаковыми. В качестве дополнительного напоминания я выделил в отчете первую (заголовки столбцов) и три последние строки жирным шрифтом. Последняя строка – это просто напоминание о том, что значение столбца "CLIENT VSCSI" было получено в результате выполнения команды lspath, а не команды iostat.

Как использовать сценарий

Этот сценарий необходимо запускать на управляющем AIX-сервере, т. е. на компьютере, с которого можно установить SSH-подключения к клиенту и серверу VIOS без ввода пароля. Также необходимо иметь привилегии пользователя root. Сценарию необходимо передать два параметра: первый – это имя VIOS-клиента, а второй – имя VIOS-сервера.

Пример запуска сценария:

 имя_сценария <имя клиента VIO> <имя сервера VIO>

например, map.ksh thumb valveeta (если вам интересно – с этими именами AIX-серверов я сталкивался несколько лет назад).

Если у вас имеется два VIOS-сервера (VIO1 и VIO2) и три клиента, то вы можете запустить сценарий три раза с указанием сервера VIO1 и три раза с указанием сервера VIO2. Вы можете объединить три отчета (для трех клиентов и сервера VIO1) в таблице Excel. Таким образом, вы сразу будете видеть все клиенты сервера VIO1 и все сопоставления. Чтобы отсортировать отчет по группе томов (VG), вы можете выполнить сортировку по столбцам "CLIENT NAME", "CLIENT VG" и "CLIENT DISK". Так вы сможете наглядно видеть все устройства hdisk, принадлежащие одной группе томов определенного VIOS-клиента, а также соответствующие им LUN-устройства.

Пример можно посмотреть в таблице 2.

Такой же отчет можно создать для сервера VIO2, после чего снова объединить отчеты для двух серверов в новой таблице Excel. Полученный отчет можно отсортировать сначала по полям "CLIENT NAME", "CLIENT DISK" и "VIO NAME", а затем по полям "CLIENT NAME", "CLIENT VG" и "CLIENT DISK". Пример можно посмотреть в таблице 3.

Обратите внимание на то, что значения полей "VIO DISK", "VHOST" и "VTD" одинаковы для обоих серверов VIO1 и VIO2. Однако эти значения не обязательно должны совпадать. Например, устройство hdisk5 на сервере VIO1 может быть сопоставлено устройству hdisk40 на сервере VIO2. Преимущество данного сценария заключается в том, что он выполняет сопоставления автоматически, существенно экономя ваше время.


Ресурсы для скачивания


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=992588
ArticleTitle=Сопоставление устройств VIOS LUN с минимальными требованиями
publish-date=12112014