ZFS. Клонирование раздела ZFS (используя снэпшоты) на другой физический диск ZFS (локально или по сети): различия между версиями

Материал из Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «=== Клонирование === ==== Форматируем диски в ZFS с GPT-LABEL ==== gpart create -s gpt ada1 gpart create -s gpt ada2 gpart add...»)
 
Строка 48: Строка 48:
stripe1/dataset1@3  Thu Jan 30  0:27 2020
stripe1/dataset1@3  Thu Jan 30  0:27 2020


...
...</blockquote>
 
ls -lh /mnt/stripe1/dataset1/.zfs/snapshot/
ls -lh /mnt/stripe1/dataset1/.zfs/snapshot/
<blockquote>...
 
...


total 2
total 2
Строка 84: Строка 82:
stripe2/dataset2@3  Thu Jan 30  0:27 2020
stripe2/dataset2@3  Thu Jan 30  0:27 2020


...
...</blockquote>
 
ls -lh /mnt/stripe2/dataset2/test.txt
ls -lh /mnt/stripe2/dataset2/test.txt
<blockquote>...
 
...


-rw-r--r--  1 root  wheel     2B Jan 30 00:27 /mnt/stripe2/dataset2/test.txt
-rw-r--r--  1 root  wheel     2B Jan 30 00:27 /mnt/stripe2/dataset2/test.txt


...
...</blockquote>
 
ls -lh /mnt/stripe2/dataset2/.zfs/snapshot/
ls -lh /mnt/stripe2/dataset2/.zfs/snapshot/
<blockquote>...
 
...


total 2
total 2

Версия 00:11, 9 октября 2022

Клонирование

Форматируем диски в ZFS с GPT-LABEL

gpart create -s gpt ada1
gpart create -s gpt ada2
gpart add -t freebsd-zfs -l stripe1 ada1
gpart add -t freebsd-zfs -l stripe2 ada2

При ошибке "gpart: geom 'ada0': File exists" делаем:

gpart delete -i 1 ada0
gpart destroy ada0

Создаем пулы и датасеты на них с видимыми снэпшотами в файловой системе (директория со снэпшотами: ".zfs" в корне датасета)

zpool create -m /mnt/stripe1 stripe1 /dev/gpt/stripe1
zpool create -m /mnt/stripe2 stripe2 /dev/gpt/stripe2
zfs create -o snapdir=visible stripe1/dataset1
zfs create -o snapdir=visible stripe2/dataset2

Изменяем файл test.txt на датасете первого диска (stripe1/dataset1) и каждый раз после изменения делаем снэпы (с именами 1,2,3) датасета "stripe1/dataset1"

echo "1" > /mnt/stripe1/dataset1/test.txt
zfs snapshot stripe1/dataset1@1
echo "2" > /mnt/stripe1/dataset1/test.txt
zfs snapshot stripe1/dataset1@2
echo "3" > /mnt/stripe1/dataset1/test.txt
zfs snapshot stripe1/dataset1@3

Проверяем наличие снэпов

zfs list -r -t snapshot -o name,creation stripe1/dataset1

...

NAME                CREATION

stripe1/dataset1@1  Thu Jan 30  0:27 2020

stripe1/dataset1@2  Thu Jan 30  0:27 2020

stripe1/dataset1@3  Thu Jan 30  0:27 2020

...

ls -lh /mnt/stripe1/dataset1/.zfs/snapshot/

...

total 2

drwxr-xr-x  2 root  wheel     3B Jan 30 00:26 1

drwxr-xr-x  2 root  wheel     3B Jan 30 00:26 2

drwxr-xr-x  2 root  wheel     3B Jan 30 00:26 3

...

Клонируем датасет первого диска "stripe1/dataset1" рекурсивно со снэпшотами (начиная с последнего снэпшота "3") на пустой датасет второго диска "stripe2/dataset2"

-R - клонировать все снэпшоты рекурсивно от самого нового до самого старого

-F - перезаписать файловую систему stripe2/dataset2, иначе будет ошибка что пул и датасет stripe2/dataset2 существуют

zfs send -R stripe1/dataset1@3 | zfs recv -F stripe2/dataset2

Проверка

Проверяем что на новом датасете второго диска ("stripe2/dataset2") файл "test.txt" и снэпы датасета клонированы корректно

zfs list -r -t snapshot -o name,creation stripe2/dataset2

...

NAME                CREATION

stripe2/dataset2@1  Thu Jan 30  0:27 2020

stripe2/dataset2@2  Thu Jan 30  0:27 2020

stripe2/dataset2@3  Thu Jan 30  0:27 2020

...

ls -lh /mnt/stripe2/dataset2/test.txt

...

-rw-r--r--  1 root  wheel     2B Jan 30 00:27 /mnt/stripe2/dataset2/test.txt

...

ls -lh /mnt/stripe2/dataset2/.zfs/snapshot/

...

total 2

drwxr-xr-x  2 root  wheel     3B Jan 30 00:26 1

drwxr-xr-x  2 root  wheel     3B Jan 30 00:26 2

drwxr-xr-x  2 root  wheel     3B Jan 30 00:26 3

...

Для проверки можно откатиться на самый старый снэпшот "1" и убедиться что содержимое test.txt также откатилось

Проверяем содержимое файла до откатывания

cat /mnt/stripe2/dataset2/test.txt

...

3

...

Откатываемся на снэпшот "1"

zfs rollback -r stripe2/dataset2@1

Проверяем содержимое файла после откатывания

cat /mnt/stripe2/dataset2/test.txt

...

1

...