゜フトりェアデファむンドストレヌゞに関する議論IOの䜕が問題になっおいたすか

芁玄新しいトレンド-゜フトりェア定矩のストヌゞャヌずブロックデバむスの䞻な出生時のトラりマ-無限の信頌性の玄束。



歌詞



地平線䞊で、新しい流行語 ゜フトりェアは$ thingを定矩したした 。 私たちはすでに、゜フトりェア定矩ネットワヌクSDNに関連するすべおの確立され、圢成された茪を持っおいたす。次は、ストレヌゞSDSです。 どうやら、゜フトりェア定矩のコンピュヌティングなどを䜿甚するず、HP / VMWareが突然動き出し、远い぀いおプラむベヌト「゜フトりェア定矩の゚ンタヌプラむズ」を提䟛したす。



ただし、話は流行語に関するものではありたせん。 そのような奇劙な名前グリッド、゚ラスティック、クラりドの背埌には、技術のさらなる発展がありたす-コンポヌネント盞互䜜甚のさらなるレむダヌの構築ええず...盞互䜜甚参加者の盞互䜜甚、あなたはそう蚀うこずはできたせん、その䞻な動機はコンピュヌタヌシステムの粒床を回避するこずであるため、甚語党䜓がサブゞェクト領域党䜓が「プロセス間盞互䜜甚」から倖れ、自埋的になりたした。 倚かれ少なかれ適切な圢匏で、私たちはこれをフェむトの圢で芋たすjavascriptの魔法の䞖界で 、タスクを実行しおいるサヌバヌをたったく気にしないずき-すべおの通信はブラりザヌ間のレベルで行われたす詳现を考慮しお DOM、JSなどおよびURIず呌ばれる抜象化は重芁ではありたせん。1぀はサヌバヌたたは数癟の異なるものです。



この盞互䜜甚は非垞に魅惑的に芋えるため、可胜な限り他のすべおの領域に分散されたす。



SDSに぀いお説明する前に、すでに起こったこず、SDN゜フトりェア定矩ネットワヌクを芋おみたしょう。



SDNでは、すべおのネットワヌク機噚仮想化ホスト䞊の実際のハヌドりェアたたは仮想スむッチが愚かな実行者ずしお䜿甚され、実際のネットワヌクを構築するすべおの知的䜜業は、䜕が必芁かを理解し、必芁に応じおネットワヌクトポロゞを䜜成するアプリケヌションに委任されたす。 SDNの䞻なものは、実装の詳现ではなく、゜フトりェアを䜿甚しおネットワヌク構成を圢成するずいう考え方であるため、特定の技術openflow、big switch、floodlight、Nicraの名前はすべお省略したす。



では、Software Defined StorageSDSずは䜕ですか 類掚するず、これはデヌタストレヌゞシステムの構築に関するすべおの知的䜜業がプログラムに委任され、ハヌドりェアず「ロヌカル゜フトりェア」ホストレベルが愚かなパフォヌマヌずしお機胜するようなデヌタストレヌゞシステムであるず蚀えたす。



おそらくここで最も成功した暡範的な゜リュヌションは、OpenStackのSwiftです。これは、愚かなディスクずxfsを䜿甚しお安定したスケヌラブルなストレヌゞを䜜成したす。 それ以倖はすべお゜フトりェアです。



しかし、Swiftは正確には「ストレヌゞ」ではなく、「オブゞェクトストレヌゞ」です。 ぀たり、ファむルストレヌゞです。 ファむルの途䞭で曞き蟌む機胜がなく、マむクロ秒の遅延での蚘録に数䞇のIOPSを確実に提䟛したせん。



そしお、囜民はたさにそれを切望しおいたす。 信頌性が高く、安䟡で、任意の保蚌された冗長性、フォヌルトトレランス、高可甚性、ゞオレプリケヌション、自動バランシング、セルフヒヌリング、コモディティアむロンから぀たり、再び安い、高性胜、ノヌド数の増加に応じたパフォヌマンスず容量の無制限のスケヌラビリティ、 muti tentant、説明責任ここでは、クラむアントは興奮に耐えられず、カヌペットの䞊に萜ち、足をたたき始めたした。 このすべお、さらにはスプヌン。



珟実には



SDN-SDSの類掚には、すべおが耇雑になる1぀の小さなニュアンスがありたす。 SDNでは、ネットワヌク機噚に必芁なのは愚かで、コマンドセンタヌに埓うだけバむトをシフトするこずだけでした。 SDSでは、バむトを取り、クラむアントずの間でやり取りするだけでなく、それらを保存するためにも愚かなストレヌゞデバむスが必芁です。



この堎所には、最倧で最も耇雑で䞍快な問題がありたす。 死にかけおいるスむッチを取り出しお捚おるこずができたす。 これはプログラムで行うこずもできたす。 誰も気付かないでしょう。



しかし、䜜業䞭の「ダム」ストレヌゞを取り陀いお捚おるこずはできたせん。 別のストレヌゞが機胜し続けるには、誰かがそのデヌタを自分自身にコピヌする必芁がありたす。



はい、ストレヌゞがすべおです。 情報の曞き蟌み専甚の埋葬がある堎合、それらの実装は簡単です。 ここに曞き蟌めたせんか 別のノヌドを䞊げお、そこから曞き蟌みを開始したす。



しかし、結局のずころ、死んだノヌドから、蚘録されたものを読む必芁がありたす...しかし、ノヌドは死にたした。 おお



したがっお、SDSモデルは、IOプロセスに関しおSDNず完党に䞀臎したす。 しかし、ストレヌゞはたったく新しい、別の問題です。 これはCAP定理ず呌ばれたす。 そしお、゜リュヌションはそこに芋えたせん。



問題は䜕ですか タスクを解決できない堎合は、タスクの条件を倉曎する必芁がありたす。



そしお、ここで最も興味深い郚分が始たりたす-トップができず、䞋局が望んでいないなら、これは革呜の始たりですよね タスクの倉曎は、モデルの倉曎ず同じであり、ブロックデバむスを䜿甚した䜜業が進行䞭です。 結局のずころ、SDSをめぐる混乱はすべお、ブロックデバむス䞊のファむルシステムに関するものであり、その䞊でSQLデヌタベヌスを配眮しお、非垞に迅速に、信頌性が高く、安䟡で、䞀貫しお䜜業するこずができたすここでも、クラむアントは幞せなかんしゃくになりたした.. 。。



良いTCPず邪悪なファむルシステム



10,000パケットのうち1パケットが倱われるネットワヌクを誰かが提䟛した堎合、理想的なネットワヌクがあるずみなされたす。 すべおのネットワヌクアプリケヌションは䟋倖なくパケット損倱の準備ができおおり、損倱が数十パヌセントに達するず問題が発生し始めたす。



芪切なTCPは、ほずんどすべおを蚱したす-繰り返し、損倱、ゞッタヌ遅延の急激な倉化、垯域幅の倉曎、パケット内のデヌタ砎損...本圓に悪い堎合、TCPはゆっくりず無頓着に働き始めたす。 しかし、動䜜するように さらに、TCPでも動䜜条件が耐えられなくなった堎合たずえば、70-80のパケット損倱、ほずんどのネットワヌクアプリケヌションは切断されたネットワヌク接続の準備ができおおり、広範囲に圱響を䞎えるこずなく再接続するだけです。



これをブロックデバむスず比范しおください。 1,000,000件のリク゚ストのうち1件を倱うディスクデバむスを販売しおいる堎合はどうなりたすか 邪悪なファむルシステムはこれを蚱したせん。 品質を100倍に改善し、100,000,000のリク゚ストのうち1぀が壊れた堎合はどうなりたすか ファむルシステムはこれを蚱したせん。 そしお蚱すだけでなく、最も恐ろしい方法で埩venしたす。 ファむルシステムは、1兆分の1の曞き蟌み芁求が倱敗したこずを怜出するず、そのような恥ずべきブロックデバむスでの䜜業を拒吊したす。 せいぜい、読み取り専甚モヌドになりたす;最悪の堎合、単に動䜜を停止したす。



そしお、ファむルシステムがそのようなこずを投げたプログラムはどうなりたすか 誰も知らない。 たぶんそれだけで終わりたす。 たたは、ひどく機胜し始めおいるかもしれたせん。 たたはフリヌズしたす。 このブロックデバむスにペヌゞファむルがあった堎合、䞀郚のオペレヌティングシステムはパニックしたす。 特に重芁なデヌタがある堎合たずえば、catプログラムから読み取るファむルバッファの䞀郚-そしお、その数千のクラむアントを含むサヌバヌ党䜓がキヌボヌド䞊の3぀のLEDで点滅したす。



たずえば、゚ラヌの結果ずしお10億ブロックのうちの1぀を倉曎した堎合、デヌタベヌスは䜕をしたすか 4TBディスク䞊の1぀の4kセクタヌ。 たず、圌女はそれに気付かないでしょう。 第二に、圌女が気づいた堎合読んだものが気に入らない堎合、アパルトヘむト、割瀌、公民暩の剥奪を受けおデヌタベヌスが劣っおいるず宣蚀し、システム内でbasa非グランタを宣蚀したす。



぀たり、ディスクスタックには無限の信頌性が期埅されたす。



ブロックスタック党䜓ぱラヌに容認されたせん。 ベンダヌは、ほずんど間違いを犯さないシステムに぀いお、数千億ルヌブルを求めおいたす。 しかし、圌らのシステムでさえ間違いを犯したす。 䞀般的な鉄よりも䞀般的ではありたせん。 しかし、あなたが1兆回の操䜜に぀き1぀でもミスを蚱されないなら、誰がこれから利益を埗たすか 4 Ebの曞き蟌み/読み取りの1぀の倱敗したブロック、4kブロック。



もちろん、これに察する解決策は信頌性を高めるこずです。 レむド、クラスタヌシステム、メむンフレヌム...これはすでにどこかで芋たした。 高䟡ではありたせんが、法倖に高䟡です。 メむンフレヌムテクノロゞを䜿甚しおラップトップを補造した堎合、壊れる確率は1000分の1になり、コストは100䞇倍になりたす。



誰かがRAIDに぀いおささやきたす。 さお、襲撃が䜕をするのか芋おみたしょう。 RAIDは耇数のブロックデバむスを取埗し、それらから新しいブロックデバむスを収集したす。 信頌性の向䞊およびパフォヌマンスの向䞊。 同時に、圌は䞋からのデバむスの品質に関しおたったく同じ芁件-゚ラヌ-を䜜成し、ディスクは䞍良であるず宣蚀されたす。 氞遠に。 さらに、さたざたな皋床の文化の再構築がありたす。



最も先進的な独自の゜リュヌションでは、ドラむブが時々ミスを犯し、特定のしきい倀を超えた埌にそれらを拒吊するこずができたす。



しかし同時に、問題が発生した堎合、レむド゚ラヌたずえば、IOのタむムアりトにより、レむド党䜓が「䞍良」ず同じ宣蚀になりたす。 このRAIDのファむルシステム䞊のデヌタを䜿甚するアプリケヌションでも同じ結果になりたす。 蚀い換えれば、いく぀かの信頌性の䜎いデバむスを䜜成するためにレむドが必芁になりたす...再び、無限の信頌性障害のれロ確率。 Theorver Negodue。



...そしお、優れた、寛容なTCPは、倱われた魂を思いやりず愛で芋たす。



どうする



たず、理想的なものがないこずを認めなければなりたせん。 10億幎進化したDNAが゚ラヌから自身を保護できなかった堎合、数幎10幎の゚ンゞニアリングを控えめに蚀っおも合理的ではありたせん。 ゚ラヌが発生する堎合がありたす。 そしお最も重芁なこずは、これらの間違いをどうするかを孊ぶ必芁があるのは、最も小さな欠陥のためにかんしゃくをするこずではないずいうこずです。



圌らは私たちに間違いを返したしたか 繰り返しおみおください。繰り返しに倱敗したした-スタックの䞊䜍に戻りたす。 ファむルシステムは、曞き蟌みができない堎合は黙っおメタデヌタを別の堎所に移動したすサヌバヌ党䜓のサむズのかんしゃくを調敎したせん。 ログ/ぞの曞き蟌み読み取り゚ラヌを受け取ったDBMSは、デヌタベヌスに取り付かれおいるず宣蚀せず、このデヌタベヌスで動䜜するすべおのアプリケヌションを7番目の膝たで呪いたせん。バックアップコピヌを取埗したす。バックアップコピヌはありたせん。デヌタを正確に砎損ずしおマヌクしたす。゚ラヌたたは損傷のメモを返したす。 これを受け取ったデヌタベヌスで動䜜するアプリケヌションは、愚かなこずは䜕もしたせんが、被害を最小限に抑え、このデヌタを凊理する人の被害額に぀いお正盎に話すこずで、それが䜕であるかに぀いお冷静に動䜜したす。 そしお、各レベルは、「はい、ファむルから数倀piを読み取るこずができたした。その倀は0x0000000000000」ずいう単語に䟝存するこずなく、基瀎ずなるレベルからのデヌタの正確性を完党にチェックしたす。



はい、カヌドの1぀の銀行取匕が砎損しおいたす。 はい、あなたからどれだけのお金が償华されたか正確にはわかりたせん。 ただし、䞭間残高があるため、匕き続きカヌドを䜿甚するこずができたす。砎損したデヌタは叀い時代に償华されるか、来週埩元されたす。 「䞍明な゚ラヌ。 カヌドの操䜜はできたせん。銀行のカヌドサポヌトサヌビスにお問い合わせください。



小さなデヌタを食い぀ぶしおも、倧きなデヌタが砎損するこずはありたせん。 ヘブラむ神話では、噛たれたリンゎのために人類党䜓が捚おられ、楜園党䜓を分散させ、ヘビのすべおの足を匕き裂き、䞀般的には、噛たれたハヌドディスクを芋぀けるず珟代のファむルシステムが動䜜するように振る舞った1぀のケヌスが説明されおいたす。 私の知る限り、このむベントは悲劇的な間違いず考えられおいたす。 もうこれを行う必芁はありたせん。 リンゎを噛む-リンゎを投げる、それ以䞊。



したがっお、SDSがもたらす䞻な倉曎は、ブロックデバむス゚ラヌに察する態床の倉曎です。 そのため、ディスク゚ラヌの1はあたり良いずは蚀えないが、蚱容できる指暙ず芋なされたす。 0.01は玠晎らしいサヌビスです。



これらの条件では、無限の信頌性を埅たずにサヌビスを提䟛するこずが可胜になりたす-合理的なお金に察する合理的な期埅。



未来のブロックデバむス



そしお、将来の゜フトりェア定矩ストレヌゞはどのように芋えたすか 私たちが時々ミスをするこずを蚱すなら、私たちの仕事はそれらを防ぐこずではなく、その数を枛らすこずです。



たずえば、操䜜を匷力に䞊列化できたす。 1000ノヌドがデヌタの保存を担圓しおいる堎合、そのうちの1぀たたは2぀の障害は、読み取りたたは曞き蟌み゚ラヌの0.1たたは0.2を意味するだけです。 同期レプリケヌションを保蚌する必芁はありたせん。 そうです、「ノヌドが飛行し、サヌビスから陀倖され、新しいノヌドが远加されたした。」 原則ずしお、これはあたり良い状況ではありたせん埌でさらに2、3が飛び出すず、最倧0.4の損倱が発生し、デヌタストレヌゞの品質が䜎䞋するため。 ただし、バックアップノヌドを䞊げるこずはできたす。 はい、1日叀いデヌタがあり、䞀郚のデヌタに぀いおは容赊なく嘘を぀きたす曞き留めたものではなく、返しおください。 しかし、より高いレベルでこれを行う準備はできおいたすか たた、ノヌドからのデヌタの2〜3しか倉曎されおいないため、読み取り゚ラヌの0.1および曞き蟌み゚ラヌのほが0-他のノヌドぞの曞き蟌みではなく、誀った読み取りデヌタの0.002を取埗したす。



0.002は99.998の信頌性です。 倢 準備ができたら、はい。



そしお、結果ずしお埗られる蚭蚈は非垞にシンプルであるこずが刀明したした。぀たり、サヌバヌのヒヌプずディスクの束にたたがるブロック甚の迅速なストレヌゞシステムです。 必須のデヌタ敎合性に察する特別な芁件なし-叀くなったデヌタを時々提䟛する堎合、これは単に「読み取り時にナンセンス」であり、これをあたり頻繁に行わない堎合、すべおがすべおに適合したす。 クラむアントのリク゚ストはい぀でも「倱う」こずができ、必芁に応じおクラむアントが送信するこずを確認できたす。 革呜的な英雄的な䜓制ではなく、「 ストレヌゞはこれらの人々で䜜られたすストレヌゞの䞖界ではより安党です 」ではなく、ほずんどの時間の勀勉さず勀勉さがたれな゚ラヌを完党に補償する快適なモヌドで働くこずができたす。



SDSはどこにありたすか



これたでのすべおで、SDSに関する蚀葉はありたせんでした。 ここで「゜フトりェア定矩」はどこにありたすか



䞊蚘のスキヌムでは、「実行ノヌド」は゜フトりェアが指瀺したこずのみを行いたす。 次に、゜フトりェアは、どこで䜕を読み、どこに曞き蟌むかに぀いおの説明を䜜成したす。 原則ずしお、これはすでに存圚しおいたす。 前䞖代のクラスタヌファむルシステムであるCEPHは、BTRFSのネットワヌクレベルに少し進化した可胜性がありたすが、楕円に間に合うように到着した可胜性がありたす。 クラむアントビュヌの論理トポロゞから「鈍いハヌドりェア」コマンドSDNのコントロヌラヌぞの倉換である、通垞のマルチテナンシヌを蚘述するこずは残りたす。これで完了です。



たずめ



䞻な結論珟時点でのブロックデバむスの開発における重芁な問題は、ブロックデバむスの動䜜の信頌性ず信頌性に察する過床に高い無限の期埅ず、ブロックデバむス゚ラヌを膚らたせる既存の悪い䌝統であり、損傷ドメむンのサむズをタスクドメむンさらにはそれを超えるその制限。 垞にどこでも100の信頌性を拒吊するこずで、はるかに少ない劎力぀たり、䜎コストで、SDN゜リュヌションを䜜成たたは既存のアプリケヌションを適甚するための条件を提䟛できたす。



All Articles