Файловые системы. Все файловые системы для любой UNIX-совместимой операционной системы можно разделить на две группы: родные (native) и прочие

Все файловые системы для любой UNIX-совместимой операционной системы можно разделить на две группы: родные (native) и прочие. К родным относятся файловые системы, которые могут выступать в роли корневой файловой системы. Ко второй группе — все остальные файловые системы. Поддержка прочих файловых систем неизбежна — как минимум нужно поддерживать файловую систему CD9660 (для чтения с компакт-дисков) и VFAT/FAT32 (для чтения/записи флешки).

Несколько неоднозначна эта ситуация в Linux. Родными для нее являются файловые системы ext2, ext3 и ext4, но та же ReiserFs также подходит для монтирования в качестве корневой файловой системы Linux. С одной стороны, ReiserFS никогда не была родной для нее файловой системой, поскольку ее поддержка в Linux появилась существенно позже, чем сама Linux, с другой стороны — корневая файловая система Linux может находиться на разделе, отформатированном как ReiserFS.

Для FreeBSD (OpenBSD, NetBSD) родными являются файловые системы UFS (UNIX File System), UFS2 (64-разрядная версия UFS) и, с недавнего времени, ZFS (Zettabyte File System), поддержка которой впервые появилась в FreeBSD 7.0, а, начиная с восьмой версии, уже больше не является экспериментальной.

Файловая системаUFS. До 2000 года в Linux господствовала файловая система ext2: обычная ext безнадежно устарела, ext3 была еще на стадии разработки и утверждения, XFS была портирована на Linux только в 2001 году, ReiserFS только-только была включена в ядро, а JFS еще не была настолько распространена. Другими словами, у Linux-пользователя альтернативы не было и приходилось использовать только ext2.

В FreeBSD тогда господствовала такая же ситуация, но с файловой системой UFS. Альтернатив не было. А производительность UFS в то время (2000–2002 годы) на фоне ext2 оставляла желать лучшего. При всех своих преимуществах FreeBSD при операциях с файлами выглядела неповоротливым монстром. С появлением механизма SoftUpdates (далее SU, механизм, обеспечивающий восстановление целостности данных после краха системы) для UFS ситуация стала лучше: пара UFS+SU почти догоняла ext2 и обеспечивала примерно такую же производительность, как ReiserFS того времени (которая была тогда еще достаточно сырой).

В пятой версии FreBSD появилась файловая система UFS2. В нее было добавлено множество преимуществ. Самые основные заключались в 64-разрядности, благодаря чему поддерживались большие разделы, в фоновой проверке после сбоев и т. д. Но по производительности лидером оставалась ext2.

Несколько улучшить производительность UFS2 можно двумя способами: монтировать ее в асинхронном режиме (добавить опцию async в файл /etc/fstab) или организовать программный RAID-массив с помощью драйвера CCD.

Но эти способы имеют и свои недостатки. В первом случае снижается надежность (работа в асинхронном режиме чревата потерей данных), а во втором — понадобится как минимум два жестких диска. К тому же при монтировании в асинхронном режиме нельзя включить SU. Но даже если мы пойдем на потери (либо надежности, либо финансов — при покупке второго жесткого диска), производительность UFS2 все равно будет ниже, чем у ext2 без всяких "извращений".

Тем не менее в 2005 году файловой системе UFS2 повезло. Получили широкое распространение SATA-винчестеры. Оказалось, что на таком оборудовании UFS2 способна раскрыть свой потенциал. Если сравнивать производительность UFS на обычном винчестере EIDE (ATA) и на SATA-винчестере, то в последнем случае прирост производительности составил 100 % — т. е. производительность возросла в два раза!

Вскоре произошло еще одно событие — в FreeBSD появилась поддержка ZFS, которая является не только файловой системой, но и менеджером томов.

При копировании множества мелких файлов лидером является ZFS — она более чем в два раза быстрее, чем UFS2. Самой медленной в этом случае является ext3, а файловые системы ext2 и ReiserFS находятся примерно на одинаковом уровне (но обе быстрее, чем ext3). Итак, первое место — ZFS, второе — UFS2, третье — ext2 и ReiserFS, четвертое — ext3.

(копирование музыкальных файлов)

При копировании файлов среднего размера (от 1 до 10 Мбайт) быстрее всех — ext3, второе место — файловые системы UFS2 и ReiserFS (примерно на одинаковом уровне), третье место — ext2, последнее место — ZFS. Тут полный провал, поскольку ZFS в этом тесте оказалась в два раза медленнее, чем ext3.

(копирование дерева портежей)

Теперь проведем третий тест — копирование больших файлов, таких как ISO-образы или видеофайлы (размер файла от 600 Мбайт). Самая быстрая — ZFS, затем с небольшим отрывом следуют файловые системы ext3 и ReiserFS (второе место), третье место — UFS2, четвертое место — ext2.

(копирование iso файла)

(копирование avi файла)

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

Однако не следует использовать ZFS на старом оборудовании. Она достаточно требовательна к оперативной памяти, поэтому даже не пытайтесь поставить ее на компьютер с менее чем 1 Гбайт оперативной памяти, — результат будет прямо противоположным. Вместо прироста производительности вы получите медленную и прожорливую систему.

Самые интересные факты о ZFS
Параметр Значение
Количество файлов в любой отдельной файловой системе 248
Максимальный размер файловой системы 16 эксабайт (264 байт)
Максимальный размер одного файла 16 эксабайт (264 байт)
Максимальный размер одного пула хранения (zpool) 3 × 1023 петабайт
Количество атрибутов файла 248
Количество файлов в каталоге 248
Количество устройств в любом пуле (zpool) 264
Количество пулов в системе 264
Количество файловых систем в пуле 264

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: