Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1308 / 258 | Оценка: 4.34 / 3.65 | Длительность: 21:13:00
Лекция 8:

Концепция, устройство и администрирование файловой системы ZFS

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Ключевые слова: файловая система, SUN Microsystems, администрирование, контроль целостности, транзакционная, значение, текущий каталог, DIMM, администратор, жесткий диск, целостность, блок данных, мощность, процессор, вероятность, совместность, контрольная сумма, метаданные, RAID, CERN, адресация, контроллер, коррекция, Copy, Write, копирование, резервное копирование, POSIX, пул памяти, доступ к файлу, access control, listing, тип файла, размер файла, избыточность, четность, DataSet, непротиворечивость, хранение данных, атомарная операция, SPA, storage, pooling, allocator, DSL, SNAPSHOT, layer, data management, Unit, DML, zap, attribute, processor-specific, 'volume', disk, OS-9, communications, leaf, блочное устройство, root, Своп, загрузочный блок, EFI, описатели, раздел диска, суперблок, UFS, SHA-256, атомарность, endianness, байт, SPARC, intel, AMD, идентифицирующая, block, machinable, versioning, GUID, часовой пояс, UTC, MOS, указатель, виртуальный адрес, offset, slice, отказоустойчивость, ganged, t-бит, разрядность, Data, tail, BIT, security, hashing algorithm, FIPS, COMP, порядок байт, x86, тип данных, тип объекта, счетчик, дескриптор, transaction, корневое дерево, вложенный каталог, косвенная адресация, PHP, архивирование, плата, гигабайт, однопользовательский режим, solaris, expression, build, производительность, сохранность данных, spare, контроль четности, мегабайт, энергия, ultimate, physical, self-limiting, computation, количество информации, переполнение, ввод/вывод, центральный процессор, операция ввода/вывода, логический адрес, LBA, кэш, read-only, последовательным доступом, параллельная запись, Исход, копирование файлов, расширение функции, пропускная способность, открытый файл, запись в файл, создание файла, синхронная запись, системный администратор, надежность, корректность, доступ к данным, создание массива, destroy, Add, create, archiving, клонирование, send, Backup, receiver, откат, Rollback, re-testing, opt, свободное пространство, квота, mail, reserved, freebsd, release, модуль ядра, iscsi, ACL, ядро, лицензия, GPL, присоединение, google, code-named, USER, spacing, kernel space, модуль, fuse, mac, поддержка, guide, manual, setup, boot, physical limitations

Концепция ZFS

Файловая система ZFS была разработана компанией Sun Microsystems для удовлетворения растущих потребностей индустрии. В ее основу положены несколько базовых принципов, которые мы обсудим ниже, а затем перейдем к обсуждению их реализации и конкретным приемам администрирования. Вот эти принципы:

  1. организация всего доступного дискового пространства в единый пул;
  2. сквозной контроль целостности данных;
  3. транзакционность;
  4. легкость администрирования.

Рассмотрим их значение подробнее.

Пулы накопителей вместо разрозненных дисков

Когда запускается какое-нибудь приложение (например, по команде ls – то самое, что покажет вам список файлов в текущем каталоге), оно может запросить у операционной системы определенный объем памяти. Что будет, если не запросит? Ничего страшного: получит минимально необходимое пространство, размер которого указан в заголовке исполняемого файла. А если все-таки запросит, то уж точно не станет указывать, в какой конкретно микросхеме памяти или на каком модуле DIMM ей хочется эту память получить. Потому что от приложения механизм реализации его запроса скрыт.

Ровно в этом и состоит прицип создания пулов накопителей: администратор просто создает пул (это – логическая сущность, т.е. при создании пула возникает его описание в системе – никаких физических объектов не создается) и добавляет в пул имеющиеся в наличии накопители. Например, единственный жесткий диск того компьютера, для работы на котором и создается пул.

Затем администратор волен создать одну или несколько файловых систем внутри пула. Их размер может быть каким угодно – лишь бы хватило физического объема пула. О фактическом размещении файлов и каталогов на одном или нескольких физических носителях внутри пула позаботится драйвер ZFS. Таким образом, при применении ZFS исчезают проблемы, связанные с ошибочным или недальновидным разбиением дисков на разделы, – теперь вы можете устанавливать и снимать ограничения на размер той или иной файловой системы динамически, без всякой связи с физическими размерами дисков или разделов, объединенных в пул.

Сквозной контроль целостности

До последнего времени проверка целостности каждого блока данных, который считывается с диска, казалась неоправданной тратой процессорного времени. Однако сейчас, с лавинообразным ростом мощности процессоров, это оказалось совсем недорого по сравнению с ценой потерь от порчи данных.

Под сквозным контролем целостности понимается запись на диск контрольной суммы для каждого блока данных, причем контрольная сумма и данные специально разносятся максимально далеко друг от друга для снижения вероятности их совместной порчи. Если в пуле несколько устройств, то для данных, размещенных на одном из них, контрольная сумма будет записана на другом. Контрольные суммы вычисляются не только для данных, но и для метаданных, и получается, что в пуле всегда есть контрольная сумма для каждого блока информации.

При считывании любого блока подсчитывается его контрольная сумма и результат сравнивается с контрольной суммой, хранящейся на диске. В случае расхождения ошибка сразу обнаруживается. Разумеется, если в пуле не было запланировано никакого резервирования (ни RAID-Z, ни иного), то ошибку уже не исправишь, но зато испорченные данные не будут выданы за истинные.

Смысл сквозного контроля целостности данных в том, чтобы предотвратить скрытую незаметную порчу данных в результате сбоя оборудования, встроенного программного обеспечения диска или контроллера. Несмотря на то, что вероятность такого события кажется низкой, некоторые исследования показывают, что она вполне значима для организаций разного масштаба. Например, такие данные есть в отчете CERN от 8 апреля 2008 года[ [ 8.1 ] ].

Функциональность сквозного контроля целостности пока предоставляет всего одна файловая система в мире – ZFS.

Разумеется, обеспечить гарантированную сохранность и неизменность данных с момента их записи на диск до момента считывания позволяют только те или иные средства резервирования. Поэтому, если у вас всего один раздел одного жесткого диска, то лучшее, что может предложить ZFS, – это проинформировать вас о том, что с данными непорядок.

Эта функциональность реализована и в других файловых системах, но отличие ZFS в том, что 256-битные контрольные суммы блоков сохраняются не вместе с блоками, а в блоке адресации верхнего уровня, т.е. вместе с адресом блока хранится контрольная сумма адресуемого блока данных. Контрольные суммы считаются по любому объекту, не только по блоку данных, но и по блоку адресации, и если в блоке адресации из-за сбоя при хранении оказался неверный адрес, то система сама определит, что адрес неверный, и ошибочные данные просто не будут выданы по запросу ( рис. 8.1).

Дерево данных и метаданных ZFS

увеличить изображение
Рис. 8.1. Дерево данных и метаданных ZFS

Таким образом, даже если никакого резервирования вы не предусмотрели, ZFS с бОльшей вероятностью, чем традиционные файловые системы, сможет определить при считывании данных, что они повредились между моментами записи и считывания, и вы не получите заведомо неверную информацию. Обычно этого мало: хотелось бы считывать в точности те данные, что были записаны – независимо от проблем с дисками, контроллерами и драйверами.

Транзакционность

Транзакционность ZFS обеспечивается тем, как данные записываются на диск. Операции записи группируются в транзакции, а те, в свою очередь – в группы транзакций. Каждая транзакция, состоящая из операций записи в разные файлы, выполняется так: вначале в свободные блоки пишутся данные, затем записываются метаданные, относящиеся к модифицированным файлам; если запись не прошла до конца, изменения в файлах нигде не будут учтены. Никакой коррекции метаданных в таком случае никогда не требуется, о программе fsck можно забыть. Это иллюстрирует рис. 8.1 Применяемая в ZFS схема называется "copy on write" (копирование-при-записи), – это означает, что по ходу записи новых данных старые не перезаписываются, а остаются записанными "рядом", в других блоках, и файл считается окончательно измененным только после изменения всех метаданных.

Это – существенное преимущество ZFS по сравнению с журналируемыми файловыми системами, которые широко используются в последние годы во всех операционных системах. Дело в том, что при наличии журнала возможна ситуация, когда приложение инициировало две последовательные операции записи на диск, и при этом одна прошла успешно, а до завершения второй произошел, скажем, сбой питания. В такой ситуации файл на диске окажется "недомодифицированным", хотя благодаря журналу метаданные могут остаться согласованными.

В случае с ZFS файл никогда не будет считаться модифицированным до того, как все метаданные – с самого нижнего уровня адресации до самого верхнего – не будут корректно изменены.

Легкость администрирования

Следствием продуманной концепции ZFS стало значительное облегчение работы администраторов с ней. В самом деле, например, для добавления дискового пространства достаточно дать одну-единственную команду, включающую в пул новый накопитель.

Но самое впечатляющее – это то, что теперь можно делать резервные копии всей файловой системы в разгар работы, мгновенно, и всего одной командой! Подробности рассказаны ниже, в разделе "ZFS в работе" в секции "снимки и резервное копирование".

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.