Публикации/2014/ISSC/Knyazev2014

УДК 004.451.52

РАЗРАБОТКА ДРАЙВЕРА ФАЙЛОВОЙ СИСТЕМЫ ДЛЯ 
ДВУХУРОВНЕВОГО СЕТЕВОГО ХРАНИЛИЩА

И. С. Князев
Новосибирский государственный университет
Современные компьютерные технологии НИЧ НГУ

Работа ведется в рамках проекта Web Cluster File System, цель которого
создание сетевого хранилища данных, оптимизированного под нагрузки,
характерные для веб-серверов.
Многие провайдеры разделяемого веб-хостинга, обслуживающие
большое количество клиентов, используют балансировку загрузки в связке
с файловым сервером, чаще всего NFS. Сетевое файловое хранилище поз-
воляет сохранить консистентность файлов на всех узлах, участвующих в 
балансировке, но вызывает, по сравнению с локальными файловыми си-
стемами, большие задержки при поиске в каталоге (файловая операция
lookup) и открытии файлов.
После изучения структуры стандартных веб-приложений, было уста-
новлено, что большинство файлов открываются всегда или почти всегда
только на чтение (скрипты, статические страницы, медиа контент). Было
решено создать двухуровневое хранилище, объединяющее read-write и 
read-only компоненты с изначально идентичным содержанием, позволяю-
щее читать с быстрой RO файловой системы, а работать с записью (и чте-
нием уже измененных файлов) с относительно медленной RW файловой
системой.
Был разработан прототип драйвера файловой системы Linux, обеспечи-
вающий каскадно-объединенное монтирование двух сетевых ресурсов
(NFS в качестве RW и iSCSI в качестве RO), выбираемых в зависимости от 
состояния хранилища и требуемого режима доступа к файлу. Было изме-
рено время выполнения стандартных файловых операций и показана целе-
сообразность данного решения.
Дальнейшая разработка включает реализацию функционала
по синхронизации данных RW и RO ветвей для сохранения низкого числа
обращений к RW ветви, оптимизацию драйвера, а также реализацию мето-
дики верификации корректности и комплекс тестов для проверки коррект-
ности реализации драйвером POSIX file API.
Работа выполнена при финансовой поддержке Минобрнауки РФ (дого-
вор № 02.G25.31.0054).
Научный руководитель – канд. техн. наук Б. Н. Пищик