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

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

Ceph
Тип Розподілене зберігання об'єктів
Автор 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[2]
Стабільний випуск 18.2 (3 серпня, 2023; 8 місяців тому (2023-08-03))
Операційна система Linux
Мова програмування C++, Python[джерело?]
Ліцензія LGPL 2.1[3]
Репозиторій github.com/ceph/ceph
Вебсайт ceph.com

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. Формував базу наступної тривалої стабільної серії. Включає три основні зміни після v0.94.x Hammer, та процес оновлення не тривіальний.[23]

Етимологія ред.

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

Примітки ред.

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

Подальше читання ред.

Джерела ред.