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