Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Масштабирование CIFS:
взгляд за горизонт с CTDB

      Александр Боковой
         Samba Team
Четверть века CIFS
• 1984: IBM, Sytec
  – проф. Барри Фейгенбаум
• 1985-1998: Intel, 3Com, Microsoft
• 1992: сервер Samba ...
Почему CIFS?
• Кроссплатформенная поддержка
 – Windows *, Mac OS X, *BSD, GNU/Linux
• Стандарт де-факто для миллионов
  ма...
Альтернативы
•   NFS v3/v4
•   AFS/DFS
•   HTTP/WebDAV
•   Протоколы кластерных файловых
    систем
Альтернативные проблемы
• Блокировки
 – «Падчерица» POSIX
 – Advisory против Mandatory
 – Сброс при закрытии файла (POSIX)...
Проблемы кластерных ФС
• Сетевой координатор блокировок
 – Много дополнительного трафика
 – Плохое масштабирование (десятк...
Если все так плохо, то ...
• К счастью:
  – Традиционные POSIX приложения
    редко используют файловые
    блокировки вну...
Если все так плохо, то ...
• ... всё может стать еще хуже
  – Новые типы нагрузки
  – Кросс-протокольный доступ к данным
 ...
Почему CIFS?
• CIFS удивительно богат
  функционально
• Легкость адаптации к новым
  нагрузкам
• Хорошая производительност...
Особенности CIFS
• Обратная модель ответственности
 – Сервер не отвечает за
   метаинформацию приложения
 – Гибель сессион...
Клиенты CIFS




Отдельные сервера CIFS

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



Хранение (SAN, DASD)
Samba
• Семантический преобразователь
 – Файловые операции
 – Учетные записи
 – Информация об авторизации
 – Информация об...
Samba
• Файловые операции
 – Богатая семантика Win32
 – Более бедная семантика POSIX
 – NTCreateX vs CreateFile() vs fopen...
Samba и базы данных
• tdb: trivial data base
  – Простая база <ключ>:<значение>
  – Быстрое чтение, быстрая запись
    меж...
Использование
базы данных
locking.tdb для
реализации
семантики
блокировок в
разных вызовах:
от открытия
файла до его
переи...
Посылка сообщений
между процессами
smbd.

Если smbd будут
находиться на
разных узлах, как
посылать сигнал и
обмениваться
и...
Помощь от природы (CIFS)
• Кластерная файловая система
  – Не может потерять данные и
    метаинформацию
  – Принцип «всё ...
Помощь от природы (CIFS)
• Пример: opendb
 – Открытый файл — запись в opendb
 – Открыт файл на узле N — информация
   толь...
Помощь от природы (CIFS)
• Восстановление после сбоя
 – Пометка записей (RSN = record
   sequence number)
 – Очистка запис...
Клиенты CIFS



Виртуальный CIFS
сервер

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


Хранение (SAN,
DASD)
TDB → Clustered TDB
• http://ctdb.samba.org/
• Два уровня поиска записей
 – Location master: определение
   положения data...
Производительность
Результат теста
NBENCH CIFS
для кластера из
четырех узлов
(Intel dual-core
IBM HS21) и
небольшой
систем...
TDB → Clustered TDB
• Location master
  – Фиксированный хэш по ключу записи
• Data master
  – Переменное положение
  – Зав...
Диспетчер CTDB
Upcoming SlideShare
Loading in …5
×

Alexander Bokovoy Scaling Cifs With Ctdb

828 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Alexander Bokovoy Scaling Cifs With Ctdb

  1. 1. Масштабирование CIFS: взгляд за горизонт с CTDB Александр Боковой Samba Team
  2. 2. Четверть века CIFS • 1984: IBM, Sytec – проф. Барри Фейгенбаум • 1985-1998: Intel, 3Com, Microsoft • 1992: сервер Samba 0.1 – экспорт ресурсов Unix в DOS • 2008: Samba 3.2
  3. 3. Почему CIFS? • Кроссплатформенная поддержка – Windows *, Mac OS X, *BSD, GNU/Linux • Стандарт де-факто для миллионов машин (и не только Windows) • Все альтернативы имеют свои проблемы
  4. 4. Альтернативы • NFS v3/v4 • AFS/DFS • HTTP/WebDAV • Протоколы кластерных файловых систем
  5. 5. Альтернативные проблемы • Блокировки – «Падчерица» POSIX – Advisory против Mandatory – Сброс при закрытии файла (POSIX) – Вне протокола (NFSv3) • Блокировки POSIX не готовы к горизонтальной кластеризации
  6. 6. Проблемы кластерных ФС • Сетевой координатор блокировок – Много дополнительного трафика – Плохое масштабирование (десятки, не сотни узлов) • Сервер метаданных – Плохая локализация метаданных – Много дополнительного трафика
  7. 7. Если все так плохо, то ... • К счастью: – Традиционные POSIX приложения редко используют файловые блокировки внутри себя – Традиционные POSIX приложения редко требуют координации между протоколами доступа к одним и тем же данным
  8. 8. Если все так плохо, то ... • ... всё может стать еще хуже – Новые типы нагрузки – Кросс-протокольный доступ к данным – Рост неструктурированных данных • Особенно в Web и социальных сетях
  9. 9. Почему CIFS? • CIFS удивительно богат функционально • Легкость адаптации к новым нагрузкам • Хорошая производительность – Компактный RPC – Понятная модель кэширования
  10. 10. Особенности CIFS • Обратная модель ответственности – Сервер не отвечает за метаинформацию приложения – Гибель сессионной информации некритична – Автоматическое восстановление соединений без помощи приложения
  11. 11. Клиенты CIFS Отдельные сервера CIFS Локальная файловая система Хранение (SAN, DASD)
  12. 12. Samba • Семантический преобразователь – Файловые операции – Учетные записи – Информация об авторизации – Информация об устройствах • 12-15 баз данных в типичной среде
  13. 13. Samba • Файловые операции – Богатая семантика Win32 – Более бедная семантика POSIX – NTCreateX vs CreateFile() vs fopen(): • CreateFile в Win32: 6 параметров • NTCreateX в CIFS: 13 параметров • fopen() в POSIX: 2 параметра
  14. 14. Samba и базы данных • tdb: trivial data base – Простая база <ключ>:<значение> – Быстрое чтение, быстрая запись между процессами – Отражение в память (mmap) на большинстве архитектур
  15. 15. Использование базы данных locking.tdb для реализации семантики блокировок в разных вызовах: от открытия файла до его переименования
  16. 16. Посылка сообщений между процессами smbd. Если smbd будут находиться на разных узлах, как посылать сигнал и обмениваться информацией в tdb?
  17. 17. Помощь от природы (CIFS) • Кластерная файловая система – Не может потерять данные и метаинформацию – Принцип «всё или ничего» • CIFS – Можно потерять метаинформацию – За все отвечает клиент
  18. 18. Помощь от природы (CIFS) • Пример: opendb – Открытый файл — запись в opendb – Открыт файл на узле N — информация только на узле N – Падение узла — автоматическое уничтожение записей (и закрытие файлов)
  19. 19. Помощь от природы (CIFS) • Восстановление после сбоя – Пометка записей (RSN = record sequence number) – Очистка записей, связанных с узлом N – Выбор оставшейся записи с наивысшим RSN – Результат — прежнее рабочее состояние
  20. 20. Клиенты CIFS Виртуальный CIFS сервер узлы кластерной файловой системы Хранение (SAN, DASD)
  21. 21. TDB → Clustered TDB • http://ctdb.samba.org/ • Два уровня поиска записей – Location master: определение положения data master – Data master: определение хранилища данных
  22. 22. Производительность Результат теста NBENCH CIFS для кластера из четырех узлов (Intel dual-core IBM HS21) и небольшой системы хранения на основе GPFS
  23. 23. TDB → Clustered TDB • Location master – Фиксированный хэш по ключу записи • Data master – Переменное положение – Зависит от активности работы с записью – Смена владельца через Location master
  24. 24. Диспетчер CTDB

×