ZFS send / receive

zfs send tank/data@snap1 | zfs recv newtank/newdata
zfs send tank/data@snap1 | ssh host2 zfs recv newtank/newdata

В обоих случаях перед началом копирования файловая сиситема назначения должна отсутствовать : операция ее создаст.

Можно получать на существующий вольюм newtank/newdata, но тогда надо сказать ей, что мол, апдейти новую систему этими данными. Что удобно, можно создавать новую систему в другом, даже меньшем, объеме. Главное, чтобы вместилось. При получении используем параметры -Fdvu. Например

zfs send tank/data@snap1 | zfs recv -Fdvu newtank/newdata

Инкрементал апдейт

Допустим, мы создали клон zpnew файловой системы zp. Перед началом клонирования был создан снапшот zp@01.

zfs snapshot -r zp@01
zfs send -R zp@01 | zfs receive zpnew

Однако, пока мы телились (или пока копировался достаточно большой вольюм), в оригинале произошли некоторые изменения.

Клон у нас получился в состоянии, актуальном на момент снапшота.

Клон можно легко проапдейтить до актуального состояния инкрементальным снапшотом. На стадии zfs send система сама вычислит инкремент из двух снапшотов zp@01 и zp@02. Наша задача создать новый снашот, послать инкремент, получить инкремент и проапдейтить им исходный клон.

zfs snapshot -r zp@02
zfs send -R -i zp@01 zp@02 | zfs receive -dvu zpnew

Вот и все дела.

Доки

volumes/zfs/send_receive.txt · Last modified: 2017/10/14 03:47 by rybario
About this template
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5