Снимки создаются с помощью команды zfs snapshot, использующей в качестве единственного аргумента имя создаваемого снимка. Имя снимка указывается следующим образом:
filesystem@snapname volume@snapname |
Имя снимка должно соответствовать соглашениям по присвоению имен, описанным в разделе Требования к именованию компонентов ZFS.
В следующем примере создается снимок tank/home/ahrens с именем friday.
# zfs snapshot tank/home/ahrens@friday |
При помощи параметра -r можно создать снимки для всех дочерних файловых систем. Пример:
# zfs snapshot -r tank/home@now # zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT tank/home@now 0 - 29.5K - tank/home/ahrens@now 0 - 2.15M - tank/home/anne@now 0 - 1.89M - tank/home/bob@now 0 - 1.89M - tank/home/cindys@now 0 - 2.15M - |
Снимки не имеют настраиваемых свойств. В отношении снимка также не могут применяться свойства набора данных.
# zfs set compression=on tank/home/ahrens@tuesday cannot set compression property for 'tank/home/ahrens@tuesday': snapshot properties cannot be modified |
Для уничтожения снимков используется команда zfs destroy. Пример:
# zfs destroy tank/home/ahrens@friday |
При наличии снимков набора данных этот набор не может быть уничтожен. Пример:
# zfs destroy tank/home/ahrens cannot destroy 'tank/home/ahrens': filesystem has children use '-r' to destroy the following datasets: tank/home/ahrens@tuesday tank/home/ahrens@wednesday tank/home/ahrens@thursday |
Кроме того, если были созданы клоны снимка, необходимо их уничтожить перед уничтожением снимка.
Для получения дополнительной информации о подкоманде destroy см. Уничтожение файловой системы ZFS.
Снимки можно переименовывать, однако переименование должно выполняться в рамках пула и набора данных, в котором они были созданы. Пример:
# zfs rename tank/home/cindys@083006 tank/home/cindys@today |
Следующий краткий синтаксис эквивалентен полному синтаксису переименования снимка, приведенному в примере выше.
# zfs rename tank/home/cindys@083006 today |
Следующая операция переименования снимка недопустима, поскольку имя целевого пула и имя файловой системы отличаются от имен пула и файловой системы, для которых был создан снимок.
# zfs rename tank/home/cindys@today pool/home/cindys@saturday cannot rename to 'pool/home/cindys@today': snapshots must be part of same dataset |
Можно рекурсивно переименовывать снимки с помощью команды zfs rename -r. Пример:
# zfs list NAME USED AVAIL REFER MOUNTPOINT users 270K 16.5G 22K /users users/home 76K 16.5G 22K /users/home users/home@yesterday 0 - 22K - users/home/markm 18K 16.5G 18K /users/home/markm users/home/markm@yesterday 0 - 18K - users/home/marks 18K 16.5G 18K /users/home/marks users/home/marks@yesterday 0 - 18K - users/home/neil 18K 16.5G 18K /users/home/neil users/home/neil@yesterday 0 - 18K - # zfs rename -r users/home@yesterday @2daysago # zfs list -r users/home NAME USED AVAIL REFER MOUNTPOINT users/home 76K 16.5G 22K /users/home users/home@2daysago 0 - 22K - users/home/markm 18K 16.5G 18K /users/home/markm users/home/markm@2daysago 0 - 18K - users/home/marks 18K 16.5G 18K /users/home/marks users/home/marks@2daysago 0 - 18K - users/home/neil 18K 16.5G 18K /users/home/neil users/home/neil@2daysago 0 - 18K - |