Jump to content

НОВА (файловая система)

НОВЫЙ
Разработчик(и) Цзян (Андирий) Сюй, Лу Чжан, Стивен Суонсон, Калифорнийский университет, Сан-Диего , факультет компьютерных наук и инженерии
Предварительный выпуск
Ядро Linux 4.13 [1]
Написано в С
Операционная система Линукс
Тип файловой системы Драйвер
Лицензия лицензия GPL
Веб-сайт github /НВСЛ /linux-nova

Файловая система NOVA для ( энергонезависимая память ускоренная ) — это файловая система с открытым исходным кодом и журнальной структурой с байтовой адресацией постоянной памяти (например, энергонезависимого модуля двухрядной памяти (NVDIMM) и модулей DIMM 3D XPoint) для Linux. .

NOVA разработана специально для постоянной памяти с байтовой адресацией и направлена ​​на обеспечение высокопроизводительных, атомарных операций с файлами и метаданными, а также отказоустойчивости. Для достижения этих целей NOVA сочетает в себе несколько методов, применяемых в других файловых системах. NOVA использует структуру журнала , копирование при записи (COW), ведение журнала и обновления метаданных с журнальной структурой для обеспечения надежных гарантий атомарности , а также использует комбинацию репликации, контрольных сумм метаданных и четности RAID 4 для защиты данных и метаданных от ошибок носителя. и программные ошибки. Он также поддерживает контрольные точки для облегчения резервного копирования.

Файловая система

[ редактировать ]

NOVA была разработана в Калифорнийском университете в Сан-Диего , в Лаборатории энергонезависимых систем факультета компьютерных наук и инженерии. [2] [3] Первоначально патчи были доступны для версии 4.12 ядра Linux . [4] По состоянию на 2017 год он ограничен Linux x86-64 и не готов к слиянию с исходным ядром. [3]

Структура журнала

[ редактировать ]

NOVA — это прежде всего файловая система с журнальной структурой, но она отличается от других файловых систем с журнальной структурой в нескольких отношениях. Во-первых, вместо использования единого журнала для всей файловой системы, каждый индексный дескриптор имеет свой собственный специальный журнал, в котором регистрируются обновления индексного дескриптора. [3] Это позволяет повысить параллелизм при файловых операциях, поскольку разные потоки могут работать с индексными узлами параллельно. Во-вторых, журналы не содержат данных файлов, а только обновления метаданных, в результате чего журналы становятся меньше. В-третьих, логи не хранятся в физически непрерывной памяти. Вместо этого NOVA хранит журналы в связанном списке страниц памяти размером 4 КБ.

NOVA использует журналы для обеспечения атомарности операций, влияющих на один файл (например, запись в файл или изменение его метаданных). Для этого NOVA записывает запись в пустое пространство после конца журнала, а затем атомарно обновляет указатель индексного дескриптора на конец журнала.

Копирование при записи

[ редактировать ]

NOVA использует копирование при записи (COW) для обновления данных файла. Когда программа записывает данные в файл, NOVA выделяет несколько неиспользуемых страниц памяти для хранения данных и записывает в них данные. Затем он добавляет в журнал индексного дескриптора запись, указывающую на новые страницы и описывающую их логическое расположение в файле. Поскольку добавление записи журнала является атомарным, запись также является атомарной.

Ведение журнала

[ редактировать ]

Некоторые файловые операции (например, перемещение файла из одного каталога в другой) требуют изменения нескольких индексных дескрипторов. Чтобы сделать эти операции атомарными, NOVA использует простые механизмы журналирования . Сначала он записывает новые записи журнала в концы индексных дескрипторов, на которые повлияет операция, затем использует журнал для записи необходимых обновлений указателей хвостов журнала индексных дескрипторов. Затем он помечает журнал как зафиксированный и применяет обновления к хвостовым указателям.

Защита метаданных

[ редактировать ]

NOVA использует репликацию и контрольные суммы для обеспечения защиты от повреждения метаданных из-за ошибок носителя и ошибок программного обеспечения . Каждая структура метаданных (например, индексные дескрипторы, суперблоки и записи журнала) содержит контрольную сумму CRC32 , которая позволяет NOVA определять, изменилось ли содержимое структур с ее знанием. NOVA также хранит две копии каждой структуры данных – «основную» и «реплику» – и хранит их в памяти далеко друг от друга.

Всякий раз, когда NOVA обращается к структуре метаданных, она сначала пересчитывает контрольную сумму как на первичной, так и на реплике. Если какая-либо проверка приводит к несоответствию, NOVA устраняет повреждение, используя другую копию. Если ни одна из контрольных сумм не совпадает, структура теряется и NOVA возвращает ошибку.

Защита данных

[ редактировать ]

NOVA использует RAID 4 для защиты файловых данных. Он делит каждую страницу размером 4 КБ на полосы по 512 байт и сохраняет полосу четности в выделенной области постоянной памяти. Он также вычисляет (и сохраняет копию) контрольную сумму CRC32 для восьми полос данных и полосы четности.

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

  1. ^ «Линукс Нова» . Проверено 21 сентября 2017 г. — через GitHub .
  2. ^ «NOVA: новейшая файловая система Linux, разработанная для постоянной памяти — Phoronix» . Фороникс .
  3. ^ Перейти обратно: а б с «Файловая система NOVA [LWN.net]» . LWN.net .
  4. ^ «NOVA: новая файловая система для постоянной памяти [LWN.net]» . LWN.net .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d663b58852b7a563283f62362ca34e81__1709071560
URL1:https://arc.ask3.ru/arc/aa/d6/81/d663b58852b7a563283f62362ca34e81.html
Заголовок, (Title) документа по адресу, URL1:
NOVA (filesystem) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)