Категорії
Solaris

Клонирование зоны без останова исходной

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

Тестовый стенд: Solaris 11.1

Суть метода такова: делаем снапшоты всех zfs, какие нужны для зоны, копируем их на удалённый хост, создаём там зону и деаем ей просто attach, так как файлы уже присутствуют.

Примечание: данный пример можно использовать только для копирования между разными серверами, так как имя zfs после такого переноса остаётся прежним. Если хотите использовать этот метод для копирования в пределах одного сервера, можно попробовать нижеописанный хак (хак не тестировался!!!):

# zfs send -rv rpool/export/z/search@clone | zfs receive -e rpool/export/z/tmp

В итоге получаем промежуточную zfs = rpool/export/z/tmp/search (со всеми потомками).  Теперь просто переименовываем:

# zfs rename  rpool/export/z/tmp/search rpool/export/z/new_search

1) Пересылка zfs снапшотов.

Создаём рекурсивно снапшоты:

old_server# zfs snapshot -r rpool/export/z/search@clone

Копируем их на удалённый хост:

old_server# zfs send -rv rpool/export/z/search@clone | ssh user@remotehost "sudo /usr/sbin/zfs receive -Fd devel"

Для вывода процесса копирания используем в связке с pv:

# zfs send pool/opt@snap1 | pv | zfs recv tank/opt
    8.58GB 0:02:37 [95.7MB/s]

2) Подготовка и создание новой зоны.

Делаем экспорт конфигурации исходной зоны:

old_server# zonecfg -z search export > /tmp/search.cfg

Переносим на удалённый хост, правим, и используем его для создания зоны

new_server# zonecfg -z search -f /export/home/user/search.cfg

Проверяем, что бы у всех zfs на новом месте были правильные точки монтирования: корневая zfs devel/export/z/search для зоны search должны иметь точку монтирования относительно global зоны. Все остальные – относительно самой зоны. Вот как это будет выглядеть:

devel/export/z/search                                                 26.7G  1001G    33K  /devel/export/z/search
devel/export/z/search/rpool                                           26.7G  1001G    31K  /rpool
devel/export/z/search/rpool/ROOT                                      4.63G  1001G    31K  legacy
devel/export/z/search/rpool/ROOT/solaris-0                            4.63G  1001G  2.90G  /
devel/export/z/search/rpool/ROOT/solaris-0/var                        1.71G  1001G  1.69G  /var
devel/export/z/search/rpool/VARSHARE                                   480M  1001G   480M  /var/share
devel/export/z/search/rpool/export                                    21.6G  1001G    32K  /export
devel/export/z/search/rpool/export/home                               21.6G  1001G  8.36G  /export/home
devel/export/z/search/rpool/export/home/user                          40.5K  1001G  40.5K  /export/home/user

По умолчанию оно так и есть, но лучше лишний раз перепроверить. Теперь делаем attach и запуск:

new_server# zoneadm -z search attach -u && zoneadm -z search boot

Если посмотреть теперь на zfs для запущенной зоны из global зоны, то точки монтирования будут выглядеть уже по другому (пути будут указаны относительно global-зоны):

devel/export/z/search                                                 26.7G  1001G    33K  /devel/export/z/search
devel/export/z/search/rpool                                           26.7G  1001G    31K  /devel/export/z/search/root/rpool
devel/export/z/search/rpool/ROOT                                      4.63G  1001G    31K  legacy
devel/export/z/search/rpool/ROOT/solaris-0                            4.63G  1001G  2.90G  /devel/export/z/search/root
devel/export/z/search/rpool/ROOT/solaris-0/var                        1.71G  1001G  1.69G  /devel/export/z/search/root/var
devel/export/z/search/rpool/VARSHARE                                   480M  1001G   480M  /devel/export/z/search/root/var/share
devel/export/z/search/rpool/export                                    21.6G  1001G    32K  /devel/export/z/search/root/export
devel/export/z/search/rpool/export/home                               21.6G  1001G  8.36G  /devel/export/z/search/root/export/home
devel/export/z/search/rpool/export/home/user                          40.5K  1001G  40.5K  /devel/export/z/search/root/export/home/user

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

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

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