NVFS (Non-Volatile File System)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:10, 16 декабря 2016.
NVFS
Полное название Non-Volatile File System
Содержимое каталога Table
Сбойные блоки Table
Limits
Макс. количество файлов Variable, allocated at creation time[1]
Макс. длина имени файла 64 bytes
Features
Даты зарегистрирован modification (mtime), attribute modification (ctime), access (atime)
Дата резолюции 1s
Разрешения файловой системы Unix permissions
Прозрачное сжатие No
Транспорантное шифрование No
Дедупликация данных No
Другие
Операционная система Linux

NVFS (англ. Non-Volatile File System - Энергонезависимые файловые системы) - это флеш-память файловой системы, разработанная компанией Palm's для моделей КПК Tungsten T5, Tungsten E2, Palm TX, Z22, Treo 650/700/680/755p, и Palm Centro.

Обзор NVFS

NVFS, как утверждает palmOne, это файловая система, разработанная, чтобы сохранить всю информацию в безопасности, если батарея разрядится. В предыдущих конструкциях флэш-памяти все сохраненные данные будут потеряны в случае потери питания. NVFS является производной от флэш-памяти, которая постоянно хранит все данные, даже когда не используется энергия. PalmOne изобрел NVFS в ответ на жалобы о том, что данные из КПК были уничтожены, когда заряд батареи садился. Аналогичная функция была принята для КПК, работающих под управлением ОС Windows Mobile 5.0 и называется "Persistent Storage". Такая память может быть использована в качестве хранилища из-за персистенции данных, без источника питания. Возможна интеграция, которая делает энергонезависимую память одновременно и основной памятью и хранилищем.

Введение

Энергонезависимые файловые системы могут быть использованы в качестве основной памяти из-за их адресации, а так же в качестве вторичного хранилища из-за их персистенции. Такая интеграция позволяет выделять память для процессов и файлов из того же источника, что и прикладные процессы. Таким образом, интеграция улучшает производительность системы. Существует три этапа оценки производительности системы. Во-первых, измерение затрат при распределении оперативной памяти из файловой системы, анализ предварительных результатов эксперимента и улучшение их анализа. Во-вторых, релиз улучшений и их оценка на системном эмуляторе. На данных этапах не учитывается разница в производительности между NV и DRAM. В-третьих, оценка эффектов, вызванных более латентным доступом к памяти NV, путем моделирования полной системы.

Фон работы

Описание новых технологий памяти NV и инфраструктуры Linux, в качестве фона работы.

Память NV

Открытые устройства памяти NV обеспечивают высокую производительность наряду с постоянным хранилищем данных без источника питания. Самые основные устройства памяти, в настоящее время, которые используют электрический заряд для запоминания информации, этоDRAM и FLASH память. Поскольку нужно поддерживать определенную емкость для электрического заряда, то необходимо поддерживать ограничения для записи информации. Для этого существует ограничения масштабирования памяти в DRAM и FLASH. В DRAM так же имеют место другие проблемы, такие как утечка и динамическое обновление. Таким образом NVFS смогут заменить или использоваться вместе с DRAM и FLASH памятью.

Новые устройства памяти NV используют значения сопротивления вместо электрического заряда. Таким образом, они могут поддерживать данные без источника питания и обеспечить стабильность. Технология PCM использует материал халькогенид.. Так как она принимает два состояния, аморфные и кристаллические, и они принимают различные значения сопротивления, его можно использовать для запоминания двоичной информации. Изменение значения означает преобразование материального состояния. Таким образом, преобразование занимает время, чтобы сделать это, а также это сокращает срок его службы. MRAM технология использует магнитный туннельный переход (MTJ). Два ферромагнитных слоев и один туннель барьерный слой составляют MTJ. Один из двух ферромагнитных слоев принимает различные магнитные направления, и разные направления делают различные значения сопротивления. Таким образом, различные магнитные направления могут быть использованы для запоминания двоичной информации. STT-RAM является более новой версии MRAM, и выполняет сравнительно с DRAM. Такая высокая производительность позволяет использовать его таким же образом, какDRAM (Park 2012). В то время как MRAM и STT-RAM более подходят для оперативной памяти, чем ИКМ из-за их более высокой производительности и выносливости, они менее плотные. Таким образом, РСМ больше подходит для применений, требующих большой емкости.

Когда появились технологии NV памяти, были проведены активные исследования их использования для основной памяти или вторичного хранения. PCM впервые считается кандидатом на замену памяти DRAM, поскольку его разработка была более продвинутой, чем MRAM и STT-RAM. Исследования изучали аспекты компьютерной архитектуры. Проведены исследования по построению файловых систем на памяти NV для того, чтобы воспользоваться его байт адресацию и большую емкость.

Инфраструктура файловой системы Linux

Пользовательские процессы взаимодействуют с файловой системой через интерфейс системного вызова. Есть два основных типа интерфейса системного вызова, чтобы иметь дело с файлом. Один непосредственно взаимодействует с файлом, а другой проходит через систему виртуальной памяти. Первый включает в себя традиционные вызовы чтения и записи системы, а второй включает в себя системный вызов mmар. Там может быть несколько файловых систем внутри одного ядра Linux. Они экспортируют общий интерфейс, и управляются под интерфейс виртуальной файловой системы (VFS). Таким образом, интерфейс системного вызова и система виртуальной памяти не нужно учитывать различия внутренней реализации файловых систем. Механизм кэш страниц используется для взаимодействия с блочными устройствами. Поскольку данные о блочных устройствах должны быть переданы в памяти для процессоров, чтобы получить доступ к нему, механизм выделяет физические страницы памяти для кэширования таких данных. Механизм управляет ими буквально на размер страницы, так что они могут также быть использованы непосредственно с помощью системы виртуальной памяти. Драйвер блочного устройства является общим слоем, чтобы взаимодействовать с отдельными драйверами устройств для устройств хранения данных, а также отдельные драйверы устройств имеют дело с устройствами хранения данных для их типов.

Рис. 1. Обзор файловой системы Linux

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

Разработка и внедрение

В этом разделе описывается проектирование и внедрение комплексной главного управления памятью и файловой системы для памяти NV . Реализация описана для ядра Linux.

Целевая структура системы

Компьютерные системы, которые работают с основной памятью NV пока не доступны публично как коммерческие продукты. Поскольку нет типичной архитектурой,которую можно моделировать, разрабатывается архитектура, практичная в качестве целевой системы. В данной работе, 1) используется NV память и память DRAM, чтобы сформировать основную память целевой системы, и 2) помещается оба из них в том же физическом адресном пространстве. Процессоры DRAM доступа и память NV, хотя их шины памяти (SES) с соответствующими физическими адресами; Таким образом, одни и те же инструкции доступа к памяти используются для доступа к ним. На рисунке 2 архитектура памяти целевой системы.

Рис. 2. Целевая структура системы

Так как память NV используется в качестве основной памяти и памяти, она берет обе роли. Методы интеграции, предложенные в данной работе используют файловую систему, которая создается в памяти NV, в качестве основного механизма управления. Файловая система управляет блоками данных, в которых хранятся файлы и каталоги, и предназначены для поддержания данных в рамках всей системы закрытия и запуска. Методы интеграции имеют свободные блоки файловой системы временно используются для основной памяти. Поскольку ядро ​​управляет памятью NV, прямой доступ к нему из пользовательских приложений запрещен, если некоторые страницы не отображаются на их виртуальных адресных пространств для использования основной памяти. Таким образом, внутреннее состояние файловой системы защищено от пользовательских приложений.

Считается, что архитектура, описанная выше, является реалистичной и практичной в качестве целевой системы. Потому что в первую очередь цель - мобильные устройства, такие как ПК, планшеты и смартфоны, применять предлагаемые методы, NV память может удовлетворять требованиям емкости запоминающего устройства, а также дать больше пользы своей энергетической эффективности. В то время как NV память может составлять всю основную память системы, DRAM также полезно для хранения областей данных, которые, как известно, быть энергозависимой и перезаписаны в ближайшее время. Примерами таких областей включают стеки и буферы, используемые для передачи данных. Таким образом, должно быть разумно считать, что память целевой системы состоит из обоих DRAM и памяти NV.

Виртуальная система памяти

Система виртуальной памяти построена на распределителем памяти, которая управляет DRAM, и файловые системы, который управления хранением. Они работают вместе, чтобы сделать систему виртуальной памяти эффективной и гибкой. На рисунке 3 представлена архитектура системы виртуальной памяти. Поскольку хранение NV память для целевой системы, файловая система управляет памятью NV. Когда физические страницы памяти должны быть выделены из памяти DRAM, система виртуальной памяти консультируется с аллокатором памяти. После того, как выделение прошло успешно, он вставляет выделенные страницы в таблице страниц, чтобы отобразить их в виртуальном адресном пространстве. Выделенные страницы, наконец, становятся доступными.

Рис. 3. Виртуальная архитектура памяти

Интеграция основного управления памятью и файловой системы

Поскольку память NV управляет файловой системой, ее физические страницы памяти, которые будут использоваться в качестве основной памяти также должны быть выделены из файловой системы. Такие страницы, однако, как правило, выделяются из распределения памяти; Таким образом, там должно быть путь для выделения памяти для выделения страниц из файловой системы. Таким образом, на рисунке 3, распределяющий памяти и файловой системы должны быть подключены, чтобы создать связь между ними. Такая связь была изначально не подключена. Распределитель памяти может только выделять страницы памяти DRAM без подключения недостающее звено, но он работает просто, потому что DRAM память, которая может быть использована в качестве основной памяти. Когда память NV можно использовать в качестве основной памяти и находится под управлением файловой системы, подключив недостающее звено необходимо для Распределитель памяти для размещения страниц памяти NV и использовать их в качестве основной памяти.

Предварительная оценка и анализ

В этом разделе описывается первый метод оценки.

Метод оценки

Разработка архитектуры целевой системы, описанной в разделе 3.1 на основе системного эмулятора QEMU. QEMU версии 1.0.1 была использована для измерений оценки, и QEMU эмулирует набор инструкций x86_64 архитектуры. Модификация QEMU включает эмуляцию NV памяти, которая постоянно поддерживает его содержимое через закрытие и запуск эмулятора. Содержание эмулируемой памяти NV хранятся в файле, чтобы поддерживать его постоянство. QEMU отображает файл в его эмулируемый физического адресного пространства.

Затраты на распределения страниц

В этом разделе представлены предварительные результаты измерения затрат при распределении основных страниц памяти из файловой системы и сравнивает их с теми, которые используют распределитель памяти и механизм файл подкачки. Интеграция оперативной памяти и управления файловой системы на память NV приносит большой объем физической памяти для пользовательских процессов; Таким образом, такая интеграция должна быть в состоянии устранить необходимость подкачки подкачку и добиться улучшения производительности для выделения большого объема памяти. Для проверки эффективности интеграции, выполняют программу, которая выделяет область памяти с помощью таНос (), и выполняет запись в начале границ страниц для фактического распределения физических страниц памяти. Эти записи необходимы для фактического распределения страниц. Для метода MMAP, система ММАП вызова используется для выделения область памяти, вместо этого.

Рис. 4. Затраты на страницы

Улучшение файловой системы для энергонезависимой оперативной памяти

В этом разделе описываются два усовершенствования файловой системы , разработанной из результатов анализа , описанных в предыдущем разделе. Усовершенствования применяются к PRAMFS.

Кэш-блок

Первое усовершенствование является кэш preallocation блок. Он использует блок для выделенную последующего распределения блоков, и избегает поиска свободного блока для каждого запроса блока. Если Битовые операции можно полностью избежать, накладные расходы могут быть дополнительно снижены.

Кэш блок preallocation представляет собой связанный список свободных блоков из выделенную файловой системы. В ответ на запрос о выделении блока, блок вынимают из связанного списка вместо того, чтобы искать четкий бит в свободный блок битовой карты. Когда список пуст, 64 блока выделяются вместе с файловой системой и добавляется в список. Поиск 64 свободных блоков в битовой карте можно избежать битовые операции. Рассматривая битовый массив как массив 64-битных элементов, поиск 64 свободных блоков просто поиска элемент массива из которых содержание равно 0. Когда блок освобождается, он возвращается в кэш блок preallocation. Если имеется достаточное количество блоков в кэше, освобожденный блок возвращается в файловую систему.

Кэш-память блока preallocation вводится прямой метод для того, чтобы выяснить его эффективность. На рисунке 5 показан результат измерения вместе с найденным на рисунке 6 для сравнения. PRAMFS (прямые ж / кэш) является случай, что кэш блок preallocation применяется к прямому методу. Мы можем видеть, что кэш блок preallocation может существенно снизить стоимость размещения блоков. Стоимость размещения блоков прямого метода с кэшем блок preallocation составляет примерно 55% от стоимости без кэш-памяти, и только 9,8% больше, чем стоимость косвенного метода. В то время как такое же количество сокращения можно ожидать метода MMAP, ожидаемый результат еще не достаточно, чтобы сделать метод ММАП сравнимы с прямыми и косвенными методами.

Рис. 5. Сравнение затрат

Модификация структуры управления свободного блока

Первое улучшение действует только для прямого метода, но не достаточно для метода MMAP. В целях дальнейшего снижения затрат на распределение блоков,изменяют свободную структуру управления блока PRAMFS. Первоначально она использует структуру данных точечного рисунка для управления его свободных блоков. Структура данных растрового изображения эффективно работает для жестких дисков в то время как нет никакой пользы для памяти NV, потому что он не должен брать время искать жестких дисков во внимание. Таким образом, память на основе структуры данных должны работать лучше для памяти NV, чтобы воспользоваться его байт адресацию.

Для проверки вышеуказанного понятия, модифицируют PRAMFS использовать связанный список для свободного управления блока.Выбирают связанный список из-за своей стабильности и наименьшей стоимости реализации. Хорошо известно, что связанный список может быть использован для свободного управления блока файловой системы. Так как целью для этой работы является исследование, как структуры данных, управление файловых систем влияют затраты на распределение памяти, стоимость реализации должна быть сохранена. После того, как мы находим связанный список работает эффективно, рассматривают и другие более функциональные структуры данных для свободного управления блока, такие как система друзей. Ядро Linux предоставляет стандартные операции для основных структур данных, и операции для связанного списка включены. Мы использовали эти операции для добавления и удаления блока в связанный список свободных блоков. Область используется для свободного блока битовой карты была удалена, и в настоящее время используется для блоков данных.

Рис. 6. Сравнение затрат

Примечания

  1. The maximum number of inodes (and hence the maximum number of files and directories) is set when the file system is created. If V is the volume size in bytes, then the default number of inodes is given by V/213 (or the number of blocks, whichever is less), and the minimum by V/223. The default was deemed sufficient for most applications. The max number of subdirectories in one directory is fixed to 32000.

Список источников

  1. Harvard John A. Paulson School of Engineering and Applied Science [Электронный ресурс]: Non-Volatile Memory for Fast, Reliable File Systems / Дата обращения: 18.05.2016. — Режим доступа:https://www.eecs.harvard.edu/margo/papers/asplos92/paper.pdf
  2. Wikipedia [Электронный ресурс]: Non-Volatile File System/ Дата обращения: 18.05.2016. — Режим доступа: https://en.wikipedia.org/wiki/Non-Volatile_File_System
  3. Springer Open [Электронный ресурс]: Non-volatile main memory management methods based on a file system / Дата обращения: 18.10.2016. — Режим доступа:http://springerplus.springeropen.com/articles/10.1186/2193-1801-3-494