Kubernetes-те сақтау: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Kubernetes-те сақтау: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Жаңарту!. Түсініктемелерде оқырмандардың бірі сынап көруді ұсынды Линстор (мүмкін ол өзі жұмыс істеп жатқан шығар) сондықтан мен бұл шешім туралы бөлім қостым. Мен де жаздым оны қалай орнату керектігі туралы хабарлама, өйткені процесс қалғандарынан өте ерекшеленеді.

Шынымды айтсам, мен бас тарттым және бердім Kubernetes (кем дегенде қазір). қолданамын Heroku. Неліктен? Сақтау себебінен! Мен Кубернетестің өзінен гөрі қоймамен көбірек айналысамын деп кім ойлаған. Мен қолданамын Гецнер бұлтысебебі бұл арзан және өнімділігі жақсы және мен басынан бастап кластерлерді қолданамын Ранчер. Мен Google/Amazon/Microsoft/DigitalOcean және т.б. басқарылатын Kubernetes қызметтерін қолданып көрмедім, өйткені мен бәрін өзім үйренгім келді. Мен де үнемшілмін.

Иә, мен ықтимал Kubernetes стекін бағалау кезінде қай жадты таңдау керектігін шешуге көп уақыт жұмсадым. Мен ашық бастапқы шешімдерді ұнатамын, тек бағасына байланысты емес, бірақ мен бірнеше ақылы нұсқаларды қарап шықтым, өйткені олардың шектеулері бар тегін нұсқалары бар. Мен әртүрлі опцияларды салыстырған кезде соңғы сынақтардың кейбір сандарын жазып алдым және олар Kubernetes қоймасы туралы білетіндерге қызықты болуы мүмкін. Мен жеке Кубернетеспен әзірше қош айтыстым. Мен де атап өткім келеді CSI драйвері, ол Hetzner Cloud томдарын тікелей қамтамасыз ете алады, бірақ мен оны әлі көрмедім. Мен бұлтты бағдарламалық қамтамасыз етумен анықталған жадты қарастырдым, себебі маған шағылыстыру және тұрақты көлемдерді кез келген түйінге жылдам орнату мүмкіндігі қажет болды, әсіресе түйін ақаулары және басқа ұқсас жағдайларда. Кейбір шешімдер уақытында түсірілген суреттерді және сайттан тыс сақтық көшірмелерді ұсынады, бұл ыңғайлы.

Мен 6-7 сақтау шешімдерін сынадым:

OpenEBS

Жоғарыда айтқанымдай алдыңғы посттаТізімдегі опциялардың көпшілігін сынап, мен бастапқыда OpenEBS-ке орналастым. OpenEBS орнату және пайдалану өте оңай, бірақ шынымды айтсам, жүктеме кезінде нақты деректермен тестілеуден кейін оның өнімділігіне көңілім қалды. Бұл ашық бастапқы код және әзірлеушілер өз бетінше Бос канал маған көмек қажет болғанда әрқашан өте пайдалы. Өкінішке орай, ол басқа опциялармен салыстырғанда өте нашар өнімділікке ие, сондықтан сынақтарды қайта орындауға тура келді. OpenEBS-те қазіргі уақытта 3 сақтау механизмі бар, бірақ мен cStor үшін эталондық нәтижелерді жариялап жатырмын. Менде әлі Jiva және LocalPV нөмірлері жоқ.

Бір сөзбен айтқанда, Jiva сәл жылдамырақ, ал LocalPV әдетте жылдам, ол тікелей дискінің эталонынан жаман емес. LocalPV мәселесі мынада, томға тек ол дайындалған түйінде қол жеткізуге болады және репликация мүлде болмайды. Менде сақтық көшірмені қалпына келтіру кезінде қиындықтар туындады Желкенді қайық жаңа кластерде, себебі түйін атаулары әртүрлі болды. Егер сақтық көшірмелер туралы айтатын болсақ, cStor бар Velero үшін плагин, оның көмегімен бір уақытта фотосуреттердің сайттан тыс сақтық көшірмелерін жасауға болады, бұл Velero-Restic көмегімен файл деңгейіндегі сақтық көшірмелерге қарағанда ыңғайлы. Мен жаздым бірнеше сценарийлер, осы плагин арқылы сақтық көшірмелерді және қалпына келтірулерді басқаруды жеңілдету үшін. Жалпы, маған OpenEBS ұнайды, бірақ оның өнімділігі...

ладью

Rook сонымен қатар ашық бастапқы коды болып табылады және оны тізімдегі қалған опциялардан ерекшелендіретін нәрсе - бұл әртүрлі серверлері бар сақтауды басқарудың күрделі тапсырмаларын өңдейтін сақтау оркестрі, мысалы. Кеф, EdgeFS және басқалары, бұл жұмысты айтарлықтай жеңілдетеді. Мен оны бірнеше ай бұрын қолданып көргенімде EfgeFS-пен проблемалар болды, сондықтан мен негізінен Ceph-пен сынадым. Ceph тек блоктық сақтауды ғана емес, сонымен қатар S3/Swift және бөлінген файлдық жүйемен үйлесімді нысанды сақтауды ұсынады. Маған Цеф ұнайтыны - көлемдік деректерді бірнеше дискілерге тарату мүмкіндігі, осылайша дыбыс бір дискіге сыймайтын дискілік кеңістікті пайдалана алады. Бұл ыңғайлы. Тағы бір керемет мүмкіндік - дискілерді кластерге қосқанда, ол деректерді барлық дискілер бойынша автоматты түрде қайта таратады.

Цефтің суреттері бар, бірақ менің білуімше, оларды тікелей Rook/Kubernetes қолданбасында пайдалану мүмкін емес. Рас, мен бұған тереңірек барған жоқпын. Бірақ сайттан тыс сақтық көшірмелер жоқ, сондықтан Velero/Restic көмегімен бірдеңе пайдалануға тура келеді, бірақ бір уақыттағы суреттер емес, тек файл деңгейіндегі сақтық көшірмелер бар. Руктың маған қатты ұнағаны Ceph-пен жұмыс істеу оңай болды – ол барлық дерлік күрделі заттарды жасырады және ақауларды жою үшін Цефпен тікелей сөйлесуге арналған құралдарды ұсынады. Өкінішке орай, Ceph томдарының стресс-тесті кезінде менде проблемалар болды бұл мәселе, бұл Цефтің тұрақсыз болуына әкеледі. Бұл Цефтің өзіндегі қате ме, әлде Руктың Цефті басқаруындағы мәселе ме, әлі белгісіз. Мен жад параметрлерімен айналыстым, ол жақсарды, бірақ мәселе толығымен шешілмеді. Төмендегі көрсеткіштерден көріп отырғаныңыздай, Ceph лайықты өнімділікке ие. Оның жақсы бақылау тақтасы да бар.

Ранчер Лонгхорн

Маған Лонгхорн қатты ұнайды. Менің ойымша, бұл перспективалы шешім. Рас, әзірлеушілердің өздері (Rancher Labs) оның жұмыс ортасына әлі қолайлы емес екенін мойындайды және бұл көрсетеді. Бұл ашық бастапқы код және лайықты өнімділікке ие (олар оны әлі оңтайландырмағанымен), бірақ томдар подкастқа қосылу үшін өте ұзақ уақытты алады, ал ең нашар жағдайда 15-16 минут кетеді, әсіресе үлкен сақтық көшірмені қалпына келтіргеннен кейін немесе жұмыс көлемін арттыру. Онда осы суреттердің суреттері мен сайттан тыс сақтық көшірмелері бар, бірақ олар тек томдарға ғана қолданылады, сондықтан басқа ресурстардың сақтық көшірмесін жасау үшін сізге әлі де Velero сияқты нәрсе қажет болады. Сақтық көшірме жасау және қалпына келтіру өте сенімді, бірақ өте баяу. Шынымен, керемет баяу. Лонгхорндағы деректердің орташа көлемімен жұмыс істегенде процессорды пайдалану және жүйе жүктемесі жиі көтеріледі. Longhorn басқаруға ыңғайлы бақылау тақтасы бар. Мен Лонгхорнды жақсы көретінімді айттым, бірақ оған біраз жұмыс керек.

StorageOS

StorageOS - тізімдегі бірінші ақылы өнім. Оның 500 ГБ басқарылатын сақтау көлемі шектеулі әзірлеуші ​​нұсқасы бар, бірақ түйіндер санына шектеу жоқ деп ойлаймын. Сату бөлімі маған егер дұрыс есімде болса, құны 125 ТБ үшін айына 1 доллардан басталатынын айтты. Негізгі бақылау тақтасы және ыңғайлы CLI бар, бірақ өнімділікте біртүрлі нәрсе болып жатыр: кейбір көрсеткіштерде бұл өте жақсы, бірақ көлемді стресс-тестте жылдамдық мүлдем ұнамады. Жалпы, мен не айтарымды білмеймін. Сондықтан мен көп нәрсені түсінбедім. Мұнда сайттан тыс сақтық көшірмелер жоқ, сонымен қатар көлемдердің сақтық көшірмесін жасау үшін Velero-ны Restic-пен бірге пайдалануға тура келеді. Бұл таңқаларлық, өйткені өнім ақылы. Әзірлеушілер Slack-те байланысуға ынталы болмады.

Робин

Мен Reddit-те Робин туралы олардың техникалық директорынан білдім. Мен ол туралы бұрын ешқашан естіген емеспін. Мүмкін мен тегін шешімдер іздегендіктен шығар, бірақ Робин ақылы. Олардың 10 ТБ жады және үш түйіні бар өте жомарт тегін нұсқасы бар. Тұтастай алғанда, өнім өте жақсы және жақсы мүмкіндіктерге ие. Керемет CLI бар, бірақ ең керемет нәрсе - бүкіл қолданбаны суретке түсіріп, сақтық көшірмесін жасай аласыз (ресурс селекторында бұл Helm шығарылымдары немесе «икемді қолданбалар» деп аталады), оның ішінде томдар мен басқа ресурстар, сондықтан Velero қолданбай жасай аласыз. Бір ғана ұсақ-түйек болмаса, бәрі тамаша болар еді: егер сіз жаңа кластердегі қосымшаны қалпына келтірсеңіз (немесе Робинде «импорт» деп аталады) - мысалы, апаттан қалпына келтіру жағдайында - қалпына келтіру, әрине, жұмыс істейді, бірақ қолданбаның сақтық көшірмесін жасауды жалғастыруға тыйым салынады. Әзірлеушілер растағандай, бұл шығарылымда бұл мүмкін емес. Бұл, жұмсақ тілмен айтқанда, таңқаларлық, әсіресе басқа артықшылықтарды ескере отырып (мысалы, керемет жылдам сақтық көшірме жасау және қалпына келтіру). Әзірлеушілер келесі шығарылымға дейін бәрін түзетуге уәде береді. Өнімділік әдетте жақсы, бірақ мен біртүрлі жағдайды байқадым: егер мен стандартты хостқа тіркелген дыбыс деңгейінде тікелей іске қоссам, оқу жылдамдығы бірдей дыбыс деңгейін подкаст ішінен іске қосудан әлдеқайда жылдамырақ болады. Барлық басқа нәтижелер бірдей, бірақ теорияда ешқандай айырмашылық болмауы керек. Олар мұнымен жұмыс істеп жатқанымен, мен қалпына келтіру және сақтық көшірмеге қатысты мәселеге ренжідім - мен ақырында қолайлы шешім таптым деп ойладым және көбірек орын немесе көбірек сервер қажет болғанда, мен оны төлеуге дайын болдым.

Портворкс

Менің бұл жерде айтарым көп емес. Бұл ақылы өнім, бірдей салқын және қымбат. Орындау жай ғана керемет. Бұл әзірге ең жақсы көрсеткіш. Slack маған Google GKE Marketplace тізімінде көрсетілгендей, баға бір түйін үшін айына 205 доллардан басталатынын айтты. Тікелей сатып алсаңыз, арзанырақ бола ма, білмеймін. Мен мұны бәрібір төлей алмаймын, сондықтан мен әзірлеуші ​​лицензиясының (1 ТБ және 3 түйінге дейін) статикалық қамтамасыз етумен қанағаттанбасаңыз, Kubernetes үшін іс жүзінде пайдасыз екеніне қатты ренжідім. Сынақ мерзімінің соңында көлемді лицензия автоматты түрде әзірлеушіге дейін төмендейді деп үміттендім, бірақ бұл болмады. Әзірлеуші ​​лицензиясын тек Docker бағдарламасымен тікелей пайдалануға болады және Kubernetes конфигурациясы өте қиын және шектеулі. Әрине, мен ашық кодты қалаймын, бірақ менде ақша болса, міндетті түрде Portworx таңдар едім. Әзірге оның өнімділігі басқа опциялармен салыстыруға келмейді.

Линстор

Мен бұл бөлімді пост жарияланғаннан кейін, бір оқырман Linstor-ды қолданып көруді ұсынған кезде қостым. Мен оны қолданып көрдім және маған ұнады! Бірақ біз әлі де тереңірек қазуымыз керек. Енді мен өнімділік жаман емес деп айта аламын (төменде эталондық нәтижелерді қостым). Негізінде, мен ешқандай үстеме шығынсыз тікелей дискімен бірдей өнімділікке ие болдым. (Portworx-те неге дискінің эталонынан жақсырақ сандар бар деп сұрамаңыз. Менде бұл туралы ештеңе жоқ. Сиқыр, менің ойымша.) Сондықтан Linstor әзірге өте тиімді болып көрінеді. Оны орнату қиын емес, бірақ басқа опциялар сияқты оңай емес. Алдымен маған Linstor (ядро модулі және құралдар/қызметтер) орнату және LVM-ді Kubernetes-тен тыс, тікелей хостта жұқа қамтамасыз ету және суретті қолдау үшін конфигурациялау, содан кейін Kubernetes-тен сақтауды пайдалану үшін қажетті ресурстарды жасау керек болды. Маған оның CentOS жүйесінде жұмыс істемейтіні ұнамады және Ubuntu-ды пайдалану керек болды. Әрине, қорқынышты емес, бірақ аздап тітіркендіргіш, өйткені құжаттамада (айтпақшы, бұл өте жақсы) көрсетілген Epel репозиторийлерінде табылмайтын бірнеше пакеттер туралы айтылады. Linstor фотосуреттері бар, бірақ сайттан тыс сақтық көшірмелері жоқ, сондықтан мен томдардың сақтық көшірмесін жасау үшін қайтадан Velero-ны Restic-пен бірге пайдалануға тура келді. Мен файл деңгейіндегі сақтық көшірмелердің орнына суретті қалайтын едім, бірақ егер шешім тиімді және сенімді болса, бұған жол беруге болады. Linstor ашық көзі болып табылады, бірақ ақылы қолдау көрсетеді. Егер мен дұрыс түсінсем, оны шектеусіз пайдалануға болады, тіпті сізде қолдау туралы келісім-шарт болмаса да, бірақ бұл нақтылануы керек. Мен Linstor-тің Kubernetes үшін қаншалықты сыналғанын білмеймін, бірақ сақтау қабатының өзі Кубернетестен тыс және, шамасы, шешім кеше пайда болмаған, сондықтан ол нақты жағдайларда сыналған болуы мүмкін. Бұл жерде менің ойымды өзгертіп, Кубернетеске қайта оралуға мәжбүр ететін шешім бар ма? Білмеймін. Біз әлі де тереңірек қазып, репликацияны зерттеуіміз керек. Қарайық. Бірақ алғашқы әсер жақсы. Мен көбірек еркіндікке ие болу және жаңа нәрселерді үйрену үшін Хероку орнына өзімнің Kubernetes кластерлерін пайдаланғым келеді. Linstor орнату басқалар сияқты оңай болмағандықтан, мен бұл туралы жақын арада пост жазамын.

Эталондар

Өкінішке орай, салыстыру туралы көп жазба қалдырған жоқпын, өйткені бұл туралы жазамын деп ойламадым. Менде тек негізгі fio эталондарынан алынған нәтижелер және тек бір түйін кластерлері үшін ғана бар, сондықтан менде қайталанатын конфигурацияларға арналған нөмірлер әлі жоқ. Бірақ бұл нәтижелерден сіз әр опциядан не күтетіні туралы шамамен түсінік ала аласыз, өйткені мен оларды бірдей бұлттық серверлерде, 4 ядрода, 16 ГБ жедел жадыда, тексерілген көлемдер үшін қосымша 100 ГБ дискімен салыстырдым. Мен әр шешім үшін үш рет эталондарды орындадым және орташа нәтижені есептедім, сонымен қатар әр өнім үшін сервер параметрлерін қалпына келтірдім. Мұның бәрі мүлдем ғылыми емес, сізге жалпы түсінік беру үшін. Басқа сынақтарда оқу мен жазуды тексеру үшін дыбыс деңгейінен 38 ГБ фотолар мен бейнелерді көшіріп алдым, бірақ, өкінішке орай, сандарды сақтамадым. Қысқасы: Portworkx әлдеқайда жылдам болды.

Көлемді салыстыру үшін мен бұл манифестті қолдандым:

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: 4

Мен алдымен сәйкес сақтау класы бар томды жасадым, содан кейін жұмысты сахна артында fio арқылы орындадым. Мен өнімділікті бағалау және тым көп күтпеу үшін 1 ГБ алдым. Міне нәтижелер:

Kubernetes-те сақтау: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

Мен әрбір көрсеткіш үшін ең жақсы мәнді жасыл түспен, ал ең нашарны қызыл түспен бөлектедім.

қорытынды

Көріп отырғаныңыздай, көп жағдайда Portworx басқаларға қарағанда жақсы нәтиже көрсетті. Бірақ мен үшін бұл қымбат. Мен Robin қанша тұратынын білмеймін, бірақ олардың тамаша тегін нұсқасы бар, сондықтан ақылы өнімді алғыңыз келсе, оны қолданып көруге болады (жақында олар қалпына келтіру және сақтық көшірме жасау арқылы мәселені шешеді деп үміттенеміз). Үш тегін нұсқаның ішінде менде OpenEBS-те ең аз проблемалар болды, бірақ оның өнімділігі өте төмен. Мен көп нәтиже сақтамағаным өкінішті, бірақ сандар мен менің пікірлерім сізге көмектеседі деп үміттенемін.

Ақпарат көзі: www.habr.com

пікір қалдыру