WAFL (Write Anywhere File Layout)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:35, 23 января 2019.
WAFL
Полное название Write Anywhere File Layout
Limits
Макс. размер тома до 100 TB (зависит от платформы; до 16 TB при использовании дупликации)
Макс. размер файла до 16 TB
Features
Даты зарегистрирован atime, ctime, mtime
Разрешения файловой системы как в UNIX
Прозрачное сжатие Да (Ontap 8.0 onwards)
Транспорантное шифрование Нет (Возможно при использовании сторонних приложений)
Дедупликация данных Yes (FAS Dedup: переодическое сканирование блоков)
Другие
Операционная система Data ONTAP

WAFL (англ. Write Anywhere File Layout — «Файловая структура с записью повсюду») — внутренняя высокопроизводительная файловая система, используемая в специализированной ОС Data ONTAP в сетевых системах хранения данных компании NetApp. В WAFL используется способ, при котором блоки данных, записанные один раз, в дальнейшем не перезаписываются, а при необходимости перезаписи блока данных внутри файла, из пула свободных блоков файловой системы выделяется пустые блоки, в которые и направляется запись, после чего в «таблице размещения файлов» переставляется указатель со старых блоков на новый. Такой способ организации записи позволяет использовать очень простую и эффективную схему создания снэпшотов, то есть мгновенных «снимков состояния» данных.

Несмотря на то, что WAFL традиционно принято считать "файловой системой", ряд особенностей её работы и организации данных в ней являются уникальными, и необычными для того, что принято считать присущим традиционной файловой системе. Так, например, с 2003 года NetApp успешно использует WAFL для организации хранения блочных (SAN) данных, дополнив этой возможностью традиционную для систем хранения NetApp роль файловой (NAS) организации объектов хранения. Как блочное, так и файловое хранение организовано поверх методов управления и адресации данных в WAFL, независимо друг от друга.

С использованием идей, лежащих в основе WAFL и глубоко разработанных в продуктах компании NetApp создана также новая файловая система компании Sun Microsystems - ZFS (Zettabyte File System).

Причины создания

Тестирование целостности файловой системы в случае нештатной остановки (fsck) у FFS на тот момент делалось неприемлемо медленно. С увеличением размеров файловой системы ситуация все более ухудшалась, что делало практически невозможной н идею объединить все диски в единый дисковый том с единым пространством. Нужно было сделать максимально простое в использовании устройство. Для этого надо было объединить все диски в единую файловую систему. На тот момент (речь идет о начале 90-х) люди обычно создавали на каждом отдельном диске отдельную файловую систему и монтировали их вместе в общее дерево, что было неудобно и неуниверсально.

Используя много дисков единовременно, с общей файловой системой на них, потребовался бы RAID. На то было две причины. Первая: при объединении сразу множества дисков в единую файловую систему вы рисковали потерять всю файловую систему в результате сбоя одного из множества дисков. Вторая: вероятность сбоя повышалась с увеличением количества дисков. Нам был нужен RAID, и мы решили реализовать RAID просто как часть нашей файловой системы.

Ранее существовавшие файловые системы работали поверх RAID, и ничего не знали о том, как происходит размещение данных на физическом уровне, поэтому не могли оптимизировать свою работу с учетом этих сведений. Построив собственную файловую систему, которая знала все особенности расположения данных на множестве физических дисков, и самостоятельно реализуя RAID, получилось максимально оптимизировать ее работу. Вот поэтому, компания NetApp решила написать свою собственную файловую систему для их устройства[Источник 1].

Принцип работы

Главный принцип, положенный в основу функционирования файловой системы WAFL, отличающий ее от всех тогда существовавших файловых систем, может показаться немного парадоксальным: единожды записанный блок данных в составе файла в дальнейшем не перезаписывается. Он может быть только удален (очищен), но не перезаписан. Таким образом любой блок данных на файловой системе может быть либо «пустым», и тогда он может быть записан, либо «записанным», и тогда он может быть либо считан, либо стерт, когда на него больше не ссылается ни одна запись вышележащей структуры. Запись (перезапись) в уже занятый какими либо данными блок невозможна по внутренней логике файловой системы. Необходимые же изменения содержимого записанного файла «дописываются» к нему, на свободное пространство файловой системы. Весь принцип работы WAFL изложен на рисунке 1.

Рисунок 1 – Принцип работы WAFL

Такая своеобразная модель позволяет получить две важных особенности использования:

  • Превратить случайные (random) записи на систему хранения в последовательные (sequental).
  • Легко и эффективно организовать так называемые Snapshots, снэпшоты, или мгновенные «снимки» состояния данных на дисках. [Источник 2]

Подробнее о системе WAFL можно узнать в официальной документации от NetApp — WAFL.pdf.

Преимущества

Выбранная схема работы файловой системы имеет множество преимуществ, в их числе, кроме простоты создания «мгновенных снимков»-snapshots:

  • высокая производительность файловой системы на запись. Так как нет необходимости производить поиск нужного места и дожидаться позиционирования туда головок жестких дисков для проведения записи/перезаписи (данные могут записываться «повсюду») появилась возможность записывать «случайные» записи в «последовательном» порядке, что гораздо эффективнее для быстродействия дисков, особенно для задач с большим процентом небольших записей в «случайном» порядке (базы данных OLAP/OLTP).
  • глубокая интеграция WAFL с «RAID-менеджером» (по сути «уровень RAID» есть часть самой файловой системы) позволяет оптимизировать работу RAID в соответствии с особенностями файловой системы. В частности, это позволило организовать высокоэффективный режим записи «полными страйпами», и, тем самым, преодолеть такой характерный недостаток RAID «чередование с четностью» (RAID типов 3,4,5 и 6) как медленная «случайная» запись, которая, как правило, втрое медленнее, чем на уровнях RAID без четности (RAID типов 0,1,10)
  • возможность создать быстрый RAID типа 6 («чередование с двойной четностью»), защищающий от выхода из строя двух дисков одновременно. Как правило, тип RAID-6 примерно на 10-20 % медленнее аналогичного по набору дисков RAID-5, что ограничивает его широкое применение. На сегодня только с использованием WAFL (RAID-DP) и ZFS (RAID-Z2) можно создать структуру RAID «с двойной четностью» не проигрывающую по быстродействию другим типам RAID.
  • возможность широко использовать так называемый thin provisioning, метод выделения пространства на дисках системы хранения по мере его востребования задачей, что снижает непроизводительный расход пространства на дисках («выделено при создании раздела, но пока не используется»)
  • возможность использовать дедупликацию — процесс анализа и удаления дублирующихся по содержимому блоков данных, заменяемых на ссылки на уже существующий уникальный блок такого содержимого. Дедупликация на уровне файловой системы становится полностью прозрачна для приложений, и, в случае ряда специфических применений, например хранения образов виртуальных машин, может сокращать объемы занятого на дисках места на 70 % и более. [Источник 2]

Недостатки

Минусом WAFL следует назвать конструктивно присущую ей высокую фрагментацию записанных данных, впрочем эффект фрагментации в целом не слишком сказывается для файловых систем inode-ового (ext2/ext3, UFS и пр.) типа, к которым принадлежит WAFL. Кроме того, используемый принцип организации блоков записываемых данных в экстенты переменной длины также снижает отрицательный эффект фрагментации данных. Результаты экспериментов показывают ухудшение производительности искусственно фрагментированного раздела не более чем на 10-15 процентов от нормы. Также на уровне ОС работает фоновый дефрагментатор, постоянно снижающий степень фрагментации файловой системы. [Источник 2]

Список источников

  1. Abou WAFL // Netapp Inc. [2018]. Дата обновления: 21.06.2007 URL:http://blog.aboutnetapp.ru/archives/19 (дата обращения: 17.01.2019)
  2. 2,0 2,1 2,2 Файловая система WAFL - "фундамент" NetApp // Habr. [2019]. Дата обновления: 13.09.2010 URL: https://habrahabr.ru/company/netapp/blog/99832 (дата обращения: 17.01.2019)