MyWackoSite: Публикации/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).

Научный руководитель – канд. техн. наук Б. Н. Пищик