SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

Ushbu maqola o'zingiz uchun to'g'ri echimni tanlash va Gluster, Ceph va Vstorage (Virtuozzo) kabi SDS o'rtasidagi farqlarni tushunishga yordam berish uchun yozilgan.

Matnda ma'lum muammolar batafsilroq ochib berilgan maqolalarga havolalar qo'llaniladi, shuning uchun tavsiflar iloji boricha qisqa bo'lib, asosiy fikrlarni keraksiz bema'niliksiz va kirish ma'lumotlaridan foydalangan holda, agar xohlasangiz, Internetda mustaqil ravishda olishingiz mumkin.

Aslida, albatta, ko'tarilgan mavzular matnning ohanglarini talab qiladi, lekin zamonaviy dunyoda ko'proq odamlar ko'p o'qishni yoqtirmaydi))), shuning uchun siz tezda o'qishingiz va tanlov qilishingiz mumkin va agar biror narsa bo'lsa aniq emas, havolalar yoki Google noaniq so'zlarni amal))), va bu maqola to'ldirish ko'rsatib, bu chuqur mavzular uchun shaffof o'rash kabi - har bir qaror asosiy asosiy nuqtalari.

Yaltiroq

Keling, Gluster bilan boshlaylik, u virtual muhitlar uchun ochiq manbaga asoslangan SDS bilan giperkonversiyalangan platformalar ishlab chiqaruvchilari tomonidan faol foydalaniladi va RedHat veb-saytida saqlash bo'limida joylashgan bo'lib, u erda ikkita SDS variantini tanlashingiz mumkin: Gluster yoki Ceph.

Gluster tarjimonlar to'plamidan iborat - fayllarni tarqatish bo'yicha barcha ishlarni bajaradigan xizmatlar va boshqalar. Brick - bu bitta diskga xizmat ko'rsatadigan xizmat, Volume - bu g'ishtlarni birlashtiradigan hajm (hovuz). Keyinchalik DHT (tarqatilgan xesh jadvali) funksiyasidan foydalangan holda fayllarni guruhlarga taqsimlash xizmati keladi. Sharding xizmatini tavsifga kiritmaymiz, chunki quyidagi havolalar u bilan bog'liq muammolarni tasvirlaydi.

SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

Yozish paytida butun fayl g'ishtda saqlanadi va uning nusxasi bir vaqtning o'zida ikkinchi serverda g'ishtga yoziladi. Keyinchalik, ikkinchi fayl turli serverlarda ikkita g'ishtdan (yoki undan ko'p) ikkinchi guruhga yoziladi.

Agar fayllar taxminan bir xil o'lchamda bo'lsa va hajm faqat bitta guruhdan iborat bo'lsa, unda hamma narsa yaxshi, ammo boshqa sharoitlarda tavsiflardan quyidagi muammolar paydo bo'ladi:

  • guruhlardagi bo'sh joy notekis foydalaniladi, bu fayllar hajmiga bog'liq va agar guruhda fayl yozish uchun etarli joy bo'lmasa, siz xato olasiz, fayl yozilmaydi va boshqa guruhga qayta taqsimlanmaydi. ;
  • bitta faylni yozishda IO faqat bitta guruhga o'tadi, qolganlari bo'sh qoladi;
  • bitta faylni yozishda butun hajmning IO ni ololmaysiz;
  • va umumiy kontseptsiya ma'lumotlarni bloklarga taqsimlashning yo'qligi tufayli unumli ko'rinmaydi, bu erda bir xil taqsimlash muammosini muvozanatlash va hal qilish osonroq, va endi butun fayl blokga o'tmaydi.

Rasmiy tavsifdan arxitektura Shuningdek, biz beixtiyor gluster RAID klassik apparati ustidagi fayllarni saqlash vazifasini bajarishini tushunamiz. Fayllarni bloklarga bo'lish (Sharding) bo'yicha ishlab chiqish urinishlari bo'lgan, ammo bularning barchasi mavjud arxitektura yondashuviga unumdorlikni yo'qotadigan qo'shimcha, shuningdek, Fuse kabi ishlash cheklovlari bilan erkin taqsimlangan komponentlardan foydalanish. Fayllarni bloklarga tarqatishda xotiraning ishlashi va xatolarga chidamlilik imkoniyatlarini cheklaydigan metadata xizmatlari mavjud emas. Yaxshiroq ishlash ko'rsatkichlari "Taqsimlangan Replikatsiya" konfiguratsiyasi bilan kuzatilishi mumkin va optimal yuk taqsimoti bilan ishonchli replika 6 ni tashkil qilish uchun tugunlar soni kamida 3 bo'lishi kerak.

Ushbu topilmalar foydalanuvchi tajribasining tavsifi bilan ham bog'liq Yaltiroq va bilan solishtirganda Kef, shuningdek, ushbu samaraliroq va ishonchli konfiguratsiyani tushunishga olib keladigan tajriba tavsifi ham mavjud "Replikatsiya qilingan taqsimlangan".
SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

Rasmda ikkita faylni yozishda yuk taqsimoti ko'rsatilgan, bu erda birinchi faylning nusxalari birinchi uchta server bo'ylab taqsimlanadi, ular 0 jild guruhiga birlashtiriladi va ikkinchi faylning uchta nusxasi ikkinchi guruhning 1 jildiga joylashtiriladi. serverlar. Har bir serverda bitta disk mavjud.

Umumiy xulosa shundan iboratki, siz Gluster-dan foydalanishingiz mumkin, ammo tushunish bilan ishlash va nosozliklarga chidamlilik cheklovlari bo'ladi, bu giperkonversiyalangan yechimning ma'lum sharoitlarida qiyinchiliklarni keltirib chiqaradi, bu erda virtual muhitlarning hisoblash yuklari uchun resurslar ham kerak bo'ladi.

Bundan tashqari, ma'lum sharoitlarda erishish mumkin bo'lgan Gluster ishlash ko'rsatkichlari mavjud xatolarga chidamlilik.

Kef

Endi men qila olgan arxitektura tavsiflaridan Cefni ko'rib chiqaylik toping. O'rtasida taqqoslash ham mavjud Glusterfs va Ceph, bu erda Ceph-ni alohida serverlarda joylashtirish maqsadga muvofiqligini darhol tushunishingiz mumkin, chunki uning xizmatlari yuk ostida barcha apparat resurslarini talab qiladi.

arxitektura Ceph Gluster-ga qaraganda murakkabroq va metadata xizmatlari kabi xizmatlar mavjud, biroq komponentlarning butun to'plami juda murakkab va uni virtualizatsiya yechimida ishlatish uchun juda moslashuvchan emas. Ma'lumotlar bloklarda saqlanadi, bu yanada samaraliroq ko'rinadi, ammo barcha xizmatlar (komponentlar) ierarxiyasida ma'lum yuklar va favqulodda vaziyatlarda yo'qotishlar va kechikishlar mavjud, masalan: maqola.

Arxitektura tavsifidan yurak CRUSH bo'lib, buning yordamida ma'lumotlarni saqlash joyi tanlangan. Keyinchalik PG keladi - bu tushunish uchun eng qiyin abstraktsiya (mantiqiy guruh). CRUSHni yanada samarali qilish uchun PGlar kerak. PG ning asosiy maqsadi - resurslarni sarflashni kamaytirish, unumdorlik va miqyosni oshirish uchun ob'ektlarni guruhlash. Ob'ektlarga to'g'ridan-to'g'ri, alohida, ularni PGga birlashtirmasdan murojaat qilish juda qimmatga tushadi. OSD har bir alohida disk uchun xizmatdir.

SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

Klaster turli maqsadlar uchun va turli xil sozlamalarga ega bir yoki bir nechta ma'lumotlar hovuziga ega bo'lishi mumkin. Hovuzlar joylashtirish guruhlariga bo'lingan. Joylashtirish guruhlari mijozlar kiradigan ob'ektlarni saqlaydi. Bu erda mantiqiy daraja tugaydi va jismoniy daraja boshlanadi, chunki har bir joylashtirish guruhiga bitta asosiy disk va bir nechta replika disklari (to'liq qanchasi hovuz replikatsiyasi omiliga bog'liq) tayinlangan. Boshqacha qilib aytganda, mantiqiy darajada ob'ekt ma'lum bir joylashtirish guruhida va jismoniy darajada - unga biriktirilgan disklarda saqlanadi. Bunday holda, disklar jismonan turli tugunlarda yoki hatto turli ma'lumotlar markazlarida joylashgan bo'lishi mumkin.

Ushbu sxemada joylashtirish guruhlari butun yechimning moslashuvchanligi uchun zarur darajaga o'xshaydi, lekin ayni paytda, bu zanjirning qo'shimcha bo'g'ini sifatida, beixtiyor ishlab chiqarishning yo'qolishini ko'rsatadi. Misol uchun, ma'lumotlarni yozishda tizim uni ushbu guruhlarga, so'ngra jismoniy darajada asosiy disk va nusxalar uchun disklarga bo'lishi kerak. Ya'ni, "Xesh" funksiyasi ob'ektni qidirish va kiritishda ishlaydi, ammo yon ta'siri bor - bu juda katta xarajatlar va xeshni qayta qurishda cheklovlar (diskni qo'shish yoki olib tashlashda). Yana bir xesh muammosi - bu o'zgartirib bo'lmaydigan ma'lumotlarning aniq tirnoqli joylashuvidir. Ya'ni, agar disk qandaydir tarzda yuklangan bo'lsa, tizim unga yozmaslik imkoniyatiga ega emas (boshqa diskni tanlash orqali), xesh funktsiyasi qanchalik yomon bo'lishidan qat'i nazar, ma'lumotlarni qoida bo'yicha joylashtirishga majbur qiladi. disk, shuning uchun Ceph o'z-o'zini davolash yoki saqlash hajmini oshirishda PGni qayta qurishda juda ko'p xotirani iste'mol qiladi. Xulosa shuki, Ceph yaxshi ishlaydi (sekin bo'lsa ham), lekin faqat miqyos, favqulodda vaziyatlar yoki yangilanishlar bo'lmaganda.

Albatta, keshlash va kesh almashish orqali unumdorlikni oshirish variantlari mavjud, ammo bu yaxshi uskunani talab qiladi va hali ham yo'qotishlar bo'ladi. Ammo umuman olganda, Ceph mahsuldorlik uchun Glusterga qaraganda jozibali ko'rinadi. Shuningdek, ushbu mahsulotlardan foydalanganda muhim omilni hisobga olish kerak - bu Linux-ga katta e'tibor qaratadigan yuqori malaka, tajriba va professionallik, chunki hamma narsani to'g'ri joylashtirish, sozlash va qo'llab-quvvatlash juda muhim, bu esa ma'murga yanada ko'proq mas'uliyat va yuk yuklaydi.

Saqlash

Arxitektura yanada qiziqarli ko'rinadi Virtuozzo saqlash (Vstorage), xuddi shu tugunlarda gipervisor bilan birgalikda ishlatilishi mumkin bez, lekin yaxshi ishlashga erishish uchun hamma narsani to'g'ri sozlash juda muhimdir. Ya'ni, bunday mahsulotni arxitekturaga muvofiq tavsiyalarni hisobga olmagan holda har qanday konfiguratsiyada qutidan joylashtirish juda oson, ammo unumli emas.

Kvm-qemu gipervisor xizmatlari yonida saqlash uchun nima mavjud bo'lishi mumkin va bu komponentlarning ixcham optimal ierarxiyasi topilgan bir nechta xizmatlar: FUSE (o'zgartirilgan, ochiq manba emas), MDS metadata xizmati orqali o'rnatilgan mijoz xizmati (Metadata xizmati), jismoniy darajada bitta diskga teng bo'lgan Chunk ma'lumotlar bloklari xizmati va bu hammasi. Tezlik nuqtai nazaridan, shubhasiz, ikkita replikatsiyaga ega nosozliklarga chidamli sxemadan foydalanish maqbuldir, lekin agar siz SSD disklarida keshlash va jurnallardan foydalansangiz, xatolarga chidamli kodlashni (kodlashni o'chirish yoki raid6) yaxshi overclock qilish mumkin. gibrid sxemasi yoki barcha fleshlarda ham yaxshiroq. EC (kodlashni o'chirish) ning ba'zi kamchiliklari mavjud: bitta ma'lumot blokini o'zgartirganda, paritet miqdorlarini qayta hisoblash kerak. Ushbu operatsiya bilan bog'liq yo'qotishlarni chetlab o'tish uchun Ceph ECga kechiktirilgan holda yozadi va ma'lum bir so'rov davomida ishlash muammolari paydo bo'lishi mumkin, masalan, barcha bloklarni o'qish kerak bo'lganda va Virtuozzo Storage holatida o'zgartirilgan bloklarni yozish amalga oshiriladi. paritetni hisoblash xarajatlarini minimallashtiradigan "log-strukturali fayl tizimi" yondashuvidan foydalanish. Taxminan EC bilan va EKsiz ishlashni tezlashtirish variantlarini taxmin qilish uchun mavjud kalkulyator. - raqamlar uskunani ishlab chiqaruvchining aniqlik koeffitsientiga qarab taxminiy bo'lishi mumkin, ammo hisob-kitoblarning natijasi konfiguratsiyani rejalashtirishda yaxshi yordam beradi.

Saqlash komponentlarining oddiy diagrammasi bu komponentlar so'rilmaydi degani emas temir resurslari, lekin agar siz barcha xarajatlarni oldindan hisoblab chiqsangiz, gipervisor yonida hamkorlikka ishonishingiz mumkin.
Ceph va Virtuozzo saqlash xizmatlari tomonidan apparat resurslari iste'molini taqqoslash sxemasi mavjud.

SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

Agar ilgari Gluster va Cephni eski maqolalar yordamida, ularning eng muhim satrlaridan foydalangan holda solishtirish mumkin bo'lsa, Virtuozzo bilan bu qiyinroq. Ushbu mahsulot haqida ko'plab maqolalar mavjud emas va ma'lumotni faqat hujjatlardan olish mumkin ingliz tilida yoki rus tilida, agar Vstorage-ni kompaniyalarda ba'zi hiperkonverged echimlarda ishlatiladigan saqlash deb hisoblasak Rosplatforma va Acronis.

Men ushbu arxitekturani tavsiflashda yordam berishga harakat qilaman, shuning uchun biroz ko'proq matn bo'ladi, lekin hujjatlarni o'zingiz tushunish uchun ko'p vaqt kerak bo'ladi va mavjud hujjatlar faqat jadvalni qayta ko'rib chiqish orqali ma'lumotnoma sifatida ishlatilishi mumkin. mazmuni yoki kalit so'z bo'yicha qidirish.

Yuqorida tavsiflangan komponentlar bilan gibrid apparat konfiguratsiyasida yozib olish jarayonini ko'rib chiqaylik: yozuv mijoz uni boshlagan tugunga (FUSE o'rnatish nuqtasi xizmati) o'tishni boshlaydi, lekin Metadata Service (MDS) asosiy komponenti, albatta, bo'ladi. mijozni to'g'ridan-to'g'ri kerakli chunk xizmatiga (saqlash xizmati CS bloklari) yo'naltirish, ya'ni MDS yozish jarayonida ishtirok etmaydi, shunchaki xizmatni kerakli bo'lakka yo'naltiradi. Umuman olganda, biz barrellarga suv quyish bilan yozishga o'xshashlik keltira olamiz. Har bir barrel 256 MB ma'lumotlar blokidir.

SDS arxitekturasini qisqacha taqqoslash yoki to'g'ri saqlash platformasini topish (GlusterVsCephVsVirtuozzoStorage)

Ya'ni, bitta disk bunday barrellarning ma'lum soni, ya'ni disk hajmi 256 MB ga bo'linadi. Har bir nusxa bitta tugunga, ikkinchisi deyarli boshqa tugunga parallel ravishda taqsimlanadi va hokazo... Agar bizda uchta replika mavjud bo'lsa va kesh uchun SSD disklari (jurnallarni o'qish va yozish uchun) bo'lsa, u holda yozishni tasdiqlash yozishdan keyin sodir bo'ladi. jurnalni SSD-ga o'tkazish va SSD-dan parallel tiklash HDD-da, xuddi fonda bo'lgani kabi davom etadi. Uch nusxada bo'lsa, yozuv uchinchi tugunning SSD-si tomonidan tasdiqlanganidan keyin amalga oshiriladi. Ko'rinishidan, uchta SSD-ning yozish tezligi yig'indisini uchga bo'lish mumkin va biz bitta nusxaning yozish tezligini olamiz, ammo nusxalar parallel ravishda yoziladi va tarmoqning kechikish tezligi odatda SSD-dan yuqori, va aslida yozish samaradorligi tarmoqqa bog'liq bo'ladi. Shu munosabat bilan, haqiqiy IOPS-ni ko'rish uchun siz butun Vstorage-ni to'g'ri yuklashingiz kerak metodologiyasi, ya'ni xotira va keshni emas, balki haqiqiy yukni sinab ko'rish, bu erda ma'lumotlar blokining to'g'ri hajmini, iplar sonini va hokazolarni hisobga olish kerak.

SSD-dagi yuqorida qayd etilgan qayd yozuvi shunday ishlaydiki, ma'lumotlar unga kirishi bilanoq, u darhol xizmat tomonidan o'qiladi va HDD-ga yoziladi. Har bir klasterda bir nechta metadata xizmatlari (MDS) mavjud va ularning soni Paxos algoritmiga muvofiq ishlaydigan kvorum tomonidan belgilanadi. Mijoz nuqtai nazaridan, FUSE o'rnatish nuqtasi klasterdagi barcha tugunlarga bir vaqtning o'zida ko'rinadigan klaster saqlash papkasi bo'lib, har bir tugunda ushbu printsipga muvofiq o'rnatilgan mijoz mavjud, shuning uchun bu saqlash har bir tugun uchun mavjud.

Yuqorida tavsiflangan har qanday yondashuvni amalga oshirish uchun rejalashtirish va joylashtirish bosqichida tarmoqni to'g'ri sozlash juda muhim, bu erda yig'ish va to'g'ri tanlangan tarmoq kanalining o'tkazish qobiliyati tufayli muvozanat bo'ladi. Birlashtirishda to'g'ri xeshlash rejimi va ramka o'lchamlarini tanlash muhimdir. Yuqorida tavsiflangan SDSdan juda kuchli farq ham bor, bu Virtuozzo Storage-da tezkor yo'l texnologiyasi bilan sug'urta. Bu modernizatsiya qilingan sug'urtaga qo'shimcha ravishda, boshqa ochiq manbali echimlardan farqli o'laroq, IOPSni sezilarli darajada oshiradi va gorizontal yoki vertikal o'lchov bilan cheklanmaslikka imkon beradi. Umuman olganda, yuqorida tavsiflangan arxitekturalar bilan solishtirganda, bu kuchliroq ko'rinadi, ammo bunday zavq uchun, albatta, Ceph va Glusterdan farqli o'laroq, litsenziyalarni sotib olishingiz kerak.

Xulosa qilib aytganda, uchtalikning yuqori qismini ajratib ko'rsatishimiz mumkin: Virtuozzo Storage arxitekturaning ishlashi va ishonchliligi bo'yicha birinchi o'rinni egallaydi, Ceph ikkinchi o'rinni va Gluster uchinchi o'rinni egallaydi.

Virtuozzo Storage tanlangan mezonlar: bu Fuse yondashuvi uchun tez yo‘l, moslashuvchan apparat konfiguratsiyalari, kam resurs sarfi va hisoblash (hisoblash/virtualizatsiya) bilan bo‘lishish qobiliyati bilan modernizatsiya qilingan optimal me’moriy komponentlar to‘plamidir. ya'ni hiperkonverged yechim uchun to'liq mos keladi , u bir qismi bo'lgan. Ikkinchi o'rin Ceph, chunki u bloklarda ishlashi, shuningdek, yanada moslashuvchan stsenariylari va katta klasterlarda ishlash qobiliyati tufayli Gluster bilan solishtirganda samaraliroq arxitektura hisoblanadi.

vSAN, Space Direct Storage, Vstorage va Nutanix Storage, HPE va Huawei uskunalarida Vstorage-ni sinovdan o'tkazish, shuningdek, Vstorage-ni tashqi apparat saqlash tizimlari bilan integratsiya qilish stsenariylarini yozish rejalashtirilgan, shuning uchun agar sizga maqola yoqqan bo'lsa, shunday bo'lar edi. Sizdan fikr-mulohaza olish juda yoqimli, bu sizning sharhlaringiz va istaklaringizni inobatga olgan holda yangi maqolalar uchun motivatsiyani oshirishi mumkin.

Manba: www.habr.com

a Izoh qo'shish