В этой главе содержится обзор файловой системы ZFS, ее функций и преимуществ. Здесь также рассматриваются некоторые базовые термины, используемые в остальной части руководства.
В этой главе содержатся следующие разделы:
В этом разделе содержится описание новых функций в файловой системе ZFS.
Наследование списков ACL в ZFS при режиме Pass Through для разрешения на выполнение
Использование устройств кэширования в пуле устройств хранения ZFS
Настройки квот и резервируемого пространства в ZFS только для данных файловой системы
Горячий резерв устройств в пуле устройств хранения данных ZFS
Обновление пулов устройств хранения данных ZFS (zpool upgrade)
Переименованные команды резервного копирования и восстановления ZFS
Версия Solaris 10 10/09: в этой версии Solaris можно настроить профиль JumpStart для идентификации архива корневого пула ZFS на флеш-накопителях. Для получения подробных сведений см. Установка корневой файловой системы ZFS (установка архива на флеш-накопителе).
Версия Solaris 10 10/09: в предыдущих версиях Solaris квоты и резервируемое пространство могли использоваться в файловой системе ZFS для управления и резервирования пространства.
В данной версии Solaris можно установить квоту для объема пространства, используемого файлами, относящимися к отдельному пользователю или группе. Настройка квот пользователей и групп может быть целесообразной в тех областях, где имеется большое число пользователей или групп.
Для настройки квот пользователя или группы используются свойства zfs userquota и zfs groupquota:
# zfs set userquota@user1=5G tank/data # zfs set groupquota@staff=10G tank/staff/admins |
Просмотр текущей настройки квоты пользователя или группы выполняется следующим образом:
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE SOURCE tank/staff/admins groupquota@staff 10G local |
Отображение общей информации о квотах:
# zfs userspace tank/data TYPE NAME USED QUOTA POSIX User root 3K none POSIX User user1 0 5G |
# zfs groupspace tank/staff/admins TYPE NAME USED QUOTA POSIX Group root 3K none POSIX Group staff 0 10G |
Отображение информации об использовании пространства отдельным пользователем или группой выполняется посредством просмотра свойств userused@user и groupused@group следующим образом:
# zfs get userused@user1 tank/staff NAME PROPERTY VALUE SOURCE tank/staff userused@user1 213M local # zfs get groupused@staff tank/staff NAME PROPERTY VALUE SOURCE tank/staff groupused@staff 213M local |
Для получения подробной информации о настройке квот пользователей см. Настройки квот и резервируемого пространства в ZFS.
Версия Solaris 10 10/09: в предыдущих версиях Solaris можно было применить наследование списков ACL таким образом, чтобы все файлы создавались посредством разрешений 0664 или 0666. Если дополнительно требуется включить выполняемый бит из режима создания файлов в наследуемые списки ACL, в этой версии можно использовать наследование в режиме Pass Through для разрешения на выполнения.
Если в наборе данных ZFS активирована функция aclinherit=passthrough-x, пользователь может включить разрешение на выполнение для выходного файла, генерируемого из инструментов cc или gcc. Если унаследованные списки ACL не включают разрешение на выполнение, то выполняемые выходные данные из компилятора не могут быть выполнены, пока для изменения разрешений для данного файла не будет использована команда chmod.
Для получения дополнительной информации см. Пример 8–12.
Версия Solaris 10/09. Ниже перечислены усовершенствования файловой системы ZFS, включенные в эту версию.
Настройка свойств файловой системы ZFS во время создания пула – пользователь может устанавливать свойства файловой системы ZFS в ходе создания пула. В следующем примере включено сжатие для файловой системы ZFS, которая создается при создании пула.
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0 |
Настройка свойств кэша в файловой системе ZFS – доступно два новых свойства файловой системы ZFS, которые позволяют управлять тем, для каких данных производится кэширование в первичном кэше (ARC) или во вторичном кэше (L2ARC). Настройка свойств кэша выполняется следующим образом:
primarycache – управляет содержимым для кэширования в ARC.
secondarycache – управляет содержимым для кэширования в L2ARC.
Возможные значения для обоих свойств – all, none и metadata. При установке на all выполняется кэширование данных пользователя и метаданных. При установке на none кэширование данных пользователя и метаданных не выполняется. При установке на metadata выполняется кэширование только метаданных. Значением по умолчанию является all.
Эти свойства могут использоваться в имеющейся файловой системе или при создании файловой системы. Пример:
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab |
При настройке для имеющейся файловой системы только новый ввод-вывод является кэшем, основанным на значении этих свойств.
Для некоторых сред баз данных целесообразно не использовать кэширование данных пользователей. Следует решить, необходима ли настройка свойств кэша для конкретной среды.
Свойства вычисления пространства – новые доступные только для чтения свойства файловой системы позволяют определять использование пространства для клонов, файловых систем и томов (но не для снимков). Для этого используются следующие свойства.
usedbychildren – определяет объем пространства, используемого дочерними элементами этого набора данных, который будет освобожден после разрушения всех этих дочерних элементов. Сокращение свойства – usedchild.
usedbydataset – определяет объем пространства, используемого самим набором данных, которое будет освобождено после разрушения набора данных, после того как сначала будут разрушены любые снимки и удалены любые refreservation. Сокращение свойства – usedds.
usedbyrefreservation – определяет объем пространства, используемого набором refreservation для этого набора данных, которое будет освобождено при удалении refreservation. Сокращение свойства – usedrefreserv.
usedbysnapshots – определяет объем пространства, занимаемого снимками этого набора данных. В частности, это объем пространства, которое будет освобождено в случае разрушения всех снимков этого набора данных. Обратите внимание, что это не просто сумма снимков свойств used, поскольку пространство может совместно использоваться несколькими снимками. Сокращение свойства – usedsnap.
Эти новые свойства делят значение свойства used на различные элементы, использующие пространство. В частности, значение свойства used делится следующим образом:
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots |
Для отображения этих свойств используется команда zfs list - o space. Пример:
$ zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD rpool 25.4G 7.79G 0 64K 0 7.79G rpool/ROOT 25.4G 6.29G 0 18K 0 6.29G rpool/ROOT/snv_98 25.4G 6.29G 0 6.29G 0 0 rpool/dump 25.4G 1.00G 0 1.00G 0 0 rpool/export 25.4G 38K 0 20K 0 18K rpool/export/home 25.4G 18K 0 18K 0 0 rpool/swap 25.8G 512M 0 111M 401M 0 |
Представленная выше команда является эквивалентом команды zfs list - o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume.
Вывод списка снимков – свойство пула listsnapshots определяет необходимость вывода данных о снимке командой zfs list. Значением по умолчанию является on, то есть по умолчанию данные о снимке отображаются.
Если свойство listsnapshots отключено, для для вывода списка можно воспользоваться командой zfs list -t snapshots; в таком случае данные о снимках выводятся.
Версия Solaris 10 10/09: в этой версии ZFS определяет сбои протокола намерений в команде zpool status. FMA также сообщает об этих ошибках. Как ZFS, так и FMA описывают метод восстановления после сбоя протокола намерений.
Например, если система неожиданно отключается до выполнения синхронных операций записи в пул с помощью отдельного устройства протоколирования, будет выведено подобное сообщение:
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open |
Необходимо исправить сбой устройства протоколирования следующим образом.
Заменить или восстановить устройство протоколирования. В данном примере это устройство c0t5d0.
Снова активировать устройство протоколирования.
# zpool online pool c0t5d0 |
Выполнить сброс ошибочных параметров отказавшего устройства протоколирования.
# zpool clear pool |
Если устройство протоколирования необходимо восстановить после этой ошибки без его замены, можно удалить ошибку, используя команду zpool clear. В данном случае пул будет работать в режиме с ухудшенными характеристиками, а записи протокола будут записываться в основной пул до замены устройства протоколирования.
Рекомендуется использовать зеркалированные устройства протоколирования для снижения риска сбоев устройства протоколирования.
Версия Solaris 10 10/09: в данной версии Solaris возможно создание пула и указание устройств кэширования, используемых для кэширования данных пула устройств хранения.
Устройства кэширования действуют в качестве дополнительного уровня кэша между оперативной памятью и диском. Наибольшее повышение производительности от использования устройств кэширования достигается в случае рабочих нагрузок, для которых характерны операции случайного чтения преимущественно статических данных.
При создании пула устройств можно указать одно или более устройств кэширования. Пример:
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors |
После добавления устройств кэширования они постепенно заполняются данными из оперативной памяти. В зависимости от размера устройства кэширования для заполнения может потребоваться более часа. Контроль емкости и операций чтения может проводиться командой zpool iostat следующим образом:
# zpool iostat -v pool 5 |
Устройства кэширования можно добавлять к пулу или удалять из него после создания пула.
Для получения подробной информации см. Создание пула устройств хранения данных ZFS с устройствами кэширования и Пример 4–4.
Версия Solaris 10 5/09: в этой версии расширена поддержа переноса зон в среде ZFS с помощью Live Upgrade. Дополнительные сведения приведены в разделе Перенос или обновление системы с зонами с помощью Solaris Live Upgrade (Solaris 10 5/09 и Solaris 10 10/09).
Список известных проблем данной версии приведен в сопроводительной документации к версии Solaris 5 от 10/09.
Версия Solaris 10 от 10/08: в этой версии поддерживается возможность установки и загрузки файловой системы ZFS. Для установки корневой файловой системы ZFS можно использовать параметр начальной установки или функцию JumpStart. Можно также использовать функцию Live Upgrade для перехода корневой файловой системы UFS в корневую файловую систему ZFS. Кроме того, обеспечивается поддержка ZFS для устройств подкачки и дампа. Для получения дополнительных сведений см. Глава 5Установка и загрузка корневой файловой системы ZFS.
Список известных проблем данной версии приведено в сопроводительной документации к версии Solaris 10 от 10/08.
Версия Solaris 10 от 10/08: в этой версии поддерживается возможность восстановления набора данных без предварительного размонтирования. Эта функциональная возможность означает, что больше не требуется использовать параметр -f в команде zfs rollback для принудительной операции размонтирования. Параметр -f больше не поддерживается и игнорируется, если указан.
Версия Solaris 10 от 10/08: в эту версию включены следующие усовершенствования для команды zfs send.
Пересылка всех инкрементных потоков из одного снимка в совокупный снимок. Пример:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo |
Отправка всех инкрементных снимков с fs@snapA по fs@snapD в fs@combo.
Для создания клона необходимо перенаправить инкрементный поток из исходного снимка. Для принятия инкрементного потока исходный снимок уже должен существовать на принимающей стороне. Пример:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I |
Пересылка потока репликации всех файловых систем-потомков вплоть до указанных снимков. При получении сохраняются все свойства, снимки, файловые системы-потомки и клоны. Пример:
zfs send -R pool/fs@snap > snaps/fs-R |
Развернутый пример приведено в разделе Пример 7–1.
Пересылка инкрементного потока репликации.
zfs send -R -[iI] @snapA pool/fs@snapD |
Развернутый пример приведено в разделе Пример 7–1.
Для получения дополнительной информации см. раздел Отправка и получение потоковых представлений сложных моментальных снимков ZFS.
Версия Solaris 10 от 10/08: в дополнение к существующим квотам ZFS и функциям резервирования в данную версию входят квоты и резервирования наборов данных, не включающие потомков, таких как снимки и клоны, при учете занимаемого пространства.
Свойство refquota ограничивает количество пространства, доступного для набора данных. Посредством этого свойства реализуется жесткий предел объема используемого пространства. Этот жесткий предел не включает пространство, используемое потомками, такими как снимки и клоны.
Свойством refreservation определяется минимальный объем пространства, гарантированного для набора данных без учета дочерних элементов.
Например, для studentA можно определить квоту refquota размером 10 ГБ, устанавливающую жесткий предел в 10 ГБ занимаемого пространства. Для дополнительной гибкости можно установить 20-гигабайтную квоту, позволяющую управлять снимками studentA.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA |
Для получения дополнительной информации см. Настройки квот и резервируемого пространства в ZFS.
Версия Solaris 10 от 10/08: свойства пула устройств хранения данных ZFS были введены в более ранних версиях. В данной версии предусмотрены дополнительные свойства. Пример:
# zpool get all mpool NAME PROPERTY VALUE SOURCE mpool size 33.8G - mpool used 5.76G - mpool available 28.0G - mpool capacity 17% - mpool altroot - default mpool health ONLINE - mpool guid 2689713858991441653 - mpool version 10 default mpool bootfs mpool/ROOT/zfsBE local mpool delegation on default mpool autoreplace off default mpool cachefile - default mpool failmode continue local |
Описание этих свойств приведено в Таблица 4–1.
Свойство cachefile – версия Solaris 10 от 10/08: в этой версии поддерживается свойство cachefile, с помощью которого осуществляется управление местом кэширования настроек пула. Все пулы в кэше автоматически импортируются при начальной загрузке системы. Однако в средах установки и кластеризации может потребоваться кэширование этой информации в других местоположениях для предотвращения автоматического импорта пулов.
Это свойство можно настроить для кэширования настроек пула в другом местоположении, которое затем можно импортировать командой zpool import c. В большинстве настроек ZFS это свойство не используется.
Свойство cachefile не является сохраняемым и не хранится на диске. Это свойство вводится взамен свойства temporary, которое использовалось для отказа от кэширования информации пула в предыдущих выпусках Solaris.
Свойство failmode – версия Solaris 10 от 10/08: в этой версии поддерживается свойство failmode, определяющее поведение в случае катастрофического отказа пула из-за потери связи с устройством или отказа всех устройств в пуле. Для свойства failmode можно установить следующие значения: wait, continue или panic. Значение по умолчанию – wait, т.е. требуется подключить устройство заново или заменить отказавшее устройство и сбросить ошибку командой zpool clear.
Свойство failmode устанавливается аналогично другим настраиваемым свойствам ZFS, которые можно определять перед созданием пула или после этого. Пример:
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local |
# zpool create -o failmode=continue users mirror c0t1d0 c1t1d0 |
Описания всех свойств пула ZFS приведены в Таблица 4–1.
Версия Solaris 10 от 10/08: команда zpool history теперь предоставляет следующие новые возможности:
Отображаются сведения о событиях файловой системы ZFS. Пример:
# zpool history History for 'rpool': 2009-08-26.16:49:07 zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /tmp/root/etc/zfs/zpool.cache rpool c1t1d0s0 2009-08-26.16:49:08 zfs set canmount=noauto rpool 2009-08-26.16:49:08 zfs set mountpoint=/rpool rpool 2009-08-26.16:49:09 zfs create -o mountpoint=legacy rpool/ROOT 2009-08-26.16:49:10 zfs create -b 8192 -V 2048m rpool/swap 2009-08-26.16:49:11 zfs create -b 131072 -V 1024m rpool/dump 2009-08-26.16:49:14 zfs create -o canmount=noauto rpool/ROOT/zfs1009BE 2009-08-26.16:49:15 zpool set bootfs=rpool/ROOT/zfs1009BE rpool 2009-08-26.16:49:15 zfs set mountpoint=/ rpool/ROOT/zfs1009BE 2009-08-26.16:49:16 zfs set canmount=on rpool 2009-08-26.16:49:17 zfs create -o mountpoint=/export rpool/export 2009-08-26.16:49:18 zfs create rpool/export/home 2009-08-28.08:17:59 zpool attach rpool c1t1d0s0 c1t0d0s0 |
Параметр -l позволяет отображать длинный формат с указанием имени пользователя, имени узла и зоны, в которой выполняется операция. Пример:
# zpool history -l rpool History for 'rpool': 2009-08-26.16:49:07 zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /tmp/root/etc/zfs/zpool.cache rpool c1t1d0s0 [user root on neo:global] 2009-08-26.16:49:08 zfs set canmount=noauto rpool [user root on neo:global] 2009-08-26.16:49:08 zfs set mountpoint=/rpool rpool [user root on neo:global] 2009-08-26.16:49:09 zfs create -o mountpoint=legacy rpool/ROOT [user root on neo:global] 2009-08-26.16:49:10 zfs create -b 8192 -V 2048m rpool/swap [user root on neo:global] 2009-08-26.16:49:11 zfs create -b 131072 -V 1024m rpool/dump [user root on neo:global] 2009-08-26.16:49:14 zfs create -o canmount=noauto rpool/ROOT/zfs1009BE [user root on neo:global] 2009-08-26.16:49:15 zpool set bootfs=rpool/ROOT/zfs1009BE rpool [user root on neo:global] 2009-08-26.16:49:15 zfs set mountpoint=/ rpool/ROOT/zfs1009BE [user root on neo:global] 2009-08-26.16:49:16 zfs set canmount=on rpool [user root on neo:global] 2009-08-26.16:49:17 zfs create -o mountpoint=/export rpool/export [user root on neo:global] 2009-08-26.16:49:18 zfs create rpool/export/home [user root on neo:global] 2009-08-28.08:17:59 zpool attach rpool c1t1d0s0 c1t0d0s0 [user root on neo:global] |
Параметр -i позволяет отображать сведения о внутренних событиях, которые можно использовать для диагностики. Пример:
# zpool history -i rpool History for 'rpool': 2009-08-26.16:49:07 zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /tmp/root/etc/zfs/zpool.cache rpool c1t1d0s0 2009-08-26.16:49:07 [internal property set txg:6] mountpoint=/ dataset = 16 2009-08-26.16:49:07 [internal property set txg:7] mountpoint=legacy dataset = 16 2009-08-26.16:49:08 [internal property set txg:8] canmount=2 dataset = 16 2009-08-26.16:49:08 zfs set canmount=noauto rpool 2009-08-26.16:49:08 [internal property set txg:10] mountpoint=/rpool dataset = 16 2009-08-26.16:49:08 zfs set mountpoint=/rpool rpool 2009-08-26.16:49:09 [internal create txg:12] dataset = 31 2009-08-26.16:49:09 [internal property set txg:13] mountpoint=legacy dataset = 31 2009-08-26.16:49:09 zfs create -o mountpoint=legacy rpool/ROOT 2009-08-26.16:49:09 [internal create txg:15] dataset = 37 2009-08-26.16:49:10 [internal property set txg:16] refreservation=2147483648 dataset = 37 2009-08-26.16:49:10 [internal refreservation set txg:16] 2147483648 dataset = 37 2009-08-26.16:49:10 zfs create -b 8192 -V 2048m rpool/swap 2009-08-26.16:49:10 [internal create txg:18] dataset = 43 2009-08-26.16:49:10 [internal property set txg:19] refreservation=1073741824 dataset = 43 2009-08-26.16:49:10 [internal refreservation set txg:19] 1073741824 dataset = 43 . . . |
Для получения дополнительной информации об использовании команды zpool history см. Выявление проблем в ZFS.
Версия Solaris 10 от 10/08: в этой версии представлена команда zfs upgrade, с помощью которой можно применять последующие усовершенствования файловой системы ZFS к существующим файловым системам. Пулы устройств хранения данных ZFS обладают сходной функцией обновления, при помощи которой можно реализовать расширения пула для существующих пулов устройств хранения данных.
Пример:
# zfs upgrade This system is currently running ZFS filesystem version 3. All filesystems are formatted with the current version. |
Обновляемые файловые системы и потоки данных, создаваемые из этих обновленных файловых систем с помощью команды zfs send, недоступны в системах, работающих с программным обеспечением более ранних версий.
Версия Solaris 10 от 10/08: в этой версии непривилегированным пользователям можно делегировать детализированные полномочия на выполнение административных задач ZFS.
Для назначения и отмены разрешений используются команды zfs allow и zfs unallow.
Доступность функций делегированного администрирования можно изменять с помощью свойства пула delegation. Пример:
# zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation on default # zpool set delegation=off users # zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation off local |
По умолчанию свойство delegation разрешает использовать эти функции.
Для получения дополнительной информации см. Глава 9Делегированное администрирование ZFS и zfs(1M).
Версия Solaris 10 от 10/08: поддерживается протокол намерений ZFS (ZFS Intent Log – ZIL), обеспечивающий соответствие требованиям POSIX для синхронных транзакций. Например, после системного вызова транзакции баз данных часто должны располагаться на устойчивых устройствах хранения. fsync() также может использоваться NFS и другими приложениями для обеспечения стабильности данных. По умолчанию ZIL выделяется из блоков в основном пуле устройств хранения данных. Однако в целях достижения наилучшей производительности можно использовать отдельные устройства для протокола намерений в пуле устройств хранения данных ZFS, например NVRAM или выделенный диск.
Устройства протоколирования для протокола намерений ZFS не связаны с файлами протоколов базы данных.
Устройство протоколирования ZFS можно настроить во время создания пула устройств хранения данных или после создания пула. Примеры настройки устройств протоколирования приведено в разделах Создание пула устройств хранения данных ZFS с устройствами протоколирования и Добавление устройств в пул устройств хранения данных.
Для создания зеркального устройства протоколирования можно присоединить новое устройство протоколирования к существующему. Эта операция идентична присоединению устройства в незеркалируемом пуле устройств хранения данных.
Чтобы определить, уместна ли настройка устройств протоколирования ZFS в используемой среде, следует принять во внимание следующие моменты:
Повышение производительности в результате реализации отдельного устройства протоколирования зависит от типа устройства, состава оборудования пула и рабочей нагрузки приложений. Начальные сведения о производительности приведено в блоге:
Устройства протоколирования могут использоваться без репликации или с зеркальным отражением, но RAID-Z для этих устройств не поддерживается.
Если на отдельном устройстве протоколирования не используется отражение, то в случае отказа устройства, содержащего файлы протокола, сохранение блоков данных протоколирования снова переходит к пулу устройств хранения данных.
Устройства протоколирования можно добавлять, заменять, подключать, отключать, а также импортировать и экспортировать как часть более крупного пула устройств хранения данных. В настоящее время устройства протоколирования нельзя удалять.
Минимальный размер устройства протоколирования совпадает с минимальным размером каждого устройства в пуле и составляет 64 МБ. Объем активных данных, которые могут храниться на устройстве протоколирования, относительно невелик. Блоки данных протоколирования освобождаются после выполнения транзакции протоколов (системный вызов).
Максимальный размер устройства протоколирования должен составлять примерно 1/2 размера физической памяти, поскольку это максимальный объем потенциальных активных данных, которые могут храниться на устройстве. Например, если в системе имеется 16 ГБ физической памяти, максимальный размер устройства протоколирования должен составлять 8 ГБ.
Версия Solaris 10 от 10/08: для быстрого создания еще не существующего промежуточного набора данных можно воспользоваться параметром -p в командах zfs create, zfs clone и zfs rename.
В качестве примера рассмотрим создание наборов данных ZFS (users/area51) в пуле устройств хранения данных datab.
# zfs list NAME USED AVAIL REFER MOUNTPOINT datab 106K 16.5G 18K /datab # zfs create -p -o compression=on datab/users/area51 |
Если промежуточный набор данных уже существует на момент операции создания, операция завершается успешно.
Указанные свойства относятся к целевому набору данных, а не к промежуточным наборам данных. Пример:
# zfs get mountpoint,compression datab/users/area51 NAME PROPERTY VALUE SOURCE datab/users/area51 mountpoint /datab/users/area51 default datab/users/area51 compression on local |
Промежуточный набор данных создается с точкой монтирования по умолчанию. Дополнительные свойства для промежуточного набора данных деактивируются. Пример:
# zfs get mountpoint,compression datab/users NAME PROPERTY VALUE SOURCE datab/users mountpoint /datab/users default datab/users compression off default |
Для получения дополнительных сведений см. zfs(1M).
Версия Solaris 10 от 10/08: в этой версии ZFS более оперативно реагирует на удаляемые устройства и поддерживает механизм автоматического определения вставляемых устройств с помощью следующих усовершенствований:
Существующее устройство можно заменить эквивалентным устройством без использования команды zpool replace.
Автоматическая замена устройства контролируется свойством autoreplace. Если отключено, замена устройства должна инициироваться администратором по команде zpool replace. Если включено, все новые устройства, обнаруженные в том же самом физическом местоположении, что и устройство, ранее принадлежавшее пулу, автоматически форматируются и заменяются. По умолчанию свойство отключено.
Состояние REMOVED пула устройств хранения данных возникает при удалении устройства или горячего резерва, если устройство было физически удалено во время работы системы. Удаленное устройство заменяется устройством горячего резервирования, если таковое имеется в наличии.
При повторной вставке удаленного устройства оно возвращается в оперативный режим. Если на момент повторной вставки устройства было активировано горячее резервирование, резерв удаляется после выхода из оперативного режима.
Автоматическое обнаружение удаления или вставки устройств зависит от оборудования; на некоторых платформах поддержка может отсутствовать. Например, устройства USB настраиваются автоматически после вставки. Однако для настройки диска SATA, возможно, придется использовать команду cfgadm -c configure.
Устройства горячего резерва периодически проверяются на оперативность и доступность.
Для получения дополнительных сведений см. zpool(1M).
Версия Solaris 10 от 10/08: с помощью команды zfs rename -r можно выполнить рекурсивное переименование всех снимков дочерних элементов ZFS.
Например, можно сделать снимок ряда файловых систем ZFS.
# zfs snapshot -r users/home@today # zfs list NAME USED AVAIL REFER MOUNTPOINT users 216K 16.5G 20K /users users/home 76K 16.5G 22K /users/home users/home@today 0 - 22K - users/home/markm 18K 16.5G 18K /users/home/markm users/home/markm@today 0 - 18K - users/home/marks 18K 16.5G 18K /users/home/marks users/home/marks@today 0 - 18K - users/home/neil 18K 16.5G 18K /users/home/neil users/home/neil@today 0 - 18K - |
Затем можно переименовать снимки завтрашним днем.
# zfs rename -r users/home@today @yesterday # zfs list NAME USED AVAIL REFER MOUNTPOINT users 216K 16.5G 20K /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 и запись блога, в которой описывается создание развертывающихся снимков:
http://blogs.sun.com/mmusante/entry/rolling_snapshots_made_easy
Solaris 10 версии 10/08: в этой версии Solaris помимо сжатия lzjb в файловых системах ZFS можно указать сжатие gzip. Сжатие можно определить как gzip (по умолчанию) или gzip-N, где N принимает значение от 1 до 9. Пример:
# zfs create -o compression=gzip users/home/snapshots # zfs get compression users/home/snapshots NAME PROPERTY VALUE SOURCE users/home/snapshots compression gzip local # zfs create -o compression=gzip-9 users/home/oldfiles # zfs get compression users/home/oldfiles NAME PROPERTY VALUE SOURCE users/home/oldfiles compression gzip-9 local |
Для получения дополнительной информации о задании свойств ZFS см. Установка свойств ZFS.
Версия Solaris 10 от 10/08: для надежности метаданные файловой системы ZFS автоматически сохраняются несколько раз на разных дисках, если это возможно. Эта функция называется дубликаты блоков.
В этой версии Solaris можно также с помощью команды zfs set copies настроить хранение нескольких копий пользовательских данных для каждой файловой системы. Пример:
# zfs set copies=2 users/home # zfs get copies users/home NAME PROPERTY VALUE SOURCE users/home copies 2 local |
Доступныe значения: 1, 2 или 3. Значение по умолчанию: 1. Эти копии являются дополнительными по отношению к избыточности уровня пула, например, при зеркальной настройке или настройке RAID-Z.
Хранение множественных копий пользовательских данных ZFS дает следующие преимущества:
повышается сохранность данных в результате возможности восстановления после неисправимых сбоев чтения блока, например, при сбое носителя (повреждение отдельных битов) для всех настроек ZFS;
обеспечивается защита данных, даже в случае доступности только одного диска;
политику защиты данных можно выбирать для каждой файловой системы, выходя за рамки возможностей одного пула устройств хранения данных.
В зависимости от выделения дубликатов блоков в пуле устройств хранения данных несколько копий могут находиться на одном диске. В результате полного отказа диска все дубликаты блоков могут оказаться недоступными.
Вопрос использования дубликатов блоков следует рассматривать в том случае, если случайно создан нерезервированный пул и если необходимо настроить политику сохранности данных.
Подробную информацию о том, как настройка копий в системе с однодисковым или многодисковым пулом может повлиять на общую защиту данных, приведено в блоге:
http://blogs.sun.com/relling/entry/zfs_copies_and_data_protection
Для получения дополнительной информации о задании свойств ZFS см. Установка свойств ZFS.
Версия Solaris 10 от 8/07: с помощью команды zpool status -v можно вывести на экран список файлов с устойчивыми ошибками. Ранее было необходимо использовать команду find -inum для определения имен файлов на основе списка отображаемых индексных дескрипторов.
Для получения дополнительной информации об отображении списка файлов с устойчивыми ошибками см. Восстановление поврежденного файла или каталога.
Версия Solaris 10 от 8/07: в этой версии Solaris можно создать том ZFS в качестве целевого устройства iSCSI Solaris; для этого нужно указать свойство shareiscsi на томе ZFS. Этот метод позволяет быстро создавать целевые устройства iSCSI в Solaris. Пример:
# zfs create -V 2g tank/volumes/v2 # zfs set shareiscsi=on tank/volumes/v2 # iscsitadm list target Target: tank/volumes/v2 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0 |
После создания целевого устройства iSCSI настраивается инициатор iSCSI. Для получения информации по созданию инициатора iSCSI Solaris см. раздел Глава 14, Configuring Solaris iSCSI Targets and Initiators (Tasks), в System Administration Guide: Devices and File Systems.
Для получения дополнительной информации об управлении томом ZFS как целевым устройством iSCSI см. Использование тома ZFS в качестве целевого устройства iSCSI Solaris.
Версия Solaris 10 от 8/07: в этой версии Solaris ZFS автоматически протоколирует успешные команды zfs и zpool, которые изменяют информацию о состоянии пула. Пример:
# zpool history History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1 History for 'tank': 2007-04-25.11:46:28 zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 |
Эта функция позволяет пользователю или сотрудникам службы технической поддержки Sun определить точный состав выполненных команд ZFS для выяснения причин возникновения ошибки.
С помощью команды zpool history можно идентифицировать определенный пул устройств хранения данных. Пример:
# zpool history newpool History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1 |
В этой версии Solaris команда zpool history не записывает идентификатор пользователя, имя узла или имя зоны. Для получения дополнительной информации см. Усовершенствования журнала команд ZFS (zpool history).
Для получения дополнительной информации о поиске и устранении проблем ZFS см. Выявление проблем в ZFS.
Версия Solaris 10 от 8/07: свойство ZFS xattr можно использовать для отключения или включения расширенных атрибутов для определенной файловой системы ZFS. Значение по умолчанию – включено. Описание свойств ZFS приведено в разделе Введение в свойства ZFS.
Версия Solaris 10 от 8/07:с помощью нового свойства ZFS canmount можно определить для набора данных возможность монтирования командой zfs mount. Для получения дополнительной информации см. Свойство canmount.
Версия Solaris 10 от 8/07: в дополнение к стандартным системным свойствам ZFS поддерживает пользовательские свойства, которые могут использоваться для экспорта внутренней статистики или управления поведением файловой системы ZFS. Пользовательские свойства не влияют на поведение ZFS, но их можно использовать для добавления пользовательской информации к наборам данных.
Для получения дополнительной информации см. Пользовательские свойства ZFS.
Версия Solaris 10 от 8/07: в этой версии Solaris свойства можно назначать не только после создания файловой системы, но и непосредственно в процессе ее создания.
В следующих примерах показан эквивалентный синтаксис:
# zfs create tank/home # zfs set mountpoint=/export/zfs tank/home # zfs set sharenfs=on tank/home # zfs set compression=on tank/home |
# zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home |
Версия Solaris 10 от 8/07: в этой версии Solaris можно использовать различные формы команды zfs get для отображения информации обо всех наборах данных, если не указывается отдельный набор данных или команда all. В предыдущих версиях получить информацию обо всех наборах данных при помощи команды zfs get было невозможно.
Пример:
# zfs get -s local all tank/home atime off local tank/home/bonwick atime off local tank/home/marks quota 50G local |
Версия Solaris 10 от 8/07: в этой версии Solaris можно использовать новый параметр -F в команде zfs receive для принудительного отката файловой системы к последнему снимку перед выполнением операции получения. Этот параметр может потребоваться в случае изменения файловой системы в промежутке между моментами отката и инициирования процедуры получения.
Для получения дополнительной информации см. Получение снимка ZFS.
Версия Solaris 10 от 11/06: при создании снимка файловой системы с помощью команды zfs snapshot параметр -r позволяет рекурсивно создавать снимки для всех дочерних файловых систем. Кроме того, с помощью параметра -r можно рекурсивно удалять все дочерние снимки при удалении родительского снимка.
Рекурсивные снимки ZFS создаются быстро в рамках одной элементарной операции. Снимки создаются все вместе (одновременно) или не создаются вообще. Преимущество элементарных снимков состоит в том, что данные снимка всегда извлекаются в один и тот же момент времени даже из дочерних файловых систем.
Для получения дополнительной информации см. Создание и уничтожение снимков ZFS.
Версия Solaris 10 от 11/06: теперь можно создать резервную настройку RAID-Z с однократным или двойным контролем четности, обеспечивающим непрерывное функционирование без потери данных в случае отказа одного или двух устройств соответственно. Для использования настройки RAID-Z с двойным контролем четности укажите ключевое слово raidz2. Для использования настройки RAID-Z с однократным контролем четности укажите ключевое слово raidz или raidz1.
Для получения дополнительной информации см. Создание пулов устройств хранения данных RAID-Z или zpool(1M).
Версия Solaris 10 от 11/06: функция горячего резерва ZFS позволяет идентифицировать диски, которые можно использовать для замены отказавших или неисправных устройств в одном или нескольких пулах устройств хранения данных. Обозначение устройства в качестве устройства горячего резерва означает, что в случае отказа активного устройства в пуле это отказавшее устройство автоматически заменяется устройством горячего резерва. Кроме того, устройство горячего резерва можно использовать для замены устройства в пуле вручную.
Для получения дополнительной информации см. Устройства горячего резерва в пуле устройств хранения данных и zpool(1M).
Версия Solaris 10 от 11/06: команда zfs promote позволяет заменить существующую файловую систему ZFS клоном этой файловой системы. Эту функцию рекомендуется использовать при необходимости выполнения тестов на альтернативной версии файловой системы с последующей установкой этой альтернативной версии в качестве активной файловой системы.
Для получения дополнительной информации см. Замена файловой системы ZFS на клон ZFS и zfs(1M).
Версия Solaris 10 от 6/06: для обновления пулов до более новой версии, что позволит воспользоваться всеми преимуществами новейших функций, используется команда zpool upgrade. Кроме того, измененная команда zpool status может проинформировать пользователя об использовании в пулах старых версий.
Для получения дополнительной информации см. Обновление пулов устройств хранения данных ZFS и zpool(1M).
При необходимости использования консоли администрирования ZFS в системе с пулом предыдущей версии Solaris сначала убедитесь в том, что пулы обновлены. Для определения необходимости обновления пулов используется команда zpool status. Для получения информации о консоли администрирования ZFS см. Управление ZFS через веб-интерфейс.
Версия Solaris 10 от 6/06: в этой версии Solaris команды zfs backup и zfs restore переименованы в zfs send и zfs receive, что более точно описывает их функцию. Эти команды предназначены для сохранения и восстановления представлений потоков данных ZFS.
Для получения дополнительной информации об этих командах см. радел Отправка и получение данных ZFS.
Версия Solaris 10 от 6/06: в эту версию включена команда zpool import -D, которая используется для восстановления пулов, ранее уничтоженных с помощью команды zpool destroy.
Для получения дополнительной информации см. Восстановление уничтоженных пулов устройств хранения данных ZFS.
Версия Solaris 10 от 6/06: в эту версию включен интегрированный механизм диагностики ZFS, позволяющий диагностировать и регистрировать отказы пула и устройств. Также обеспечивается регистрация ошибок контрольной суммы, ввода/вывода и устройств, связанных с отказом пула или устройства.
Механизм диагностики не обеспечивает прогнозный анализ ошибок контрольной суммы и ввода/вывода и упреждающие действия на основе анализа отказов.
В случае отказа ZFS может появиться сообщение, подобное сообщению, появляющемуся при выполнении команды fmd:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Fri Aug 28 09:10:27 PDT 2009 PLATFORM: SUNW,Sun-Fire-T200, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: d6725ad6-4546-6c48-fa16-eace4d371981 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device. |
Изучение рекомендуемых действий в дополнение к проверке более подробных результатов команды zpool status позволит быстро выявить и устранить отказ.
Пример решения зарегистрированной проблемы ZFS приведен в разделе Восстановление отсутствующего устройства.
Версия Solaris 10 от 6/06: в эту версию включена команда zpool clear, которая используется для сброса счетчиков ошибок, связанных с устройством или пулом. Ранее сброс счетчиков ошибок осуществлялся при активации устройства пула с помощью команды zpool online. Для получения дополнительной информации см. zpool(1M)Сброс ошибок устройств в пуле устройств хранения данных.
Версия Solaris 10 от 6/06: в этой версии доступны три формата списков ACL NFSv4 – подробный, позиционный и компактный. Для настройки и просмотра списков ACL теперь доступны новые компактные и позиционные форматы списков ACL. При этом для определения всех трех форматов списков ACL можно по-прежнему использовать команду chmod. Для просмотра компактных и позиционных форматов списков ACL используется команда ls -V, а для просмотра подробных форматов списков ACL – командаls -v.
Для получения дополнительной информации см. Настройка и просмотр списков ACL файлов ZFS в компактном формате, chmod(1)ls(1).
Версия Solaris 10 от 6/06: новое средство наблюдения за файловой системой, fsstat, предназначена для вывода информации об операциях файловой системы. Эта информация может быть представлена по точке монтирования или типу файловой системы. В следующем примере показаны общие операции файловой системы ZFS.
$ fsstat zfs new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 7.82M 5.92M 2.76M 1.02G 3.32M 5.60G 87.0M 363M 1.86T 20.9M 251G zfs |
Для получения дополнительной информации см. fsstat(1M)
Версия Solaris 10 от 6/06: при помощи средства управления ZFS через веб-интерфейс можно выполнять множество административных задач. Это средство позволяет решать следующие задачи:
создание нового пула устройств хранения данных;
расширение емкости существующего пула;
перемещение (экспорт) пула устройств хранения данных в другую систему;
импорт ранее экспортированного пула устройств хранения данных в другую систему и обеспечение его доступности;
просмотр информации о пулах устройств хранения данных;
создание файловой системы;
создание тома;
создание снимка файловой системы или тома;
восстановление файловой системы с использованием предыдущего снимка.
Для доступа к консоли администрирования ZFS введите следующий URL-адрес в безопасном веб-обозревателе:
https://system-name:6789/zfs |
Если после ввода соответствующего URL-адреса консоль администрирования ZFS недоступна, возможно, не запущен сервер. Для запуска сервера выполните следующую команду:
# /usr/sbin/smcwebserver start |
При необходимости автоматического запуска сервера в процессе начальной загрузки системы выполните следующую команду:
# /usr/sbin/smcwebserver enable |
Консоль управления Solaris (smc) невозможно использовать для управления пулами устройств хранения данных или файловыми системами ZFS.
ZFS – это принципиально новая файловая система, кардинально меняющая принципы администрирования файловых систем с уникальными на сегодняшний день функциями и преимуществами. Система ZFS была разработана как надежный, масштабируемый и простой в администрировании инструмент.
Для управления физическим хранением в ZFS применяется принцип пулов устройств хранения данных. Исторически файловые системы строились на основе одного физического устройства. Для использования нескольких устройств и обеспечения избыточности данных была введена концепция диспетчера томов , обеспечивающая представление нескольких устройств в виде одного устройства, чтобы исключить необходимость изменения файловых систем. Эта разработка позволила перейти на новый уровень сложности и, в конечном счете, предшествовала определенным усовершенствованиям файловых систем, поскольку типичная файловая система не обеспечивала контроль над физическим размещением данных в виртуализированных томах.
ZFS полностью исключает процесс управления томами. Вместо принудительного создания виртуализированных томов ZFS объединяет устройства в пул устройств хранения данных. Пул устройств хранения данных описывает физические характеристики хранения (размещение устройств, избыточность данных и т.д.) и выступает в качестве хранилища данных для создания файловых систем. Файловые системы больше не ограничиваются отдельными устройствами, что позволяет им совместно использовать пространство в пуле. Предварительное определение размера файловой системы больше не требуется, поскольку файловые системы автоматически расширяются в рамках пространства, выделенного для пула устройств хранения данных. При добавлении нового хранилища все файловые системы в пуле могут немедленно начать использование дополнительного пространства без вмешательства администратора. Во многих отношениях пул устройств хранения данных выступает в качестве системы виртуальной памяти. При добавлении в систему модуля DIMM оперативной памяти операционная система не требует вызова определенных команд для настройки памяти и ее назначения отдельным процессам. Все процессы в системе автоматически используют дополнительную память.
ZFS – это транзакционная файловая система. Это означает, что ее состояние на диске всегда является непротиворечивым. Традиционные файловые системы перезаписывают данные на физическом носителе. Поэтому, например, при снижении производительности между временем выделения блока данных и его присвоением каталогу файловая система остается в противоречивом состоянии. Исторически эта проблема решалась с помощью команды fsck, которая использовалась для просмотра и проверки состояния файловой системы с попыткой устранения всех противоречий. Эта задача была особенно сложной для администраторов и всегда вызывала сопутствующие затруднения. Позже в файловые системы был введен принцип журналирования. В процессе журналирования операции регистрируются в отдельном журнале, который при необходимости может быть безопасно воспроизведен в случае полного отказа системы. Этот процесс влечет за собой дополнительные расходы, поскольку запись данных выполняется дважды и часто ведет к появлению новых проблем, например когда не удается корректно воспроизвести журнал.
В транзакционной файловой системе управление данными осуществляется с использованием семантики копирования при записи. Данные никогда не перезаписываются, и любая последовательность операций либо полностью выполняется, либо полностью игнорируется. Этот механизм обеспечивает невозможность повреждения файловой системы в результате непредвиденного отключения электропитания или полного отказа системы. Поэтому в этой системе эквивалент команды fsck отсутствует. Несмотря на то, что последние записанные элементы данных могут быть потеряны, сама файловая система всегда остается целостной. Кроме того, синхронные данные (записанные с использованием флага O_DSYNC) всегда гарантированно сохраняются перед возвратом и поэтому не могут быть утрачены.
В ZFS контроль сумм для всех данных и метаданных выполняется с помощью алгоритма, который может быть выбран пользователем. Традиционные файловые системы, действительно обеспечивающие вычисление контрольной суммы, выполняли эту процедуру поблочно, в силу необходимости на уровне управления томами и структуры традиционной файловой системы. Традиционная модель подразумевает, что определенные типы сбоя, такие как запись целого блока в ошибочное местоположение, могут привести к тому, что данные, по которым была правильно рассчитана контрольная сумма, фактически оказываются неверными. Контрольные суммы ZFS сохраняются таким образом, что эти сбои идентифицируются и могут быть корректно устранены. Все операции с контрольными суммами и восстановление данных осуществляются на уровне файловой системы и не сказываются на работе приложений.
Кроме того, ZFS предоставляет возможность самовосстановления данных. ZFS поддерживает пулы устройств хранения данных с различными уровнями избыточности данных, включая зеркальное отражение и варьирование на RAID-5. При обнаружении поврежденного блока данных ZFS переносит правильные данные из другой резервной копии и восстанавливает данные, заменяя их качественной копией.
Система ZFS была изначально разработана как самая масштабируемая файловая система. Это 128-разрядная файловая система с возможностью хранения данных в объеме 256 септильонов зеттабайт. Все метаданные распределяются динамически, и необходимость в предварительном распределении индексных дескрипторов или каких-либо иных ограничениях масштабируемости файловой системы при ее создании отсутствует. Все алгоритмы были разработаны с учетом масштабируемости. Каталоги могут содержать до 248 (256 триллионов) записей, при этом не существует ограничений по числу файловых систем или файлов, содержащихся в файловой системе.
Снимок представляет собой копию файловой системы или тома, доступную только для чтения. Снимки создаются в рамках быстрой и простой процедуры. Изначально снимки не занимают дополнительного пространства пула.
По мере изменения данных в активном наборе данных снимок начинает занимать пространство из-за наличия ссылок на старые данные. В результате снимок предотвращает освобождение пространства в пуле.
Что особенно важно, в ZFS предусмотрена существенно упрощенная модель администрирования. За счет иерархического размещения файловых систем, наследования свойств, автоматического управления точками монтирования и семантикой совместного использования NFS, технология ZFS упрощает создание и администрирование файловых систем, устраняя необходимость в выполнении большого количества команд или редактирования конфигурационных файлов. Настройка квот или резервируемого пространства, активация или деактивация сжатия или управление точками монтирования для нескольких файловых систем выполняются с помощью одной команды. Диагностика и исправление устройств могут осуществляться без использования специальных наборов команд диспетчера томов. Можно создавать неограниченное количество мгновенных снимков файловых систем. Можно выполнять резервное копирование и восстановление отдельных файловых систем.
ZFS осуществляет управление файловыми системами через иерархию, обеспечивающую упрощенное администрирование таких свойств, как квоты, резервируемое пространство, сжатие и точки монтирования. В этой модели центральной точкой администрирования становятся файловые системы. Сами файловые системы не являются дорогостоящими (по затратам эквивалентны новому каталогу), что позволяет создать файловую систему для каждого пользователя, проекта, рабочего стола и т.д. Благодаря такой структуре можно более точно определить отдельные точки администрирования.
В этом разделе представлена базовая терминология, используемая в настоящем руководстве:
Среда загрузки, которая была создана командой ucreate и, возможно, обновлена командой luupgrade, но в настоящее время не является активной или основной средой загрузки. С помощью команды luactivate альтернативную среду загрузки (alternate boot environment – ABE) можно сменить на основную среду загрузки (primary boot environment – PBE).
256-разрядный хеш-код данных в блоке файловой системы. Возможности вычисления контрольной суммы могут варьироваться от простого и быстрого алгоритма fletcher2 (по умолчанию) до криптостойкого хеширования, например SHA256.
Файловая система, исходное содержимое которой идентично содержимому снимка.
Для получения информации о клонах см. Краткий обзор клонов ZFS.
Общее название следующих объектов ZFS: клонов, файловых систем, снимков или томов.
Каждый набор данных идентифицируется по уникальному имени в пространстве имен ZFS. Наборы данных определяются с помощью следующего формата:
пул/путь[ @снимок]
Определяет имя пула устройств хранения данных, содержащего набор данных.
Путь к объекту набора данных с разделением шагов косой чертой.
Дополнительный компонент для идентификации снимка набора данных.
Для получения дополнительной информации о наборах данных см. Глава 6Управление файловыми системами ZFS.
Набор данных ZFS типа filesystem, смонтированный в стандартном пространстве имен системы и функционирующий аналогично другим файловым системам.
Для получения дополнительной информации о файловых системах см. Глава 6Управление файловыми системами ZFS.
Виртуальное устройство, в котором хранятся идентичные копии данных на двух или более дисках. В случае отказа какого-либо диска зеркального устройства те же данные может предоставить любой другой диск этого зеркального устройства.
Логическая группа устройств, описывающая размещение и физические характеристики доступного пространства для хранения данных. Из пула берется пространство для наборов данных.
Для получения дополнительных сведений о пулах устройств хранения данных см. Глава 4Управление пулами устройств хранения данных ZFS.
Среда загрузки, которая используется командой lucreate для создания альтернативной среды загрузки. По умолчанию основной является текущая среда загрузки. Эту настройку по умолчанию можно переопределить с помощью команды lucreate с параметром - s.
Виртуальное устройство для хранения данных и контроля четности на нескольких дисках, подобных RAID-5. Для получения дополнительной информации о RAID-Z см. Конфигурация пула устройств RAID-Z.
Процесс передачи данных с одного устройства в другое называется переносом актуальных данных. Например, если один зеркальный компонент заменяется или переводится в автономный режим, то впоследствии в восстановленный зеркальный компонент копируются актуальные данные из другого компонента. В традиционных решениях по управлению томами этот процесс называется ресинхронизацией зеркала.
Для получения дополнительной информации о переносе актуальных данных в ZFS см. Просмотр статуса переноса актуальных данных.
Образ файловой системы или тома в определенный момент времени, доступный только для чтения.
Для получения дополнительной информации о снимках см. Краткий обзор снимков ZFS.
Логическое устройство в пуле, которое может представлять собой физическое устройство, файл или набор устройств.
Для получения дополнительной информации о виртуальных устройствах см. раздел Отображение информации о виртуальных устройствах пула устройств хранения данных.
Набор данных, используемый для эмулирования физического устройства. Например, можно создать том ZFS в качестве устройства подкачки.
Для получения дополнительной информации о томах ZFS см. Тома ZFS.
Каждый компонент ZFS должен именоваться в соответствии со следующими правилами:
Пустые компоненты не допускаются.
Каждый компонент может содержать только алфавитно-цифровые символы, за исключением следующих четырех специальных символов:
Подчеркивание (_)
Дефис (-)
Двоеточие (:)
Точка (.)
Имена пулов должны начинаться с буквы с учетом следующих ограничений:
Не разрешено использование начальной последовательности c[0–9].
Имя log зарезервировано.
Не разрешено использование имен, которые начинаются с mirror, raidz или spare, поскольку такие имена зарезервированы.
Кроме того, имена пулов не должны включать знак процента (%).
Имена наборов данных должны начинаться с алфавитно-цифрового символа. Имена наборов данных не должны включать знак процента (%).