Категорії
Solaris

Solaris brand zone: переносим зону из Solaris10 в Solaris11

Solaris brand zone – это механизм, который позволяет запускать внутри зоны другие ОС а так же их различные версии. Данная возможность появилась в Solaris 11 и она позволяет запускать Solaris10 и Linux внутри зоны Solaris11.

И так, рассмотрим пример переноса зоны из Solaris10 в Solaris11.

Перенос зоны в зону

1) Подготовка зоны Solaris10

Для начала остановим зону:

#zoneadm -z solaris10 halt

Теперь предстоит процесс переноса файлов самой зоны. Это можно делать 2-мя способами:

– перенос zfs (метод №1)
– перенос архива cpio (метод №2)

Перенос методом №1 описан здесь
Ниже будет описан перенос методом №2.

Примечание.

Обязательно выключите переносимую зону перед копированием, иначе при попытке attach’a на новом месте получите ошибку:

ERROR: The image was created with an incompatible libc.so.1 hwcap lofs mount.

Скажу сразу, что в переносимой зоне zonepath=/zones/my-zone, zonename=my-zone

– если имя зоны на source/destination совпадает

source# cd /zones
source# find my-zone -print | cpio -oP@ | gzip >/zones/my-zone.cpio.gz

– если имя зоны на source/destination НЕ совпадает

source# cd /zones/my-zone
source# find root -print | cpio -oP@ | gzip >/zones/my-zone.cpio.gz

Этим мы создали архив файлов самой зоны. После этого скопируйте архив на новый сервер.

Примечание.

Дочерные zfs’ы, такие как /export/home/user могут не попадать в копирование через cpio, поэтому их нужно вручную переносить через zfs send/receive

2) Подготовка на Solaris11

Для начала нужно установить поддержку brand zone 10. Для этого установим пакет:

#pkg install system/zones/brand/s10

Теперь нужно создать зону, и указать, что это будет brand zone Solaris10. Делается это так (Обратите внимание, что имя зоны у нас на новом сервере – другое: solaris10):

target# zonecfg -z solaris10
solaris10: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:my-zone> create -t SYSsolaris10
zonecfg:my-zone> set zonepath=/zones_solaris10

Параметр SYSsolaris10 как раз и означает, что у нас будет brand zone Solaris 10. Можно изменить и остальные параметры по желанию. После этого зона находится в состоянии configured:

# zoneadm list -civ
ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
1 zone0 running /zone0 solaris excl
2 zone1 running /zone1 solaris excl
3 solaris10 configured /zone_solaris10 solaris10 excl

Теперь можно делать attach зоне

3) Attach зоны

attach можно делать 2-мя способами (в зависимости от того, как метод переноса файлов вы выбрали)

– метод №1 (перенос через zfs)

#zoneadm -z slaris10 attach -d /path/to/zone/files

где, /path/to/zone/files – путь, где физически лежат файлы. Обратите внимание, если имя зоны на source/destination отличается, то путь нужно указывать до папки root внутри файлов зоны:

#zoneadm -z slaris10 attach -d /path/to/zone/files/root

– метод №2 (перенос через cpio)

#zoneadm -z slaris10 attach -a /path/to/file.cpio.gz

После этого будет процесс подсоединения зоны.

Вот пример вывода присоединения зоны:

root@solaris11:/home/skeletor# zoneadm -z solaris10 attach -d /test/test2/root/
Progress being logged to /var/log/zones/zoneadm.20120619T160215Z.solaris10.attach
Log File: /var/log/zones/zoneadm.20120619T160215Z.solaris10.attach
Attaching...
    Installing: This may take several minutes...
Migrating data
        from: rpool/zone_solaris10/rpool/ROOT/zbe-0
          to: rpool/zone_solaris10/rpool/export
A backup copy of /export is stored at /export.backup.20120619T160514Z.
It can be deleted after verifying it was migrated correctly.
Attach complete.
Log saved in non-global zone as /zone_solaris10/root/var/log/zones/zoneadm.20120619T160215Z.solaris10.attach
Log File:
root@solaris11:/home/skeletor#

4) Заключение.

Теперь зона находится в состоянии installed и готова к запуску.

#zoneadm -z solaris10 boot
#zlogin solaris10
#uname -a
SunOS zone-test 5.10 Generic_Virtual i86pc i386 i86pc

Перенос global solaris10 zone

Приятно будет услышать, но можно перенести таким же способом и global zone Solaris10 в зону в Solaris11.

1) Подготовка global zone

Для переноса нам понадобится утилита flarcreate из пакета SUNWinst. С её помощью сделаем flash архив:

s10gz# flarcreate -S -n s10guest -L cpio /opt/s10guest.flar

Теперь переносим файл s10guest.flar на Solaris11

2) Создание зоны.

Зону создаём точно так же, как и в случае выше, за исключением того, что указываем тип SUNWsolaris10:

zonecfg:s10guest> create -t SUNWsolaris10

Делаем attach зоны

#zoneadm -z s10guest install -u -a /path/to/s10guest.flar

После этого запускаем зону.

2 коментарі “Solaris brand zone: переносим зону из Solaris10 в Solaris11”

Снова привет!)
Я так понимаю, для 11.1 тип SUNWsolaris10 не доступен уже? Или его можно где-то взять?
Распознает только SYSsolaris10, но мн нужно перенести глобалку из flar-архива

SYSsolaris10 это просто новое название для SUNWsolaris10. Используйте SYSsolaris10

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff