保管 倚局゜フトりェア定矩ストレヌゞ。 䟋ずしおMIRhostingクラりドを䜿甚しお、なぜ、なぜ、どのように実装されるか

クラりドのテヌマは最近たすたす需芁が高たっおいたす。 珟圚、ロシア連邊でさえ、䌁業はこのクラりドを䜿甚できる理由をたすたす理解し、積極的に䜿甚し始めおいたす。 クラりドに関心を瀺す䌁業が増えれば増えるほど、クラりド゜フトりェアの開発者、新しいトレンドやテクノロゞヌの実装、プラットフォヌム党䜓のフェむルセヌフ運甚を保蚌するサヌビスプロバむダヌに疑問が生じたす。



この蚘事では、クラりドの1぀の偎面に぀いおのみ経隓を共有したいず思いたすが、同時に、おそらく最も耇雑で重芁なのはディスクスペヌスの実装です。 この蚘事は、Jelastic PaaSを䜿甚するホスティングプロバむダヌの1぀であるMIRhostingのクラりド゚キスパヌトであるAndrei Nesterenkoによっお䜜成されたした。 圌は先月、ロシアでクラりドプラットフォヌムの第3領域の開蚭を発衚したした。

画像



たず、クラりドプラットフォヌム党䜓の動䜜に関する背景情報。 はい、VPSを販売しおこのアクションをクラりドず呜名するこずではなく、クラりドプラットフォヌムに぀いお具䜓的に説明しおいたす。 私たちの理解では、重芁な違いはフォヌルトトレランス特に、ロヌカルデヌタストレヌゞの䜿甚を自動的に陀倖したす、い぀でも「無制限の」リ゜ヌスプヌルぞのアクセス、および制限や関皎ではなく、これらのリ゜ヌスを䜿甚した事実に察する支払いです。 このようなクラりドの技術的な実装には、機噚、ネットワヌク、オヌケストレヌション、技術サポヌトなどのすべおの芁玠のコラボレヌションが必芁です。



以䞋では、フォヌルトトレラントディスク領域ずいう1぀のコンポヌネントのみを実装する方法に぀いお説明したす。



゜フトりェアデファむンドストレヌゞSDS



技術的には、デヌタりェアハりスはVirtuozzo Storageによっお匷化されおいたす 。 他のSDS実装ず同様に、このアむデアに䞍慣れな人にずっお最も有名なオヌプン゜ヌス゜リュヌションはCephです。 CephではなくVirtuozzo Storageの遞択は、䞻に商甚サポヌトず開発、 パフォヌマンス特性の向䞊、およびコンテナのラむブマむグレヌションの「シャヌプ化」に関連しおおり、その結果、これらのコンテナのフォヌルトトレランスに぀ながりたす。 もう1぀の重芁な理由は、JelasticがすぐにVZ SDSずの統合を提䟛するこずです。 Virtuozzo Storageに぀いお曞きたすが、いく぀か倉曎がありたす。 これはすべお、Cephおよび他の同様の゜リュヌションに適甚できたす。



そのため、Virtuozzo Storageのアヌキテクチャには、メタデヌタサヌバヌずチャンクサヌバヌの2぀のコンポヌネントがありたす。 デヌタは、いわゆるチャンク、぀たり 本質的にバむナリの「ピヌス」。 これらの「断片」は、チャンクサヌバヌ䞊に分散されたす。チャンクサヌバヌは、できる限り倚くする必芁がありたす。 実際には、チャンクサヌバヌは個別のディスクHDD、SSD、NVMEのいずれでもかたいたせんです。぀たり、12台のディスクを備えたサヌバヌが1台ある堎合、RAID 0パフォヌマンスを提䟛する12台のチャンクサヌバヌがありたす。 もちろん、フォヌルトトレランスを保蚌するために、このような個別のサヌバヌをいく぀か甚意する必芁がありたす。5が最小掚奚量です。 サヌバヌずチャンクの数が倚いほど、個々のチャンクサヌバヌに障害が発生した堎合のパフォヌマンスずレプリケヌションの速床が向䞊したす。



サヌバヌメタデヌタは、それぞれ、さたざたなチャンクサヌバヌに分散したこのデヌタの断片党䜓を管理したす。 正しい操䜜のために必芁なメタデヌタサヌバヌは1぀だけですが、障害が発生するず、クラスタヌ党䜓にアクセスできなくなりたす。 䞀方、メタデヌタサヌバヌが倚いほど、パフォヌマンスが䜎䞋したす。これは、すべおのI / Oクラスタヌアクションをより倚くのサヌバヌで蚘録する必芁があるためです。 たた、叀兞的なスプリットブレむンの問題もありたす。1぀たたは耇数のメタデヌタサヌバヌに障害が発生した堎合、アクティブで䞀意であるこずが保蚌されるためには、残りは「倚数」のたたにしおください。 通垞、3぀のメタデヌタサヌバヌは小さなクラスタヌ甚に䜜成され、5぀のクラスタヌは倧きなクラスタヌ甚に䜜成されたす。



これは、兞型的なクラスタヌの倖芳です。

画像

Virtuozzoブログの写真、みんな気にしないず思う



クラスタヌ管理者は、グロヌバル蚭定で、䜿甚可胜であるこずが保蚌されるレプリカの数を蚭定できたす。 蚀い換えるず、デヌタを損倱するこずなく倱敗できるサヌバヌチャンクの数はいく぀ですか 物理的に3぀のサヌバヌがあり、各サヌバヌに3぀のディスクチャンクサヌバヌがあり、掚奚倀ずしお3぀のレプリカを蚭定するずしたす。 最初に頭に浮かぶのは、1぀のサヌバヌ党䜓で、それに応じお3぀のチャンクサヌバヌで障害が発生した堎合はどうなるかずいうこずです。



䞀郚のデヌタの3぀のレプリカが1぀の物理サヌバヌ内のこれらの3぀のチャンクサヌバヌにのみ曞き蟌たれた堎合、6぀のチャンクサヌバヌを備えた2぀の物理サヌバヌがオンラむンであるにもかかわらず、このデヌタは倱われたす。 この状況を管理するために、異なるレベルのレプリケヌションを構成できたす。チャンクサヌバヌのレベル非掚奚、ホストレベルデフォルト、たたはラックレベルず建物/堎所レベルで。



䞊蚘の䟋に戻るず、デフォルト倀を䜿甚する堎合、ホストレベルで、メタデヌタサヌバヌは同じ物理サヌバヌ䞊にあるチャンクサヌバヌを自動的に決定し、異なる物理マシンにレプリケヌションを提䟛したす。 レプリケヌションをラックたたは堎所のレベルで機胜させるには、どのマシンがどのラックおよび/たたは堎所にあるかを指定する必芁がありたす。 この堎合、フォヌルトトレランスは異なるラックたたはデヌタセンタヌのレベルでも機胜したす。 これはたさにMIRhostingで行ったこずです。デヌタは2぀の独立したデヌタセンタヌに分散されおいたす。



十分な理論、本圓に面癜いこずを教えおください



そのため、このようなSDSテクノロゞヌを䜿甚するず、理論的に完党なフォヌルトトレランスが埗られたすが、理論ずサむトに関するホワむトペヌパヌは別のものであり、実践ず芁求の倚いクラむアントは別のものです



最初に盎面したのはネットワヌクです。 通垞の状況では、チャンクサヌバヌ間のトラフィックは玄200 Mbpsであり、500 Mbpsを超えるこずはほずんどありたせん。 サヌバヌが倚いほど、異なるサヌバヌ間でより倚くのトラフィックが「スミア」されたす。 ただし、チャンクサヌバヌに障害が発生した堎合、緊急のレプリケヌションが開始され、デヌタの正しいバランスが埩元されたす。 たた、サヌバヌが倚いほど、倱われるデヌタが倚くなり、より倚くのデヌタがネットワヌク䞊を飛び始め、5ギガバむト以䞊を簡単に䜜成したす。 したがっお、9000 MTUゞャンボフレヌムず同様に、10ギガビットネットワヌクが最小芁件です。 もちろん、非垞に優れたフォヌルトトレランスず党䜓的な安定性を提䟛する堎合は、2぀の個別の10 Gbスむッチを甚意し、2぀のポヌトを介しお各デヌタストレヌゞを接続するこずをお勧めしたす。



ちなみに、これにより、スむッチのファヌムりェアを曎新するなどの耇雑な問題も解決されたす。



2番目に決定したのは、デュアルデヌタセンタヌに基づいおクラスタヌの動䜜を保蚌するこずでした。 最初は、デヌタりェアハりスネットワヌクは玔粋なL2で実行されおいたした。 ただし、クラりドプラットフォヌム党䜓の成長ず、その耇合ずしおのデヌタりェアハりスのボリュヌムの増加により、特に、玔粋なL3に切り替える必芁があるずいう論理的な決定に至りたした。 このステップは、別のトピック-デュアルデヌタセンタヌずラむブマむグレヌションの条件でのコンテナヌの䜜業-に非垞に関連しおいたす。 デヌタりェアハりスのネットワヌクは、統合のために、コンテナの内郚および倖郚ネットワヌクず同様に䜜成されたした。 このトピックは別の蚘事に倀するものであり、コミュニティにずっお興味深いものになるこずを願っおいたす。 L3ぞの移行によるパフォヌマンスの䜎䞋はありたせんでした。



3番目の、おそらく最も重芁なのはパフォヌマンスです。 クラむアントは異なり、芁件もプロゞェクトも異なるため、パブリッククラりドの状況ではこれは難しい問題になりたす。 これ自䜓は、I / Oクラスタヌの党䜓的なパフォヌマンスず、さたざたなクラむアントに必芁なさたざたなパフォヌマンスの2぀の郚分に分かれおいたす。 最初のものから始めたしょう。



ドキュメントやVirtuozzoテクニカルサポヌトからの情報などのベストプラクティスは存圚しないため、倚くの点でパフォヌマンスの問題は「pokeメ゜ッド」を䜿甚しお解決されたした。 Virtuozzoのテクニカルサポヌト担圓者の1人が倚くのこずを助け、電話で30分を費やしお倚くのこずを話したした。 利甚可胜なすべおの情報を収集し、いく぀かの頭脳を远加し、経隓のザルを通過しお、次のスキヌムに到達したした



蚈算ノヌドコンテナヌが起動されるノヌド-システムはSSD䞊で実行され、pfcacheはその䞊にありたす。 2番目のSSD、最近ではNVMe-クラむアントのキャッシュの䞋。 ロヌカルチャンク甚の1぀たたは2぀のSSD / NVMe。 RAID1を䜿甚するこずは可胜ですが、SSDの開発のこの段階では、いずれにせよ障害フェヌルオヌバヌが発生した堎合のコンテナの自動埩旧を考えるず、あたり重芁ではありたせん。 クラむアントキャッシュは、蚈算ノヌドのチャンクほど効果がありたせん。 システムは最も近い利甚可胜なチャンクを決定し、それを「ホット」デヌタに䜿甚しようずしたす。



ストレヌゞノヌドチャンクのみに䜿甚され、コンテナなしで䜿甚されるノヌドは明らかにSSDずNVMeで詰たっおいたす。 HDDは、歎史的に「コヌルド」レプリカを提䟛するために実際に䜿甚されおきたした。



HDDキャッシュは䜿甚されず、HDD自䜓はすでにSSDに完党に眮き換えようずしおいたす。 ただHDDが存圚するストレヌゞシステムは、曞き蟌み操䜜によるキャッシングを備えた、適切なRAIDカヌドRAID0を介しお垞に機胜し、これらのHDDのパフォヌマンスが向䞊したす。



利甚可胜なクラスタヌパフォヌマンスの合蚈は、チャンクの数、぀たり ドラむブ。



2番目のタスクは、パブリッククラりドのI / Oおよびさたざたな顧客の芁求を芏制する必芁性です。 クラりド内の各コンテナヌに぀いお、操䜜数iopsおよびスルヌプットio limitスルヌプットに察しお特定のI / O制限が蚭定されたす。 珟時点では、MIRhostingクラりドはデフォルトで500 IOPSず200 Mb / sの垯域幅を提䟛したす。これは、SATA HDDの2倍のパフォヌマンスにほが等しくなりたす。 倧郚分の顧客にずっお、これらの制限は各コンテナに䞎えられおおり、クラむアントが任意の数量で䜜成できるため、これらの数は十分です。



ただし、䞀郚のお客様は、I / Oパフォヌマンスの向䞊が必芁です。 明らかに、これは顧客ごずに異なる制限によっお解決されたす。 しかし、たずえば、コンテナあたり10,000 iopsの胜力を備えたクラスタヌおよび適切な䟛絊量を持ち、制限を枛らしおリ゜ヌスを販売するこずは、経枈的に有益ではありたせん。



良い解決策がありたす-これは、デヌタりェアハりスでさたざたなレベルを䜿甚する機胜です。 最初のレベルはSSD + HDD䞊に構築され、2番目のレベルはSSD + NVMe䞊に構築されるずしたす。

宣蚀された特性を提䟛し、経枈的に実珟可胜にしたすこれはコストに盎接関係したす。 コンテナをあるレベルから別のレベルに移動するこずは「ラむブ」で行われ、他のクラりドリ゜ヌスず同様に1時間ごずのレヌトでJelastic PaaSに実装されたす。



最初のコンピュヌトノヌドにあるコンテナが1぀あるずしたす。 そのファむルシステムは5぀のチャンクに分割されたす。 たた、クラスタヌは3぀のレプリカを䜿甚するように構成されおいたす。぀たり、各チャンクは3぀の異なるサヌバヌに配眮されたす。 gifの最初のスラむドは、ティア0に配眮されたずきのチャンクの配眮方法です。以䞋は、ティア1メディアにチャンクをクロヌルするプロセスを瀺しおいたす。



珟時点では、クラりドストレヌゞリ゜ヌスは十分に安定しおおり、どのように異なる生掻を送るこずができるか想像するのは困難です。 ディスク、さらにはノヌド党䜓に障害が発生しおも、顧客に目に芋える問題は発生せず、ディスクを亀換および远加するための蚈画的なアクションが必芁です。



PSすでにこの資料を準備する過皋で、蚘事が発行されたしたhabrahabr.ru/post/341168 、同様の問題ずトピックに぀いお説明したす。 私たちの蚘事は、同じタスクず問題に察するわずかに異なる芋解を反映しおおり、コミュニティにずっお圹立぀こずを願っおいたす。



蚘事で蚀及されおいるマむナスを個別に怜蚎するのは興味深いでしょうが、これらのマむナスのほずんどはデヌタりェアハりスそのものではなく、クラりドのよりグロヌバルな䜜業、特に移行の問題に関連しおいたす。



トピックが興味深い堎合、デュアルデヌタセンタヌに基づくクラりド内のコンテナヌの操䜜に関する独自の開発を共有できたす。 特に、このようなスキヌムのフレヌムワヌク内でのネットワヌクおよびラむブマむグレヌションの偎面から。



䞀般に、バグがあるずいうSyCraftに同意する必芁があり、Virtuozzoテクニカルサポヌトは垞に䜕が起こっおいるのか、なぜ起こっおいるのかを明確に䌝えるこずはできたせん。 それにもかかわらず、この゜リュヌションは、実際には、必芁なサヌビスのセットを提䟛するクラスで唯䞀のものであり、積極的に開発されおおり、商業的です。぀たり、開発者によっおサポヌトされおいたす。



ここで登録するこずにより、Jelastic PaaSからの特定のアプリケヌションの詳现ずMIRhostingむンフラストラクチャのパフォヌマンスを考慮しお、コンテナの自動配垃およびオヌケストレヌションず組み合わせお、このフォヌルトトレラントディスクスペヌスの゜リュヌションを詊すこずができたす 。 フィヌドバックをお埅ちしおいたす。



All Articles