Содержание


Сопоставление дисков IBM AIX логическим томам контроллера IBM System Storage SAN Volume Controller (SVC)

Comments

SVC – это чрезвычайно мощное универсальное решение для виртуализации SAN, разработанное корпорацией IBM. Оно поддерживает многочисленные функции и технологии, такие как Thin Provisioning и IBM Real-time Compression™ (оптимизация использования емкости систем хранения данных), онлайновая миграция данных и т. д. Управление SVC-контроллером осуществляется при помощи простого Web-интерфейса, который делает работу простой и интуитивной. Однако если вы работаете на узле AIX и хотите выяснить, какой жесткий диск AIX соответствует определенному логическому тому SVC, сделать это может быть непросто. Если вам нужно удалить LUN-устройство SVC из сервера AIX, то необходимо четко понимать, какой диск сопоставлен этому LUN-устройству, в противном случае можно удалить не то LUN-устройство, которое требуется. В этой статье рассказывается, как сопоставить тома SVC жестким дискам AIX при использовании программного обеспечения многопутевого ввода/вывода SDDPCM.

Сопоставление вручную

Если у вас всего пара жестких дисков AIX, которые необходимо сопоставить томам SVC, то проще всего будет сделать это вручную. Начать необходимо со сбора информации на сервере AIX. Эта статья рассчитана на работу с серверами AIX, на которых используется программное обеспечение многопутевого ввода/вывода IBM Subsystem Device Driver Path Control Module (SDDPCM). В состав SDDPCM входит команда pcmpath, которая умеет, помимо прочего, собирать информацию об управляемых SDDPCM LUN-устройствах, доступных на сервере AIX. Для начала подключимся к серверу AIX и выполним на нем команду pcmpath query device. В результате мы увидим подробную информацию о статусе каждого LUN-устройства SAN, управляемого SDDPCM. Одним из элементов, выводимых для каждого LUN-устройства, является серийный номер. Этот же серийный номер является идентификатором логического тома ("UID") на SVC-контроллере, поэтому его можно использовать для сопоставления жестких дисков и томов SVC.

Листинг 1. Пример вывода команды pcmpath query device
# pcmpath query device 
DEV#: 0 DEVICE NAME: hdisk0 TYPE: 2145 ALGORITHM: Load Balance 
SERIAL: 60050763624B79486800000000000004
========================================================================== 
Path#   Adapter/Path  Name    State   Mode    Select    Errors 
0             fscsi0/path0    OPEN    NORMAL  8037977   0 
1             fscsi0/path1    OPEN    NORMAL  8032250   0 
2*            fscsi0/path2    OPEN    NORMAL       62   0 
3*            fscsi0/path3    OPEN    NORMAL       62   0 
4             fscsi1/path4    OPEN    NORMAL  8066256   0 
5             fscsi1/path5    OPEN    NORMAL  8070900   0 
6*            fscsi1/path6    OPEN    NORMAL       62   0 
7*            fscsi1/path7    OPEN    NORMAL       62   0 

DEV#: 1   DEVICE NAME: hdisk1   TYPE: 2145  ALGORITHM: Load Balance 
SERIAL: 60050763624B79486800000000000005
========================================================================== 
Path#   Adapter/Path Name     State   Mode    Select  Errors 
0             fscsi0/path0     OPEN    NORMAL  3009569      0 
1             fscsi0/path1     OPEN    NORMAL  3008052      0 
2*            fscsi0/path2     OPEN    NORMAL       49      0 
3*            fscsi0/path3     OPEN    NORMAL       49      0
4             fscsi1/path4     OPEN    NORMAL  3019297      0 
5             fscsi1/path5     OPEN    NORMAL  3018514      0 
6*            fscsi1/path6     OPEN    NORMAL       49      0 
7*            fscsi1/path7     OPEN    NORMAL       49      0

В листинге 1 мы видим два LUN-устройства SAN: hdisk0 и hdisk1. Также из вывода команды видно, что hdisk0 имеет серийный номер 60050763624B79486800000000000004, а hdisk1 – серийный номер 60050763624B79486800000000000005.

Теперь подключимся к Web-интерфейсу SVC и перейдем в раздел Volumes, как показано на рисунке 1.

Рисунок 1. Раздел Volumes контроллера SVC
Рисунок 1. Раздел Volumes контроллера SVC
Рисунок 1. Раздел Volumes контроллера SVC

Убедитесь, что в разделе Volumes отображается столбец UID. Если его нет, щелкните правой кнопкой мыши в области заголовка и поставьте флажок UID для отображения этого столбца, как показано на рисунке 2.

Рисунок 2. Включение отображения столбца UID (при необходимости)
Рисунок 2. Включение отображения столбца UID (при необходимости)

Далее щелкните на столбце UID, чтобы отсортировать список по номеру UID. Просмотрите список и найдите два серийных номера, которые были получены ранее при помощи команды pcmpath query device (листинг 1) на сервере AIX. Каждый серийный номер LUN-устройства AIX, содержащийся в выводе команды pcmpath query device, должен соответствовать одному UID-идентификатору тома SVC, как показано на рисунке 3.

Рисунок 3. Сопоставление серийного номера AIX идентификатору UID контроллера SVC
Рисунок 3. Сопоставление серийного номера AIX идентификатору UID контроллера SVC
Рисунок 3. Сопоставление серийного номера AIX идентификатору UID контроллера SVC

Из рисунка 3 видно, что устройству AIX hdisk0 соответствует том SVC App1_1, а устройству hdisk1 – том App1_2.

Автоматизация процесса

Теперь, когда вы понимаете, как выполняется сопоставление LUN-устройств томам SVC, можно автоматизировать этот процесс. Это поможет сэкономить время и позволит решать задачу на серверах AIX, которые могут иметь сотни смонтированных томов SVC.

Для автоматизации данной задачи в статье приведен код командного сценария. Этот сценарий запускается на сервере AIX и выводит отчет, содержащий список всех LUN-устройств AIX, управляемых SDDPCM, а также соответствующую им информацию SVC-контроллера, включая имена томов SVC.

Поскольку сценарий выполняется на сервере AIX, он также должен получить информацию от SVC. В сценарии поддерживаются два различных метода получения информации от SVC. В первом случае сценарий выполняет подключение к SVC по протоколу SSH (при помощи SSH-ключей либо вводимого вручную пароля). Поскольку некоторые системные администраторы не имеют доступа к SVC, в таких случаях можно использовать обычный файл, который должен содержать вывод команды lshostvdiskmap, запущенной на SVC. Таким образом, администратор SAN может запустить команду lshostvdiskmap и передать вам результаты ее выполнения, а вы сможете использовать сценарий, не имея прямого доступа к SVC.

При запуске сценария вы указываете либо имя пользователя и SVC-хост в виде пользователь@хост, либо путь к файлу, содержащему вывод команды lshostvdiskmap. Сценарий выполняется на сервере AIX и создает отчет обо всех жестких дисках AIX, управляемых SDDPCM.

Например, для подключения через SSH к узлу SVC с именем "svchost" под учетной записью пользователя "user" выполните команду из листинга 2.

Листинг 2. Пример запуска сценария svc_report.sh для получения информации от контроллера SVC
./svc_report.sh user@svchost

Чтобы использовать файл с именем /tmp/lshost_output, расположенный на сервере AIX и содержащий вывод команды lshostvdiskmap, выполните команду из листинга 3.

Листинг 3. Пример запуска сценария svc_report.sh для получения информации из файла
./svc_report.sh /tmp/lshost_output

Содержимое отчета выглядит так, как показано на рисунке 4.

Рисунок 4. Пример отчета, сгенерированного сценарием svc_report.sh
Рисунок 4. Пример отчета, сгенерированного сценарием svc_report.sh
Рисунок 4. Пример отчета, сгенерированного сценарием svc_report.sh

Отчет содержит имя диска AIX, группу томов AIX, размер диска, а также информацию, полученную от SVC – имя и серийный номер тома.

Код сценария для создания этого отчета приведен в листинге 4.

Листинг 4. Содержимое сценария svc_report.sh
#!/usr/bin/ksh 
if ! [ `whoami` = "root" ]; then 
echo "Script must be run as root" 
exit 3 
fi 

if [ -n "$1" ]; then 
if [ -e "$1" ]; then 
svcinfo=`cat "$1"` 
else
svcinfo=`ssh $1 lshostvdiskmap` 
fi 
else 
echo "Specify filename with SVC lshostvdiskmap output in it" 
echo "OR specify username@svchost to retrive info from SVC through SSH" 
echo "example: $0 /path/to/lshostvdiskmap_output" 
echo "example: $0 user@svc1" 
exit 1
fi 

if ! [ -n "$svcinfo" ]; then 
echo "Error: Unable to retrive SVC info" 
exit 2 
fi 
printf  "AIX_Host_Name   AIX_hdisk  AIX_VG       SIZE_MB    "
echo "id SVC_AIX_host  SCSI_id vdisk_id SVC_vdisk_name             SVC_vdisk_UID"
pcmpath query device | egrep "^DEV|^SERIAL" | paste - - | 
awk '{print $5 " " $12}' | while read disk serial; do 
vg=`lspv | grep "^$disk " | awk '{print $3}'` 
size=`getconf DISK_SIZE /dev/$disk` 
printf "%-15s %-10s %-12s %-10s " `hostname -s` $disk $vg $size 
echo "$svcinfo" | grep "$serial *$" || echo "Not found on SVC: $serial" 
done

Заключение

Системным администраторам время от времени приходится сталкиваться с задачей сопоставления дисков AIX томам SVC. Очень важно выполнять эту задачу правильно, чтобы избежать ошибок при обслуживании SVC (например, при удалении или изменении размеров LUN-устройств). Эта статья должна научить вас сопоставлять диски AIX томам SVC вручную, а также использовать приведенный сценарий для автоматизации этого процесса.

Ресурсы


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


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=964749
ArticleTitle=Сопоставление дисков IBM AIX логическим томам контроллера IBM System Storage SAN Volume Controller (SVC)
publish-date=02052014