Тема: Разработка файловой системы с поддержкой дедупликации данных
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи 5
1. Обзор существующих решений 6
1.1. LessFS 6
1.2. SDFS 6
1.3. BTRFS 6
1.4. ZFS 7
2. Архитектура VFS 8
2.1. Обзор VFS 8
2.2. Основные определения 9
2.3. Структуры данных VFS 11
3. Проектирование файловой системы 13
3.1. Структура корневой директории 17
3.2. Управление свободной памятью 17
3.3. Создание файла 18
3.4. Чтение файла 18
3.5. Запись в файл 19
3.6. Удаление файла 21
Апробация 22
4.1. mkfs 22
4.2. proc директория 22
4.3. Последовательная запись 23
4.4. Произвольная запись 24
4.5. Тест консистентности 24
4.6. Тестирование QEMU образов 25
Результаты
Список литературы
📖 Введение
Дедупликация данных - это процесс нахождения и исключения избыточности данных посредством удаления дублирующихся копий информации на дисковом хранилище. Цель дедупликации заключается в том, чтобы разместить большее количество данных на меньшем пространстве. Одним из примеров применения дедупликации данных может служить замена повторных копий файлов ссылками на единственный экземпляр. Такой тип дедупликации называется файловым.
Традиционно выделяют несколько типов дедупликации в зависимости от уровня реализации - на уровне файлов, блоков данных и даже на битовом уровне. Механизм дедупликации на файловом уровне уже давно реализован и приобрел широкое применение в традиционных UNIX-подобных файловых системах, таких как ext2, при помощи отдельного хранения мета-информации о данных (концепция inode) и самих данных (концепция data block)[2, 3, 4, 5]. Это позволяет иметь одну копию файла на дисковом пространстве и хранить множество линков на единственный образ. Однако этот метод не применим даже при незначительном изменении файла. Одним из примеров служит хранение образов виртуальных машин множества пользователей. Изначальный образ является общим для всех пользователей, но изменения, вносимые каждым пользователем, являются индивидуальными, что не позволяет применять метод файловой дедупликации в данном случае, поскольку на уровне стандартной файловой системы UNIX могут адресоваться только линки на файлы в целом, а не на изменения в них. Поэтому в этом случае могла бы быть применена дедупликация на блочном уровне.
Также методы дедупликации делятся на inline и offline типы. Дедупликация, осуществляющаяся в момент записи данных на диск, называется inline дедупликацией, а та, которая реализуется отдельным процессом в последующее время, называется offline дедупликацией.
✅ Заключение
1. Изучены интерфейсы VFS подсистемы ядра Linux
2. Разработана архитектура файловой системы: спроектированы дисковая разметка и используемые структуры файловой системы для дедупликации данных, а также операции над ними
3. Реализована userspace утилита mkfs для создания дисковой разметки спроектированной файловой системы на блочном устройстве
4. Реализован драйвер файловой системы c поддержкой дедупликации данных на лету для ядра Linux
5. Проведена апробация реализованной функциональности:
• реализован драйвер, обеспечивающий доступ к внутренней статистике использования смонтированной файловой системы с помощью механизма /proc директорий;
• проведено сравнение различных подходов к организации процесса дедупликации данных для файловых систем.



