diff options
Diffstat (limited to 'documentation/content/ru/books/handbook/filesystems/_index.adoc')
-rw-r--r-- | documentation/content/ru/books/handbook/filesystems/_index.adoc | 437 |
1 files changed, 95 insertions, 342 deletions
diff --git a/documentation/content/ru/books/handbook/filesystems/_index.adoc b/documentation/content/ru/books/handbook/filesystems/_index.adoc index ea5bc04056..2e30a4139d 100644 --- a/documentation/content/ru/books/handbook/filesystems/_index.adoc +++ b/documentation/content/ru/books/handbook/filesystems/_index.adoc @@ -1,12 +1,14 @@ --- -title: Глава 19. Поддержка файловых систем -part: Часть III. Системное администрирование -prev: books/handbook/geom -next: books/handbook/l10n -showBookMenu: true -weight: 23 +description: 'Эта глава описывает другие файловые системы, поддерживаемые FreeBSD' +next: books/handbook/virtualization params: - path: "/books/handbook/filesystems/" + path: /books/handbook/filesystems/ +part: 'Часть III. Администрирование системы' +prev: books/handbook/zfs +showBookMenu: true +tags: ["filesystem", "ext2", "ext3", "ext4", "ext2fs", "FAT", "exFAT", "NTFS", "HFS", "HFS+", "Apple", "Microsoft", "Linux"] +title: 'Глава 23. Поддержка файловых систем' +weight: 27 --- [[filesystems]] @@ -17,7 +19,7 @@ params: :icons: font :sectnums: :sectnumlevels: 6 -:sectnumoffset: 19 +:sectnumoffset: 23 :partnums: :source-highlighter: rouge :experimental: @@ -48,420 +50,171 @@ include::../../../../../shared/asciidoctor.adoc[] endif::[] [[filesystems-synopsis]] -== Краткий обзор - -Файловые системы - неотъемлемая часть любой операционной системы. Они позволяют пользователям записывать и хранить файлы, получать доступ к данным, и, конечно-же, пользоваться жесткими дисками. У разных операционных систем есть одна общая черта - их основная файловая система (native filesystem). Для FreeBSD это Fast File System (или FFS), которая произошла от Unix(TM) File System (сокращенно UFS). - -FreeBSD также поддерживает ряд других файловых систем, тем самым предоставляя возможность получать доступ к данным от других операционных систем локально, например: к данным, находящимся на подключенных USB устройствах хранения, флэш-накопителях и жестких дисках. В списке поддерживаемых есть файловые системы, разработанные для других операционных систем, например Linux(R) Extended File System (EXT) и Sun(TM) Z File System (ZFS). - -FreeBSD имеет разные уровни поддержки для разных файловых систем. Для некоторых будет достаточно загрузки модуля ядра, другим может потребоваться установка набора утилит (toolset). Цель этого раздела - дать представления пользователям FreeBSD о возможностях использования других файловых систем на их операционных системах. Начнем с Sun(TM) Z file system. - -После прочтения этого раздела вы будете знать: - -* Разницу между основной и поддерживаемой файловой системой. -* Какие файловые системы поддерживаются FreeBSD. -* Как подключить, сконфигурировать, получить доступ и использовать поддерживаемые файловые системы. - -Перед прочтением этого раздела вам необходимо: - -* Понимать основы UNIX(R) и FreeBSD (crossref:basics[basics, Основы UNIX]). -* Знать азы конфигурирования и компиляции ядра (crossref:kernelconfig[kernelconfig, Настройка ядра FreeBSD]). -* Уметь устанавливать приложения сторонних разработчиков в FreeBSD (crossref:ports[ports, Установка приложений. порты и пакеты]). -* Быть знакомым с именованием дисков и устройств хранения в FreeBSD (crossref:disks[disks, Устройства хранения]). - -[[filesystems-zfs]] -== Файловая система ZFS - -Файловая система ZFS, разработанная компанией Sun(TM), основана на использовании метода пулов устройств хранения данных. Это значит, что емкость носителя занимается только тогда, когда она становится необходимой для сохранения данных. ZFS также была разработана с упором на максимальную целостность данных, поддерживая снимки (snapshot), множество копий и контрольные суммы данных. Новая модель репликации данных, известная как RAID-Z, подобна RAID-5, но специально разработана для предотвращения повреждений данных при записи. - -=== Настройка ZFS - -Подсистема ZFS занимает значительную часть ресурсов системы. Чтобы получить от нее максимум эффективности в повседневном использовании, потребуется выполнить некоторые настройки. ZFS является экспериментальной функциональной возможностью в FreeBSD, но ситуация может измениться в ближайшем будущем; однако на данный момент рекомендуется выполнить следующие шаги. - -==== Память - -Общий размер ОЗУ должен быть как минимум равен одному гигабайту, хотя рекомендуется два гигабайта или более. Во всех нижеследующих примерах используется система с 1ГБ памяти совместно с другими специальными настройками. - -Известно, что некоторые пользователи преуспели в использовании ZFS на системах, имеющих менее одного гигабайта памяти, но с таким ограниченным объемом ОЗУ и при серьезной загрузке машины очень вероятны паники FreeBSD из-за нехватки памяти. - -==== Настройка ядра - -Рекомендуется исключить из файла конфигурации ядра неиспользуемые драйвера и опции. Так как большинство драйверов устройств доступно в виде модулей, то они просто могут быть загружены с помощью соответствующих записей в файле [.filename]#/boot/loader.conf#. - -Пользователям архитектуры i386(TM) необходимо добавить следующую опцию в их файл конфигурации ядра, перестроить ядро и перезагрузиться: - -[.programlisting] -.... -options KVA_PAGES=512 -.... - -Эта опция расширит адресное пространство ядра, тем самым позволяя переменной `vm.kvm_size` быть установленной за текущий предел в 1 ГБ (2 ГБ для PAE). Чтобы найти наиболее подходящее значение для этой опции, разделите имеющийся объем ОЗУ, выраженный в мегабайтах, на 4. Приведенное выше значение `512` рекомендуется для систем с 2 ГБ оперативной памяти. +== Обзор -==== Параметры loader.conf +Файловые системы являются фундаментальным компонентом любой операционной системы. Они позволяют пользователям сохранять, управлять и получать доступ к данным, делая устройства хранения, такие как жесткие диски, флеш-накопители и USB-устройства, практичными для повседневного использования. Разные операционные системы используют разные файловые системы в своей основе. -Адресное пространство [.filename]#kmem# должно быть увеличено на всех FreeBSD архитектурах. На тестовой системе с одним гигабайтом физической памяти стабильная работа была получена со следующими параметрами, которые необходимо внести в файл [.filename]#/boot/loader.conf# и перезагрузить систему. +Традиционно FreeBSD использует Unix File System (UFS), а её современную версию UFS2 — в качестве основной родной файловой системы. FreeBSD также поддерживает Файловую Систему Z (Z File System — ZFS), известную благодаря своим расширенным возможностям, надёжности и отказоустойчивости. Подробнее см. crossref:zfs[zfs,The Z File System (ZFS)]. -[.programlisting] -.... -vm.kmem_size="330M" -vm.kmem_size_max="330M" -vfs.zfs.arc_max="40M" -vfs.zfs.vdev.cache.size="5M" -.... - -За более детальными рекомендациями по тонкой настройке системы под ZFS, обратитесь к странице: http://wiki.freebsd.org/ZFSTuningGuide[http://wiki.freebsd.org/ZFSTuningGuide]. - -=== Использование ZFS - -Существует стартовый механизм, позволяющий монтировать ZFS пулы во время инициализации системы. Чтобы его задействовать, выполните следующие команды: - -[source,shell] -.... -# echo 'zfs_enable="YES"' >> /etc/rc.conf -# /etc/rc.d/zfs start -.... +Помимо собственных файловых систем, FreeBSD поддерживает широкий спектр файловых систем из других операционных систем. Поддержка этих файловых систем варьируется: для некоторых требуется загрузка модулей ядра, в то время как для других необходимы дополнительные пользовательские утилиты. -Здесь и далее в статье подразумевается, что в системе установлено три SCSI диска с именами устройств [.filename]#da0#, [.filename]#da1# и [.filename]#da2#. Использующим IDE диски необходимо подставить имена устройств [.filename]#ad# вместо имен устройств SCSI. +Прежде чем читать эту главу, вы должны: -==== Простой дисковый пул +* Знать концепции UNIX(R) и crossref:basics[basics,основы FreeBSD]. +* Свободно устанавливать программное обеспечение через crossref:ports[ports,установку программ] в FreeBSD. +* Иметь некоторое представление о crossref:disks[disks, дисках], устройствах хранения данных и соглашениях FreeBSD по именованию устройств. -Для создания простого пула ZFS без избыточности, задействовав при этом один жесткий диск, воспользуйтесь командой `zpool`: +Прочитав эту главу, вы: -[source,shell] -.... -# zpool create example /dev/da0 -.... +* Будете понимать различия между родными и поддерживаемыми файловыми системами. +* Будете знать, какие файловые системы поддерживаются FreeBSD и уровень доступной поддержки. +* Узнаете, как включить, настроить, получить доступ и работать с файловыми системами, не входящими в стандартную поставку. -Чтобы увидеть новый пул, просмотрите вывод команды `df`: +[[filesystems-linux]] +== Файловые системы Linux(R) -[source,shell] -.... -# df -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/ad0s1a 2026030 235230 1628718 13% / -devfs 1 1 0 100% /dev -/dev/ad0s1d 54098308 1032846 48737598 2% /usr -example 17547136 0 17547136 0% /example -.... +FreeBSD предоставляет встроенную поддержку нескольких файловых систем Linux(R). В этом разделе показано, как загрузить поддержку и подключить поддерживаемые файловые системы Linux(R). -Этот вывод четко показывает, что пул `example` был не только создан, но также и _примонтирован_. Он также доступен, как и обычная файловая система, в нем можно создавать файлы, а пользователи могут просматривать его содержимое, например: +[[ext]] +=== Расширенная Файловая Система (EXT) -[source,shell] -.... -# cd /example -# ls -# touch testfile -# ls -al -total 4 -drwxr-xr-x 2 root wheel 3 Aug 29 23:15 . -drwxr-xr-x 21 root wheel 512 Aug 29 23:12 .. --rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile -.... - -Однако в этом примере простого пула не задействованы никакие функциональные возможности ZFS. Создайте файловую систему в этом пуле и активируйте сжатие данных на ней: - -[source,shell] -.... -# zfs create example/compressed -# zfs set compression=gzip example/compressed -.... - -С этого момента для файловой системы ZFS `example/compressed` активировано сжатие данных. Попробуйте поместить на нее несколько больших файлов копируя их в [.filename]#/example/compressed#. - -А вот как можно отключить сжатие данных: - -[source,shell] -.... -# zfs set compression=off example/compressed -.... +Поддержка файловых систем Extended File System (EXT) на уровне ядра доступна в FreeBSD начиная с версии 2.2. Драйвер man:ext2fs[5] позволяет ядру FreeBSD читать и записывать данные в файловые системы ext2, ext3 и ext4. -Для того чтобы размонтировать файловую систему, выполните следующую команду и проверьте результат утилитой `df`: - -[source,shell] -.... -# zfs umount example/compressed -# df -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/ad0s1a 2026030 235232 1628716 13% / -devfs 1 1 0 100% /dev -/dev/ad0s1d 54098308 1032864 48737580 2% /usr -example 17547008 0 17547008 0% /example -.... +[WARNING] +==== +Журналирование и шифрование пока не поддерживаются. +==== -Снова смонтируйте файловую систему и проверьте результат при помощи `df`: +Для доступа к файловой системе ext смонтируйте раздел ext, указав его имя раздела в FreeBSD и существующую точку монтирования. В этом примере монтируется [.filename]#/dev/ada1s1# в [.filename]#/mnt#: -[source,shell] +[source, shell] .... -# zfs mount example/compressed -# df -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/ad0s1a 2026030 235234 1628714 13% / -devfs 1 1 0 100% /dev -/dev/ad0s1d 54098308 1032864 48737580 2% /usr -example 17547008 0 17547008 0% /example -example/compressed 17547008 0 17547008 0% /example/compressed +# mount -t ext2fs /dev/ada1s1 /mnt .... -Пул и файловая система также отображается в выводе команды `mount`: +[[filesystems-windows]] +== Файловые системы Windows(R) -[source,shell] -.... -# mount -/dev/ad0s1a on / (ufs, local) -devfs on /dev (devfs, local) -/dev/ad0s1d on /usr (ufs, local, soft-updates) -example on /example (zfs, local) -example/data on /example/data (zfs, local) -example/compressed on /example/compressed (zfs, local) -.... +FreeBSD поддерживает файловые системы FAT, exFAT и NTFS, обеспечивая доступ к хранилищам, отформатированным в Windows. -Как вы уже убедились, файловые системы ZFS после создания могут использоваться как и обычные файловые системы; однако доступно множество других возможностей. В следующем примере мы создадим новую файловую систему `data`. На ней мы будем содержать важные данные, поэтому файловая система сконфигурирована хранить две копии каждого блока: +[[fat]] +=== Файловая система FAT -[source,shell] -.... -# zfs create example/data -# zfs set copies=2 example/data -.... +Файловая система FAT — это простая и надежная файловая система. Хотя она уступает современным аналогам в производительности, надежности и масштабируемости, ее доступность во многих операционных системах делает ее распространенным выбором для обмена данными между устройствами. -Снова проверьте свободное и использованное место выполнив команду `df`: +Для доступа к файловой системе FAT необходимо подключить том FAT, указав имя раздела FreeBSD и существующую точку монтирования. В этом примере подключается [.filename]#/dev/ada0s1# в [.filename]#/mnt#: -[source,shell] +[source, shell] .... -# df -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/ad0s1a 2026030 235234 1628714 13% / -devfs 1 1 0 100% /dev -/dev/ad0s1d 54098308 1032864 48737580 2% /usr -example 17547008 0 17547008 0% /example -example/compressed 17547008 0 17547008 0% /example/compressed -example/data 17547008 0 17547008 0% /example/data +# mount -t msdosfs /dev/ada0s1 /mnt .... -Заметьте, что каждая файловая система в пуле имеет тот же объем свободного места. Мы использовали команду `df` на протяжении этих примеров, чтобы показать, что файловые системы занимают только необходимое им пространство, используя ресурс одного и того же пула. ZFS уходит от привычных понятий "том (volume)" и "раздел (partition)", позволяя файловым системам занимать один и тот же пул. Уничтожьте файловые системы, потом уничтожьте пул, так как в них уже нет нужды: - -[source,shell] -.... -# zfs destroy example/compressed -# zfs destroy example/data -# zpool destroy example -.... +[[ex-fat]] +=== Файловая система exFAT -Жесткие диски со временем выходят из строя, это неизбежно. Когда этот диск выйдет из строя, данные будут утеряны. Одним из способов избежать потери данных из-за вышедшего из строя жесткого диска является построение RAID массивов. ZFS поддерживает эту функциональную возможность в своем дизайне, и это описано в следующем разделе. +exFAT (Extended File Allocation Table) — это облегчённая файловая система, оптимизированная для флеш-накопителей, таких как USB-диски и SD-карты. Она поддерживает файлы большого размера и широко используется на различных платформах, что делает её идеальной для внешних накопителей. -==== ZFS RAID-Z +Для использования exFAT в FreeBSD установите пакет package:filesystems/exfat[], загрузите модуль ядра FUSE и смонтируйте файловую систему, как показано ниже: -Как уже было сказано выше, в этой статье подразумевается, что в нашей системе в распоряжении есть три SCSI диска: [.filename]#da0#, [.filename]#da1# и [.filename]#da2# (или [.filename]#ad0# и далее в случае IDE дисков). Для того, чтобы создать RAID-Z пул, выполните следующую команду: +Установите пакет exFAT: -[source,shell] +[source, shell] .... -# zpool create storage raidz da0 da1 da2 +# pkg install exfat .... -[NOTE] -==== -Sun(TM) рекомендует использовать от трех до девяти жестких дисков в конфигурации RAID-Z. Если есть необходимость в использовании 10 или более дисков, подумайте над тем, чтобы разбить их на меньшие группы RAID-Z. Если у вас есть только два диска и вам всё-таки требуется избыточность, возможно лучшим вариантом будет создание ZFS зеркала. Смотрите страницу справочника man:zpool[8] для получения более подробных сведений. -==== - -По завершении команды должен создаться пул `storage`. Как и прежде, это может быть проверено при помощи команд man:mount[8] и man:df[1]. Больше дисковых устройств может быть задействовано путем добавления их в конец списка параметров команды, приведенной выше. Создайте в пуле новую файловую систему, называемую `home`, в которой будут размещаться пользовательские файлы: +Прежде чем использовать файловую систему FUSE, загрузите модуль ядра man:fusefs[5]: -[source,shell] +[source, shell] .... -# zfs create storage/home +# kldload fusefs .... -На данном этапе возможно активировать сжатие данных и организовать автоматическое создание копий пользовательских домашних каталогов и файлов. Это может быть достигнуто так же, как и ранее, при помощи следующих команд: +Используйте man:sysrc[8] для загрузки модуля при запуске: -[source,shell] +[source, shell] .... -# zfs set copies=2 storage/home -# zfs set compression=gzip storage/home +# sysrc kld_list+=fusefs .... -Чтобы организовать в этой файловой системе хранение домашних каталогов пользователей, скопируйте сюда их содержимое и создайте соответствующие символические ссылки: +Смонтируйте том exFAT, указав его имя раздела FreeBSD и существующую точку монтирования. В этом примере монтируется [.filename]#/dev/ada0s1# в [.filename]#/mnt#: -[source,shell] +[source, shell] .... -# cp -rp /home/* /storage/home -# rm -rf /home /usr/home -# ln -s /storage/home /home -# ln -s /storage/home /usr/home +# mount.exfat /dev/ada0s1 /mnt .... -С этого момента пользовательские данные сохраняются на новой файловой системе [.filename]#/storage/home#. Для проверки создайте учетную запись нового пользователя и войдите ею в систему. +[[using-ntfs]] +=== Файловая система NTFS -Попробуйте создать снимок (snapshot), к которому можно будет откатиться при необходимости: +NTFS — это надежная файловая система, разработанная Microsoft(R) и широко используемая в операционных системах Windows. FreeBSD обеспечивает полную поддержку чтения и записи NTFS через пакет package:filesystems/ntfs[], что упрощает доступ и изменение хранилищ данных с форматированием NTFS. -[source,shell] -.... -# zfs snapshot storage/home@08-30-08 -.... +Для использования NTFS в FreeBSD установите пакет package:filesystems/ntfs[], загрузите модуль ядра FUSE и смонтируйте файловую систему, как показано ниже: -Заметьте, что снимок (snapshot) захватит реальную файловую систему, а не домашний каталог или файл. Символ `@` отделяет имя файловой системы или имя тома от имени снимка. Когда возникнет необходимость восстановить пользовательские домашние каталоги, выполните следующую команду: +Установите пакет NTFS: -[source,shell] +[source, shell] .... -# zfs rollback storage/home@08-30-08 +# pkg install ntfs .... -Чтобы получить список имеющихся в наличии снимков, выполните команду `ls` в каталоге [.filename]#.zfs/snapshot#. Например, чтобы увидеть сделанный ранее снимок, выполните следующую команду: +Прежде чем использовать файловую систему FUSE, загрузите модуль ядра man:fusefs[5]: -[source,shell] +[source, shell] .... -# ls /storage/home/.zfs/snapshot +# kldload fusefs .... -Можно написать скрипт, выполняющий снимки пользовательских данных ежемесячно; однако, со временем, они могут занять значительную часть дискового пространства. Предыдущий снимок может быть удален используя следующую команду: +Используйте man:sysrc[8] для загрузки модуля при запуске: -[source,shell] +[source, shell] .... -# zfs destroy storage/home@08-30-08 +# sysrc kld_list+=fusefs .... -Нет причины после наших экспериментов далее держать в текущем состоянии [.filename]#/storage/home#. Сделаем ее реальной файловой системой [.filename]#/home#: +Смонтируйте том NTFS, указав его имя раздела в FreeBSD и существующую точку монтирования. В этом примере монтируется [.filename]#/dev/ada0s1# в [.filename]#/mnt#: -[source,shell] +[source, shell] .... -# zfs set mountpoint=/home storage/home +# ntfs-3g /dev/ada0s1 /mnt .... -Выполнение команд `df` и `mount` покажет, что с этого момента операционная система воспринимает нашу файловую систему как обычную [.filename]#/home#: +[[filesystems-macos]] +== Файловые системы MacOS(R) -[source,shell] -.... -# mount -/dev/ad0s1a on / (ufs, local) -devfs on /dev (devfs, local) -/dev/ad0s1d on /usr (ufs, local, soft-updates) -storage on /storage (zfs, local) -storage/home on /home (zfs, local) -# df -Filesystem 1K-blocks Used Avail Capacity Mounted on -/dev/ad0s1a 2026030 235240 1628708 13% / -devfs 1 1 0 100% /dev -/dev/ad0s1d 54098308 1032826 48737618 2% /usr -storage 26320512 0 26320512 0% /storage -storage/home 26320512 0 26320512 0% /home -.... +FreeBSD обеспечивает поддержку файловых систем MacOS(R), включая HFS/HFS+, что позволяет получать доступ к устройствам хранения, отформатированным для систем Apple(R). -На этом завершим конфигурацию RAID-Z. Чтобы во время ночных запусков man:periodic[8] получать информацию о статусе созданных файловых систем, выполните следующую команду: +[[hfs]] +=== Файловая система HFS/HFS+ -[source,shell] -.... -# echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.conf -.... +HFS/HFS+ была основной файловой системой для MacOS до APFS, часто использовалась на старых устройствах Mac и внешних накопителях. FreeBSD предоставляет поддержку только для чтения HFS/HFS+ через пакет package:filesystems/hfsfuse[]. -==== Восстановление RAID-Z +Для использования HFS/HFS+ в FreeBSD установите пакет package:filesystems/hfsfuse[], загрузите модуль ядра FUSE и смонтируйте файловую систему, как показано ниже: -Каждая система программных RAID массивов предоставляет возможность отображать информацию о своем `состоянии`. ZFS - не исключение. Статус устройств RAID-Z может быть просмотрен при помощи следующей команды: +Установите пакет HFS/HFS+: -[source,shell] +[source, shell] .... -# zpool status -x +# pkg install fusefs-hfsfuse .... -Если пулы исправны и всё нормально, возвратится следующее сообщение: +Прежде чем использовать файловую систему FUSE, загрузите модуль ядра man:fusefs[5]: -[source,shell] +[source, shell] .... -all pools are healthy +# kldload fusefs .... -А если есть какие-то неполадки, например диск выведен из массива, возвращенное состояние пула будет подобным следующему: +Используйте man:sysrc[8] для загрузки модуля при запуске: -[source,shell] +[source, shell] .... - pool: storage - state: DEGRADED -status: One or more devices has been taken offline by the administrator. - Sufficient replicas exist for the pool to continue functioning in a - degraded state. -action: Online the device using 'zpool online' or replace the device with - 'zpool replace'. - scrub: none requested -config: - - NAME STATE READ WRITE CKSUM - storage DEGRADED 0 0 0 - raidz1 DEGRADED 0 0 0 - da0 ONLINE 0 0 0 - da1 OFFLINE 0 0 0 - da2 ONLINE 0 0 0 - -errors: No known data errors +# sysrc kld_list+=fusefs .... -Вывод показывает, что устройство было переведено в автономный режим администратором. Это верно для данного отдельного примера. Чтобы перевести диск в автономный режим, была выполнена команда: +Смонтируйте том HFS/HFS+, указав его имя раздела FreeBSD и существующую точку монтирования. В этом примере монтируется [.filename]#/dev/ada0s1# в [.filename]#/mnt#: -[source,shell] +[source, shell] .... -# zpool offline storage da1 +# hfsfuse /dev/ada0s1 /mnt .... - -Теперь после останова системы возможно заменить [.filename]#da1#. Когда система загрузится снова, выполните следующую команду чтобы заменить диск в массиве: - -[source,shell] -.... -# zpool replace storage da1 -.... - -С этого момента статус может быть проверен опять и на этот раз без флага `-x`: - -[source,shell] -.... -# zpool status storage - pool: storage - state: ONLINE - scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008 -config: - - NAME STATE READ WRITE CKSUM - storage ONLINE 0 0 0 - raidz1 ONLINE 0 0 0 - da0 ONLINE 0 0 0 - da1 ONLINE 0 0 0 - da2 ONLINE 0 0 0 - -errors: No known data errors -.... - -В выводе сообщается, что при перестроении массива ошибок обнаружено не было. - -==== Проверка данных - -Как уже было сказано ранее, ZFS использует `контрольные суммы` для проверки целостности сохраненных данных. Подсчет и сохранение контрольных сумм включается автоматически во время создания файловых систем и может быть отключен при помощи команды: - -[source,shell] -.... -# zfs set checksum=off storage/home -.... - -Отключение подсчета контрольных сумм - не очень хорошая идея; особенно ввиду того, что они занимают мало места, а также при их использовании нет существенных расходов ресурсов системы. Пока подсчет включен, возможно выполнять проверки целостности данных ZFS, используя контрольные суммы. Этот процесс известен как "очистка (scrubbing)". Чтобы проверить целостность данных пула `storage`, выполните следующую команду: - -[source,shell] -.... -# zpool scrub storage -.... - -Этот процесс может занять значительное время в зависимости от количества сохранённых данных. Очистка (scrubbing) порождает интенсивный ввод/вывод, поэтому только один экземпляр этой операции может выполняться в один момент времени. После завершения очистки (scrubbing) статус обновится, его можно просмотреть выполнив следующий запрос: - -[source,shell] -.... -# zpool status storage - pool: storage - state: ONLINE - scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008 -config: - - NAME STATE READ WRITE CKSUM - storage ONLINE 0 0 0 - raidz1 ONLINE 0 0 0 - da0 ONLINE 0 0 0 - da1 ONLINE 0 0 0 - da2 ONLINE 0 0 0 - -errors: No known data errors -.... - -Время завершения отображается в простом виде в этом примере. Очистка помогает удостовериться в целостности данных на протяжении длительного времени. - -В этом разделе была освещена лишь малая часть возможностей ZFS. За более подробной информацией обратитесь к страницам справочника man:zfs[8] и man:zpool[8]. |