Ceph (perangkat lunak)
Ceph bekerja dengan melakukan mereplikasi data dan membuatnya toleran terhadap kesalahan. Ceph dapat dibangun dengan perangkat keras komoditas dan tidak memerlukan dukungan perangkat keras tertentu. Ceph didesain dengan tujuan meminimalisir waktu administrasi dan manajemen serta biaya lainnya dengan fitur penyembuhan otomatis ("slef-healing") dan mengatur diri sendiri ("self-managing").
Pada 21 April 2016, tim pengembang Ceph merilis versi "Jewel", rilis Ceph pertama di mana CephFS dianggap stabil. Beberapa peningkatan dan fitur di versi ini antara lain alat perbaikan dan pemulihan bencana CephFS kini telah sempurna (dengan fitur snapshot, mendukung banyak server metadata aktif dan beberapa fungsi lainnya dinonaktifkan secara default).
Pada Agustus 2017, Ceph dengan nama kode "Luminous" dirilis dan memperkenalkan format penyimpanan baru, BlueStore yang siap-produksi. Format BlueStore ini didesain untuk memperbaiki banyak kekurangan filestore yang berbasis sistem file, sehingga dapat mengurasi latensi dan fitur penyimpanan tambahan.
Ceph dengan nama kodel "Mimic" dirilis pada Agustus 2018 dengan versi v13.2.0. Beberapa fitur terbaru pada rilis ini antara lain: implementasi dasbor Ceph baru turunan dari OpenATTIC yang menyediakan akses manajemen klaster dengan antarmuka webUI, konfigurasi yang kini disimpan dan diatur terpusat oleh monitor, dll.
Ceph didesain sebagai platform penyimpanan data terdistribusi yang sangat handal, mudah dikelola dan gratis. Pondasi dasar dari Ceph adalah RADOS ("Reliable, Autonomic Distributed Object Store").
RADOS menyediakan layanan penyimpanan data pada level dasar yang kemudian akan digunakan oleh aplikasi di atasnya. RADOS mengatur distribusi data di dalam Ceph dan secara aktif mengelola keandalan dan ketersediaan data. Hal ini dicapai dengan melakukan operasi pemulihan yang dibutuhkan saat terdapat komponen yang gagal serta menyeimbangkan klaster saat kapasitas bertambah atau berkurang.
Data yang diterima dari klien Ceph akan disimpan ke dalam bentuk objek. Objek merupakan bentuk terkecil dari data yang disimpang Ceph. Setiap objek diidentifikasi dengan nama yang unik. Tidak ada objek yang memiliki nama yang sama pada satu klaster dengan "namespace" yang sama.
Ceph menyimpan objek ini ke dalam "Object-based Storage Devices"
(OSDs). RADOS akan menghitung distribusi objek-objek berdasarkan algoritma CRUSH agar penempatan objek terdistribusi dengan baik. RADOS juga akan menghitung jumlah replikasi, menggandakan objek dan menyimpan objek pada "failure domain" yang berbeda untuk memastikan keandalan data.
Tiap objek akan ditempatkan ke dalam partisi logika yang disebut sebagai 'pool'. Setiap pool memiliki sejumlah Placement Group (PG). Algoritma CRUSH kemudian secara dinamis akan menghitung dan memetakan penempatan PG terhadap OSD.
Pada rilis terbaru, "Mimic" arsitektur Ceph dapat dibagi ke dalam lima jenis daemon yang berbeda: Semua fitur di atas dijalankan secara terdistribusi, namun juga dapat berjalan pada server yang sama. Klien yang menggunakan layanan dari Ceph dapat berinteraksi langsung dengan satu atau lebih dari daemon-daemon tersebut.
Prinsip utama dari Ceph adalah melakukan penyimpanan berkas ("file") dalam bentuk objek. Ceph akan melakukan pembagian berkas menjadi beberapa objek berkas yang lebih kecil. Prinsip ini mirip dengan "striping" berkas pada sistem RAID0 yang membagi partisi ke banyak hard drive. Proses ini dilakukan untuk mencapai "throughput" yang lebih tinggi.