Shadow migration

Данная статья является вольным переводом страниц документации к Shadow Migration. Данный функционал появился в 11 версии и не так широко известен.

Давайте попробуем понять, что же это такое. Предположим вам нужно перенести данные с одного места в другое, при этом без downtim’a. Тогда вам будет очень кстати этот метод. Shadow Migration позволяет переносить данные «в тени (в фоне)» на новое место + редиректить запросы тоже на новое место. Получаем перенос данных + прозрачный редирект без простоя. Но есть одно но! Исходная ФС (старое место) должна быть переведена в режим RO. Если для вас это приемлимо — то ниже будет описан процесс работы с ним.

Создадим ФС и наполним её файлами (для эксперимента):

# zfs create oldstuff/forgotten
# find /var/adm -print | cpio -pdv /oldstuff/forgotten

Для работы Shadow Migration нужно поставить соответсвующий пакет и запустить службу:

# pkg install shadow-migration
# svcadm enable shadowd

Теперь пару слов о работе самой службы. Она начинает миграцию сразу в тот момент, как только была создана новая ФС (новое место), куда собственно будут мигрировать данные. Но что бы всё заработало правильно, новую ФС нужно создать с соответствующим параметром shadow и указать в качестве значения, путь старой системы. Перед этим, старую систему нужно перевести в RO-режим. Приступим:

# zfs set readonly=on oldstuff/forgotten
# zfs create -o shadow=file:///oldstuff/forgotten mypool/remembered

Примечание:

При копировании между серверами, команду zfs create нужно создавать на том сервере, куда переносятся данные. Соответственно на том же сервере нужно ставить пакет shadow-migration и запускать службу shadowd

Теперь можно наблюдать за процессом shadow migration в режиме RealTime:

# shadowstat
					EST
				BYTES	BYTES		ELAPSED
DATASET				XFRD	LEFT	ERRORS	TIME
mypool/remembered               92.5M	-	-	00:00:59
mypool/remembered               99.1M	302M	-	00:01:09
mypool/remembered               109M	260M	-	00:01:19
mypool/remembered               133M	304M	-	00:01:29
mypool/remembered               149M	339M	-	00:01:39
mypool/remembered               156M	86.4M	-	00:01:49
mypool/remembered               156M	8E	29		(completed)

В качестве значения для shadow можно указать и nfs:

nfs://fileserver/directory

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *