Руководство по администрированию файловых систем ZFS Solaris

Создание и уничтожение снимков ZFS

Снимки создаются с помощью команды 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

Снимки можно переименовывать, однако переименование должно выполняться в рамках пула и набора данных, в котором они были созданы. Пример:


# 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  -