
Ažuriraj!. U komentarima je jedan od Äitatelja predložio da probate (možda on sam radi na tome), pa sam dodao dio o tom rjeÅ”enju. I ja sam pisao jer se proces veoma razlikuje od ostalih.
Da budem iskren, odustao sam i odustao (barem za sada). Ja Äu koristiti . ZaÅ”to? Zbog skladiÅ”tenja! Ko bi rekao da Äu se viÅ”e petljati sa skladiÅ”tem nego sa samim Kubernetesom. ja koristim , jer je jeftin, a performanse su dobre, a od samog poÄetka sam postavljao klastere sa . Nisam probao Kubernetes upravljane usluge od Google/Amazon/Microsoft/DigitalOcean itd., itd., jer sam htio sve sam nauÄiti. TakoÄe sam Å”tedljiv.
Dakle - da, proveo sam dosta vremena pokuÅ”avajuÄi da odluÄim koje skladiÅ”te da izaberem kada sam razmiÅ”ljao o moguÄem steku na Kubernetesu. ViÅ”e volim open source rjeÅ”enja, i to ne samo zbog cijene, veÄ sam pogledao par plaÄenih opcija iz radoznalosti, jer imaju besplatne verzije sa ograniÄenjima. Zabilježio sam nekoliko brojeva iz nedavnih mjerila kada sam uporeÄivao razliÄite opcije, a one bi mogle biti zanimljive onima koji prouÄavaju skladiÅ”tenje u Kubernetesu. Iako sam se liÄno do sada oprostio od Kubernetesa. TakoÄe želim da napomenem , u kojem možete direktno obezbijediti Hetzner Cloud volumene, ali to joÅ” nisam isprobao. Tražio sam softverski definiranu pohranu u oblaku jer mi je bila potrebna replikacija i moguÄnost brzog montiranja trajnih volumena na bilo koji Ävor, posebno u sluÄaju kvarova Ävora i drugih sliÄnih situacija. Neka rjeÅ”enja nude trenutne snimke i sigurnosne kopije izvan lokacije, Å”to je zgodno.
Testirao sam 6-7 rjeŔenja za pohranu:
Kao Å”to sam veÄ rekao , nakon Å”to sam testirao veÄinu opcija sa liste, u poÄetku sam se odluÄio na OpenEBS. OpenEBS je vrlo jednostavan za instaliranje i koriÅ”tenje, ali da budem iskren, nakon testiranja sa stvarnim podacima pod optereÄenjem, njegove performanse su me razoÄarale. Ovo je open source, a programeri su sami uvijek od velike pomoÄi kada mi je potrebna pomoÄ. Nažalost, ima veoma loÅ”e performanse u poreÄenju sa drugim opcijama, pa sam morao ponovo da izvrÅ”im testove. Trenutno OpenEBS ima 3 pogona za skladiÅ”tenje, ali ja objavljujem benchmark rezultate za cStor. JoÅ” nemam brojeve za Jivu i LocalPV.
Ukratko, Jiva je neÅ”to brža, a LocalPV je generalno brz, niÅ”ta loÅ”iji od direktnog benÄmarka. Problem sa LocalPV-om je taj Å”to se volumenu može pristupiti samo na Ävoru na kojem je dodijeljen, a replikacija uopÄe nema. Imao sam problema sa vraÄanjem rezervne kopije putem na novom klasteru jer su imena Ävorova bila drugaÄija. Kad smo kod rezervnih kopija, cStor ima , sa kojim možete napraviti rezervne kopije snimka u trenutku van lokacije, Å”to je praktiÄnije od pravljenja rezervnih kopija na nivou datoteke sa Velero-Restic-om. napisao sam kako biste olakÅ”ali upravljanje sigurnosnom kopijom i vraÄanjem pomoÄu ovog dodatka. Sve u svemu, zaista mi se sviÄa OpenEBS, ali njegove performanse...
Rook je takoÄer otvorenog koda i razlikuje se od ostalih opcija na listi po tome Å”to je orkestrator pohrane koji obavlja složene zadatke upravljanja pohranom s razliÄitim pozadinama, na primjer , i drugi, Å”to uvelike pojednostavljuje rad. Imao sam problema sa EfgeFS-om kada sam ga isprobao prije nekoliko mjeseci, pa sam testirao uglavnom sa Ceph-om. Ceph nudi ne samo blok memoriju, veÄ i skladiÅ”tenje objekata kompatibilno sa S3/Swift i distribuiranim sistemom datoteka. Ono Å”to mi se sviÄa kod Ceph-a je moguÄnost Å”irenja podataka o volumenu na viÅ”e diskova tako da volumen može koristiti viÅ”e prostora na disku nego Å”to može stati na jedan disk. To je udobno. JoÅ” jedna dobra karakteristika je da kada dodate diskove u klaster, on automatski redistribuira podatke na sve diskove.
Ceph ima snimke, ali koliko ja znam ne mogu se koristiti direktno u Rook/Kubernetes. DoduÅ”e, nisam se upuÅ”tao u to. Ali nema rezervnih kopija van lokacije, tako da morate koristiti neÅ”to sa Velero / Restic-om, ali postoje samo rezervne kopije na nivou fajla, ne i trenutni snimci. MeÄutim, ono Å”to mi se zaista sviÄa kod Rooka je lakoÄa rada sa Cephom - on skriva gotovo sve složene stvari i nudi alate za direktan razgovor sa Cephom radi rjeÅ”avanja problema. Nažalost, na stres testu Ceph volumena, uvijek sam imao , Å”to uzrokuje da Ceph postane nestabilan. JoÅ” nije jasno da li je ovo greÅ”ka u samom Ceph-u ili problem u tome kako Rook upravlja Ceph-om. Petljao sam s postavkama memorije, i bilo je bolje, ali problem nije u potpunosti rijeÅ”en. Ceph ima dobre performanse kao Å”to se vidi u referentnim vrijednostima ispod. TakoÄe ima dobru kontrolnu tablu.
Zaista mi se sviÄa Longhorn. Mislim da je ovo rjeÅ”enje koje obeÄava. Istina, sami programeri (Rancher Labs) priznaju da joÅ” nije prikladan za proizvodno okruženje, i to pokazuje. Otvoren je kod i ima pristojne performanse (iako ga joÅ” nisu optimizirali), ali volumenima je potrebno jako dugo da se prikaÄe na pod, au najgorim sluÄajevima potrebno je 15-16 minuta, posebno nakon vraÄanja velike rezervne kopije ili nadogradnja radnog optereÄenja. Ima snimke i rezervne kopije tih snimaka van lokacije, ali oni se primjenjuju samo na volumene, tako da vam je i dalje potrebno neÅ”to poput Velero-a da napravite sigurnosnu kopiju ostatka resursa. Sigurnosne kopije i vraÄanja su vrlo pouzdani, ali nepristojno spori. Ozbiljno, samo nedovoljno sporo. Upotreba CPU-a i optereÄenje sistema Äesto rastu kada radite sa prosjeÄnom koliÄinom podataka u Longhornu. Postoji zgodna kontrolna tabla za upravljanje Longhornom. VeÄ sam rekao da mi se Longhorn sviÄa, ali na njemu treba dobro poraditi.
StorageOS je prvi plaÄeni proizvod na listi. Ima verziju za programere sa ograniÄenom veliÄinom upravljanog prostora za skladiÅ”tenje od 500 GB, ali mislim da nema ograniÄenja u broju Ävorova. Odeljenje prodaje mi je reklo da cena poÄinje od 125 dolara meseÄno za 1 TB, ako se dobro seÄam. Postoji osnovna kontrolna tabla i zgodan CLI, ali neÅ”to se Äudno deÅ”ava sa performansama: u nekim benchmarkovima su sasvim pristojne, ali u stres testu zapremine, brzina mi se uopÅ”te nije dopala. Generalno, ne znam Å”ta da kažem. Tako da nisam baÅ” razumeo. Ovdje nema rezervnih kopija van lokacije i takoÄer Äete morati koristiti Velero sa Restic-om za pravljenje rezervnih kopija volumena. Äudno, jer se proizvod plaÄa. A programeri nisu bili željni komuniciranja u Slacku.
O Robinu sam saznao na Redditu od njihovog tehniÄkog direktora. Nikada ranije nisam Äuo za njega. Možda zato Å”to sam tražio besplatna rjeÅ”enja, a Robin je plaÄen. Imaju priliÄno izdaÅ”nu besplatnu verziju sa 10TB prostora za pohranu i tri Ävora. Generalno, proizvod je priliÄno pristojan i sa lijepim karakteristikama. Postoji odliÄan CLI, ali najbolja stvar je to Å”to možete napraviti snimku i sigurnosnu kopiju cijele aplikacije (koja se nazivaju Helm izdanja ili "fleksibilne aplikacije" u selektoru resursa), ukljuÄujuÄi volumene i druge resurse, tako da možete bez Velera. I sve bi bilo divno da ne postoji jedan mali detalj: ako vratite (ili "uvezete", kako se to u Robinu zove) aplikaciju na novom klasteru - na primjer, u sluÄaju oporavka od katastrofe - restauracija, naravno, radi, ali je zabranjeno nastaviti sa sigurnosnom kopijom aplikacije. U ovom izdanju to jednostavno nije moguÄe, a programeri su potvrdili. Ovo je u najmanju ruku Äudno, posebno kada se uzmu u obzir druge prednosti (na primjer, nevjerovatno brze sigurnosne kopije i vraÄanja). Programeri obeÄavaju da Äe sve popraviti do sljedeÄeg izdanja. Performanse su generalno dobre, ali sam primijetio Äudnu stvar: ako pokrenete benchmark direktno na volumenu koji je povezan s hostom, brzina Äitanja je mnogo veÄa nego u istom volumenu, ali iz unutraÅ”njosti pod-a. Svi ostali rezultati su identiÄni, ali u teoriji ne bi trebalo biti razlike. Iako rade na tome, bio sam frustriran problemom vraÄanja i backup-a - Äinilo mi se da sam konaÄno pronaÅ”ao odgovarajuÄe rjeÅ”enje, a bio sam Äak i spreman da ga platim kada mi treba viÅ”e prostora ili viÅ”e servera.
Nemam puno za reÄi ovdje. Ovo je plaÄeni proizvod, podjednako kul i skup. Izvedba je jednostavno neverovatna. Za sada je ovo najbolji pokazatelj. Slack mi je rekao da cijene poÄinju od 205 USD mjeseÄno po Ävoru, kao Å”to je navedeno na Google-ovom GKE Marketplace-u. Ne znam da li Äe biti jeftinije ako kupujete direktno. U svakom sluÄaju, ne mogu si to priuÅ”titi, pa sam bio jako, jako razoÄaran Å”to je licenca za programere (do 1TB i 3 Ävora) praktiÄki beskorisna s Kubernetesom, osim ako niste zadovoljni statiÄkim obezbjeÄivanjem. Nadao sam se da Äe koliÄinska licenca automatski preÄi na programer na kraju probnog perioda, ali to se nije dogodilo. Licenca za programere može se koristiti samo direktno sa Dockerom, a podeÅ”avanje u Kubernetesu je veoma glomazno i āāograniÄeno. Naravno, viÅ”e volim open source, ali da imam novca, svakako bih izabrao Portworx. Do sada se njegove performanse jednostavno ne mogu porediti sa drugim opcijama.
Dodao sam ovaj odjeljak nakon Å”to je objava objavljena, kada mi je Äitalac predložio da isprobam Linstor. Isprobao sam ga i svidjelo mi se! Ali moram joÅ” malo istražiti. Za sada mogu reÄi da su performanse priliÄno dobre (rezultate benchmarka sam dodao ispod). U stvari, dobio sam iste performanse kao i sa direktnim disk benchmarkom, bez ikakvih dodatnih troÅ”kova. (Ne pitajte zaÅ”to su Portworxove brojke bolje od direktnog disk benchmarka. Nemam pojma. Magija, pretpostavljam.) Dakle, Linstor se za sada Äini vrlo efikasnim. Postavljanje nije baÅ” teÅ”ko, ali nije ni tako jednostavno kao druge opcije. Prvo sam morao instalirati Linstor (kernel modul i alate/usluge) i postaviti LVM za tanko obezbjeÄivanje i podrÅ”ku za snapshot izvan Kubernetesa, direktno na hostu, a zatim kreirati resurse potrebne za koriÅ”tenje pohrane iz Kubernetesa. Nisam bio sretan Å”to nije radio na... CentOS i morao je koristiti UbuntuNije to velika stvar, naravno, ali je malo dosadno jer dokumentacija (koja je, usput reÄeno, odliÄna) spominje nekoliko paketa koji nisu dostupni u navedenim Epel repozitorijima. Linstor ima snapshots, ali nema off-site backup-ove, pa sam morao ponovo koristiti Velero s Resticom za backup volumena. ViÅ”e bih volio snapshots nego backup-ove na nivou datoteka, ali to je podnoÅ”ljivo ako je rjeÅ”enje efikasno i pouzdano. Linstor je otvorenog koda, ali postoji plaÄena podrÅ”ka. Ako sam dobro shvatio, možete ga koristiti bez ograniÄenja Äak i ako nemate ugovor o podrÅ”ci, ali bih to morao provjeriti. Ne znam koliko je Linstor testiran za Kubernetes, ali sam sloj za pohranu je izvan Kubernetesa i izgleda kao da postoji veÄ neko vrijeme, tako da je vjerovatno veÄ testiran u stvarnim uslovima. Postoji li ovdje neko rjeÅ”enje koje bi me natjeralo da promijenim miÅ”ljenje i vratim se na Kubernetes? Ne znam. Moram malo viÅ”e istražiti i nauÄiti o replikaciji. Vidjet Äemo. Ali prvi utisak je dobar. Definitivno bih radije koristio vlastite Kubernetes klastere umjesto Herokua zbog viÅ”e slobode i uÄenja novih stvari. BuduÄi da Linstor nije tako jednostavan za instaliranje kao drugi, uskoro Äu napisati post o tome.
Benchmarks
Nažalost, malo sam zabilježio poreÄenje, jer nisam mislio da Äu o tome pisati. Imam samo FIO osnovne benchmark rezultate i to samo za klastere sa jednim Ävorom, tako da joÅ” nemam brojeve za replicirane konfiguracije. Ali iz ovih rezultata možete dobiti grubu ideju Å”ta oÄekivati āāod svake opcije, jer sam ih uporedio na istim cloud serverima, 4 jezgra, 16 GB RAM-a, sa dodatnim diskom od 100 GB za testirane volumene. Pokrenuo sam benchmark tri puta za svako rjeÅ”enje i izraÄunao prosjeÄan rezultat, plus resetirao postavke servera za svaki proizvod. Sve je ovo potpuno nenauÄno, samo da shvatite uopÅ”teno. U drugim testovima sam kopirao 38 GB fotografija i video zapisa sa volumena i za testiranje Äitanja i pisanja, ali, nažalost, nisam saÄuvao brojeve. Ukratko: Portworkx je bio mnogo brži.
Za mjerilo volumena koristio sam ovaj manifest:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: dbench
spec:
storageClassName: ...
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: batch/v1
kind: Job
metadata:
name: dbench
spec:
template:
spec:
containers:
- name: dbench
image: sotoaster/dbench:latest
imagePullPolicy: IfNotPresent
env:
- name: DBENCH_MOUNTPOINT
value: /data
- name: FIO_SIZE
value: 1G
volumeMounts:
- name: dbench-pv
mountPath: /data
restartPolicy: Never
volumes:
- name: dbench-pv
persistentVolumeClaim:
claimName: dbench
backoffLimit: 4Prvo sam kreirao volumen s odgovarajuÄom klasom za pohranu, a zatim pokrenuo posao sa fio iza scene. Uzeo sam 1 GB da procijenim performanse i da ne Äekam predugo. Evo rezultata:
OznaÄio sam najbolju vrijednost za svaku metriku zelenom, a najgoru crvenom.
zakljuÄak
Kao Å”to vidite, u veÄini sluÄajeva Portworx je imao bolje rezultate od ostalih. Ali za mene je to skupo. Ne znam koliko koÅ”ta Robin, ali postoji odliÄna besplatna verzija, pa ako vam treba proizvod koji se plaÄa, možete ga isprobati (nadam se da Äe uskoro rijeÅ”iti problem s restauracijama i backupima). Od tri besplatna, imao sam najmanje problema sa OpenEBS-om, ali njegove performanse su straÅ”ne. Žao mi je Å”to nisam saÄuvao viÅ”e rezultata, ali nadam se da Äe vam brojevi i moji komentari pomoÄi.
izvor: www.habr.com
