Ceph (програмне забезпечення)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Ceph
Ceph logo.png
Тип Розподілене зберігання об'єктів
Автор(и) Inktank Storage (Sage Weil, Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander)
Розробники Canonical, CERN, Cisco, Fujitsu, Intel, Red Hat, SanDisk, and SUSE[1]
Стабільний випуск 10.2 (21 квітня 2016; 886 днів тому)
Репозиторій git.ceph.com?p=ceph.git%3Ba%3Dsummary
Операційна система Linux
Написано на C++, Python[джерело?]
Ліцензія LGPL 2.1[3]
ceph.com

Ceph у Вікісховищі?

В обчисленнях, Ceph — вільне сховище об'єктів, яке зберігає дані на одному розподіленому комп'ютерному кластері та забезпечує інтерфейс рівня об'єкту, блоку та файлу. Основні цілі Ceph — бути повністю розподіленим без єдиної точки відмови, маштабованим до рівня ексабайт та вільно доступним.

Ceph реплікує дані та робить їх відмовостійкими,[4] використовуючи звичайне обладнання та не вимагаючи підтримки специфічного обладнання. Результатом дизайну є те, що система є як само-відновлюючою так і само-керованою, націлюючись на мінімізацію часу адміністрування та інших затрат.

В реалізації CephFS (файлова система) відсутні стандартні засоби відновлення файлової системи, тому користувацька документація Ceph не рекомендує зберігати критичні дані через відсутність можливості аварійного відновлення та інструментів.[5]

Дизайн[ред. | ред. код]

Високорівневий огляд внутрішньої організації Ceph[6]:4

Ceph використовує чотири різні види демонів:[6]

  •  Монітори кластеру (ceph-mon) — відслідковують активні та зламані ноди кластеру
  • Сервери метаданих (ceph-mds) — зберігають метадані inode та каталогів
  • Пристрої зберігання об'єктів (ceph-osd) — дійсно зберігають вміст файлів. Ідеально, OSD зберігіють свої дані на локальну файлову систему btrfs, щоб задіяти свою вбудовану copy-on-write властивість, хоча інші локальні файлові системи можуть використовуватися.[7]
  • Шлюзи передачі репрезентативного стану (RESTful) (ceph-rgw), які розкривають рівень зберігання обєктів як інтерфейс сумісний з Amazon S3 чи OpenStack Swift API-ми

Вони всі є повністю розподіленими та можуть працювати на тому ж самому наборі серверів. Клієнти напряму взаємодіють з усіма ними.[8]

Ceph робить striping індивідуальних файлів по багатьом нодах, щоб досягти набільшої пропускної здатності, подібно до того як RAID0 розподіляє смугами розділи по багатьом твердим дискам. Адаптивний баланс навантаження підтримується за допомогою того, як часто доступаються до обєктів, які репліковані на більшості нод.[citation needed] На Грудень 2014, файлові системи які рекомендовано для використання у виробничих середовищах це ext4 (маленький маштаб) та XFS (розгортання великого маштабу), поки Btrfs та ZFS рекомендовано для невиробничих середовищ.[9]

Сховище об'єктів[ред. | ред. код]

Архітектурна діаграма показує зв'язок між компонентами платформи зберігання Ceph

Ceph впроваджує розподілене сховище об'єктів. Програмні бібліотеки Ceph забезпечують клієнські програми прямим доступом до надійного автоматично розподіленого зберігання об'єктів(RADOS від анг. reliable autonomic distributed object store), а також забезпечує фундамент для деяких особливостей Ceph, включаючи RADOS Block Device (RBD), RADOS Gateway, та Ceph File System.

Програмна бібліотека librados забезпечує доступ для C, C++, Java, PHP, тп Python.

Блочне сховище[ред. | ред. код]

Система зберігання об'єктів Ceph дозволяє користувачам монтувати Ceph як тонко підготовлений блочний пристрій. Коли додаток пише дані на Ceph використовуючи блочний пристрій, Ceph автоматично розкидає та реплікує дані по всьому кластеру. Блочний пристрій Ceph (RBD) (від анг. RADOS Block Device) також інтегрується з Kernel-based Virtual Machines (KVMs).

Інтерфейси Ceph RBD з тією ж самою системою зберігання об'єктів Ceph забезпечують інтерфейс librados та файлову систему CephFS, а також зберігають образи блочних пристроїв як об'єкти. З того часу як RBD базується на librados, RBD наслідує можливості librados, включаючи знімки типу тільки-читання та повернення до знімків. Завдяки розкиданню образів по кластеру, Ceph покращує продуктивність читання для великих образів блочних пристроїв.

Блочні пристрої підтримуються платформами віртуалізації, включаючи Apache CloudStack, OpenStack, OpenNebula, Ganeti, та Proxmox Virtual Environment. Ці інтеграції дозволяють адміністраторам використовувати блочні пристрої Ceph як сховище для їхніх віртуальних машин в їхніх середовищах.

Файлова система[ред. | ред. код]

Файлова система Ceph (CephFS) працює на базі тої ж самої системи зберігання об'єктів, яка забезпечує інтерфейси сховища об'єктів та блочних пристроїв. Кластер сервера метаданих Ceph забезпечує сервіс який мапить директорії та імена файлової системи до об'єктів, які зберігаються в межах RADOS кластера. Кластер сервера метаданих може розширяти або зменушвати файлову систему, а також він може динамічно її розбалансовувати, щоб розподіляти дані рівномірно по хостах кластеру. Це гарантує високу швидкодію та попереджає великі навантаження на конкретні хости кластера.

Клієнти монтують POSIX-сумісну файлову систему використоючи клієнти Лінукс ядра. 19 березня 2010, Linus Torvalds додав Ceph клієнт в ядро Лінукс версії 2.6.34[10] реліз якого вийшов 16 березня 2010. Старіший FUSE-сумісний клієнт також доступний. Сервера працюють як звичайний Unix демон.

Історія[ред. | ред. код]

Ceph був створений Sage-ем Weil-ом (розробником концепту Webring та співзасновником DreamHost) для його дипломної роботи,[11] яка була порекомендована Професором Scott A. Brandt в Jack Baskin School of Engineering при University of California, Santa Cruz та започаткована United States Department of Energy (DOE) і National Nuclear Security Administration (NNSA), за участю Lawrence Livermore National Laboratory (LLNL), Los Alamos National Laboratory (LANL), та Sandia National Laboratories (SNL).

Після його випуску восени 2007, Weil продовжив працювати над Ceph повністю, основна команда розробки була поповнена Yehuda Sadeh Weinraub та Gregory Farnum. В 2012, Weil створив Inktank Storage для професійних сервісів та підтримки Ceph.[12][13]

В квітні 2014, Red Hat купив Inktank тим самим принісши важливісь ровитку Ceph development in-house.[14]

В жовтні 2015 був сформований Ceph Community Advisory Board щоб асистувати спільноту в напрямку програмно-визначеної технології сховища з відкритим кодом. Статут рекомендаційної ради включає членів глобальниї IT організацій які внесили проект Ceph, включаючи осіб від Canonical, CERN, Cisco, Fujitsu, Intel, Red Hat, SanDisk, and SUSE.

Argonaut
3 липня 2012, група розробників Ceph випустила Argonaut, перший важливий «стабільний» реліз Ceph. Цей реліз отримає виправлення стабільності та тільки оновлення продуктивності, нові можливості будуть заплановані на майбутні релізи.[15]
Bobtail (v0.56)
1 січня, 2013,група розробників Ceph випустила Bobtail, другий важливий стабільний реліз Ceph. Цей реліз в основному був сфокусований на стабільності, продуктивності, да оновленості з попереднього релізу Argonaut, стабільних серій (v0.48.x).[16]
Cuttlefish (v0.61)
7 Травня 2013, група розробників Ceph випустила Cuttlefish, третій мажорний стабільний реліз Ceph. Цей реліз включав чисельність можливостей та покращення продуктивності а також був першим стабільним релізом для засобу розгортання  'ceph-deploy' замість попереднього 'mkcephfs'.[17]
Dumpling (v0.67)
14 Серпня 2013, група розробників Ceph випустила Dumpling, четвертий мажорний стабільний реліз Ceph. Цей реліз включав перший крок в глобальні namespace та підтримку регіонів, REST API для моніторингу та функцій управління, покращена підтримка Red Hat Enterprise Linux derivatives (RHEL)-базованих платформ.[18]
Emperor (v0.72)
9 листопада 2013, група розробників Ceph випустила Emperor, п'ятий мажорний стабільний реліз Ceph. Цей реліз приніс декілька нових можливостей включаючи реплікацію між датацентрами для radosgw, покращену зручність і простоту користування, і також багато інкрементальної продуктивності та внутрішньої роботи по рефактирінгу для підтримки нових можливостей Firefly.[19]
Firefly (v0.80)
7 травня 2014, група розробників Ceph випустила Firefly, шостий мажорний стабільний реліз Ceph. Цей реліз приніс декілька нових можливостей включаючи кодування витирання, багаторівневий кеш, первиння спорідненість, ключ/значення OSD бекенд(експериминтально), автономний radosgw (експериминтально).[20]
Giant (v0.87)
29 жовтня 2014, група розробників Ceph випустила Giant, сьомий мажорний стабільний реліз Ceph.[21]
Hammer (v0.94)
7 квітня 2015, група розробників Ceph випустила Hammer, восьмий мажорний стабільний реліз Ceph. Формував базу наступної тривалої стабільної серії. Призначений витіснити v0.80.x Firefly.[22]
Infernalis (v9.2.0)
On November 6, 2015, група розробників Ceph випустила Infernalis, девятий мажорний стабільний реліз Ceph. it will be the foundation for the next stable series. Включає три основні зміни після v0.94.x Hammer, та процес оновлення не трівіаотний.[23]

Етимологія[ред. | ред. код]

Назва «Ceph» — поширене прізвисько домашніх восьминогів та походить від головоногих, клас  молюски, і зрештою з давньогрецької κεφαλή (ke-pha-LEE), значення «голова» та πόδι (PO-dhi), значення «нога». Назва (підкреслені лого) передбачає високу паралельну поведінку восьминіга та була обрана для зєднання файлової системи з талісманом UCSC, a banana slug називається «Sammy».[24]

Примітки[ред. | ред. код]

  1. Ceph Community Forms Advisory Board. 2015-10-28. Процитовано 2016-01-20. 
  2. http://www.spinics.net/lists/ceph-devel/msg29954.html
  3. LGPL2.1 license file in the Ceph sources. 2014-10-24. Процитовано 2014-10-24. 
  4. Jeremy Andrews (2007-11-15). Ceph Distributed Network File System. KernelTrap. 
  5. Ceph Filesystem — Ceph Documentation. 
  6. а б M. Tim Jones (2010-06-04). Ceph: A Linux petabyte-scale distributed file system (PDF). IBM. Процитовано 2014-12-03. 
  7. Btrfs – Ceph Wiki. Процитовано 2010-04-27. 
  8. Jake Edge (2007-11-14). The Ceph filesystem. LWN.net. 
  9. Hard Disk and File System Recommendations. ceph.com. Процитовано 28 March 2013. 
  10. Sage Weil (2010-02-19). Client merged for 2.6.34. ceph.newdream.net. 
  11. Sage Weil (2007-12-01). Ceph: Reliable, Scalable, and High-Performance Distributed Storage. University of California, Santa Cruz. 
  12. Bryan Bogensberger (2012-05-03). And It All Comes Together. Inktank Blog. 
  13. Joseph F. Kovar (July 10, 2012). The 10 Coolest Storage Startups Of 2012 (So Far). CRN. Процитовано July 19, 2013. 
  14. Red Hat Inc (2014-04-30). Red Hat to Acquire Inktank, Provider of Ceph. Red Hat. Процитовано 2014-08-19. 
  15. Sage Weil (2012-07-03). v0.48 "Argonaut" Released. Ceph Blog. 
  16. Sage Weil (2013-01-01). v0.56 Released. Ceph Blog. 
  17. Sage Weil (2013-05-17). v0.61 "Cuttlefish" Released. Ceph Blog. 
  18. Sage Weil (2013-08-14). v0.67 Dumpling Released. Ceph Blog. 
  19. Sage Weil (2013-11-09). v0.72 Emperor Released. Ceph Blog. 
  20. Sage Weil (2014-05-07). v0.80 Firefly Released. Ceph Blog. 
  21. Sage Weil (2014-10-29). v0.87 Giant Released. Ceph Blog. 
  22. Sage Weil (2015-04-07). v0.94 Hammer Released. Ceph Blog. 
  23. Sage Weil (2015-11-06). v9.2.0 Infernalis Released. Ceph Blog. 
  24. How the Banana Slug became UCSC's official mascot. Процитовано September 22, 2009. 

Подальше читання[ред. | ред. код]

Джерела[ред. | ред. код]