Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Artikel ini ditulis untuk membantu anda memilih penyelesaian yang tepat untuk diri sendiri dan memahami perbezaan antara SDS seperti Gluster, Ceph dan Vstorage (Virtuozzo).

Teks menggunakan pautan ke artikel dengan pendedahan yang lebih terperinci tentang masalah tertentu, jadi penerangan akan sesingkat mungkin, menggunakan perkara utama tanpa fluff yang tidak perlu dan maklumat pengenalan yang anda boleh, jika anda mahu, dapatkan secara bebas di Internet.

Sebenarnya, sudah tentu, topik yang dibangkitkan memerlukan nada teks, tetapi dalam dunia moden semakin ramai orang tidak suka membaca banyak))), jadi anda boleh membaca dengan cepat dan membuat pilihan, dan jika ada sesuatu tidak jelas, ikut pautan atau perkataan yang tidak jelas google))), dan artikel ini seperti pembungkus telus untuk topik yang mendalam ini, menunjukkan pengisian - perkara utama utama setiap keputusan.

Kilauan

Mari kita mulakan dengan Gluster, yang digunakan secara aktif oleh pengeluar platform hyperconverged dengan SDS berdasarkan sumber terbuka untuk persekitaran maya dan boleh didapati di tapak web RedHat di bahagian storan, di mana anda boleh memilih daripada dua pilihan SDS: Gluster atau Ceph.

Gluster terdiri daripada timbunan penterjemah - perkhidmatan yang melaksanakan semua kerja mengedarkan fail, dsb. Brick ialah perkhidmatan yang menyediakan satu cakera, Volume ialah volum (pool) yang menyatukan bata ini. Seterusnya datang perkhidmatan untuk mengedarkan fail ke dalam kumpulan menggunakan fungsi DHT (jadual cincang yang diedarkan). Kami tidak akan memasukkan perkhidmatan Sharding dalam huraian kerana pautan di bawah akan menerangkan masalah yang berkaitan dengannya.

Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Semasa menulis, keseluruhan fail disimpan dalam bata dan salinannya ditulis secara serentak kepada bata pada pelayan kedua. Seterusnya, fail kedua akan ditulis kepada kumpulan kedua dua bata (atau lebih) pada pelayan yang berbeza.

Jika fail adalah kira-kira saiz yang sama dan jumlahnya hanya terdiri daripada satu kumpulan, maka semuanya baik-baik saja, tetapi dalam keadaan lain masalah berikut akan timbul daripada penerangan:

  • ruang dalam kumpulan digunakan secara tidak sekata, ia bergantung kepada saiz fail dan jika ruang dalam kumpulan tidak mencukupi untuk menulis fail, anda akan menerima ralat, fail tidak akan ditulis dan tidak akan diedarkan semula kepada kumpulan lain ;
  • apabila menulis satu fail, IO hanya pergi ke satu kumpulan, selebihnya melahu;
  • anda tidak boleh mendapatkan IO daripada keseluruhan volum semasa menulis satu fail;
  • dan konsep umum kelihatan kurang produktif kerana kekurangan pengedaran data ke dalam blok, di mana lebih mudah untuk mengimbangi dan menyelesaikan masalah pengedaran seragam, dan bukan seperti sekarang keseluruhan fail masuk ke dalam blok.

Daripada penerangan rasmi seni bina kami juga secara tidak sengaja memahami bahawa gluster berfungsi sebagai storan fail di atas RAID perkakasan klasik. Terdapat percubaan pembangunan untuk memotong (Sharding) fail menjadi blok, tetapi semua ini adalah tambahan yang mengenakan kerugian prestasi pada pendekatan seni bina yang sedia ada, ditambah dengan penggunaan komponen yang diedarkan secara bebas dengan had prestasi seperti Fuse. Tiada perkhidmatan metadata, yang mengehadkan prestasi dan keupayaan toleransi kesalahan storan apabila mengedarkan fail ke dalam blok. Penunjuk prestasi yang lebih baik boleh diperhatikan dengan konfigurasi "Distributed Replicated" dan bilangan nod hendaklah sekurang-kurangnya 6 untuk menyusun replika 3 yang boleh dipercayai dengan pengagihan beban yang optimum.

Penemuan ini juga berkaitan dengan perihalan pengalaman pengguna Kilauan dan apabila dibandingkan dengan Ceph, dan terdapat juga penerangan tentang pengalaman yang membawa kepada pemahaman tentang konfigurasi yang lebih produktif dan lebih dipercayai ini "Diedarkan Direplikasi".
Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Gambar menunjukkan pengagihan beban semasa menulis dua fail, di mana salinan fail pertama diedarkan pada tiga pelayan pertama, yang digabungkan ke dalam kumpulan jilid 0, dan tiga salinan fail kedua diletakkan pada kumpulan kedua jilid1 daripada tiga pelayan. Setiap pelayan mempunyai satu cakera.

Kesimpulan umum ialah anda boleh menggunakan Gluster, tetapi dengan pemahaman bahawa akan ada had dalam prestasi dan toleransi kesalahan yang mewujudkan kesukaran dalam keadaan tertentu penyelesaian hiperkonvergen, di mana sumber juga diperlukan untuk beban pengkomputeran persekitaran maya.

Terdapat juga beberapa penunjuk prestasi Gluster yang boleh dicapai dalam keadaan tertentu, terhad kepada toleransi kesalahan.

Ceph

Sekarang mari kita lihat Ceph dari penerangan seni bina yang saya dapat cari. Terdapat juga perbandingan antara Glusterfs dan Ceph, di mana anda boleh segera memahami bahawa adalah dinasihatkan untuk menggunakan Ceph pada pelayan yang berasingan, kerana perkhidmatannya memerlukan semua sumber perkakasan yang sedang dimuatkan.

seni bina Ceph lebih kompleks daripada Gluster dan terdapat perkhidmatan seperti perkhidmatan metadata, tetapi keseluruhan timbunan komponen agak kompleks dan tidak begitu fleksibel untuk menggunakannya dalam penyelesaian virtualisasi. Data disimpan dalam blok, yang kelihatan lebih produktif, tetapi dalam hierarki semua perkhidmatan (komponen), terdapat kerugian dan kependaman di bawah beban dan keadaan kecemasan tertentu, contohnya yang berikut artikel.

Dari penerangan seni bina, hati adalah CRUSH, terima kasih kepada lokasi untuk menyimpan data dipilih. Seterusnya datang PG - ini adalah abstraksi (kumpulan logik) yang paling sukar untuk difahami. PG diperlukan untuk menjadikan CRUSH lebih berkesan. Tujuan utama PG adalah untuk mengumpulkan objek untuk mengurangkan penggunaan sumber, meningkatkan prestasi dan kebolehskalaan. Menangani objek secara langsung, secara individu, tanpa menggabungkannya menjadi PG akan menjadi sangat mahal. OSD ialah perkhidmatan untuk setiap cakera individu.

Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Kluster boleh mempunyai satu atau banyak kumpulan data untuk tujuan yang berbeza dan dengan tetapan yang berbeza. Kolam dibahagikan kepada kumpulan penempatan. Kumpulan peletakan menyimpan objek yang diakses oleh pelanggan. Di sinilah tahap logik berakhir, dan tahap fizikal bermula, kerana setiap kumpulan peletakan diberikan satu cakera utama dan beberapa cakera replika (berapa banyak sebenarnya bergantung pada faktor replikasi kolam). Dalam erti kata lain, pada tahap logik objek disimpan dalam kumpulan penempatan tertentu, dan pada tahap fizikal - pada cakera yang diberikan kepadanya. Dalam kes ini, cakera boleh ditempatkan secara fizikal pada nod yang berbeza atau bahkan di pusat data yang berbeza.

Dalam skim ini, kumpulan penempatan kelihatan seperti tahap yang diperlukan untuk fleksibiliti keseluruhan penyelesaian, tetapi pada masa yang sama, sebagai pautan tambahan dalam rantaian ini, yang secara tidak sengaja mencadangkan kehilangan produktiviti. Sebagai contoh, semasa menulis data, sistem perlu membahagikannya kepada kumpulan ini dan kemudian pada tahap fizikal ke dalam cakera utama dan cakera untuk replika. Iaitu, fungsi Hash berfungsi apabila mencari dan memasukkan objek, tetapi terdapat kesan sampingan - ia adalah kos yang sangat tinggi dan sekatan untuk membina semula hash (apabila menambah atau mengalih keluar cakera). Satu lagi masalah hash ialah lokasi data yang jelas yang tidak boleh diubah. Iaitu, jika entah bagaimana cakera berada di bawah beban yang meningkat, maka sistem tidak mempunyai peluang untuk tidak menulis kepadanya (dengan memilih cakera lain), fungsi hash mewajibkan data ditempatkan mengikut peraturan, tidak kira betapa buruknya. cakera itu, jadi Ceph memakan banyak memori apabila membina semula PG sekiranya penyembuhan diri atau peningkatan storan. Kesimpulannya ialah Ceph berfungsi dengan baik (walaupun perlahan), tetapi hanya apabila tiada penskalaan, situasi kecemasan, atau kemas kini.

Sudah tentu, terdapat pilihan untuk meningkatkan prestasi melalui caching dan perkongsian cache, tetapi ini memerlukan perkakasan yang baik dan masih akan ada kerugian. Tetapi secara keseluruhan, Ceph kelihatan lebih menarik daripada Gluster untuk produktiviti. Juga, apabila menggunakan produk ini, adalah perlu untuk mengambil kira faktor penting - ini adalah tahap kecekapan, pengalaman dan profesionalisme yang tinggi dengan penekanan yang besar pada Linux, kerana sangat penting untuk menggunakan, mengkonfigurasi dan menyelenggara semuanya dengan betul, yang lebih membebankan tanggungjawab dan beban kepada pentadbir.

Vstorage

Seni bina kelihatan lebih menarik Storan Virtuozzo(Vstorage), yang boleh digunakan bersama hypervisor pada nod yang sama, pada nod yang sama kelenjar, tetapi adalah sangat penting untuk mengkonfigurasi semuanya dengan betul untuk mencapai prestasi yang baik. Iaitu, menggunakan produk sedemikian dari kotak pada sebarang konfigurasi tanpa mengambil kira cadangan mengikut seni bina akan menjadi sangat mudah, tetapi tidak produktif.

Apa yang boleh wujud bersama untuk storan di sebelah perkhidmatan hipervisor kvm-qemu, dan ini hanyalah beberapa perkhidmatan di mana hierarki komponen optimum yang padat telah ditemui: perkhidmatan pelanggan yang dipasang melalui FUSE (diubah suai, bukan sumber terbuka), perkhidmatan metadata MDS (Perkhidmatan Metadata), perkhidmatan blok data perkhidmatan Chunk, yang pada tahap fizikal adalah sama dengan satu cakera dan itu sahaja. Dari segi kelajuan, sudah tentu, adalah optimum untuk menggunakan skim toleran kesalahan dengan dua replika, tetapi jika anda menggunakan caching dan log pada pemacu SSD, maka pengekodan toleran ralat (padam pengekodan atau raid6) boleh di-overclock dengan baik pada a skema hibrid atau lebih baik pada semua denyar. Terdapat beberapa kelemahan dengan EC (padam pengekodan): apabila menukar satu blok data, adalah perlu untuk mengira semula jumlah pariti. Untuk memintas kerugian yang berkaitan dengan operasi ini, Ceph menulis kepada EC secara tertangguh dan masalah prestasi boleh berlaku semasa permintaan tertentu, apabila, sebagai contoh, semua blok perlu dibaca, dan dalam kes Virtuozzo Storage, menulis blok yang diubah. dijalankan menggunakan pendekatan "sistem fail berstruktur log", yang meminimumkan kos pengiraan pariti. Untuk menganggarkan lebih kurang pilihan dengan pecutan kerja dengan dan tanpa EC, terdapat kalkulator. – angka boleh menjadi anggaran bergantung pada pekali ketepatan pengeluar peralatan, tetapi hasil pengiraan adalah bantuan yang baik dalam merancang konfigurasi.

Gambar rajah ringkas komponen penyimpanan tidak bermakna komponen ini tidak menyerap рСсурсы ΠΆΠ΅Π»Π΅Π·Π°, tetapi jika anda mengira semua kos terlebih dahulu, anda boleh mengharapkan kerjasama di sebelah hypervisor.
Terdapat skim untuk membandingkan penggunaan sumber perkakasan oleh perkhidmatan storan Ceph dan Virtuozzo.

Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Jika sebelum ini adalah mungkin untuk membandingkan Gluster dan Ceph menggunakan artikel lama, menggunakan baris yang paling penting daripada mereka, maka dengan Virtuozzo ia lebih sukar. Tidak banyak artikel mengenai produk ini dan maklumat hanya boleh diperolehi daripada dokumentasi di dalam bahasa Inggeris atau dalam bahasa Rusia jika kami menganggap Vstorage sebagai storan yang digunakan dalam beberapa penyelesaian hiperkonvergen dalam syarikat seperti Rosplatforma dan Acronis.

Saya akan cuba membantu dengan penerangan seni bina ini, jadi akan ada lebih sedikit teks, tetapi memerlukan banyak masa untuk memahami dokumentasi itu sendiri, dan dokumentasi yang sedia ada hanya boleh digunakan sebagai rujukan dengan menyemak jadual kandungan atau carian mengikut kata kunci.

Mari kita pertimbangkan proses rakaman dalam konfigurasi perkakasan hibrid dengan komponen yang diterangkan di atas: rakaman mula pergi ke nod dari mana pelanggan memulakannya (perkhidmatan titik pelekap FUSE), tetapi komponen induk Perkhidmatan Metadata (MDS) sudah tentu akan arahkan pelanggan terus ke perkhidmatan bahagian yang dikehendaki (blok CS perkhidmatan penyimpanan), iaitu, MDS tidak mengambil bahagian dalam proses rakaman, tetapi hanya mengarahkan perkhidmatan ke bahagian yang diperlukan. Secara umum, kita boleh memberi analogi kepada rakaman dengan menuang air ke dalam tong. Setiap tong ialah blok data 256MB.

Perbandingan ringkas seni bina SDS atau mencari platform storan yang betul (GlusterVsCephVsVirtuozzoStorage)

Iaitu, satu cakera ialah bilangan tertentu tong tersebut, iaitu, volum cakera dibahagikan dengan 256MB. Setiap salinan diedarkan kepada satu nod, yang kedua hampir selari dengan nod lain, dll... Jika kita mempunyai tiga replika dan terdapat cakera SSD untuk cache (untuk membaca dan menulis log), maka pengesahan penulisan akan berlaku selepas menulis log ke SSD, dan tetapan semula selari dari SSD akan diteruskan pada HDD, seolah-olah di latar belakang. Dalam kes tiga replika, rekod akan dilakukan selepas pengesahan daripada SSD nod ketiga. Nampaknya jumlah kelajuan tulis tiga SSD boleh dibahagikan dengan tiga dan kita akan mendapat kelajuan tulis satu replika, tetapi salinan ditulis selari dan kelajuan Latensi rangkaian biasanya lebih tinggi daripada SSD, dan sebenarnya prestasi tulis akan bergantung pada rangkaian. Dalam hal ini, untuk melihat IOPS sebenar, anda perlu memuatkan keseluruhan Vstorage dengan betul metodologi, iaitu, menguji beban sebenar, dan bukan memori dan cache, di mana perlu mengambil kira saiz blok data yang betul, bilangan benang, dsb.

Log rakaman yang disebutkan di atas pada SSD berfungsi sedemikian rupa sehingga sebaik sahaja data masuk ke dalamnya, ia segera dibaca oleh perkhidmatan dan ditulis ke HDD. Terdapat beberapa perkhidmatan metadata (MDS) setiap kluster dan bilangannya ditentukan oleh kuorum, yang berfungsi mengikut algoritma Paxos. Dari sudut pandangan pelanggan, titik pelekap FUSE ialah folder storan kluster yang boleh dilihat secara serentak oleh semua nod dalam kluster, setiap nod mempunyai klien yang dipasang mengikut prinsip ini, jadi storan ini tersedia untuk setiap nod.

Untuk prestasi mana-mana pendekatan yang diterangkan di atas, adalah sangat penting, pada peringkat perancangan dan penggunaan, untuk mengkonfigurasi rangkaian dengan betul, di mana akan ada pengimbangan disebabkan oleh pengagregatan dan jalur lebar saluran rangkaian yang dipilih dengan betul. Dalam pengagregatan, adalah penting untuk memilih mod pencincangan dan saiz bingkai yang betul. Terdapat juga perbezaan yang sangat kuat daripada SDS yang diterangkan di atas, ini adalah fius dengan teknologi laluan pantas dalam Storan Virtuozzo. Yang, sebagai tambahan kepada fius yang dimodenkan, tidak seperti penyelesaian sumber terbuka lain, meningkatkan IOPS dengan ketara dan membolehkan anda tidak dihadkan oleh penskalaan mendatar atau menegak. Secara umum, berbanding dengan seni bina yang diterangkan di atas, yang ini kelihatan lebih berkuasa, tetapi untuk keseronokan itu, sudah tentu, anda perlu membeli lesen, tidak seperti Ceph dan Gluster.

Untuk meringkaskan, kami boleh menyerlahkan bahagian atas tiga: Storan Virtuozzo mengambil tempat pertama dari segi prestasi dan kebolehpercayaan seni bina, Ceph mengambil tempat kedua, dan Gluster mengambil tempat ketiga.

Kriteria yang digunakan oleh Storan Virtuozzo dipilih: ia merupakan set komponen seni bina yang optimum, dimodenkan untuk pendekatan Fius ini dengan laluan pantas, set konfigurasi perkakasan yang fleksibel, penggunaan sumber yang kurang dan keupayaan untuk berkongsi dengan pengiraan (pengkomputeran/penvirtualisasian), iaitu, ia benar-benar sesuai untuk penyelesaian hiperkonvergen , yang merupakan sebahagian daripadanya. Tempat kedua ialah Ceph kerana ia adalah seni bina yang lebih produktif berbanding dengan Gluster, kerana operasinya dalam blok, serta senario yang lebih fleksibel dan keupayaan untuk bekerja dalam kelompok yang lebih besar.

Terdapat rancangan untuk menulis perbandingan antara vSAN, Space Direct Storage, Vstorage dan Nutanix Storage, menguji Vstorage pada peralatan HPE dan Huawei, serta senario untuk menyepadukan Vstorage dengan sistem storan perkakasan luaran, jadi jika anda menyukai artikel itu, ia akan menjadi senang mendapat maklum balas daripada anda, yang boleh meningkatkan motivasi untuk artikel baharu, dengan mengambil kira komen dan kehendak anda.

Sumber: www.habr.com

Tambah komen