Coba jelasin Arsitektur dari Ceph (perangkat lunak) dong

Ceph didesain sebagai platform penyimpanan data terdistribusi yang sangat andal, 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 algoritme 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). Algoritme 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:

Monitor klaster () yang berfungsi sebagai manajemen terpusat yang memantau keseluruhan kluster

Server metadata () berfungsi untuk menyimpan metadata dari inode dan direktori

Perangkat penyimpanan objek () berfungsi untuk menuliskan objek langsung pada penyimpanan disk (pada sistem dengan format BlueStore, sejak rilis v12.x) atau menyimpan objek ke dalam sistem file (pada sistem XFS) untuk format Filestore)

Gateway penyimpanan objek dengan RESTful () yang mengekspos penyimpanan objek sebagai antarmuka yang kompatibel dengan Amazon S3 atau OpenStack Swift APIs

Manager Ceph (ceph-mgr) merupakan daemon yang menyediakan fungsi pemantauan (monitoring) serta mengekspos antarmuka untuk pemantauan dan manajemen eksternal

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.