Краткий обзор клонов ZFS
http://docs.sun.com/app/docs/doc/820-08 ... =ru&a=view
Клон – это доступные для записи том или файловая система, исходное содержимое которых совпадает с набором данных, на основе которого они были созданы. Как и в случае со снимками, клон создается почти мгновенно и изначально не занимает дополнительного дискового пространства. Кроме того, можно сделать снимок клона.
*
Создание клона ZFS
*
Уничтожение клона ZFS
*
Замена файловой системы ZFS на клон ZFS
Клоны могут быть созданы только на основе снимка. При клонировании снимка формируется неявная зависимость между клоном и снимком. Даже в случае создания клона в другом местоположении в иерархии набора данных исходный снимок не может быть уничтожен, пока существует клон. Эта зависимость отражена в свойстве origin. Для вывода списка таких зависимостей, если они существуют, можно использовать команду zfs destroy.
Клоны не наследуют свойства набора данных, на основе которого они были созданы. Для просмотра и изменения свойств клонированного набора данных используются команды zfs get и zfs set. Для получения дополнительной информации о настройке свойств набора данных ZFS см. Установка свойств ZFS.
Поскольку клон первоначально совместно использует дисковое пространство с исходным снимком, значение свойства used для него равно нулю. По мере внесения изменений клон занимает все больший объем пространства. Свойство used исходного снимка не учитывает дисковое пространство, занимаемое клоном.
Создание клона ZFS
Для создания клона используется команда zfs clone, в которой задается снимок для создания клона и имя новой файловой системы или тома. Новая файловая система или том могут быть расположены в любом месте в иерархии ZFS. Тип нового набора данных (например, файловой системы или тома) совпадает с типом снимка, на основе которого был создан клон. Создать клон файловой системы в пуле, отличном от местоположения исходного снимка файловой системы, невозможно.
В следующем примере создается новый клон tank/home/ahrens/bug123 с тем же исходным содержимым, что и в снимке tank/ws/gate@yesterday.
# zfs snapshot tank/ws/gate@yesterday
# zfs clone tank/ws/gate@yesterday tank/home/ahrens/bug123
В следующем примере создается клонированная рабочая область projects/teamA/tempuser, основанная на снимке projects/newproject@today и предназначенная для временного пользователя. Затем для этого клона задаются свойства.
# zfs snapshot projects/newproject@today
# zfs clone projects/newproject@today projects/teamA/tempuser
# zfs set sharenfs=on projects/teamA/tempuser
# zfs set quota=5G projects/teamA/tempuser
Уничтожение клона ZFS
Для уничтожения клонов ZFS используется команда zfs destroy. Например:
# zfs destroy tank/home/ahrens/bug123
Перед уничтожением родительского снимка должны быть уничтожены все его клоны.
Замена файловой системы ZFS на клон ZFS
Команда zfs promote позволяет заменить активную файловую систему ZFS клоном этой файловой системы. Эта функция обеспечивает возможность клонирования и замены файловых систем, в результате чего исходная файловая система становится клоном указанной файловой системы. Кроме того, эта функция позволяет уничтожить файловую систему, на основе которой был создан клон. Уничтожение исходной файловой системы активных клонов без изменения их роли невозможно. Дополнительную информацию об уничтожении клонов приведено в разделе Уничтожение клона ZFS.
В следующем примере клонируется файловая система tank/test/productA, после чего клонированная система tank/test/productAbeta становится файловой системой tank/test/productA.
# zfs create tank/test
# zfs create tank/test/productA
# zfs snapshot tank/test/productA@today
# zfs clone tank/test/productA@today tank/test/productAbeta
# zfs list -r tank/test
NAME USED AVAIL REFER MOUNTPOINT
tank/test 314K 8.24G 25.5K /tank/test
tank/test/productA 288K 8.24G 288K /tank/test/productA
tank/test/productA@today 0 - 288K -
tank/test/productAbeta 0 8.24G 288K /tank/test/productAbeta
# zfs promote tank/test/productAbeta
# zfs list -r tank/test
NAME USED AVAIL REFER MOUNTPOINT
tank/test 316K 8.24G 27.5K /tank/test
tank/test/productA 0 8.24G 288K /tank/test/productA
tank/test/productAbeta 288K 8.24G 288K /tank/test/productAbeta
tank/test/productAbeta@today 0 - 288K -
Из приведенных выше выходных данных команды zfs list видно, что учетная информация о пространстве исходной файловой системы productA была заменена данными системы productAbeta.
Завершите процесс замены клона переименованием файловых систем. Пример:
# zfs rename tank/test/productA tank/test/productAlegacy
# zfs rename tank/test/productAbeta tank/test/productA
# zfs list -r tank/test
NAME USED AVAIL REFER MOUNTPOINT
tank/test 316K 8.24G 27.5K /tank/test
tank/test/productA 288K 8.24G 288K /tank/test/productA
tank/test/productA@today 0 - 288K -
tank/test/productAlegacy 0 8.24G 288K /tank/test/productAlegacy
При необходимости можно удалить старую файловую систему. Пример:
# zfs destroy tank/test/productAlegacy