Аппаратная миграция с помощью alt_disk_copy

Клонирование rootvg

Утилиту alt_disk_copy можно использовать для миграции дисков группы томов rootvg на новую аппаратную платформу. Этот метод удобен при отсутствии возможности или свободных ресурсов для выполнения удаленной сетевой установки.

Дэвид Тенсли, системный администратор, Ace Europe

фото Дэвида ТенслиДэвид Тенсли (David Tansley) — один из внештатных авторов IBM developerWorks. У него более 15 лет опыта администрирования UNIX-систем, а последние 8 лет он специализируется на AIX. В сферу его личных интересов входят бадминтон и Формула 1, но наибольшее удовольствие он получает, путешествуя на своём мотоцикле вместе с женой.



05.06.2013

В 2009 году я написал статью о клонировании дисков группы rootvg с помощью утилиты alt_disk_copy (см. раздел Ресурсы), которое упрощает возврат к предыдущему состоянию при обновлениях систем AIX® или приложений, расположенных на дисках rootvg. Тогда я не стал рассказывать об аппаратной миграции, поскольку эти вопросы выходили за рамки статьи. Здесь я расскажу вам об этих вопросах. Man-страница alt_disk_copy содержит информацию о том, что эта утилита (при использовании опции 'O') "выполняет перезагрузку устройства на целевой группе томов altinst_rootvg; в результате инсталляция альтернативного диска не содержит никаких сохраненных пользовательских конфигураций устройств. Данную опцию полезно использовать в тех случаях, когда один или несколько целевых дисков формируют группу томов rootvg в другой системе".

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

  • Ethernet-адаптеры – сброс IP-адресов и имен узлов.
  • Fibre/SAN-адаптеры – сброс значений любых атрибутов, например, fc_err_recov.
  • sys0 – сброс значений любых атрибутов, например, maxuproc.
  • Очистка списка уведомлений по e-mail утилиты diag.

Процесс миграции или переноса методом клонирования диска rootvg ограничен лишь эксплуатационными требованиями вашей рабочей среды. Самый распространенный сценарий заключается в клонировании rootvg диска и его инсталляции в новый хост для создания новой базовой сборки. Этот процесс можно осуществить, не выключая исходный хост. В самом деле, удобно один раз подготовить диск, создать его зеркальную копию, после чего вставить новый диск в исходный хост и повторно создать зеркальную копию на нем, не останавливая работу исходного хоста.

Однако в этой статье я рассмотрю способы, которые можно использовать для перехода на новое аппаратное обеспечение. Вы сможете переносить со старого сервера на новый fibre-адаптеры и SAN-диски. При этом не требуется переносить Ethernet-адаптеры, поскольку, как правило, они уже присутствуют на любом новом компьютере.

Сбор сведений о существующей конфигурации

Если вы клонируете rootvg лишь для того, чтобы создать базовую конфигурацию нового хоста, то собирать сведения о текущей конфигурации не нужно. Это нужно лишь тогда, когда вы переносите работающую систему и хотите восстановить на новом хосте все ее параметры.

Перед началом миграции на новое аппаратное обеспечение просмотрите параметры inittab и закомментируйте все сервисы, которые не должны запускаться до завершения процесса миграции. Также рекомендуется создать список конфигурационных параметров текущего хоста AIX, поскольку все параметры будут сброшены утилитой alt_disk_copy и изменят свои значения при включении новой системы.

Ниже приводится далеко не исчерпывающий список параметров, которые необходимо записать и восстановить в новой системе после миграции:

  • Список всех виртуальных групп (VG) и содержимого их логических томов (LV).
  • Список всех физических томов (PV).
  • Вывод команды lsattr –El для всех fibre- и scsi-адаптеров.
  • Вывод команды ioo –a для серверов aio под управлением AIX 6 и 7.
  • Вывод команды lsattr -El aio0 для серверов aio под управлением AIX 5.3 и ниже.
  • Список Ethernet-адаптеров (включая каналы ether-channel, если они есть).
  • IP-адреса и адреса шлюза.
  • Вывод команды lscfg –vp.
  • Вывод команды lsdev (т. е. lsdev -Cc disk).

Подготовка к переносу

В этом примере используются следующие условные имена:

  • Alpha – имя исходного хоста.
  • Bravo – имя целевого хоста.

Создание зеркальной копии

Убедитесь, что группа томов rootvg отзеркалирована на хосте alpha. В этом примере мы видим, что группа rootvg не полностью отзеркалирована – имеется только одна копия раздела /opt/db2_09_01. Таким образом, необходимо исправить это, прежде чем удалять зеркалирование группы rootvg.

# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
hd5                 boot       1       2       2    closed/syncd  N/A
hd6                 paging     4       8       2    open/syncd    N/A
hd8                 jfs2log    1       2       2    open/syncd    N/A
hd4                 jfs2       8       16      2    open/syncd    /
hd2                 jfs2       36      72      2    open/syncd    /usr
hd9var              jfs2       3       6       2    open/syncd    /var
hd3                 jfs2       16      32      2    open/syncd    /tmp
hd1                 jfs2       8       16      2    open/syncd    /home
hd10opt             jfs2       6       12      2    open/syncd    /opt
hd11admin           jfs2       1       2       2    open/syncd    /admin
lg_dumplv           sysdump    8       16      1    open/syncd    N/A
livedump            jfs2       2       4       2    open/syncd    /var/adm/ras/l
ivedump
fwdump              jfs2       1       2       2    open/syncd    /var/adm/ras/p
latform
fslv01              jfs2       8       8       1    open/syncd    /opt/db2_09_01
loglv01             jfslog     1       2       2    open/syncd    N/A

# mklvcopy fslv01 2
# syncvg -l fslv01
# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
hd5                 boot       1       2       2    closed/syncd  N/A
hd6                 paging     4       8       2    open/syncd    N/A
hd8                 jfs2log    1       2       2    open/syncd    N/A
hd4                 jfs2       8       16      2    open/syncd    /
hd2                 jfs2       36      72      2    open/syncd    /usr
hd9var              jfs2       3       6       2    open/syncd    /var
hd3                 jfs2       16      32      2    open/syncd    /tmp
hd1                 jfs2       8       16      2    open/syncd    /home
hd10opt             jfs2       6       12      2    open/syncd    /opt
hd11admin           jfs2       1       2       2    open/syncd    /admin
lg_dumplv           sysdump    8       16      1    open/syncd    N/A
livedump            jfs2       2       4       2    open/syncd    /var/adm/ras/l
ivedump
fwdump              jfs2       1       2       2    open/syncd    /var/adm/ras/p
latform
fslv01              jfs2       8       16      2    open/syncd    /opt/db2_09_01
loglv01             jfslog     1       2       2    open/syncd    N/A

Убедитесь, что загрузочный образ находится в рабочем состоянии и отзеркалирован, в противном случае работа alt_disk_copy завершится с ошибкой:

# lslv -m hd5
hd5:N/A
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0001 hdisk0            0001 hdisk1

Определение перемещаемого диска

Перед запуском программы alt_disk стоит выяснить, какой физический диск будет удален. В зависимости от способа размещения дисков для выяснения расположения диска можно использовать либо hot-swap утилиту smit, либо утилиту smit diag:

smit diag
task selection
identify /attention indicator

Вы должны точно знать, какой из дисков является устройством hdisk0, а какой – устройством hdisk1. Для этого можно наклеить на каждый диск небольшой ярлык с именем устройства – это позволит вам не перепутать диски при извлечении. В этом примере мы будем переносить в новую систему диск hdisk1, поэтому сначала найдем код размещения hdisk1 с помощью следующей команды:

# lscfg -vp |grep -w hdisk1
  hdisk1           U787F.001.DPM0Y7F-P1-T10-L4-L0   16 Bit LVD SCSI Disk Drive (
18200 MB)

Теперь с помощью smit diag и найденного кода размещения hdisk1 найдем соответствующее ему устройство. Когда загорится индикатор hdisk1, пометьте этот диск на будущее.

Далее выполните следующие действия:

  • Запустите команду bosboot.
  • Удалите зеркалирование группы rootvg.
  • Выполните команду reducevg rootvg для удаления диска hdisk1.
# bosboot -a

# unmirrorvg rootvg hdisk1
0516-1246 rmlvcopy: If hd5 is the boot logical volume, please run 'chpv -c <disk
name>'
        as root user to clear the boot record and avoid a potential boot
        off an old boot image that may reside on the disk from which this
        logical volume is moved/removed.
0516-1804 chvg: The quorum change takes effect immediately.
0516-1144 unmirrorvg: rootvg successfully unmirrored, user should perform
        bosboot of system to reinitialize boot records.  Then, user must modify
        bootlist to just include:  hdisk0.
# reducevg rootvg hdisk1
# lspv
hdisk0          00c23bed7c1b3d4b                    rootvg          active
hdisk1          00c23bedf2976238                    None
hdisk2          00525c6a888e32cd                    apps_vg         active

Запуск alt_disk_copy

Теперь мы можем клонировать диск hdisk1 в текущей системе AIX, расположенной в группе rootvg на диске hdisk0. Команда alt_disk_copy имеет следующий формат:

alt_disk_copy -Od hdisk1

Здесь используются следующие параметры:

  • O – как уже говорилось, этот параметр удаляет все определенные пользователем ODM-записи.
  • d – диск назначения, на который будет клонирован диск группы rootvg (в нашем примере это hdisk1).

Можно также указать параметры bootlist, но я предпочитаю управлять ими самостоятельно в процессе контрольной проверки результатов миграции. В листинге 1 приведен полный вывод работы команды alt_disk_copy.

Листинг 1. Вывод команды alt_disk
# alt_disk_copy -Od hdisk1
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
Creating logical volume alt_hd5
Creating logical volume alt_hd6
Creating logical volume alt_hd8
Creating logical volume alt_hd4
Creating logical volume alt_hd2
Creating logical volume alt_hd9var
Creating logical volume alt_hd3
Creating logical volume alt_hd1
Creating logical volume alt_hd10opt
Creating logical volume alt_hd11admin
Creating logical volume alt_lg_dumplv
Creating logical volume alt_livedump
Creating logical volume alt_fwdump
Creating logical volume alt_fslv01
Creating logical volume alt_loglv01
Creating logical volume alt_lv00
Creating /alt_inst/ file system.
/alt_inst filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/admin file system.
/alt_inst/admin filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/home file system.
/alt_inst/home filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/opt file system.
/alt_inst/opt filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/opt/db2_09_01 file system.
/alt_inst/opt/db2_09_01 filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/storix file system.
Creating /alt_inst/tmp file system.
/alt_inst/tmp filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/usr file system.
/alt_inst/usr filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/var file system.
/alt_inst/var filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/var/adm/ras/livedump file system.
/alt_inst/var/adm/ras/livedump filesystem not converted.
        Small inode extents are already enabled.
Creating /alt_inst/var/adm/ras/platform file system.
/alt_inst/var/adm/ras/platform filesystem not converted.
        Small inode extents are already enabled.
Generating a list of files
for backup and restore into the alternate file system...
Backing-up the rootvg files and restoring them to the
alternate file system...
Modifying ODM on cloned disk.
Building boot image on cloned disk.
Resetting all device attributes.
NOTE: The first boot from altinst_rootvg will prompt to define the new
system console.
Resetting all device attributes.
NOTE: The first boot from altinst_rootvg will prompt to define the new
system console.
forced unmount of /alt_inst/var/adm/ras/platform
forced unmount of /alt_inst/var/adm/ras/platform
forced unmount of /alt_inst/var/adm/ras/platform
forced unmount of /alt_inst/var/adm/ras/livedump
forced unmount of /alt_inst/var/adm/ras/livedump
forced unmount of /alt_inst/var
forced unmount of /alt_inst/var
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/storix
forced unmount of /alt_inst/opt/db2_09_01
forced unmount of /alt_inst/opt/db2_09_01
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/home
forced unmount of /alt_inst/home
forced unmount of /alt_inst/admin
forced unmount of /alt_inst/admin
forced unmount of /alt_inst
forced unmount of /alt_inst
Changing logical volume names in volume group descriptor area.
Fixing LV control blocks...
Fixing file system superblocks...
Bootlist is set to the boot disk: hdisk1 blv=hd5

# lspv
hdisk0          00c23bed7c1b3d4b                    rootvg          active
hdisk1          00c23bedf2976238                    altinst_rootvg

По завершении работы команды alt_disk_copy (если не указано ничего другого) по умолчанию выполняется настройка параметра bootlist на диск, на котором расположена alt_disk; в этом примере это hdisk1. Следует проявить осторожность и позаботиться о том, чтобы хост alpha продолжал загружаться с диска hdisk0, на случай отката процесса миграции. Поэтому изменим bootlist на hdisk0:

# bootlist -m normal hdisk0

После этого выключим хост alpha.

На этом шаге можно было бы не выключать его и динамически извлечь диск с помощью команды

# rmdev -dl hdisk1

Однако в конечном итоге нам все-равно потребуется выключить хост alpha для извлечения оставшегося диска rootvg, поэтому можно выключить его прямо сейчас.


Загрузка с клонированного диска

В этом примере мы извлекаем аппаратные платы из хоста alpha и вставляем их в хост bravo. Оба хоста сейчас выключены.

  • Извлеките сетевой кабель и оптические кабели SAN (если они есть), а также соответствующие адаптеры и вставьте их в хост bravo. Подключите все кабели.
  • Если в хосте bravo присутствуют внутренние загрузочные диски, извлеките их, поскольку они будут заменены дисками хоста alpha.
  • Извлеките диск hdisk1 из хоста alpha и вставьте его в хост bravo на место ранее присутствовавших в нем загрузочных дисков.
  • Включите хост bravo; во время загрузки войдите в меню SMS.

Когда хост bravo загрузится, вы увидите приглашение со списком из нескольких меню. Нажмите 1 для входа в меню SMS, как показано на рисунке 1.

Рисунок 1. Вход в меню SMS
Рисунок 1. Вход в меню SMS

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

Рисунок 2. Список загрузки SMS
Рисунок 2. Список загрузки SMS

При загрузке с этого диска начинает загружаться ядро AIX, как показано на рисунке 3. Диск переходит в рабочее состояние, и AIX загружается.

Рисунок 3. Загрузка системы
Рисунок 3. Загрузка системы

После этого вам предлагается определить системную консоль. Нажмите 1, как показано на рисунке 4. Определение консоли было сброшено, поскольку оно является пользовательским ODM-атрибутом.

Рисунок 4. Определение новой консоли
Рисунок 4. Определение новой консоли

После того, как AIX загрузится, войдите в систему и проверьте диск:

# lspv
hdisk0          00c23bedf2976238                    rootvg          active

Обратите внимание на то, что диск, который на хосте alpha назывался hdisk1, на хосте bravo называется hdisk0. Измените параметры bootlist для загрузки с этого диска до завершения процесса миграции:

# bootlist -m normal hdisk0

Если потребуется, настройте на сетевом адаптере IP-адрес и скорость, использовавшиеся на хосте alpha. Убедитесь, что хост подключен к сети, попробуйте запустить команду ping для внешнего адреса, расположенного за шлюзом, а также проверьте возможность подключения к DNS-серверу с помощью одной из следующих команд:

nslookup
dig
host

Убедитесь, что вы можете удаленно подключиться к хосту bravo по протоколу telnet или ssh. На хосте bravo может не работать демон ssh, поэтому вам может потребоваться запустить его самостоятельно:

# startsrc -s sshd

Подключение второго диска rootvg

Если к этому моменту все в порядке, можно приступать к подключению второго диска rootvg хоста alpha.

  • Извлеките последний загрузочный диск (hdisk0) из хоста alpha.
  • Вставьте диск в хост bravo; этот диск теперь называется hdisk1.
  • Запустите команду cfgmgr для обнаружения диска.

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

Если после запуска хоста группа томов будет отображаться под именем old_rootvg, то просто удалите определение с помощью следующей команды:

# alt_rootvg_op -X old_rootvg

Проверка аппаратных атрибутов и включение виртуальных групп

Внесите на хосте bravo все необходимые изменения в соответствии с параметрами aio, sys0 и scsi/fibre-адаптеров. Настройте необходимые параметры с помощью команд smit или chdev.

Выясните WWN-имена fibre-адаптеров. Эту информацию можно получить из вывода команды lscfg –vp, найдя информацию о SAN-адаптерах fcs0, fcs1 и т. д. Когда эти имена будут известны, используйте их для повторного зонирования SAN-дисков с коммутатора, а затем импортируйте виртуальные группы. Если у вас имеется несколько виртуальных групп SAN, распределенных по нескольким коммутаторам, то я рекомендую оставить подключенным кабель только в том коммутаторе, который содержит одну из виртуальных групп. Подключите диски с помощью cfgmr, а затем импортируйте эту виртуальную группу. После выполнения зеркалирования подключите другой fibre-кабель, повторно запустите cfgmgr и импортируйте эту виртуальную группу. Если этого не сделать, то все диски будут использовать fibre-пути. При импорте виртуальных групп все диски будут импортированы в эту единственную виртуальную группу, которая, возможно, вам не нужна (вы не столкнетесь с этой проблемой, если ваши scsi raid-контроллеры содержат более одной виртуальной группы).

Если вы столкнетесь с проблемами при использовании importvg, не забудьте проверить подключение кабелей. Возможно, после этого вам придется вручную запустить команду varyonvg, поскольку AIX не запускает ее автоматически при возникновении проблем с importvg.

Далее смонтируйте файловые системы.

# mount -a

Убедитесь в том, что все файловые системы смонтированы, а все логические тома открыты.

# lsvg -l <vg name>

Раскомментируйте ранее закомментированные параметры в файле inittab.

Считайте заново файл inittab.

# init q

Теперь можно запускать приложения и проверять их работу.

Зеркалирование

Если на этом этапе все работает правильно и все проверки прошли успешно, можно приступать к зеркалированию другого диска. При его присоединении к группе rootvg необходимо использовать опцию force.

# extendvg -f rootvg hdisk1 
# mirrorvg rootvg hdisk1

Если что-то пошло не так

Если в процессе миграции или переноса возникнут ошибки, извлеките второй (загрузочный) диск из хоста bravo. Помните, что этот диск не должен быть присоединен к группе rootvg на хосте bravo до тех пор, пока все приложения не будут протестированы. Таким образом, этот диск все еще будет содержать ODM-параметры хоста alpha, и вы сможете прервать процесс и вернуться к исходному состоянию. При переносе карт расширений и кабелей воспользуйтесь приведенными в этой статье алгоритмами, просто выполняя их в обратном порядке.

В некоторых случаях диск может отображаться с назначенным ему тегом alt_disk. Просто удалите этот тег перед тем, как присоединять диск к группе rootvg и выполнять зеркалирование.

# alt_rootvg_op -X altinst_rootvg

Заключение

Я рассмотрел лишь один метод аппаратной миграции. Хотя эта статья не является пошаговым руководством, она демонстрирует вам один из подходов к этому процессу. Существуют различные способы, которые можно использовать для аппаратной миграции или перемещения с помощью alt_disk_copy. Утилита alt_disk_copy является полезным инструментом в тех случаях, когда вам нужно перейти на новое аппаратное обеспечение и все компьютеры расположены в пределах одной комнаты.

Ресурсы

  • Оригинал статьи: Hardware migration using alt_disk_copy (EN).
  • Прочитайте статью Дэвида "Using alt_disk_copy" (EN) (developerWorks, ноябрь 2009 г.), чтобы узнать больше об онлайновом резервировании rootvg.
  • Посетите страницу описания команды alt_disk_copy (EN) справочной системы AIX.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=932762
ArticleTitle=Аппаратная миграция с помощью alt_disk_copy
publish-date=06052013