Ceph as pluggable storage: 5 wawasan praktis dari proyek besar

Mengingat pertumbuhan data, saat ini semakin sering dikatakan tentang gudang data yang ditentukan perangkat lunak dan didistribusikan, dan banyak perhatian secara tradisional dibayarkan ke platform Ceph terbuka. Hari ini kami ingin berbicara tentang kesimpulan yang kami dapatkan dalam proses penerapan proyek penyimpanan data untuk satu departemen besar Rusia.



Ketika datang untuk menyimpan data dari berbagai jenis, tentu saja, gudang data terdistribusi segera muncul dalam pikiran. Secara teoritis, ada banyak keuntungan untuk solusi tersebut: Anda dapat menggunakan disk apa pun, sistem bekerja pada server apa pun (bahkan yang sangat lama), praktis tidak ada batasan untuk penskalaan. Itulah sebabnya pengenalan sistem semacam itu diluncurkan beberapa tahun yang lalu di salah satu departemen Rusia terbesar dengan unit tidak hanya di semua wilayah Federasi Rusia, tetapi bahkan di semua kota besar lebih atau kurang.

Setelah menganalisis solusi yang tersedia, pilihan dibuat untuk Ceph. Ada beberapa alasan untuk keputusan ini:
• Ceph adalah produk yang cukup matang, dan saat ini ada instalasi Ceph pada petabytes informasi.
• Komunitas besar terlibat dalam pengembangan (termasuk kami), yang berarti bahwa fungsi dan peningkatan baru akan muncul untuk penyimpanan.
• Ceph sudah memiliki API yang baik dengan dukungan untuk berbagai bahasa pemrograman. Ini penting karena produk jelas perlu disempurnakan untuk memenuhi persyaratan dan harapan pelanggan.
• Lisensi tidak dikenakan biaya. Tidak, tentu saja, sistem perlu dikembangkan lebih lanjut, tetapi dalam kasus tugas-tugas khusus pelanggan, perlu untuk melakukan pengembangan tambahan, jadi mengapa tidak melakukannya berdasarkan produk gratis?
• Akhirnya, sanksi. Perusahaan-perusahaan milik negara harus diasuransikan bahwa pada saat seseorang datang dengan ide untuk memaksakan pembatasan pada mereka, dan karenanya bergantung pada produk asing dan terutama Amerika adalah berbahaya. Hal lain, Open Source.

Temuan praktis
Pengenalan Ceph terjadi secara bertahap selama beberapa bulan. Pertama, penyimpanan diluncurkan di kawasan pusat, dan kemudian kami mereplikasi solusi dengan menghubungkan pusat data regional. Dengan munculnya setiap node jaringan baru, kinerja penyimpanan meningkat, meskipun ada peningkatan aliran data di dalamnya, memastikan transfer informasi dari satu wilayah ke wilayah lain.
Fitur dari pekerjaan organisasi besar mana pun adalah kebutuhan untuk menyimpan informasi yang heterogen, yang seringkali merupakan file biner. Seperti yang diperlihatkan oleh praktik, karyawan tidak punya waktu untuk mencari tahu seperti apa file mereka, mengategorikannya dan memprosesnya secara tepat waktu - informasi mengelola untuk mengakumulasi lebih cepat. Dan agar tidak kehilangan data penting yang potensial untuk kegiatan operasional, perlu mengatur penyimpanan kompeten mereka. Misalnya, berdasarkan penyimpanan terdistribusi.
Dan dalam proses implementasi proyek semacam itu, kami membuat beberapa kesimpulan tentang penggunaan Ceph:

Kesimpulan 1: Ceph sepenuhnya menggantikan semua solusi cadangan
Seperti yang telah ditunjukkan oleh praktik, cadangan untuk sebagian besar informasi yang tidak terstruktur tidak dilakukan sama sekali, karena sangat sulit untuk mengimplementasikannya. Ketika Ceph diimplementasikan, cadangan diperoleh seolah-olah "dalam bentuk bonus". Saat menyiapkan, kami cukup mengatur parameter replikasi - jumlah salinan dan lokasi penempatannya. Jika pelanggan memiliki beberapa pusat data, konfigurasi bencana diperoleh yang sama sekali tidak memerlukan cadangan tambahan jika ada 3-4 salinan data pada disk dan server yang berbeda. Sistem seperti itu bekerja lebih baik daripada solusi perangkat keras apa pun, setidaknya untuk saat ini kita berbicara tentang sejumlah besar data dan sistem yang terdistribusi secara geografis.

Kesimpulan 2: Dengan instalasi besar, kinerja Ceph adalah 99% sama dengan kinerja jaringan.
Ketika kami mentransfer data dari database PostgreSQL (lebih lanjut tentang itu di bawah) ke penyimpanan berbasis Ceph, kecepatan unggah dalam kebanyakan kasus sama dengan bandwidth jaringan transmisi data. Jika dalam beberapa kasus ini tidak terjadi, mengkonfigurasi ulang Ceph diperbolehkan untuk mencapai kecepatan ini. Tentu saja, kita tidak berbicara tentang koneksi 100 Gb / s, tetapi dengan saluran data standar untuk infrastruktur yang didistribusikan secara geografis, sangat mungkin untuk mencapai kinerja Ceph dot dot 10 Mbit / dtk, 100 Mbit / dtk atau 1 Gbit / dtk. Cukup untuk mendistribusikan disk dengan benar dan mengkonfigurasi pengelompokan informasi.

Kesimpulan 3: Hal utama adalah mengkonfigurasi Ceph dengan benar dengan mempertimbangkan kekhasan perusahaan
Berbicara tentang pengaturan, bagian terbesar dari keahlian dalam pekerjaan Ceph diperlukan pada tahap konfigurasi sistem. Selain parameter replikasi, solusi ini juga memungkinkan Anda untuk mengatur tingkat akses, aturan penyimpanan data, dan sebagainya. Misalnya, jika kami memiliki pusat komputasi mini di seluruh Rusia, kami dapat mengatur akses cepat ke dokumen dan file yang dibuat di wilayah kami, serta akses ke semua dokumen perusahaan dari mana saja. Yang terakhir akan bekerja dengan penundaan yang sedikit lebih lama dan kecepatan yang lebih rendah, tetapi "konsentrasi" informasi di tempat kepemilikan menciptakan kondisi yang optimal bagi organisasi.

Kesimpulan 4: Ketika sudah dikonfigurasi, setiap administrator Linux dapat mengelola Ceph
Mungkin salah satu fitur paling menyenangkan dari Ceph adalah bahwa sistem bekerja tanpa keterlibatan manusia yang tidak perlu ketika sudah dikonfigurasi. Yaitu, ternyata di pusat data mini jarak jauh itu cukup berisi hanya administrator Linux, karena dukungan untuk segmen Ceph berikutnya tidak memerlukan pengetahuan tambahan.

Kesimpulan 5: Melengkapi Ceph dengan sistem pengindeksan eksternal membuat penyimpanan nyaman untuk pencarian kontekstual
Seperti yang Anda ketahui, di dalam Ceph tidak ada indeks yang dapat digunakan untuk mencari berdasarkan konteks. Oleh karena itu, ketika suatu objek dimasukkan ke dalam penyimpanan, dimungkinkan untuk menyimpan meta-data yang berfungsi sebagai indeks. Volumenya cukup kecil, dan karenanya DBMS relasional biasa dapat dengan mudah mengatasinya. Tentu saja, ini adalah sistem tambahan, tetapi pendekatan ini memungkinkan Anda untuk dengan cepat menemukan informasi berdasarkan konteks di antara volume besar data yang tidak terstruktur.



Beberapa kata tentang transfer data
Sebuah proyek besar melibatkan banyak tahap, tetapi mungkin yang paling menarik bagi kami adalah proses mentransfer sejumlah besar data dari PostgreSQL ke repositori baru. Setelah meluncurkan Ceph, tugas muncul untuk memigrasikan data dari banyak basis data tanpa menghentikan layanan dan proses bisnis dan memastikan integritas informasi.
Untuk melakukan ini, kami harus berkontribusi pada pengembangan proyek Sumber Terbuka Ceph dan membuat modul migrasi pg_rbytea, yang kode sumbernya dapat ditemukan di tautan ( https://github.com/val5244/pg_rbytea ). Inti dari solusi ini adalah untuk secara bersamaan mentransfer data dari database yang ditentukan ke repositori Ceph. Modul yang dikembangkan memungkinkan Anda untuk melakukan migrasi data secara instan tanpa menghentikan basis data, menggunakan abstraksi penyimpanan objek Rados, dukungan yang diimplementasikan dalam Ceph di tingkat asli. Omong-omong, kami membuat laporan tentang hal ini di PG Conf pada awal 2018 ( https://pgconf.ru/2018/107082 ).
Pada tahap pertama, berbagai data biner yang diperlukan untuk pekerjaan fungsional departemen-departemen dipindahkan ke repositori. Bahkan, semua file dan objek yang tidak jelas cara menyimpan karena volume total yang besar dan struktur fuzzy. Selanjutnya, direncanakan untuk mentransfer berbagai konten media ke Ceph, menyimpan dokumen asli yang dibuat sebelum pengakuan dan lampiran dari surat perusahaan.
Agar semua ini dapat bekerja di atas penyimpanan, dikembangkan layanan RESTful yang memungkinkan menggunakan Ceph untuk diintegrasikan ke dalam sistem pelanggan. Di sini sekali lagi, keberadaan API yang nyaman memainkan peran, yang memungkinkan Anda membuat layanan plug-in untuk berbagai sistem informasi. Jadi Ceph telah menjadi gudang utama, mengklaim semakin banyak volume dan jenis informasi dalam organisasi.

Kesimpulan
Berbagai gudang data terdistribusi ada di pasar, termasuk solusi komersial dan produk sumber terbuka lainnya. Beberapa dari mereka menggunakan optimasi khusus, yang lain bekerja dengan kompresi atau menggunakan Erasure Coding. Namun, dalam praktiknya, kami yakin bahwa Ceph idealnya cocok untuk lingkungan yang benar-benar terdistribusi dan penyimpanan besar, karena dalam hal ini kinerja sistem hanya dibatasi oleh kecepatan saluran komunikasi, dan Anda menghemat banyak uang pada lisensi dengan jumlah server atau jumlah data (tergantung pada dengan produk mana yang akan dibandingkan). Sistem Ceph yang disetel dengan baik memungkinkan Anda untuk memastikan kinerja yang optimal dengan pengawasan minimal oleh administrator lokal di lapangan. Dan ini adalah keuntungan serius jika Anda memperkenalkan implementasi yang didistribusikan secara geografis.

Source: https://habr.com/ru/post/id417613/


All Articles