НИЛЬФЫ - NILFS

НИЛЬФЫ
Разработчики)Nippon Telegraph and Telephone Кибер-космические лаборатории
Полное имяНовая реализация файловой системы с лог-структурой
Введено2005; 15 лет назад (2005) с участием Ядро Linux 2.6.13
Структуры
Размещение файловB-дерево
Пределы
Максимум. размер тома8 EiB
Максимум. размер файла8 EiB
Максимум. длина имени файла255 байт
особенности
Даты записанывремя (запланировано)
Разрешение даты64-битные метки времени на диске
АтрибутыPOSIX с планами расширенных атрибутов
Разрешения файловой системыPOSIX, с планами ACL[1]
Прозрачное сжатиеНет
Прозрачное шифрованиеНет
Копирование при записида
Другой
Поддерживается операционные системыЯдро Linux, (Только чтение для NetBSD )

НИЛЬФЫ или NILFS2 (Nфу яреализация Log-структурированный File Sсистема) это файловая система с лог-структурой реализация для Ядро Linux. Его разрабатывают Nippon Telegraph and Telephone Corporation (NTT) Киберпространственные лаборатории и сообщество со всего мира. NILFS был выпущен на условиях Стандартная общественная лицензия GNU (GPL).

дизайн

«NILFS - это файловая система с журнальной структурой, в которой носитель данных рассматривается как кольцевой буфер, и новые блоки всегда записываются до конца. […] Файловые системы с журнальной структурой часто используются для флэш-носителей, поскольку они естественным образом изнашиваются. leveling; […] NILFS делает упор на моментальные снимки. Подход с лог-структурой - это особая форма поведения копирования при записи, поэтому он, естественно, поддается созданию моментальных снимков файловой системы. Разработчики NILFS говорят о создании «непрерывных моментальных снимков». который можно использовать для восстановления после проблем с файловой системой, инициированных пользователем […]. "[2]

С помощью копирование при записи Метод, известный как «ничто в жизни не является бесплатным», NILFS записывает все данные в непрерывном журнальном формате, который только добавляется, но никогда не перезаписывается. Этот подход разработан для сокращения время поиска, а также минимизировать вид потеря данных это происходит после сбоя в обычных файловых системах. Например, потеря данных происходит на ext3 файловые системы, когда система аварии во время операции записи. Когда система перезагружается, то журнал отмечает, что запись не завершена, и любые частичные записи данных потеряны.

Некоторые файловые системы, например файловые системы на основе UFS, используемые Операционная система Solaris и BSD, обеспечить снимок функция, которая предотвращает[нужна цитата ] такая потеря данных, но конфигурация моментального снимка может занять много времени в больших файловых системах. NILFS, напротив, может «постоянно и автоматически [сохранять] мгновенные состояния файловой системы без прерывания обслуживания», согласно NTT Labs.[3]

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

# inspect / dev / sda2 ... nilfs> listcp 1 6 Вт 12 июля, 14:55:57 2005 MajorCP | LogiBegin | LogiEnd2048 2352 Вт 12 июля 14:55:58 2005 MajorCP | LogiEnd ... nilfs> выйти

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

# mount -t nilfs -r -o cp = 2048 / dev / sda2 / nilfs-cp # dfFilesystem Используется 1K-блоков Доступно Использование% Установлено на / dev / sda2 70332412 8044540 62283776 12% / nilfs / dev / sda2 70332412 8044540 62283776 12 % / nilfs-cp

особенности

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

Непрерывное создание снимков не обеспечивается большинством файловых систем, включая те, которые поддерживают моментальные снимки на определенный момент времени (например, Btrfs )

NILFS создает несколько контрольных точек каждые несколько секунд или для каждой синхронной записи (если нет изменений). Пользователи могут выбирать важные версии среди постоянно создаваемых контрольных точек и могут изменять их в моментальные снимки, которые будут сохраняться до тех пор, пока они не будут преобразованы обратно в контрольные точки.

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

Возможные варианты использования NILFS включают управление версиями, обнаружение несанкционированного доступа, SOX ведение журнала соответствия, восстановление данных после потери.

Текущая основная версия NILFS - это версия 2, которая называется NILFS2. NILFS2 реализует онлайн-сборку мусора для освобождения дискового пространства с сохранением нескольких снимков.

Другие функции NILFS включают:

  • B-дерево на основе управления файлами и индексными дескрипторами.
  • Немедленное восстановление после сбоя системы.
  • 64-битные структуры данных; поддержка множества файлов, больших файлов и дисков.
  • 64-битные метки времени на диске, которые не содержат проблема 2038 года.

Текущее состояние

Поддерживаемые функции

  • Основные функции файловой системы POSIX
  • Снимки
    • Принимаются автоматически и непрерывно
    • Нет ограничений на количество снимков до заполнения тома
    • Возможность монтирования как файловые системы только для чтения
    • Возможность монтирования одновременно с монтированием с возможностью записи (удобно для создания согласованных резервных копий во время использования)
    • Быстрый список
  • Фоновая сборка мусора
    • Может поддерживать несколько снимков
    • Выбираемая политика GC, которая предоставляется демоном пользователя.
  • Быстрое восстановление после сбоя на креплении
  • Упреждающее чтение файлов метаданных, а также файлов данных
  • Размеры блоков меньше размера страницы (например, 1 КБ или 2 КБ)
  • Изменение размера онлайн (начиная с Linux-3.x и nilfs-utils 2.1)
  • Сопутствующие коммунальные услуги (предоставлено Джиро СЕКИБА)
    • grub2
    • util-linux (монтирование blkid, libblkid, uuid)
    • удиски, палимпсест
    • Метка файловой системы (nilfs-tune)

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

  • Быстрая запись и восстановление
  • Минимальный ущерб файловым данным и целостности системы при отказе оборудования
    • 32-битный контрольные суммы (CRC32 ) по данным и метаданным для обеспечения целостности (для каждой группы блоков в сводке по сегментам) [4] [5]
    • Правильно упорядоченные данные и запись метаданных
    • Избыточный суперблок
  • Внутренние данные обрабатываются в формате слова шириной 64 бита.
  • Может создавать и хранить огромные файлы (8 EiB )

Совместимость с ОС

РаспределениеОписание
DebianNILFS доступен в Debian 5.0 и новее.
UbuntuNILFS доступен в Ubuntu 9.10 и новее.
CentOSx86 и x86_64 для CentOS 6 и x86_64 для Centos 7 доступны на [1].
FedoraДля использования NILFS в Fedora 14 ~ 16 требуется сборка и установка nilfs-utils-2.1. Для Fedora 15 и новее пользователю также необходимо собрать модуль ядра NILFS2 с объясненными шагами.
openSUSEi586 и x86_64 для openSUSE и SUSE Linux Enterprise доступны в службе сборки openSUSE.
GentooNILFS доступен в Gentoo Linux. Загрузочный компакт-диск с NILFS доступен на PrRescue
Arch LinuxNILFS доступен в Arch Linux.
Linux MintNILFS доступен в Linux Mint.
NixOSNILFS доступен в NixOS.
  • NILFS был объединен с ядром Linux 2.6.30.[6]
  • В дистрибутивах, где NILFS доступен прямо из коробки, пользователю необходимо загрузить пакет nilfs-utils (или nilfs-tools), следуя инструкциям из [2].

Отдельный, BSD лицензионная реализация, в настоящее время с только чтение поддержка, входит в NetBSD.[7]

Относительная производительность

В презентации в январе 2015 г. SD-карты и файловые системы для встроенные системы в Linux.conf.au, было сказано:[8]

Если у вас есть рабочая нагрузка, чувствительная к задержкам, вы можете использовать NILFS. Если у вас есть тот, который чувствителен к пропускной способности, вы можете использовать F2FS.

— Питер Чабб

NILFS2 работает намного лучше с большим количеством мелких файлов, чем F2FS или EXT4.

— Питер Чабб

Лицензия

Утилиты файловой системы NILFS2 доступны по лицензии GNU Public License версии 2, за исключением библиотек lib / nilfs и их файлов заголовков, которые доступны по лицензии GNU Lesser General Public License версии 2.1.

Разработчики

Основные японские авторы и основные участники nilfs-utils которые работали или работают в лабораториях NTT Corporation:

  • Рюсукэ Кониси (основной сопровождающий, 02/2008-настоящее время)
  • Кодзи Сато
  • Нарухико Камимура
  • Сейджи Кихара
  • Ёсидзи Амагай
  • Хисаши Хифуми и
  • Сатоши Мориаи.

Другие основные участники:

  • Андреас Ронер [9]
  • Дэн МакГи
  • Дэвид Арендт
  • Дэвид Смид
  • Dexen deVries
  • Дмитрий Смирнов
  • Эрик Сандин
  • Дзиро СЕКИБА
  • Маттео Фриго
  • Хитоши Митаке
  • Такаши Иваи
  • Вячеслав Дубейко

Смотрите также

использованная литература

  1. ^ «Текущий статус NILFS».
  2. ^ https://lwn.net/Articles/238923/
  3. ^ «Статья о НИЛФ». Получено 2008-07-28.
  4. ^ NILFS версия 1: обзор
  5. ^ не проверяет: Re: Проверяет ли nilfs2 контрольную сумму всех данных?; ядро 4.4.38-v7 + тоже не проверяет.
  6. ^ Ядро Linux 2.6.30 отсутствует, включает файловую систему NILFS2
  7. ^ NiLFS (2) исходный коммит
  8. ^ Питер Чабб. «SD-карты и файловые системы для встраиваемых систем». Linux.conf.au.
  9. ^ https://www.complang.tuwien.ac.at/Diplomarbeiten/rohner18.pdf

внешние ссылки