2013 02 21_big_data_lecture_01

55
. . . . . . Bigdata Лекция I: распределенные файловые системы Дмитрий Барашев [email protected] Computer Science Center 21 февраля 2013

Upload: cs-center

Post on 16-Jun-2015

1.595 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2013 02 21_big_data_lecture_01

. . . . . .

BigdataЛекция I: распределенные файловые системы

Дмитрий Барашев[email protected]

Computer Science Center

21 февраля 2013

Page 2: 2013 02 21_big_data_lecture_01

. . . . . .

Сегодня в программе

Основные концепции

Особенности распределенных ФС

Немного истории

Google File System

Тема для семинара

Page 3: 2013 02 21_big_data_lecture_01

. . . . . .

Сегодня в программе

Основные концепции

Особенности распределенных ФС

Немного истории

Google File System

Тема для семинара

Page 4: 2013 02 21_big_data_lecture_01

. . . . . .

Файловая система

I Модель данных, программные компоненты,персистентные структуры данных и API

I Предоставляет абстракцию для доступа кданным, находящимся на каком-то физическомносителе

I Традиционная модельI Файл: объект с именем и бессмысленным для ФСсодержанием

I Каталог: список файлов и вложенных каталоговI Каталоги и файлы образуют дерево –пространство имен

I Файл уникально идентифицируется путем:/usr/bin/vim

Page 5: 2013 02 21_big_data_lecture_01

. . . . . .

Метаинформация

I Для пользователя информация – этосодержание файлов

I Для ФС интереснее метаинформация: названиефайла, список блоков, время модификации,права доступа

Page 6: 2013 02 21_big_data_lecture_01

. . . . . .

Локальные файловые системы

I Более или менее тесно интегрированы с ядромI Обычно хранят данные на локальном HDDI Блоки размером несколько килобайтI Могут кешировать страницы

Page 7: 2013 02 21_big_data_lecture_01

. . . . . .

Локальные ФС: Linux

картинка с IBM developerWorks

Page 8: 2013 02 21_big_data_lecture_01

. . . . . .

Сегодня в программе

Основные концепции

Особенности распределенных ФС

Немного истории

Google File System

Тема для семинара

Page 9: 2013 02 21_big_data_lecture_01

. . . . . .

Распределенная ФС

I Модель примерно та жеI Компоненты распределены по разным машинамI Распределенность существенно влияет нанекоторые решения

Page 10: 2013 02 21_big_data_lecture_01

. . . . . .

Компоненты РФС

I Клиент: API для прикладных приложений и коддля коммуникации с сервером

I Серверы файлов: хранят содержимое файловI Серверы метаданных: знают, какой файл гдележит и многое еще

Page 11: 2013 02 21_big_data_lecture_01

. . . . . .

Аспекты функционирования

I Прозрачность размещения файловI Совместный доступI КешированиеI РепликацияI Единая точка отказаI Наличие состоянияI Шаблоны доступаI Масштабируемость

Page 12: 2013 02 21_big_data_lecture_01

. . . . . .

Прозрачность размещения файлов

I Прикладному приложению известен только путьI Чем меньше информации о физическомрасположении закодировано в путь, тем лучше

I …при сохранении здравого смысла

Пример 1/192.168.0.10/sda1/home/alice/kitten.jpgтут пожалуй информации многовато

Пример 2/TheEarth/home/alice/kitten.jpgа тут ФС придется самостоятельно выбрать континент

Page 13: 2013 02 21_big_data_lecture_01

. . . . . .

Совместный доступ и кеширование

I Централизованная система: атомарные чтениеи запись; блокировки; журналирование

I Распределенная ФС: сетевые задержки,репликация усложняют жизнь

Page 14: 2013 02 21_big_data_lecture_01

. . . . . .

Варианты управления совместным доступом

I синхронные чтение и записьI write-through cache: чтение из кеша, синхроннаязапись

I сессионное кеширование: чтение и запись вкеш, синхронизация при закрытии, политикаопределения победителя при конкурирующейзаписи

I файлы после создания становятсянеизменяемыми

I запись возможна только в конец (append-only)I клиенты, открывшие файл уведомляются озаписях

I полноценные транзакции

Page 15: 2013 02 21_big_data_lecture_01

. . . . . .

Репликация

I Синхронная или асинхроннаяI Политика согласованности репликI Запись в реплики

Page 16: 2013 02 21_big_data_lecture_01

. . . . . .

Единая точка отказа

I Сбой в единой точке отказа (Single Point ofFailure) делает неработоспособной всю систему

I Сервер метаданных – кандидат на SPoFI …и еще и на узкое местоI Два сервера метаданных – кандидаты нанесогласованность

Page 17: 2013 02 21_big_data_lecture_01

. . . . . .

Наличие состояния

I Сервер с состоянием (stateful) знает все прооткрытые файлы в данный момент

I тратит на это память и больно падаетI но зато может кое-какие операцииоптимизировать

I Сервер без состояния (stateless) возможнобудет повторять действия при каждом запросе

I но зато быстро восстановится после паденияI У сервера метаданных всегда есть состояние

Page 18: 2013 02 21_big_data_lecture_01

. . . . . .

Шаблоны доступа

I Какого размера типичный файл?I Что важнее – надежность или скорость?I Что важнее – среднее время одного случайногочтения или суммарная пропускная способностьпоследовательного чтения?

Page 19: 2013 02 21_big_data_lecture_01

. . . . . .

Масштабируемость

I Хочется линейнуюI было N дисков и K машинI стало в 2N данных – добавили N дисков,сохранили пропускную способность

I нужна в два раза большая пропускнаяспособность – добавили K машин, распределилиданные

I На практике у линейной масштабируемостимножество препятствий

I пропускная способность сети, сетевыхинтерфейсов файловых серверов,производительность сервера каталогов,блокировки

Page 20: 2013 02 21_big_data_lecture_01

. . . . . .

Сегодня в программе

Основные концепции

Особенности распределенных ФС

Немного истории

Google File System

Тема для семинара

Page 21: 2013 02 21_big_data_lecture_01

. . . . . .

NFS

I Network File SystemI Рождена Sun’ом в начале 1980-х и жива-здоровадо сих пор, используется во многих корпорациях

I POSIX API, клиент монтирует удаленный диск влокальный каталог

I На сервере NFS демон тоже работает состандартным интерфейсом файловой системы

I Поддерживаются блокировки и сессионноекеширование

Page 22: 2013 02 21_big_data_lecture_01

. . . . . .

NFS

картинка с IBM developerWorks

Page 23: 2013 02 21_big_data_lecture_01

. . . . . .

AFS

I Andrew File System. Рождена в университетеCarnegie Mellon в 1980-х

I Сессионное кеширование, нотификации обизменениях, блокировки файлов

I Моментальные read-only снимки томовI Не POSIX API

Page 24: 2013 02 21_big_data_lecture_01

. . . . . .

и другие

I CIFS, aka Samba, aka Windows Shared FoldersI Ceph, GlusterFS, Lustre, <add your file systemhere>

Page 25: 2013 02 21_big_data_lecture_01

. . . . . .

Сегодня в программе

Основные концепции

Особенности распределенных ФС

Немного истории

Google File System

Тема для семинара

Page 26: 2013 02 21_big_data_lecture_01

. . . . . .

Предпосылки

I Начало 2000-х, Google завоевывает поискI Большие файлы (порядка N Gb) записываются ичитаются пакетными процессами (crawler,indexer)

I Пропускная способность важнее быстрогослучайного доступа

I Ширпотребные компьютеры, в совокупностичасто выходящие из строя

Page 27: 2013 02 21_big_data_lecture_01

. . . . . .

Основные моменты архитектуры

I Много файловых серверов, один активныйсервер метаданных (мастер)

I Файлы хранятся фрагментами по 64MbI Каждый фрагмент реплицируется на 3различных файловых сервера

I Приоритетные операции с файлом: большоепоследовательное чтение и конкурентноенаращивание

I Кеширования на клиенте не производитсяI POSIX API не поддерживается

Page 28: 2013 02 21_big_data_lecture_01

. . . . . .

Развертывание GFS

I Ячейка – единица развертыванияI В ячейке один мастер и много файловыхсерверов

I Ячейка GFS примерно соответствуетфизическому датацентру

Page 29: 2013 02 21_big_data_lecture_01

. . . . . .

Архитектура GFS-ячейки

Page 30: 2013 02 21_big_data_lecture_01

. . . . . .

Обязанности мастера

I Поддерживать пространство имен и егоотображение во фрагменты

I Обзвон файловых серверов, «проверка связи»,выдача указаний, сбор состояния

I Размещение фрагментов при их создании,дополнительной репликации илиперебалансировке

I Пересылка данных, однако, осуществляетсянапрямую между репликами и/или клиентом

Page 31: 2013 02 21_big_data_lecture_01

. . . . . .

Мутации метаданных

I Метаданными управляет мастерI Теневые серверы дублируют его действияI Изменения метаданных атомарны,изолированны и долговечны

I в пространстве имен используютсяиерархические блокировки

I мутации метаданных журналируются и журналреплицируется на теневых серверах

Page 32: 2013 02 21_big_data_lecture_01

. . . . . .

Взаимодействие клиента и мастера причтении

I Приложение собирается прочитать фрагментI GFS библиотека звонит мастеру, тот возвращаетадреса реплик – файловых серверов, хранящихфрагмент

I GFS библиотека напрямую звонит одному изфайловых серверов с просьбой вернуть нужныйдиапазон внутри данного фрагмента

I Дальнейшее общение клиента и файловогосервера идет напрямую

Page 33: 2013 02 21_big_data_lecture_01

. . . . . .

Взаимодействие при записи

1. Приложение хочет записать данные вфрагмент, хранящийся на нескольких репликах

2. Мастер выбирает главную по записи среди всехреплик

3. Клиент получает адреса всех реплик ипередает им данные

4. Когда все реплики получили данные, клиентпосылает главной указание произвести запись

5. Главная реплика выбирает порядок применениямутаций, применяет их локально и рассылаетрепликам указание применить мутации в томже порядке

6. Если все хорошо то клиент счастлив

А что если не все хорошо?

Page 34: 2013 02 21_big_data_lecture_01

. . . . . .

Взаимодействие при записи

1. Приложение хочет записать данные вфрагмент, хранящийся на нескольких репликах

2. Мастер выбирает главную по записи среди всехреплик

3. Клиент получает адреса всех реплик ипередает им данные

4. Когда все реплики получили данные, клиентпосылает главной указание произвести запись

5. Главная реплика выбирает порядок применениямутаций, применяет их локально и рассылаетрепликам указание применить мутации в томже порядке

6. Если все хорошо то клиент счастливА что если не все хорошо?

Page 35: 2013 02 21_big_data_lecture_01

. . . . . .

Модель согласованности

I Характеристики байтового региона:согласованный и определенный

I Регион согласован, если у него одинаковоезначение во всех репликах

I Регион определен после записи, если онсогласован и клиенты видят ровно те данные,которые были записаны

I Успешная запись при отсутствииконкурирующих записей производитопределённый регион

I Конкурирующие успешные записи могутпроизвести согласованные, но неопределённыеданные

Page 36: 2013 02 21_big_data_lecture_01

. . . . . .

Атомарная операция наращиванияI Гарантия: успешная операция наращиванияпроизводит согласованный определённыйрегион, смещение которого определяет GFS

I В «хорошем» случае все почти как в операциипроизвольной записи

I Главная реплика назначает смещение и можетпопросить произвести запись в следующийфрагмент, если в текущем нет места

I В «плохом» случае клиент повторяет операцию,и главная реплика назначает новое смещение

I Результат: в некоторых репликах могут бытьдубликаты, полные или частичные добавляемыхданных, но рано или поздно появитсясогласованный определённый регион

Реплики фрагмента не являютсябинарно идентичными!

Page 37: 2013 02 21_big_data_lecture_01

. . . . . .

Атомарная операция наращиванияI Гарантия: успешная операция наращиванияпроизводит согласованный определённыйрегион, смещение которого определяет GFS

I В «хорошем» случае все почти как в операциипроизвольной записи

I Главная реплика назначает смещение и можетпопросить произвести запись в следующийфрагмент, если в текущем нет места

I В «плохом» случае клиент повторяет операцию,и главная реплика назначает новое смещение

I Результат: в некоторых репликах могут бытьдубликаты, полные или частичные добавляемыхданных, но рано или поздно появитсясогласованный определённый регион

Реплики фрагмента не являютсябинарно идентичными!

Page 38: 2013 02 21_big_data_lecture_01

. . . . . .

Схема наращивания

Page 39: 2013 02 21_big_data_lecture_01

. . . . . .

Неопределённые данные

I И произвольная запись и наращивание могутпроизвести неопределённые и несогласованныерегионы

I Выяснение осмысленности хранящихся врегионе данных становится заботойприложения

I контрольные суммы записиI контрольные точки в файле

Page 40: 2013 02 21_big_data_lecture_01

. . . . . .

Время жизни главной реплики

I Главная реплика назначается мастером иполучает билет (lease) на 60 секунд

I Если билет просрочен, главная реплика неимеет права осуществлять операции записи

I Билет можно продлеватьI Каждый новый билет, выданный главнойреплике, увеличивает номер версии фрагмента

I Мастер может отобрать билет раньше срока

Page 41: 2013 02 21_big_data_lecture_01

. . . . . .

Операция фиксации состояния

I Фиксация состояния (snapshot) делает почтимгновенную копию файла или каталогаметодом copy-on-write

I отбираются все выданные билетыI делается копия метаданных дереваI новые файлы ассоциируются с оригинальнымифрагментами

I Когда кто-то захочет изменить данные, онзапросит адрес главной реплики фрагмента

I В этот момент мастер распорядится создатьфрагмент-копию

Page 42: 2013 02 21_big_data_lecture_01

. . . . . .

Проблемы файлового сервера

I Данные на файловом сервере могутповредиться из-за аппаратного илипрограммного сбоя

I ФС может проспать мутацию фрагмента и егофрагмент устареет (номер версии меньше чемна мастере)

Page 43: 2013 02 21_big_data_lecture_01

. . . . . .

Целостность данных

I Фрагменты разбиваются на блоки размером64Kb и для каждого блока считаетсяконтрольная сумма

I Контрольные суммы хранятся в памяти ижурналируются отдельно от данных

I При чтении файловый сервер сравнивает КСблока с записанной и в случае противоречиябьёт в набат

Page 44: 2013 02 21_big_data_lecture_01

. . . . . .

Устаревшие фрагменты, удаление файлов исборка мусора

I Фрагмент может устаретьI Стратегия удаления

I отметить как удалённый и переместить в Trash,записав момент удаления

I через некоторое время удалить из метаданныхсовсем

I Стратегия сбора мусораI Файловые серверы сообщают мастеру IDхранимых фрагментов

I Мастер смотрит в свои метаданные:отображение файла во фрагменты

I Первое множество без второго = мусорI Файловый сервер удаляет мусор по своемуусмотрению

Page 45: 2013 02 21_big_data_lecture_01

. . . . . .

Требования меняются

I Google 2010-х годов – это интерактивныеприложения

I Файлы меньше в размерах и больше вколичестве

I Речь уже о пета и эксабайтахI Требования по времени произвольного доступажестче

GFS в Google больше не используется, на сменупришел Colossus

Page 46: 2013 02 21_big_data_lecture_01

. . . . . .

Требования меняются

I Google 2010-х годов – это интерактивныеприложения

I Файлы меньше в размерах и больше вколичестве

I Речь уже о пета и эксабайтахI Требования по времени произвольного доступажестче

GFS в Google больше не используется, на сменупришел Colossus

Page 47: 2013 02 21_big_data_lecture_01

. . . . . .

Реализации, похожие на GFS

I Реализация Google File System закрытаI Открытые проекты, с GFS-like архитектурой:

I Apache HDFS: реализация на Java из проектаHadoop

I QFS: реализация на C++

Page 48: 2013 02 21_big_data_lecture_01

. . . . . .

ФС без сервера метаданных

I Применяем хеш к полному имени файла иполучаем номер(а) файловых серверов

I Если файл переименовывается, он оставляетсвой новый адрес на старом месте

I Если нужно увеличить число файловыхсерверов, используем схему, похожую наextensible hashing

I Реализация: GlusterFS

Page 49: 2013 02 21_big_data_lecture_01

. . . . . .

Сегодня в программе

Основные концепции

Особенности распределенных ФС

Немного истории

Google File System

Тема для семинара

Page 50: 2013 02 21_big_data_lecture_01

. . . . . .

Недостатки репликации

I N реплик – это конечно хорошо, но …I Диска тратится в N раз большеI Выхода из строя всего N машин достаточночтобы потерять 1 фрагмент

Page 51: 2013 02 21_big_data_lecture_01

. . . . . .

Алгоритмы коррекции ошибок

I Уменьшение избыточных данныхI Повышение надежности: чтоб потерять данныенужно вывести из строя существенно большемашин

Reed-Solomon encoding: n исходных дисков + mконтролирующих гарантируют восстановление привыходе из строя любых k <=m дисков

Page 52: 2013 02 21_big_data_lecture_01

. . . . . .

Тема для семинара

I Рассказать о применении кодировкиРида-Соломона для реализации хранилища,устойчивого к сбоям

I +5 баллов в копилку!

Page 53: 2013 02 21_big_data_lecture_01

. . . . . .

Эта презентация сверстана в

Pa

peeria1LTEX в вашем браузере

alpha.papeeria.com

Page 54: 2013 02 21_big_data_lecture_01

. . . . . .

Литература ISanjay Ghemawat, Howard Gobioff, and Shun-TakLeung.The Google file system.In ACM SIGOPS Operating Systems Review,volume 37, pages 29–43. ACM, 2003.M. Tim Jones.NFS: удобная и перспективная сетевая файловаясистема.http://www.ibm.com/developerworks/ru/library/l-network-filesystems/index.html/.Accessed: 23.01.2013.M. Tim Jones.Анатомия файловой системы Linux.http://www.ibm.com/developerworks/ru/library/l-linux-filesystem/.Accessed: 23.01.2013.

Page 55: 2013 02 21_big_data_lecture_01

. . . . . .

Литература II

James S. Plank et al.A tutorial on Reed-Solomon coding forfault-tolerance in RAID-like systems.Software Practice and Experience, 27(9):995–1012,1997.В.Г. Олифер and Н.А. Олифер.Сетевые операционные системы.Питер, 2002.