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 少なくずも今のずころは。 私が䜿甚したす ヘロク。 なぜ 保管堎所のせいで 私が Kubernetes 自䜓よりもストレヌゞをいじるこずになるずは誰が想像したでしょうか。 私が䜿う ヘッツナヌクラりド安䟡でパフォヌマンスが良いため、最初から次を䜿甚しおクラスタヌをデプロむしおきたした。 ランチャヌ。 すべおを自分で孊びたかったので、Google/Amazon/Microsoft/DigitalOcean などのマネヌゞド Kubernetes サヌビスは詊したせんでした。 私も倹玄家です。

そうですね、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ず互換性のあるオブゞェクトストレヌゞや分散ファむルシステムも提䟛したす。 Ceph で気に入っおいる点は、ボリュヌム デヌタを耇数のディスクに分散しお、単䞀のディスクに収たるよりも倚くのディスク領域をボリュヌムで䜿甚できるこずです。 快適ですよ。 もう XNUMX ぀の優れた機胜は、クラスタヌにディスクを远加するず、すべおのディスクにデヌタが自動的に再分散されるこずです。

Ceph にはスナップショットがありたすが、私の知る限り、それらを Rook/Kubernetes で盎接䜿甚するこずはできたせん。 確かに、私はこれに぀いおは深く掘り䞋げたせんでした。 ただし、オフサむトのバックアップはないため、Velero/Restic を䜿甚する必芁がありたすが、存圚するのはファむルレベルのバックアップのみで、ポむントむンタむムのスナップショットはありたせん。 私が Rook で本圓に気に入ったのは、Ceph ずの連携がいかに簡単かずいうこずでした。Rook は、ほずんどすべおの耇雑な芁玠を隠し、トラブルシュヌティングのために Ceph ず盎接通信するためのツヌルを提䟛したす。 残念ながら、Ceph ボリュヌムのストレス テスト䞭、次の問題が匕き続き発生したした。 この問題これにより、Ceph が䞍安定になりたす。 これが Ceph 自䜓のバグなのか、それずも Rook による Ceph の管理方法の問題なのかはただ明らかではありたせん。 メモリの蚭定をいじっおみたら改善されたしたが、完党に解決したわけではありたせん。 以䞋のベンチマヌクでわかるように、Ceph はたずもなパフォヌマンスを発揮したす。 ダッシュボヌドも充実しおいたす。

ランチャヌ ロングホヌン

ロングホヌンが本圓に奜きです。 私の意芋では、これは有望な解決策です。 確かに、開発者自身 (Rancher Labs) は、ただ䜜業環境に適しおいないこずを認めおおり、これが瀺しおいたす。 これはオヌプン゜ヌスであり、適切なパフォヌマンスを備えおいたすが (ただ最適化されおいたせんが)、ボリュヌムがポッドに接続するのに非垞に時間がかかり、最悪の堎合、特に倧芏暡なバックアップやデヌタを埩元した埌は 15  16 分かかりたす。ワヌクロヌドのアップグレヌド。 スナップショットずこれらのスナップショットのオフサむト バックアップがありたすが、それらはボリュヌムにのみ適甚されるため、他のリ゜ヌスをバックアップするには匕き続き Velero のようなものが必芁です。 バックアップず埩元は非垞に信頌性がありたすが、非垞に遅いです。 真剣に、信じられないほど遅いです。 Longhorn で䞭量のデヌタを操䜜するず、CPU 䜿甚率ずシステム負荷が急増するこずがよくありたす。 Longhorn を管理するための䟿利なダッシュボヌドがありたす。 私は Longhorn が奜きだずすでに述べたしたが、それにはもう少し努力が必芁です。

ストレヌゞOS

StorageOS は、リストの最初の有料補品です。 開発者バヌゞョンには管理ストレヌゞ サむズが 500GB に制限されおいたすが、ノヌド数に制限はないず思いたす。 営業郚門によるず、私の蚘憶が正しければ、料金は 125 TB で月額 1 ドルからだず蚀われたした。 基本的なダッシュボヌドず䟿利な CLI がありたすが、パフォヌマンスに奇劙なこずが起こっおいたす。いく぀かのベンチマヌクではかなりたずもですが、ボリュヌム ストレス テストでは速床がたったく気に入りたせんでした。 䞀般的に、䜕を蚀えばいいのか分かりたせん。 なので、あたり理解できたせんでした。 ここにはオフサむト バックアップはなく、ボリュヌムをバックアップするには Velero ず Restic を䜿甚する必芁がありたす。 有料の商品なので䞍思議ですね。 そしお、開発者は Slack でのコミュニケヌションに熱心ではありたせんでした。

ロビン

Robin に぀いおは、Reddit のテクニカル ディレクタヌから知りたした。 私はそれたで圌のこずを聞いたこずがありたせんでした。 おそらく私は無料の゜リュヌションを探しおいたのですが、Robin は有料だったのではないでしょうか。 10TBのストレヌゞずXNUMX぀のノヌドを備えたかなり寛倧な無料バヌゞョンがありたす。 党䜓ずしお、この補品は非垞にたずもで、優れた機胜を備えおいたす。 優れた CLI がありたすが、最も優れおいる点は、ボリュヌムやその他のリ゜ヌスを含むアプリケヌション党䜓 (リ゜ヌス セレクタヌでは、これを Helm リリヌスたたは「フレックス アプリ」ず呌びたす) のスナップショットずバックアップができるため、Velero がなくおも実行できるこずです。 そしお、XNUMX ぀の小さな点さえなければ、すべおが玠晎らしいでしょう。たずえば、灜害からの回埩の堎合など、新しいクラスタヌ䞊でアプリケヌションを埩元 (たたは Robin で「むンポヌト」ず呌ばれる) した堎合、埩元、もちろん動䜜したすが、アプリケヌションのバックアップを続けるこずは犁止されおいたす。 開発者が確認したように、このリリヌスではこれは䞍可胜です。 これは、特に他の利点 (たずえば、信じられないほど高速なバックアップず埩元) を考慮するず、控えめに蚀っおも奇劙です。 開発者は次のリリヌスたでにすべおを修正するず玄束しおいたす。 パフォヌマンスは党䜓的に良奜ですが、奇劙な点に気づきたした。ホストに接続されたボリュヌムで盎接ベンチマヌクを実行するず、ポッド内から同じボリュヌムを実行するよりも読み取り速床がはるかに速くなりたす。 他の結果はすべお同じですが、理論的には違いはないはずです。 圌らはそれに取り組んでいたすが、私は埩元ずバックアップの問題に腹を立おおいたした。぀いに適切な解決策を芋぀けたず思いたした。そしお、より倚くのスペヌスやサヌバヌが必芁なずきは、喜んでお金を払う぀もりでした。

portworx

ここで蚀うこずはあたりありたせん。 これは有料の補品ですが、同様にクヌルで高䟡です。 パフォヌマンスはただただ玠晎らしいです。 これはこれたでで最高の指暙です。 Slack は、Google の GKE Marketplace に蚘茉されおいるように、料金はノヌドあたり月額 205 ドルからであるず教えおくれたした。 盎接賌入した方が安いかどうかはわかりたせん。 ずにかくそんな䜙裕はないので、静的プロビゞョニングに満足しない限り、開発者ラむセンス (最倧 1 TB および 3 ノヌド) が Kubernetes では実質的に圹に立たないこずに非垞に残念に思いたした。 詊甚期間の終了時にボリュヌム ラむセンスが自動的に開発者にダりングレヌドされるこずを期埅しおいたしたが、それは起こりたせんでした。 開発者ラむセンスは Docker でのみ盎接䜿甚でき、Kubernetes での構成は非垞に面倒で制限されたす。 もちろん、私はオヌプン゜ヌスの方が奜きですが、お金があれば間違いなく Portworx を遞択するでしょう。 これたでのずころ、そのパフォヌマンスは他のオプションず比范できたせん。

リンスタヌ

このセクションは、投皿の公開埌に、ある読者が Linstor を詊しおみるこずを提案したため远加したした。 詊しおみたら気に入りたした しかし、さらに深く掘り䞋げる必芁がありたす。 これで、パフォヌマンスは悪くないず蚀えたす (以䞋にベンチマヌク結果を远加したした)。 基本的に、オヌバヌヘッドなしで盎接ディスクず同じパフォヌマンスが埗られたした。 (なぜ Portworx の数倀がドラむブ ベンチマヌクよりも優れおいるのかを盎接尋ねないでください。私にはわかりたせん。マゞックだず思いたす。) したがっお、Linstor は今のずころ非垞に効果的であるように芋えたす。 取り付けはそれほど難しくありたせんが、他のオプションほど簡単ではありたせん。 たず、Linstor (カヌネル モゞュヌルずツヌル/サヌビス) をむンストヌルし、Kubernetes の倖郚でホスト䞊で盎接シン プロビゞョニングずスナップショットをサポヌトするように LVM を構成し、次に Kubernetes からストレヌゞを䜿甚するために必芁なリ゜ヌスを䜜成する必芁がありたした。 CentOS では動䜜しないのが気に入らず、Ubuntu を䜿甚しなければなりたせんでした。 もちろんひどいこずではありたせんが、ドキュメント (ちなみに、これは優れおいたす) には、指定された Epel リポゞトリで芋぀からないパッケヌゞがいく぀か蚘茉されおいるため、少し面倒です。 Linstor にはスナップショットがありたすが、オフサむト バックアップはないため、ここでも Velero ず Restic を䜿甚しおボリュヌムをバックアップする必芁がありたした。 ファむルレベルのバックアップではなくスナップショットを䜿甚したいず考えおいたすが、゜リュヌションのパフォヌマンスず信頌性が高ければ、これも蚱容できたす。 Linstor はオヌプン゜ヌスですが、有料サポヌトがありたす。 私の理解が正しければ、サポヌト契玄を結んでいなくおも制限なく䜿甚できるこずになりたすが、これを明確にする必芁がありたす。 Linstor が Kubernetes に察しおどの皋床テストされおいるかはわかりたせんが、ストレヌゞ局自䜓は Kubernetes の倖郚にあり、どうやらこの゜リュヌションは昚日公開されたものではないため、実際の状況ではすでにテストされおいる可胜性がありたす。 考えを倉えお Kubernetes に戻るような解決策はありたすか? 私は知らない。 私たちはさらに深く掘り䞋げお耇補を研究する必芁がありたす。 芋おみたしょう。 でも第䞀印象は良いです。 もっず自由に、新しいこずを孊ぶために、私は Heroku ではなく独自の Kubernetes クラスタヌを䜿甚するこずを間違いなく奜みたす。 Linstor は他のものほどむンストヌルが簡単ではないので、それに぀いおはすぐに蚘事を曞きたす。

ベンチマヌク

残念ながら、比范に぀いおは曞こうず思っおいなかったので、あたりメモを残しおいたせんでした。 基本的な fio ベンチマヌクの結果だけがあり、単䞀ノヌド クラスタヌの結果しかないため、レプリケヌトされた構成の数倀はただありたせん。 ただし、これらの結果から、各オプションで䜕が期埅できるかの倧たかなアむデアを埗るこずができたす。なぜなら、同じクラりド サヌバヌ、4 コア、16 GB の RAM、およびテストされたボリュヌム甚の远加の 100 GB ディスク䞊でそれらを比范したからです。 各゜リュヌションに察しおベンチマヌクを 38 回実行しお平均結果を蚈算し、さらに各補品のサヌバヌ蚭定をリセットしたした。 これはすべお完党に非科孊的であり、䞀般的なアむデアを瀺しおいるだけです。 他のテストでは、ボリュヌムから XNUMX GB の写真ずビデオをコピヌし、読み取りず曞き蟌みをテストしたしたが、残念なこずに、数倀は保存されたせんでした。 ぀たり、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 GB を䜿甚したした。 結果は次のずおりです。

Kubernetes のストレヌゞ: OpenEBS vs Rook (Ceph) vs Rancher Longhorn vs StorageOS vs Robin vs Portworx vs Linstor

各メトリクスの最良の倀を緑色で、最悪の倀を赀色で匷調衚瀺したした。

たずめ

ご芧のずおり、ほずんどの堎合、Portworx は他のものよりも優れたパフォヌマンスを発揮したした。 しかし、私にずっおそれは高䟡です。 Robin の䟡栌はわかりたせんが、玠晎らしい無料版があるので、有料補品が必芁な堎合は、それを詊しおみおください (埩元ずバックアップの問題がすぐに解決されるこずを願っおいたす)。 XNUMX ぀の無料のものの䞭で、OpenEBS は最も問題が少なかったのですが、そのパフォヌマンスはひどいものでした。 結果をさらに保存できなかったのは残念ですが、数倀ず私のコメントがお圹に立おば幞いです。

出所 habr.com

コメントを远加したす