SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Масштабирование CIFS:
взгляд за горизонт с CTDB

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




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

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



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

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



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

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


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

Más contenido relacionado

La actualidad más candente

мтт партнер
мтт партнермтт партнер
мтт партнерahey
 
владышев Zabbix Rootconf2009
владышев Zabbix Rootconf2009владышев Zabbix Rootconf2009
владышев Zabbix Rootconf2009Liudmila Li
 
SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)
SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)
SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)i_day
 
сергей рыжиков
сергей рыжиковсергей рыжиков
сергей рыжиковLiudmila Li
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninOntico
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project developmentOntico
 
Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎Anatoly Sharifulin
 
Chisinau: Course Design
Chisinau: Course DesignChisinau: Course Design
Chisinau: Course DesignMart Laanpere
 
Wyse Präsentation C Itrix S E Russian
Wyse  Präsentation  C Itrix  S E  RussianWyse  Präsentation  C Itrix  S E  Russian
Wyse Präsentation C Itrix S E RussianLiudmila Li
 
компьютер изнутри
компьютер изнутрикомпьютер изнутри
компьютер изнутриPuLJa
 
25 основных стилей блоггинга
25 основных стилей блоггинга25 основных стилей блоггинга
25 основных стилей блоггингаRoman Stroganov
 
Sef Ikhelis
Sef IkhelisSef Ikhelis
Sef Ikhelissef2009
 
по компьютера 7 класс
по компьютера  7 класспо компьютера  7 класс
по компьютера 7 классtyapuhy
 
Платформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООППлатформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООПBoris Volfson
 

La actualidad más candente (17)

Sapka Contest 2009 (RU)
Sapka Contest 2009 (RU)Sapka Contest 2009 (RU)
Sapka Contest 2009 (RU)
 
Sapka Contest 2009 (UA)
Sapka Contest 2009 (UA)Sapka Contest 2009 (UA)
Sapka Contest 2009 (UA)
 
мтт партнер
мтт партнермтт партнер
мтт партнер
 
владышев Zabbix Rootconf2009
владышев Zabbix Rootconf2009владышев Zabbix Rootconf2009
владышев Zabbix Rootconf2009
 
SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)
SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)
SaaS - инновационная концепция (Сергей Панарин, ACTIVITI)
 
сергей рыжиков
сергей рыжиковсергей рыжиков
сергей рыжиков
 
HighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg BuninHighLoad Sites, Oleg Bunin
HighLoad Sites, Oleg Bunin
 
Economy of project development
Economy of project developmentEconomy of project development
Economy of project development
 
Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎Интерактивный терминал: Perl, XML и Firefox‎
Интерактивный терминал: Perl, XML и Firefox‎
 
Chisinau: Course Design
Chisinau: Course DesignChisinau: Course Design
Chisinau: Course Design
 
Wyse Präsentation C Itrix S E Russian
Wyse  Präsentation  C Itrix  S E  RussianWyse  Präsentation  C Itrix  S E  Russian
Wyse Präsentation C Itrix S E Russian
 
компьютер изнутри
компьютер изнутрикомпьютер изнутри
компьютер изнутри
 
25 основных стилей блоггинга
25 основных стилей блоггинга25 основных стилей блоггинга
25 основных стилей блоггинга
 
Sef Ikhelis
Sef IkhelisSef Ikhelis
Sef Ikhelis
 
10 Xs Dg
10 Xs Dg10 Xs Dg
10 Xs Dg
 
по компьютера 7 класс
по компьютера  7 класспо компьютера  7 класс
по компьютера 7 класс
 
Платформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООППлатформы Java и .NET. Современные концепции ООП
Платформы Java и .NET. Современные концепции ООП
 

Más de Ontico

Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Ontico
 
Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Ontico
 
Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Ontico
 
Call for papers (2014) ru
Call for papers (2014) ruCall for papers (2014) ru
Call for papers (2014) ruOntico
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Как разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинКак разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинOntico
 
Конференции Онтико (2011)
Конференции Онтико (2011)Конференции Онтико (2011)
Конференции Онтико (2011)Ontico
 
Программный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряПрограммный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряOntico
 
Конференции 2010 / описание
Конференции 2010 / описаниеКонференции 2010 / описание
Конференции 2010 / описаниеOntico
 
Онтико, 2009
Онтико, 2009Онтико, 2009
Онтико, 2009Ontico
 
Конференции 2010
Конференции 2010Конференции 2010
Конференции 2010Ontico
 
Ok2009 Пленарка
Ok2009 ПленаркаOk2009 Пленарка
Ok2009 ПленаркаOntico
 
Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Ontico
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c BitrixOntico
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c BitrixOntico
 
Gmr Highload Presentation Revised
Gmr Highload Presentation RevisedGmr Highload Presentation Revised
Gmr Highload Presentation RevisedOntico
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusOntico
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusOntico
 
Innodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 RusInnodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 RusOntico
 
особенности построения собственной полнофункциональной Im сети
особенности построения собственной полнофункциональной Im сетиособенности построения собственной полнофункциональной Im сети
особенности построения собственной полнофункциональной Im сетиOntico
 

Más de Ontico (20)

Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
Риски, которые необходимо учесть при разработке сложного проекта (Олег Бунин)
 
Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015Встреча докладчиков HL++ 2015
Встреча докладчиков HL++ 2015
 
Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++Вебинар о конференции HighLoad++
Вебинар о конференции HighLoad++
 
Call for papers (2014) ru
Call for papers (2014) ruCall for papers (2014) ru
Call for papers (2014) ru
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Как разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег БунинКак разработать социальную сеть, Олег Бунин
Как разработать социальную сеть, Олег Бунин
 
Конференции Онтико (2011)
Конференции Онтико (2011)Конференции Онтико (2011)
Конференции Онтико (2011)
 
Программный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октябряПрограммный комитет HighLoad++, 6 октября
Программный комитет HighLoad++, 6 октября
 
Конференции 2010 / описание
Конференции 2010 / описаниеКонференции 2010 / описание
Конференции 2010 / описание
 
Онтико, 2009
Онтико, 2009Онтико, 2009
Онтико, 2009
 
Конференции 2010
Конференции 2010Конференции 2010
Конференции 2010
 
Ok2009 Пленарка
Ok2009 ПленаркаOk2009 Пленарка
Ok2009 Пленарка
 
Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009Highload sites, master-class, OK-2009
Highload sites, master-class, OK-2009
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c Bitrix
 
I Safety 1c Bitrix
I Safety 1c BitrixI Safety 1c Bitrix
I Safety 1c Bitrix
 
Gmr Highload Presentation Revised
Gmr Highload Presentation RevisedGmr Highload Presentation Revised
Gmr Highload Presentation Revised
 
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 RusWonderful World Of Mysql Storage Engines Hl2008 Rus
Wonderful World Of Mysql Storage Engines Hl2008 Rus
 
Scaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 RusScaling Web Sites By Sharding And Replication Hl2008 Rus
Scaling Web Sites By Sharding And Replication Hl2008 Rus
 
Innodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 RusInnodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 Rus
 
особенности построения собственной полнофункциональной Im сети
особенности построения собственной полнофункциональной Im сетиособенности построения собственной полнофункциональной Im сети
особенности построения собственной полнофункциональной Im сети
 

Alexander Bokovoy Scaling Cifs With Ctdb

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