Показать меню

NILFS

17.12.2020
26

NILFS (англ. New Implementation of a Log-structured File System — Новая реализация журнально-структурированной файловой системы) — журнально-структурированная файловая система, реализованная для ядра Linux. Разработка была начата компанией Nippon Telephone and Telegraph CyberSpace Laboratories (часть Nippon Telegraph and Telephone Corporation), которая впоследствии выпустила её под лицензией GNU GPL.

Поддержка ОС

NILFS была внедрена в ядро Linux начиная с версии 2.6.30. Начиная с версии 2.6.30 ядра Linux, понадобится (?возможно) загрузить только утилитный пакет с сайта разработчика https://nilfs.sourceforge.io. Отдельно, BSD лицензированная реализация, в настоящее время ограниченная read-only, включена в NetBSD.

Возможности

Будучи журнально-структурированной файловой системой (одна из разновидностей технологии «копирования-при-записи»), NILFS записывает данные в специальные журналоподобные файлы, при этом никогда их не перезаписывая, что позволяет минимизировать время поиска информации и избежать возможной потери данных, характерной для других файловых систем. Для примера, такая потеря может произойти на файловой системе ext3 при крахе компьютера в момент, когда производилась запись: после перезагрузки запись в журнале будет отменена и частично записанные данные потеряются.

Некоторые файловые системы, такие как UFS и ZFS, использующиеся в FreeBSD и ОС Solaris, предоставляют возможность делать мгновенные снимки данных для предотвращения их потери или для резервного копирования, при этом замедления работы операций с файлами (чтение, запись), в отличие от снапшотов LVM, не происходит. NILFS позволяет непрерывно и автоматически «сохранять» мгновенные состояния файловой системы без прерывания работы, в соответствии с документацией NTT Labs . При этом вместо резервного копирования старых данных используется запись новых в другие блоки, что позволяет экономить ресурсы системы по сравнению с технологией мгновенных снимков.

Эти «мгновенные состояния» — «контрольные точки», которые NILFS непрерывно сохраняет, могут быть примонтированы в режиме только для чтения, в то же самое время, когда актуальная файловая система примонтирована в режиме чтения и записи. Эта возможность может оказаться полезной для восстановления данных после краха системы, вызванного неисправностями оборудования или программными ошибками. Команда «lscp» («list checkpoint» — «список контрольных точек») интерактивной утилиты «inspect» для NILFS используется для получения адреса нужной контрольной точки, в данном примере «2048»:

# inspect /dev/sda2 ... nilfs> listcp 1 6 Tue Jul 12 14:55:57 2005 MajorCP|LogiBegin|LogiEnd 2048 2352 Tue Jul 12 14:55:58 2005 MajorCP|LogiEnd ... nilfs> quit

Затем адрес контрольной точки используется для монтирования:

# mount -t nilfs -r -o cp=2048 /dev/sda2 /nilfs-cp # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 70332412 8044540 62283776 12% /nilfs /dev/sda2 70332412 8044540 62283776 12% /nilfs-cp

Дополнительные возможности

  • Малое время записи и восстановления данных
  • Минимальные повреждения файловых данных и целостности системы при аппаратных сбоях.
    • 32-битные контрольные суммы (CRC32) для контроля целостности данных и метаданных (для групп блоков, для отдельных сегментов)
    • Запись данных и метаданных в правильном порядке
    • Резервные копии суперблока
  • Блоки файлов и inode-ов управляются B-tree структурой
  • 64-битные внутренние данные
  • Поддержка больших файлов (8 Эксабайт)
  • Размер блоков меньше размера страницы (напр. 1 кб. или 2 кб.)
  • Online resizing (начиная с Linux-3.x и nilfs-utils 2.1)
Еще по этой теме:
KSM
05:23, 17 декабрь
KSM
KSM (англ. kernel same-page merging, иногда трактуется как kernel shared memory) — технология ядра Linux, которая позволяет ядру объединять одинаковые страницы памяти между различными процессами или
quagga
11:09, 16 декабрь
quagga
Quagga — пакет свободного программного обеспечения, поддерживающий протоколы динамической маршрутизации IP. Компьютер с установленным и сконфигурированным пакетом Quagga становится способен
X32 ABI
15:01, 11 декабрь
X32 ABI
x32 ABI — находящийся в стадии разработки проект двоичного интерфейса приложений для Linux, который позволяет компилировать программы для x32 ABI и работать в 64-разрядном режиме x86-64 с
Slax
11:01, 11 декабрь
Slax
SLAX — Live CD-дистрибутив Linux на базе Debian (до 9 версии на Slackware), который разрабатывается Томашем Матейжиком. Пакеты могут быть добавлены менеджером пакетов apt или могут быть подготовлены
YaST
20:55, 04 декабрь
YaST
YaST (Yet another Setup Tool) — программный пакет, появившийся в дистрибутиве SuSE Linux, как проприетарная утилита конфигурации операционной системы и установки/обновления пакетов с ПО. В настоящий
Worker (файловый менеджер)
16:44, 02 декабрь
Worker (файловый менеджер)
Worker — файловый менеджер для Linux и других UNIX-подобных операционных систем. Написан на С++ с использованием только стандартной X11-библиотеки xlib и библиотеки avfs для работы с виртуальной
Комментарии:
Добавить комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent