新しいバむオリンの抂芁-DRAMに近い速床で動䜜するフラッシュストレヌゞ



メヌカヌは、3぀の倧胆なマヌケティングステヌトメントを䜜成したした。



たず、スペヌスを数十個の仮想ボリュヌムに分割し、20/80モヌド蚘録の80で4キロバむトのブロックで蚘録する倚数のアプリケヌションを起動したした。 そしお、圌らはモゞュヌルを5日間負荷をかけ続けたした。 マヌケティングが嘘を぀いおいるこずが刀明したした蚘録速床はプレれンテヌションで述べられた1ミリ秒から非垞に遠く、平均は0.4ミリ秒でした40/60で0.25に達したした。



その埌、オフィスでのITディレクタヌのテストドラむブ䞭に、実際の問題が発生し始めたした。 実際、私は招埅状で、灜害埩旧゜リュヌションのデモ䞭に䜕らかの圢でデヌタセンタヌのラックを「ラむブ」に削枛し、その埌、むベントを平和的に終了する機䌚はなかったず述べたした。 聎衆は血を埅っおいたので、ドラむバヌでサヌビス゚ンゞニアに電話しなければなりたせんでした。



450k IOPSで、2人のファンを匕き抜くこずから始めたした。 これは芳客にほずんど感銘を䞎えたせんでした。なぜなら、私は2぀のコントロヌラヌのうちの1぀に行き、ノァむオリンがそれに察しお䜕を蚀っおいるかを芋たかったからです。 2぀のファンを差し匕くず、システムがひどくうなりたす残りは自動的に加速したす。そのため、゚ンゞニアが2぀のコントロヌラヌの1぀を取り出しお、ハヌドりェアが3分の1の速床で「サンク」するだけで、「お母さん」のような音しか聞こえたせんでした。



泚意、トラフィックカットシヌンスキヌムずスクリヌンショット。



同時に䜕がどのように機胜し、そのような速床がどこから来るのかを知るには、遠くから始めなければなりたせん。 最新のフラッシュストレヌゞのアヌキテクチャに぀いお十分に理解しおいる堎合は、システムアヌキテクチャに盎接スクロヌルしたす。 たたは、ある倧手ホスティング䌚瀟の代衚者が蚀ったように、「圌女が速いこずは知っおいたすが、圌女が䜕をしおいるのかさえ知りたせん。」



はじめに



むかしむかし、そのような独立したストレヌゞシステムはありたせんでした。サヌバヌには、すべおの情報が蚘録されたハヌドディスクがありたした。 その埌、より倚くの情報を曞き蟌む必芁があり、その結果、磁気テヌプ、ディスクアレむ、およびフラッシュディスクアレむに䜜成された個別のストレヌゞが割り圓おられたした。



さらに、プロセッサの開発速床は、ドラむブの開発速床を倧幅に䞊回りたした。 ディスクアレむが埐々にボトルネックになりたした。 ハヌドディスク自䜓の物理的なハヌドりェアの制限を考えるず、远加の冗長性を備えた巚倧な高速RAIDの組み立おを開始し、盎接蚘録する前にアルゎリズムを最適化したした。 しかし、それでも頭の䞊に飛び越えるこずはできず、速床は基本的に数幎間増加したせんでした。



その埌、最初のフラッシュドラむブが登堎したした。 ここに非垞に興味深い点がありたす。珟圚のむンフラストラクチャを考えるず、アヌキテクチャ党䜓の各フラッシュドラむブは、通垞のハヌドドラむブのレベルよりも高速でした。 ぀たり、フラッシュ゜リュヌションは叀いハヌドドラむブの代わりになりたした。そしお、蚘録コントロヌラヌの前のテクノロゞヌスタック党䜓は、ドラむブボックス内に既に通垞の磁気ディスクで動䜜しおいるず考えおいたした。 そしお、これはすぐにフラッシュテクノロゞヌに完党に䞍芁な操䜜の巚倧なオヌバヌヘッドを意味したしたたずえば、最適化アルゎリズムを備えたストレヌゞキャッシュは完党に䞍芁であり、単にデヌタの䜙分な遅延ですオフにしおも、デヌタは䟝然ずしおマむクロサヌキットを「飛びたす」叀兞的なセクタヌの蚘録スキヌムは、完党に䞍必芁なスロヌダりンにも぀ながりたした。 同時に、フラッシュドラむブ自䜓の蚘録方匏が異なっおいたため、HDDからフラッシュにむンタヌフェむスを投げる、フラッシュずしお曞き蟌む、さらにガベヌゞコレクタヌアナログを䜿甚しお蚘録するたびに、3回䜜業する必芁がありたした。 アプロヌチ自䜓は、垂堎でのSSDの普及によっお倉化しおいたせん-バス、キャッシュ、曞き蟌みアルゎリズムに関するすべおの同じ問題。



その結果、ある時点で、ノァむオリンの人々はこの写真を芋お、簡単な質問をしたしたなぜフラッシュメモリチップが埓来のHDDよりもDRAMに近い速床で動䜜し、同時に䞍揮発性である堎合、間違いなく既存のアヌキテクチャにねじ蟌たなければならないクラシックドラむブの代わりにストレヌゞ 答えは、䜎レベルのプロトコルずハンドラヌの巚倧な時代遅れの艊隊にのみありたした。 問題は、システム党䜓をれロから開発する必芁があるこずです。これは、時間ずお金の重倧な投資を意味したす。



バむオリンの゚ンゞニアはそれを止めたせんでした、圌らはチップアヌキテクチャぞのアクセスを蚱可するフラッシュメモリ東芝のメヌカヌず契玄を結びたした。 その結果、しばらくしお、倚くの䜜業を行った埌、SSDず比范しおも非垞に䜎い遅延レベルで、情報ぞのアクセス速床を倧幅に向䞊させるサヌバヌストレヌゞを䜜成するこずができたした。



叀い方法で動䜜しおいたスタック党䜓を削陀するには、ディスクずいう抂念自䜓を取り陀く必芁がありたした。 その結果、フラッシュドラむブずは蚀えないものができたした。DRAMに䌌た自然なマむクロ回路がテヌブルにありたす。



フラッシュ制限



第䞀に、セルあたりの曞き蟌みサむクル数が制限されおいたす。 サヌバヌ甚の最初のフラッシュドラむブは、1〜2か月の集䞭的な䜜業でストリヌミングされおいたした。 しかし、堎合によっおは、ハヌドドラむブを䜿甚するよりも優れおいる堎合があるこずに泚意しおください。ハヌドドラむブは、メカニックのために予枬䞍可胜な瞬間に飛行する傟向があり、フラッシュドラむブずマむクロチップは垞に正確な障害点を認識し、事前に譊告するこずができたす



第二に、フラッシュドラむブでは、埓来の磁気ディスクずは異なり、叀いデヌタの䞊に新しいデヌタを䞊曞きする方法はありたせん。蚘録は空のセルでのみ行うこずができたす。 ぀たり、叀兞的な読み取りず曞き蟌みに加えお、3番目の操䜜である消去が衚瀺されたす。 これは問題にならないようです。䞊曞きする前にセルをクリアする必芁がありたすが、ここで䞻な危険性がありたす。読み取りず曞き蟌みずは異なり、消去操䜜は非垞に遅いです。 時々。



第䞉に、最初の2぀の制限を回避するこずに成功した堎合、3぀目が発生したす。コントロヌラヌが「ボトルネック」になる可胜性があり、この経枈党䜓を管理し、読み曞き甚のデヌタを準備する必芁がありたす。



これらの制限を回避しないず、通垞のSSDで電力が20〜40増加するだけです。 呚りを回れば、玠晎らしい数字を達成できたす。 ノァむオリンはこれらの問題を非垞に興味深いこずに解決したした。



システムアヌキテクチャを芋おみたしょう





これは、システム党䜓がどのように芋えるかです



「フラッシュメモリファブリック」ずしお指定された゚リアでは、倧きな黒いファンが芋おいるマむクロ回路の巚倧な山を芋るこずができたす。 これは、このようなボヌド䞊のここにあるフラッシュメモリです。





個別のブリックフラッシュ工堎。



1぀のモゞュヌルには、16個のチップフラッシュメモリ、耇数のDRAMモゞュヌル、1぀の「ブリック」甚の1぀のFPGAカヌドがありたす。 工堎のレンガは最倧64個です。 ボヌド内のすべおのデヌタ操䜜はFPGA䞊でロヌカルに実行されるため、これらの懞念事項を䌎う倖郚コントロヌラヌをロヌドする必芁はありたせん。



これらのこずの隣に4぀の仮想RAIDコントロヌラヌがあり、これらはRAID 3 4 + 1ず同様のアルゎリズムを䜿甚しお、パリティによるデヌタ敎合性の確保に関䞎しおいたす。 デフォルトでは、コントロヌラヌはメモリヌカヌドをコントロヌラヌごずに5個ず1個のHotSpareの「責任」グルヌプに分けたす。 ただし、このパヌティショニングはある皋床「仮想」であり、各モゞュヌルから各モゞュヌルぞの同じ速床のアクセスは、アレむのスむッチング構造によっお垞に保蚌されたす。 埓来のストレヌゞアヌキテクチャで蚀うように、バック゚ンドは完党に正盎なアクティブ/アクティブです。



敎合性メカニズムは、耇数のメモリカヌドが次々に故障しおもデヌタを保存したす。䞻なこずは、2぀のRAID 1スロットが同時に「死ぬ」こずはなく、FLASHドラむブでの再構築もはるかに高速になるこずです。 確かに、特殊な点がありたす暙準的な亀換では、システムは砎損したモゞュヌルを認識し、自動的に電源をオフにしたすたたは、むンタヌフェむスからモゞュヌルの電源をオフにするこずができたす。その埌、モゞュヌルが匕き出され、むンタヌフェむスに新しいモゞュヌルがむンストヌルされおアクティブになりたす。 最も面癜いのは䜕ですか-すべおを「ホット」に倉曎できたす。 テスト䞭に、さたざたなアプリケヌションで最倧数癟のボリュヌムを䜜成し、20分間隔で4぀のモゞュヌルを順次取り倖したした1぀は緊急、3぀はむンタヌフェむスを介した予備シャットダりン-すべおが時蚈のように機胜したした。



アレむの電源のバッテリヌやスヌパヌキャパシタなど、倖郚電源障害が発生した堎合の特別な保護は提䟛されたせん。 これは、アレむが突然の停電から保護されおいないこずを意味するものではありたせん。最埌のトランザクションをフラッシュにリセットするのに十分な゚ネルギヌが電源ナニットに保存されおおり、十分な䜙裕がありたす。 電流が消えるず、システムは残りの゚ネルギヌを䜿甚しおFLASHにすべおのデヌタを40回以䞊蚘録できたす。



ここからさらに進んで、アヌキテクチャの芳点から、アレむが倖郚ず通信する方法を確認したす。





システム構成



そのため、入力には、暙準のSANむンタヌフェむスを介しおデヌタを送信するサヌバヌからのデヌタがあり、目的の速床ず芏暡で倖郚ナニットを操䜜できたす。 その埌、デヌタがゲヌトりェむに到着し、そこで有甚な情報がPCIe x8ベヌスのトランスポヌトむンフラストラクチャに送信されたすこのような速床で動䜜するのに遅くなるものは原則ずしお動䜜せず、必芁な遅延レベルを維持したせん。4KBのブロックでvRAIDコントロヌラヌに配信されたす。 その埌、パリティが蚈算され、5぀のメモリプランクのうち1぀プランクあたり1 KBに曞き蟌たれたす。



トランスポヌトむンフラストラクチャバむオリンの甚語では仮想マトリックスは完党に受動的であり、2぀の冗長ACMモゞュヌルによっお制埡されたす。 これらのモゞュヌルはアレむの玔粋な制埡芁玠であり、デヌタ凊理のロゞックに盎接関係せず、その機胜は玔粋に制埡し、電源を「制埡」し、システムの状態を監芖したす。 トランスポヌトむンフラストラクチャは、コンポヌネントの䞀郚に障害が発生した堎合でもViolinパッケヌゞ内ですべおを通信する機胜を提䟛したすが、パッシブボヌドをカりントできない限り、単䞀障害点を䜜成したせんが、障害の確率はデヌタセンタヌで火灜が発生する可胜性があるずしたす。



今、最も面癜くお難しいこず蚘録のためのフラッシュ技術の制限をどうするか 解決策は䞀般に耇雑ではありたせんが、バむオリン開発者によるず、この単玔さは圌らに最も困難をもたらしたした。 この問題は、デヌタの関連性が倱われた盎埌にセルを事前にクリヌニングするこずで解決されたす。 次のように機胜したすご存知のように、各フラッシュメモリチップの実際の未凊理容量は、宣蚀されおいるよりもはるかに倚く、これは負荷プロファむルに関係なくセルを均䞀に劣化させるために行われたす。したがっお、物理レベルでは、チップぞの各曞き蟌みは新しいセルに行き、叀いセルは䜿甚可胜ずしおマヌクされたすレコヌド。 同時に、叀いデヌタは元の堎所に残るため、空のセルがない状態にすぐになり、各レコヌドの前にセルをクリヌニングする必芁がありたす。その結果、速床が壊滅的に䜎䞋したす。





これがいわゆる SSDのパフォヌマンスグラフのブレヌク



バむオリンの動䜜は少し異なりたす。各チップのFPGAは各セルの情報の関連性を監芖し、デヌタが䞍芁になった堎合は、ガベヌゞコレクタヌず呌ばれる特別なバックグラりンドプロセスでデヌタをクリヌニングしたす。 したがっお、各レコヌドは垞に空のセルに移動したす。これにより、パフォヌマンスの䜎䞋が回避され、フラッシュメモリチップが読み取りだけでなく曞き蟌みにも可胜な限り効率的に䜿甚されたす。



アヌキテクチャをもう䞀床芋おみたしょう。

  1. コントロヌラはデヌタを受信し、さらに送信したす。
  2. 制埡モゞュヌルは、PCIe x8を介しおすべおのコンポヌネントを盞互に亀換し、コンポヌネントの監芖ず制埡を提䟛したす。
  3. フラッシュファクトリは、デヌタを個別のモゞュヌルに分散し、ピヌクに応じおすべおのバランスを取り、さらに内郚パスの均䞀な摩耗ず冗長性を確保したす。




FPGAチップ䞊のハヌドりェアに実装できるものすべお、぀たり、通垞ずは根本的に異なるレベルの盞互䜜甚ず凊理速床が提䟛されたす。



鉄定芏



次に、別のメモリチップでさらに䞋を芋おみたしょう。 実際には、チップに蚘録するための2぀の技術-SLCずMLCがありたす。 SLCは、各メモリ䜍眮に1ビット、MLC-さらに倚くを栌玍したす。 その結果、同じ物理チップ䞊で、SLCはより高速でより長いモゞュヌル寿呜を提䟛し、MLCはより倚くのスペヌスを確保できるこずがわかりたした。



この堎合、䟝存関係が線圢になる前に、SLCは2倍の速床で半分のスペヌスを提䟛したした。 ただし、賢いViolin゜フトりェア䜎レベルのデヌタ凊理を掘り䞋げるのにほが2幎を費やしたのおかげで、MLCはSLCずは曞き蟌み速床が玄50異なりたす。 バむオリンの統蚈によるず、MLCチップのリ゜ヌスも増加したす。最倧曞き蟌み負荷であっおも、メモリモゞュヌルは少なくずも4〜5幎は存続したす。



堎所の芏暡ず䜜業速床に応じた新䞖代のラむンナップは次のずおりです。





衚の違いは次のずおりです。





これはデヌタセンタヌでどのように芋えるかです





蚭眮時-3Uケヌスのすべおのアレむ、電力-480ワットの2ブロック、攟熱-匷力な3 Uサヌバヌのように。



むンタヌフェヌスず管理







アレむのIOPS統蚈。これは、1぀のIBM 3850X5サヌバヌが䜜成できる最倧負荷です。





同じ統蚈ですが、メガバむト/秒です。





ボリュヌム蚭定を衚瀺したす。



システムは非垞にシンプルで管理しやすいため、バむオリンはむンタヌフェヌスを非垞に重芁芖しおいたす。利䟿性ず操䜜性、そしおむンタヌフェヌス自䜓の実際の反応速床ず可芖性です。





単䞀の月の統蚈を衚瀺したす。





動䜜䞭の「愚か者」からの保護。 アクセスの䞭断たたはデヌタの損倱に぀ながる可胜性のあるアクションに぀いおは、远加の確認が必芁です。





アレむポヌトの状態。





䞀般的な配列統蚈のりィンドり。





ボリュヌムの統蚈りィンドりは個別に。





システムのハヌドりェアコンポヌネントを監芖するためのむンタヌフェむス。





ボリュヌム管理ペヌゞ。





ポヌト負荷監芖ペヌゞ。





完党にカスタマむズ可胜なメむンの監芖ペヌゞでは、アレむの状態に関する管理者にずっお最も必芁な情報を衚瀺できたす。



ロシアのこれらの腺



バむオリン自䜓はどのようにしお生たれたのですか すでに述べたように、それは非垞に簡単です。SSDの容量では珟代の問題を解決するのにただ十分ではないこずが明らかになり、ディスクのヒヌプにアプリケヌションを広めるこずはクヌルなアむデアではなく、東芝ずのパヌトナヌシップを結び、䜎レベルでコントロヌラヌ゜フトりェアの䜿甚を開始したした、近い、プロセスの物理孊に近い。 2005幎にシステムの最初のラむンを構築し、いかに優れおいるかを瀺し、さたざたなIT賞を受賞し、シリコンバレヌで「今幎のスタヌトアップ」ずなり、ストレヌゞシステムの䞖界をひっくり返したした。 珟圚、サヌバヌ゜リュヌションおよび゜フトりェアの倚くの倧手メヌカヌは、Violin゜リュヌションを䜿甚しお、ベンチマヌクTPC-C、VMmarkなどでプラットフォヌムの可胜性を匕き出しおいたす。



ノァむオリンは文字通り「昚日」だけロシアに来お、CROCは独占的な1幎間のパヌトナヌシップを受け取りたした。 珟圚、私たちは珟圚、地元のスペアパヌツ倉庫ず蚓緎を受けたサヌビス゚ンゞニアを提䟛しおいたす。



実装に関しおは 、最終䞖代の鉄ず数個のすでに新しいものの倧芏暡な統合が数十ありたした。 たずえば、ある倧䌁業では、数癟䞇の顧客に぀いお毎月の請求レポヌトを72時間生成し、22時間しか生成しなくなりたした。 VDI゜リュヌションでは、応答時間が非垞に短いため、ストレヌゞシステムからの応答のダりンタむム埅機を回避するこずができたした。これにより、カヌネルをロヌドできるようになり、コアあたりの叀い10ナヌザヌの代わりに、同様のパフォヌマンスでコアあたり25ナヌザヌが埗られ、これによりラむセンスずコンピュヌティングも節玄されたす機噚。



ちなみに、バむオリンマヌケティングのおかげです-ありがたいこずに、圌らはあたり知名床の高い声明を出さず、ピヌクパラメヌタヌではなく、暙準的なものを瀺しおいたす-私たちは結局はむンテグレヌタヌであり、他の誰かのマヌケティングの倩才に魅了されたクラむアントがなぜ圌がすべおを持っおいるのか尋ねたしたそうではありたせん。 このアプロヌチのおかげで、クラむアントは予想以䞊のものを受け取りたす。



それでも、倚くの人はフラッシュシステムの玠晎らしい速床を信じおいないので、ノァむオリンの堎合は、鉄で指を突くこずができるドラむブをテストするだけでなく、蚈算ず詊行実装も行いたす。 たずえば、クラむアントがVDIストレヌゞむンフラストラクチャを50,000 IOPで50TBのデヌタに察しお50,000ナヌザヌに展開する必芁がある堎合、2぀のオプションが考慮されたした2぀の7 x 200GBキャッシュSSD 180 x 600GB SAS察Violin 6212、12TB RAW = 7Tb 「遅い」デヌタを保存するためのデヌタず60 x 600GB SAS 18 x 3TB SATA その結果、生産性が5侇IOPSから200,000 IOPSに向䞊する䞀方で、ほが2倍の節玄になりたす。



発生の詳现に興味がある堎合は、フラッシュストレヌゞを䜿甚しお問題の解決策を蚈算し、 vbolotnov @ croc.ruに曞き蟌みたす。 念のため、そのようなプロゞェクトを甚意しおテヌブルに眮くこずをお勧めしたす-急に急加速する必芁がある堎合は、それを取埗しお蚈算を衚瀺するこずができたす。



All Articles