Слайд 1Распределенные файловые системы
Судаков А.А.
“Параллельные и распределенные вычисления” Лекция 12
Слайд 2План
Кластеры хранения данных
Типы файловых систем
NFS
SMB
autofs
AFS
GFS
Lustre
Слайд 3Литература
Распределенные файловые системы http://cs.gmu.edu/~menasce/osbook/distfs/
User Space FS http://lufs.sourceforge.net/lufs/
OpenAFS http://www.openafs.org/doc/index.htm
Слайд 4Кластеры хранения данных
В любом вычислительном кластере необходимо обращение к общим
данным
Storage cluster
Storage area network
Кластер или локальная сеть видится как
одно больше хранилище данных
Слайд 5Преимущества
Доступ к общим данным большого количества пользователей
Масштабируемость
возможность увеличение объемов
данных
Централизованное управление данными
Уменьшение затрат на инфраструктуру
Возможность параллельного доступа к данным
на разных устройствах
Удобство
Слайд 6Сложности
Разрешение конфликтов при обращении к общим данным
Сложность локального кэширования данных
в памяти, репликации
Обеспечение надежности
Единая точка сбоя
Устранение узких мест
Слайд 7файловые системы
Для хранения данных на удаленных носителях используются специальные файловые
системы
Файловая система
Иерархическая структура организации данных на физическом носителе
Дерево
База данных (пары
имя:значение)
Данные – файлы
Метаданные – информация о данных
Местоположение
Права доступа
Слайд 8Классификация распределенных файловых систем
Сетевая файловая система
доступ к физическому носителю
по сети
Распределенная файловая система
различные части одной файловой системы могут
физически находиться на разных носителях
Симметричная
Все компоненты равноправные
Ассиметричная
Разные машины кластера выполняют разные функции
Одни – сервера данных
Другие – сервера метаданных
Журналируемая
Операции работы с файловой системой журналлируются для обеспечения восстановления при сбоях
Кластерная (глобальная)
Вся файловая система – один ресурс
Параллельная
С поддержкой параллельных приложений
Слайд 9Пути обеспечения надежности
RAID – локально на серверах
Multipass – несколько независимых
путей передачи к каждому носителю
Репликация – создание копий данных на
других независимых носителях
Distributed RAID – RAID по сети
Слайд 10NFS
Network File System
Доступ к дисковым ресурсам других машин по сети
Клиент-серверная
идеология
Сервер
Предоставляет доступ к своим ресурсам
Клиент
Получает доступ к ресурсам серверов
Слайд 11Структурная схема
Клиент
выполняется ядром
Сервер
Ядром
В пространстве пользователя
Виртуальная файловая система
Специальный уровень
абстракции файловых систем
Слайд 12Виртуальная файловая система
Каждая файловая система должна выполнять некоторый набор операций
Read
Write
Mkdir
Rmdir
…
Каждая
файловая система имеет свою организацию структур на диске
С точки зрения
пользовательских программ
С файлом на дискете можно работать так же как с файлом на жестком диске или файлом на удаленной машине
VFS определяет набор операций, которые должны быть реализованы для файловой системы, чтобы программы могли с ней работать
Слайд 13Структура VFS
Пользовательские программы
Функции read() write() open() close()
Виртуальная файловая система
Независимое от
файловой системы представление
Файлов, каталогов, операций read() write() open() close()
Код файловой
системы
Реализация
Функций read() write() open() close()
Специфических для файловой системы
Код файловой системы
Функций read() write()
open() close()
Код ФС
Слайд 14Протокол NFS
Клиент – «умный»
При обращении пользователя к функциям файловой системы
вызывается соответствующий метод VFS
VFS вызывает на сервере соответствующие процедуры RPC
Почти
всю логику работы выполняет клиент
Сервер – «тупой»
Быстро выполняет все запросы клиентов по доступу к своим ресурсам
В новых версиях позволяет также управлять клиентами
Слайд 15Сервера NFS
SUN RPC
Сервера
Nfsd – файловые операции
Mountd – обработка операций монтирования
Lockd
– блокировки файлов
Statd – отработка перегрузок
Rquotad – квоты файловой
системы
Statd – сигнализация о перегрузках машин
Клиенты
Вызывают необходимые Rpc
Слайд 17NFS демон (Nfsd)
Работает с одним клиентом
Выполняет удаленные запросы к файловой
системе
чтение
Запись
Создание каталогов
…
При большом количестве клиентов необходимо запускать больше серверов
program
NFS_PROGRAM {
version NFS_VERSION {
void
NFSPROC_NULL(void)=0;
attrstat
NFSPROC_GETATTR(fhandle)=1;
attrstat
NFSPROC_SETATTR(sattrargs)=2;
void
NFSPROC_ROOT(void)=3;
…
} = 2;
version NFS_VERSION {
…
} = 3;
…
} = 10003;
Слайд 18Экспортирование и монтирование
Чтобы к файловой системе (каталогу) можно было обращаться
ее необходимо экспортировать с сервера
Разрешить доступ
Чтобы клиент мог воспользоваться экспортированной
файловой системой ее необходимо смонтировать
mountd – сервер монтирования
принимает запрос на монтирование
регистрирует клиента
возвращает клиенту дескриптор (file handle)
Слайд 19Пример экспортирования
Экспорт
/ @polygon(no_root_squash,rw)
/usr/
@polygon(no_root_squash,rw)
/usr/local @polygon(no_root_squash,rw)
/var
@polygon(no_root_squash,rw)
/home @polygon(no_root_squash,rw)
Монтирование
mount cluster:/ /mnt/cluster
Слайд 20Блокировки
Доступ к частям файла можно блокировать
Пока один удерживает блокировку, другой
не может ее захватить
Lockd
Получение и освобождение блокировок
Statd
Сигнал о
перегрузке машины, которая захватила блокировку
Блокировка освобождается
Слайд 21Кэширование
Кэширование
Хранение копии последних изменений для быстрого обращения
Уменьшение количества обращений к
диску
Уменьшение сетевого трафика
Увеличение производительности
Кэширование на сервере
Всегда повышается производительность
Конфликтов не возникает
Кэширование
на клиентах
Повышает производительность
Проблема поддержания когерентности
Кэширование только атрибутов
Использование блокировок
Специальные протоколы
Слайд 22Версии NFS
Версия 2
Протокол UDP
Синхронные операции
Версия 3
Протокол UDP, TCP
Синхронные и асинхронные
операции
Повышенная безопасность
Версия 4
Более эффективное кэширование
Работа через Интернет
Повышенная безопасность
Слайд 23Особенности NFS
Хорошо вписывается в схему файловых систем UNIX
Простой
Недостатки
Плохая защищенность
(у старых версий)
Исторически рассчитан только на локальные сети (плохо работает
в Интернет)
За счет модели умный-клиент тупой-сервер плохо отрабатываются блокировки, и распределенность
Слайд 24SMB/CIFS
SMB – server message block
Протокол для доступа к файловым системам
под windows
CIFS – Common Internet filesystem
Слайд 25Структура сообщений SMB
Все обмены выполняются сообщениями одинаковой структуры
Каждое сообщение содержит
команду и данные
Магический номер
команда
Данные
Слайд 26Протокол – ориентированный на сеансы
Установление сеанса
Начало передачи файла
Передать 4 КБайта
Завершить передачу файла
Команда
Начать сеанс
Данные
Тип сеанса
Команда
Начать передачу файла
Данные
Какой файл
Команда
Начать
передачу 4К
Данные
блок данных размером 4К
Слайд 27Особенности SMB/CIFS
Ориентирован на службы и сеансы
Клиент и сервер являются равноправными
в плане выполнения логики
Реализуются сложные схемы блокировок, прав доступа, распределенности
Недостатки
Есть
разные реализации (IBM, Microsoft)
Как правило закрытый протокол
Слайд 28Автомонтирование
При обращении к некоторому каталогу автомонтирования система автоматически монтирует соответствующий
каталог с сервер
Создается иллюзия того, что все сервера принадлежат одной
файловой системе
Слайд 29Демон amd
Работает как nfs сервер
С него монтируется файловая система
cluster:(pid906)
on /net type nfs
При обращениии к файловой системе анализируется имя
в корневом каталоге – ключ
Ключ может интерпретироваться как укажет администратор
Имя машины
Имя пользователя
После интерпретации монтируется соответствующая файловая система с соответствующей машины
Слайд 30Карта монтирования
Содержит указание как интерпретировать ключ
Для любого ключа
ключ интерпретировать
как имя машины
rhost:=${key}
Монтировать все экспортируемые каталоги с машины
Монтировать
на файловую систему fs:=${autodir}/${rhost}/root
* type:=host;rhost:=${key}; \
fs:=${autodir}/${rhost}/root
Слайд 31Пример
ls /net/node16
drwxr-xr-x 2 root root 2048 Чер 28 04:02
bin
drwxr-xr-x 3 root root 2048 Чер 27 12:26 boot
drwxr-xr-x
9 root root 12288 Бер 30 15:47 dev
drwxr-xr-x 75 root root 5120 Лип 14 16:27 etc
drwxr-xr-x 28 root root 4096 Чер 29 17:58 home
drwxr-xr-x 2 root root 1024 Сер 12 2004 initrd
drwxr-xr-x 8 root root 3072 Кві 24 04:07 lib
drwxr-xr-x 5 root root 3072 Чер 28 04:02 lib64
drwx------ 2 root root 12288 Бер 30 15:36 lost+found
drwxr-xr-x 2 root root 1024 Чер 21 18:14 media
drwxr-xr-x 2 root root 1024 Бер 23 22:50 misc
drwxr-xr-x 3 root root 1024 Бер 30 16:10 mnt
drwxr-xr-x 2 root root 1024 Бер 30 16:10 net
drwxr-xr-x 2 root root 1024 Чер 29 17:59 opt
mount
ss20-16:/ on /.automount/ss20-16/root type nfs
ss20-16:/home on /.automount/ss20-16/root/home type nfs
ss20-16:/mnt/work on /.automount/ss20-16/root/mnt/work type nfs
ss20-16:/usr on /.automount/ss20-16/root/usr type nfs
ss20-16:/usr/local on /.automount/ss20-16/root/usr/local type nfs
ss20-16:/var on /.automount/ss20-16/root/var type nfs
Слайд 32Возможности автомонтирования
Широкий класс файловых систем
Сетевые файловые системы
Smb, CIFS
Program – запуск
внешней программы для монтирования
Локальные файловые системы (диск, CD)
Слайд 33Другие сетевые файловые системы
User Space File System
Передача запросов из ядра
в пространство пользователя
Отработка запросов более интеллектуальной пользовательской программой
Sshfs
Ftpfs
httpfs
Слайд 34Andrew File System (AFS)
Carnegie-Mellon University
Распределенная файловая система
Основные свойства
Общее пространство имен
Прозрачность
расположения
Контроль доступа
Кэширование
Репликация
Слайд 35Распределенность
Клиент – машина на которой используется AFS
Вся распределенная файловая видится
как один каталог (например /aft)
Клиент может пользоваться файлом, не зная
на каком носителе этот файл находится
Сервер – машина, которая предоставляет часть своих ресурсов для общей файловой системы
Файлы физически хранятся на серверах
Каждый сервер видится как часть логического ресурса файловой системы
Файловая система прозрачно для пользователя транслирует имена файлов в полный путь файла на сервере
Слайд 36Основные логические компоненты
Корневой каталог (top)
Каталог на который монтируется вся файловая
система
Ячейка (cell)
Подкаталоги корневого каталога
Набор серверов под общим администрированием
Имя ячейки
должно быть уникальным
Том (volume)
Подкаталоги третьего и возможно более низких уровней в иерархии
Весь том должен находится на одном физическом носителе (разделе)
Каждый том содержит обычную иерархию файловой системы
Том – единица администрирования, репликации
Том – аналог обычной файловой системы, которую можно монтировать
Раздел (partition)
Часть физического устройства на котором хранятся данные
На одном разделе может хранится один или несколько томов
Слайд 37Пример
/afs точка монтирования
/afs/jinr.ru ячейка
jinr.ru/user/s том
jinr.ru/user/s/saa/ файлы одного тома
Слайд 38Свойства
Независимость расположения
Имя тома в пределах ячейки - уникально
При перемещении тома
с одного сервера на другой он видится под тем же
именем
Репликация
Можно создавать несколько копий тома для параллельного доступа и резерва
Кэширование
Клиент может создавать локальные копии данных для повышения быстродействия
Локальные копии при изменении обновляются на серверах
Слайд 39Особенности архитектуры
Сервера
Файловые сервера
Аналог NFS сервера
Сервера баз данных
Информация о физическом положении
репликации томов
Сервер обновления исполняемых файлов
Контроль, чтобы все сервера были
одной версии
Сервер контроля системы
Поддержка общих файлов конфигурации серверов и синхронизация времени
Клиенты
Менеджер кэширования
Контроль локального кэширования файлов и обновлений копий
Слайд 40
Структурная схема
База данных томов
Файловый сервер
Физические устройства
Менеджер кэша
Пользовательские программы
Клиенты
сервера
Слайд 41Особенности кэширования
Клиент создает локальную копию файла с файлового сервера
Сервер передает
клиенту структуру данных callback
При изменениях файла клиент отправляет изменения на
сервер
Сервер изменяет callback
При следующем обращении клиенты получат новый callback
Если данные клиентов устарели они перечитывают копию файла
Слайд 42Обеспечение безопасности и устойчивости
Возможность установки прав доступа на тому
Возможность авторизации
с помощью распределенных систем (LDAP, kerberos)
Возможность репликации
Возможность обнаружения и устранения
ошибок
Слайд 43Сравнение c другими fs
Преимущества
Возможность иметь очень большое количество клиентов
и серверов
Система обеспечения безопасности
Улучшение производительности за счет локального кэширования
Недостатки
Том не
может быть больше размера физического устройства
Консистентность кэша не строгая
Отличия в поведении от большинства файловых систем
Сложность установки и администрирования
Слайд 44Global File System (GFS)
Полная прозрачность расположения
Строгая консистентность
Поддержка журналирования
Поддержка
высокой надежности
Multipass
Redundant
Возможность изменения размера
Слайд 45Клиенты и сервера
Все клиенты – симметричны
Каждый клиент содержит полную информацию
необходимую для работы
Блокировки обслуживаются клиентами
Сервера
Сервера предоставляют только доступ к физическим
носмтелям (как блочное устройство)
Не выполняют никакой логики по работе файловой системы
Слайд 46Структурная схема
Служба блокировок
Служба файловой системы
Служба отключения узла
Служба блокировок
Служба файловой системы
Служба
отключения узла
Клиент 2
Клиент 1
SCSI
диск
Сетевой
диск
Дисковый
массив
сервер
сервер
сервер
Распределенное
дисковое пространство
Слайд 47Основные компоненты
Ресурсы
Файл
Каталог
Блок данных
Блокировка
Блокировки
Блокировка чтения
Блокировка записи
Службы
Те, кто предоставляет или обращается к
ресурсам
Служба блокировок
Служба отключения узлов (fencing)
Служба файловой системы
Служба информации о кластере
Слайд 48Служба файловой системы
Задачи (GFS)
На каком носителе располагаются данные
Организация доступа к
данным
Доступ к данным
Захват блокировки на определенный ресурс (файл, каталог)
Доставка последней
версии данных
Работа с данными
Возвращение последней версии данных
Освобождение блокировки
Слайд 49Служба блокировки
Поддержка распределенных блокировок
Восстановление блокировок в результате сбоев
Распределенные блокировки захватываются
клиентами для ресурсов, которые принадлежат ьклиентам
Слайд 50Служба информации
Присоединение к кластеру
Heartbeat Сообщения
Детектирование сбоев
Голосование
Слайд 51Служба отключения узлов
Гарантия, что клиенты не будут принимать участие в
операциях ввода-вывода
Способы
Выключение питания
Ограничение коммуникаций по сети
Слайд 52Другие распределенные файловые системы
MFS
Распределенная, симметричная
Отсутствие кэширования
Миграция процессов к данным
Lustre
Ассиметричная
Кластерная
Параллельная
PVFS
Параллельная
Слайд 53GRID системы
Клиенты видят всю GRID систему как одно большое хранилище
данных
Один каталог метаданных
Множество SE – файловые серверы