XFS | это... Что такое XFS? (original) (raw)
XFS — высокопроизводительная журналируемая файловая система, созданная компанией Silicon Graphics для собственной операционной системы IRIX. 1 мая 2001 года Silicon Graphics выпустила XFS под GNU General Public License. XFS отличается от других ФС тем, что она изначально была рассчитана для использования на дисках большого объёма (более 2 терабайт, см. например, RAID-массивы).
Поддержка XFS была включена в ядро Linux версий 2.4 (начиная с 2.4.25, когда Марчело Тозатти (Marcelo Tosatti) посчитал её достаточно стабильной) и 2.6, и, таким образом, она стала довольно универсальной для Linux-систем. Инсталляторы дистрибутивов openSUSE, Gentoo, Mandriva, Slackware, Ubuntu, Fedora и Debian предлагают XFS как вариант файловой системы для установки. FreeBSD стала поддерживать XFS в режиме чтения в декабре 2005 года.
Особенности
- 64-битная файловая система.
- Журналирование только метаданных (если не задать иное параметрами).
- Выделение места экстентами (Extent — указатель на начало и число последовательных блоков). В экстентах выделяется место для хранения файлов, а также экстентами хранятся свободные блоки.
- B-tree индексы активно используются для хранения различных данных файловой системы: для списка блоков с inode-ами, списка эскстентов с содержимым файла, каталогов файлов, списков экстентов свободных блоков (свободные блоки проиндексированы и по размеру блока, и по расположению). Однако использование b-tree индексов не догма — небольшой файл или каталог может быть размещен прямо внутри inode.
- Отложенное выделение места (Delayed allocation). При записи файла для него выделяется место в памяти, а на диске выделяется место только при записи файла на диск. Таким образом под файл оптимально выделяется место на диске, что уменьшает фрагментацию.
- Изменение размера «на лету» (только увеличение).
- Размещение в нескольких линейных областях (по умолчанию — 4 шт.) т. н. «allocation groups» (увеличивает производительность путём выравнивания активности запросов как к разным дискам на RAID-массивах типа «stripe», так и при асинхронном обращении к файловой системе на обычном диске.)
- Дефрагментация «на лету».
- API ввода/вывода реального времени (для приложений жёсткого или мягкого реального времени, например, для работы с потоковым видео).
- Интерфейс (DMAPI) для поддержки иерархического управления носителями (HSM).
- Инструменты резервного копирования и восстановления (xfsdump и xfsrestore).
- «Индексные блоки» inode выделяются динамически (по мере надобности) и неиспользуемые inode могут освобождаться (высвобождая место для хранения данных).
- Малые «накладные расходы» — размер служебных структур данных. На вновь созданной файловой системе XFS на служебные нужды тратится порядка 0,54 %. Это достигается малым количеством заголовков для групп (allocation groups), а также за счет динамического выделения inode.
Недостатки
- Невозможно уменьшить размер существующей файловой системы.
- Восстановление удалённых файлов в XFS — очень сложный процесс, поэтому на данный момент существует всего лишь несколько программных продуктов для восстановления удаленных файлов с этой файловой системы, например «Raise Data Recovery for XFS» для ОС Windows.
- Возможность потери данных во время записи при сбое питания, так как большое количество буферов данных хранится в памяти при том что метаданные записываются в журнал (на диск) оперативно. Это характерно и для других файловых систем с журналированием метаданных.
См. также
Ссылки
- XFS: A high-performance journaling filesystem
- Advanced filesystem implementor’s guide — Introducing XFS
- Advanced filesystem implementor’s guide — Deploying XFS
- File System Design part 1: XFS by Narayan Newton on madpenguin.org
- Data recovery and file undelete from XFS with Raise Data Recovery for XFS
Файловые системы (список • сравнение) | |
---|---|
Дисковые | ADFS • AdvFS • BeFS • Btrfs • EFS • ext • ext2 • ext3 • ext3cow • Next3 • ext4 • FAT • FATX • VFAT • FFS • Files-11 • GFS • HFS • HFS Plus • XFSX • HPFS • ISO 9660 • JFS • LFS • MFS (Macintosh) • MFS (Tivo) • Minix • MUFS • NWFS • NILFS • NSS • NTFS • Protogon (В разработке) • PFS • Qnx4fs • Qnx6fs • ReiserFS • Reiser4 • SFS • SpadFS • UFS • UFS2 • UDF • VxFS • WinFS • WAFL • XFS • ZFS • Больше... Оптические диски ISO 9660 • UDF Флеш-память/SSD FAT • exFAT (FAT64) • TFAT • FFS2 • JFFS • JFFS2 • LogFS • NVFS • UDF • YAFFS Кластерные Files-11 • GFS • OCFS • QFS • Xsan • Больше... |
Распределённые(сетевые) | AFS • OpenAFS • AFP • Ceph • DFS • GlusterFS • GPFS • Google File System • Lustre • NCP • NFS • POHMELFS • Hadoop • Kosmos • HAMMER • SMB (CIFS) • Больше... |
Специальные | cramfs • FUSE • Squashfs • UMSDOS • UnionFS • Больше... Псевдо- и виртуальные configfs • devfs • procfs • specfs • sysfs • tmpfs • WinFS Шифрованные EncFS • EFS • FSFS • SSHFS • SolFS • ZFS |