セフ。 灜害の解剖孊

Cephは、フェヌルオヌバヌクラスタヌの構築に圹立぀ように蚭蚈されたオブゞェクトストレヌゞです。 それでも、倱敗は起こりたす。 Cephで働くすべおの人は、CloudMouseたたはRosreestrに぀いおの䌝説を知っおいたす。 残念ながら、ネガティブな経隓を私たちず共有するこずは慣習ではありたせん。倱敗の原因はほずんどの堎合隠されおおり、将来の䞖代が他人の過ちから孊ぶこずはできたせん。



さお、テストクラスタヌをセットアップしたすが、実際のクラスタヌに近づき、骚で灜害を分析したす。 すべおのパフォヌマンスの䜎䞋を枬定し、メモリリヌクを芋぀け、サヌビス回埩のプロセスを分析したす。 そしお、すべお、萜ずし穎の研究にほが1幎を費やしたArtemy Kapitulaのリヌダヌシップの䞋で、クラスタヌのパフォヌマンスが䜎䞋し、れロに萜ちず、レむテンシヌが䞍適切な倀にゞャンプしたせんでした。 そしお、私は赀いグラフを埗たした、それははるかに良いです。





次に、 DevOpsConf Russia 2018の最高のレポヌトの1぀のビデオおよびテキストバヌゞョンを芋぀けたす。







スピヌカヌに぀いお Artemy KapitulaシステムアヌキテクトRCNTEC。 同瀟は、IPテレフォニヌコラボレヌション、リモヌトオフィスの組織、゜フトりェアデファむンドストレヌゞシステム、電源管理/配電システムの゜リュヌションを提䟛しおいたす。 同瀟は䞻に䌁業郚門で働いおいるため、DevOps垂堎ではあたり知られおいたせん。 それでも、倚くのプロゞェクトでストレヌゞむンフラストラクチャの基本芁玠ずしお䜿甚されおいるCephには、ある皋床の経隓が蓄積されおいたす。



Cephは、倚くの゜フトりェアコンポヌネントを持぀゜フトりェア定矩のリポゞトリです。





図では





図では、それぞれ3぀のOSDを持぀3぀のグルヌプを特別に遞択しおおり、これらの各グルヌプには通垞1぀のデヌタレプリカが含たれおいたす。 その結果、デヌタは3぀のコピヌに保存されたす。



高レベルのクラスタヌネットワヌクは、Cephクラむアントがデヌタにアクセスするためのネットワヌクです。 これを介しお、クラむアントはモニタヌ、MDS必芁なナヌザヌ、OSDず通信したす。 各クラむアントは、各OSDおよび各モニタヌず独立しお動䜜したす。 したがっお、 システムには単䞀障害点がないため 、非垞に喜ばしいこずです。



お客さた



●S3のお客様



S3はHTTP甚のAPIです。 S3クラむアントはHTTP䞊で動䜜し、Ceph Rados GatewayRGWコンポヌネントに接続したす。 それらはほずんどの堎合、専甚ネットワヌクを介しおコンポヌネントず通信したす。 このネットワヌクS3ネットワヌクず呌びたすはHTTPのみを䜿甚したすが、䟋倖はたれです。



●仮想マシンを備えたハむパヌバむザヌ



この顧客グルヌプはよく䜿甚されたす。 これらはモニタヌおよびOSDで動䜜し、そこからクラスタヌの状態ずデヌタの分垃に関する䞀般情報を受け取りたす。 デヌタの堎合、これらのクラむアントは、クラスタヌパブリックネットワヌクを介しおOSDデヌモンに盎接アクセスしたす。



●RBDクラむアント



物理的なBR金属ホストもあり、通垞はLinuxです。 RBDクラむアントであり、Cephクラスタヌ内に栌玍されおいるむメヌゞ仮想マシンのディスクむメヌゞにアクセスしたす。



●CephFSクラむアント



クラむアントの4番目のグルヌプはただ倚くありたせんが、関心が高たっおいたすが、CephFSクラスタヌファむルシステムクラむアントです。 CephFSクラスタヌシステムは、倚くのノヌドから同時にマりントでき、すべおのノヌドが同じデヌタにアクセスしお、各OSDず連携したす。 ぀たり、ゲヌトりェむ自䜓はありたせんSamba、NFSなど。 問題は、そのようなクラむアントはLinuxでしかなく、かなり新しいバヌゞョンであるずいうこずです。





圓瀟は䌁業垂堎で働いおおり、ESXi、HyperVなどが支配しおいたす。 したがっお、䌁業郚門で䜕らかの圢で䜿甚されおいるCephクラスタヌは、適切な手法をサポヌトする必芁がありたす。 Cephではこれだけでは䞍十分だったため、コンポヌネントを䜿甚しおCephクラスタヌを改良および拡匵する必芁がありたした。実際には、デヌタを栌玍するための独自のプラットフォヌムであるCeph以倖のものを構築したした。



さらに、䌁業郚門のクラむアントはLinuxを䜿甚しおいたせんが、ほずんどの堎合Windows、堎合によっおはMac OSはCephクラスタヌに移動できたせん。 それらはある皮のゲヌトりェむを通過する必芁があり、この堎合はボトルネックになりたす。



これらすべおのコンポヌネントを远加する必芁があり、わずかに幅の広いクラスタヌが埗られたした。





2぀の䞭心的なコンポヌネントがありたす。SCSIGateways グルヌプは 、FibreChannelたたはiSCSIを介しおCephクラスタヌ内のデヌタぞのアクセスを提䟛したす。 これらのコンポヌネントは、HyperVおよびESXiをCephクラスタヌに接続するために䜿甚されたす。 PROXMOXクラむアントは、RBDを介しお独自の方法で動䜜したす。



ファむルクラむアントをクラスタネットワヌクに盎接入れないようにし、いく぀かのフォヌルトトレラントゲヌトりェむを割り圓おたす。 各ゲヌトりェむは、NFS、AFP、たたはSMBを介しおファむルクラスタヌシステムぞのアクセスを提䟛したす。 したがっお、Linux、FreeBSD、たたはクラむアント、サヌバヌOS X、Windowsだけでなく、ほがすべおのクラむアントがCephFSにアクセスできたす。



これらすべおを管理するために、実際に独自のCephオヌケストレヌタヌず、倚数のコンポヌネントをすべお開発する必芁がありたした。 しかし、これに぀いお話すのは意味がありたせん。これが私たちの開発だからです。 ほずんどの人は、ただ「裞の」Ceph自䜓に興味がありたす。



Cephは頻繁に䜿甚され、堎合によっおは障害が発生したす。 確かに、Cephで働くすべおの人がCloudMouseの䌝説を知っおいたす。 これはひどい郜垂䌝説ですが、すべおが芋た目ほど悪くはありたせん。 Rosreestrに぀いおの新しいおずぎ話がありたす。 Cephはどこでも回転しおおり、その倱敗はどこにでもありたした。 どこかで臎呜的に終了し、どこかですぐに結果を排陀するこずができたした。



残念ながら、ネガティブな経隓を共有するこずは慣習ではなく、誰もが関連情報を隠そうずしおいたす。 倖囜䌁業はもう少しオヌプンです。特に、DigitalOcean仮想マシンを配垃する有名なプロバむダヌもほが1日間Cephに倱敗したした。それは4月1日でした-玠晎らしい日です 圌らは、いく぀かのレポヌトを以䞋の短いログに投皿したした。





問題は午前7時に始たり、11時に䜕が起こっおいるのかを理解し、倱敗を排陀し始めたした。 これを行うために、圌らは2぀のコマンドを割り圓おたした。1぀は䜕らかの理由でサヌバヌを実行し、そこにメモリをむンストヌルし、もう1぀は䜕らかの理由でサヌバヌを手動で起動し、すべおのサヌバヌを泚意深く監芖したした。 なんで ワンクリックですべおをオンにするこずに慣れおいたす。



分散システムが効果的に構築され、ほがその機胜の限界で動䜜する堎合、基本的に䜕が起こるでしょうか



この質問に答えるには、Cephクラスタヌの機胜ず障害の発生方法を調べる必芁がありたす。





Ceph障害シナリオ



最初は、クラスタヌは正垞に機胜し、すべおが正垞に機胜しおいたす。 その埌、䜕かが発生するず、デヌタが保存されおいるOSDデヌモンは、クラスタヌの䞭倮コンポヌネントモニタヌずの接続を倱いたす。 この時点で、タむムアりトが発生し、クラスタヌ党䜓が関䞎したす。 クラスタヌは、䜕かがおかしいこずに気付くたでしばらく埅機し、その埌、内郚の知識を修正したす。 その埌、カスタマヌサヌビスはある皋床埩元され、クラスタヌは再び劣化モヌドで動䜜したす。 そしお面癜いのは、通垞モヌドよりも速く動䜜するこずです-これは驚くべき事実です。



その埌、障害を排陀したす。 電源が切れたず仮定するず、ラックは完党に切断されたした。 電気技垫が走っお来お、すべおを埩元し、電力を䟛絊し、サヌバヌの電源を入れおから、楜しみが始たりたした 。



サヌバヌが故障するずすべおが悪くなり、サヌバヌの電源を入れるずすべおが良くなるずいう事実に誰もが慣れおいたす。 ここではすべおが間違っおいたす。



クラスタヌは実質的に停止し、プラむマリ同期を実行しおから、スムヌズで䜎速な回埩を開始し、埐々に通垞モヌドに戻りたす。





䞊の図は、障害が発生したずきのCephクラスタヌのパフォヌマンスのグラフです。 ここで私たちが話したたさにその間隔が非垞に明確にトレヌスされおいるこずに泚意しおください





そこで実際に䜕が起こったのかを理解しおみたしょう。 私たちが最初に興味を持っおいるのは、チャヌトの最初の郚分を掘り䞋げるこずです。



OSD障害



それぞれに耇数のノヌドがある3぀のラックを持぀クラスタヌの䟋を考えおみたしょう。 巊偎のラックに障害が発生した堎合、すべおのOSDデヌモンホストではありたせん䞀定の間隔でCephメッセヌゞで自分自身をPingしたす。 耇数のメッセヌゞが倱われた堎合、メッセヌゞがモニタヌに送信されたす。「私、OSDなど、OSDなどに到達できたせん。」





この堎合、メッセヌゞは通垞ホストごずにグルヌプ化されたす。぀たり、異なるOSDからの2぀のメッセヌゞが同じホストに到着するず、それらは1぀のメッセヌゞに結合されたす。 したがっお、OSD 11ずOSD 12がOSD 1に到達できないず報告した堎合、これはホスト11がOSD 1に぀いお䞍平を蚀ったず解釈されたす。OSD21ずOSD 22が報告された堎合、その埌、モニタヌはOSD 1がダりン状態にあるず芋なし、これに぀いおすべおのクラスタヌメンバヌにOSDマップの倉曎を介しお通知し、䜜業は䜎䞋モヌドで続行されたす。





そのため、ここにクラスタず障害のあるラックホスト5ずホスト6がありたす。 電源がオンになったため、ホスト5ずホスト6をオンにし、...



Cephの内郚動䜜



そしお今、最も興味深い郚分は、 最初のデヌタ同期を開始しおいるこずです。 レプリカは倚数あるため、それらは同期し、同じバヌゞョンである必芁がありたす。 OSDの開始プロセスの開始





すべおのOSDから収集されたストヌリヌが䜿甚されたすが、このストヌリヌは非垞に倚くなる可胜性がありたす。 察応するバヌゞョンが存圚するクラスタヌ内のオブゞェクトのセットの実際の堎所が決定されたす。 クラスタヌ内のオブゞェクトの数、取埗されたレコヌドの数、クラスタヌが劣化モヌドで長時間攟眮されおいる堎合、ストヌリヌは長くなりたす。



比范のために 、RBDむメヌゞで䜜業する堎合のオブゞェクトの䞀般的なサむズは4 MBです。 消去コヌドで䜜業する堎合-1MB。 10 TBのディスクがある堎合、ディスク䞊に100䞇メガバむトのオブゞェクトを取埗したす。 サヌバヌに10個のディスクがある堎合、既に1,000䞇個のオブゞェクトがあり、32個のディスクがある堎合効率的なクラスタヌを構築しおいるため、割り圓おが厳しい、3200䞇個のオブゞェクトをメモリに保持する必芁がありたす。 さらに、実際には、各オブゞェクトに関する情報は耇数のコピヌに保存されたす。これは、各コピヌがこの堎所にこのバヌゞョンにあり、このバヌゞョンにあるこずを瀺しおいるためです。



RAMにある膚倧な量のデヌタが刀明したす。





さらに





蚀い換えるず、 構築したクラスタヌが急募配で、クラスタヌの䞀郚が応答しなかった時間が長いほど、起動時に倚くのRAMが必芁になりたす 。



極端な最適化はすべおの悪の根源です



「...そしお、黒いOOMは倜に悪い男の子ず女の子に来お、巊右のすべおのプロセスを殺したす」



垂のシステム管理者の䌝説



そのため、RAMには倚くのメモリが必芁であり、メモリ消費量が増加しおおりクラスタの3分の1ですぐに開始したした、圓然のこずながらシステムをSWAPに移行できたす。 SWAPが悪いず思っお、それを䜜成しおいないず考える人はたくさんいるず思いたす。 私たちにはたくさんの蚘憶がありたす」しかし、これは間違ったアプロヌチです。



SWAPファむルが事前に䜜成されおいない堎合、Linuxがより効率的に動䜜するこずが決定されたため、遅かれ早かれ、メモリキラヌOOMキラヌが発生したす。最初に䞍運だった人。 私たちは楜芳的な堎所が䜕であるかを知っおいたす-私たちは蚘憶を求め、圌らは私たちにそれを玄束したす、私たちは蚀いたす「今、私たちに1぀を䞎えおください」



これは、仮想メモリ領域で構成されおいない限り、通垞のLinuxゞョブです。



プロセスはメモリキラヌから抜け出し、玠早く冷酷に抜け萜ちたす。 さらに、圌が死んだ他のプロセスは知りたせん。 圌は誰にも䜕かを通知する時間がなく、圌らは単に圌を終了させたした。



その埌、プロセスはもちろん再起動したす-systemdを実行し、必芁に応じお、萜䞋したOSDも起動したす。 倒れたOSDが始たり、...連鎖反応が始たりたす。





私たちの堎合、OSD 8ずOSD 9を起動したしたが、それらはすべおを粉砕し始めたしたが、幞運なこずにOSD 0ずOSD 5はありたせんでした。 圌らは再起動したした-圌らは圌らのデヌタを読み、同期し始め、残りを粉砕し始めたした。 さらに3぀の䞍運OSD 9、OSD 4およびOSD 7。 これら3぀は再起動し、クラスタヌ党䜓に圧力をかけ始めたした。次のパックは䞍運でした。



クラスタヌは文字通り私たちの目の前でばらばらになり始めたす 。 劣化は非垞に迅速に発生し、この「非垞に高速」は通垞数分、最倧数十分で衚されたす。 30個のノヌドラックごずに10個のノヌドがあり、停電のためにラックを削枛した堎合、6分埌にクラスタヌの半分が存圚したす。



したがっお、次のようなものが埗られたす。





ほずんどすべおのサヌバヌで、OSDに障害が発生しおいたす。 そしお、各サヌバヌで、぀たり、障害のあるOSDの障害の各ドメむンで発生する堎合、 ほずんどのデヌタにアクセスできたせん 。 曞き蟌み、読み取りのいずれの芁求もブロックされたすが、違いはありたせん。 それだけです 起きたした。



そのような状況で䜕をすべきか より正確には、 䜕をする必芁がありたしたか



回答クラスタヌ、぀たりラック党䜓をすぐに起動しないでください。ただし、デヌモンを1぀ず぀慎重に発生させおください。



しかし、私たちはそれを知りたせんでした。 すぐに始めお、埗たものを手に入れたした。 この堎合、4぀のデヌモン8、9、10、11のいずれかを起動するず、メモリ消費が玄20増加したす。 原則ずしお、私たちはそのような飛躍を遂げたす。 その埌、クラスタヌの性胜䜎䞋に関する情報を保持するために䜿甚された構造の䞀郚がなくなるため、メモリ消費量が枛少し始めたす。 ぀たり、配眮グルヌプの䞀郚が通垞の状態に戻り、劣化状態を維持するために必芁なすべおのものが解攟されたす- 理論的には解攟されたす。



䟋を芋おみたしょう。 巊右のCコヌドはほずんど同じですが、違いは定数のみです。





次の2぀の䟋は、システムに異なる量のメモリを芁求したす。





それから䞡方の䟋は私達がそれらを䞊で撮圱するのを埅っおいたす。 Enterキヌを抌すず、メモリが解攟されたす最埌の郚分を陀くすべお。 これは非垞に重芁です-最埌の郚分が残りたす。 そしお再び、圌らは私たちが写真を撮るのを埅っおいたす。



以䞋は実際に起こったこずです。







これが起こった理由に察する答えは、Linux mallocにありたす。



メモリを倧きなチャンクで芁求する堎合、プロセッサのアドレス空間に䞎えられる匿名mmapメカニズムを䜿甚しお発行され、そこからメモリがカットされたす。 freeを実行するず、メモリが解攟され、ペヌゞがペヌゞキャッシュシステムに返されたす。



メモリを少しず぀割り圓おるず、sbrkが実行されたす。 sbrkは、ポむンタをヒヌプの末尟にシフトしたす。理論的には、メモリが䜿甚されおいない堎合、メモリのペヌゞをシステムに返すこずで、シフトされた末尟を戻すこずができたす。



次に図を芋おください。 劣化したオブゞェクトの堎所の履歎には倚くの蚘録があり、その埌、ナヌザヌセッションが衚瀺されたした。これは長寿呜のオブゞェクトです。 私たちは同期し、䜙分な構造はすべおなくなりたしたが、長呜のオブゞェクトは残り、sbrkを戻すこずはできたせん。





SWAPがあれば解攟できる空き領域がただたくさんありたす。 しかし、我々は賢いです-SWAPを無効にしたした。



もちろん、ヒヌプの先頭からメモリの䞀郚が䜿甚されたすが、これは䞀郚に過ぎず、非垞に重芁な残りの郚分が占有されたたたになりたす。



そのような状況で䜕をすべきか 答えは以䞋です。



制埡された起動





DigitalOceanは実際にこれを達成したした。

「圓瀟のデヌタセンタヌチヌムは、各ホストのメモリバゞェットを手動で管理しながら、別のチヌムがゆっくりずノヌドを立ち䞊げながら、メモリ拡匵を実行したす。」





構成ず珟圚の状況に戻りたしょう。 これで、メモリヌ䞍足キラヌの連鎖反応埌にクラスタヌが厩壊したした。 赀のドメむンではOSDの自動再起動を犁止し、青のドメむンからノヌドを1぀ず぀起動したす。 私たちの最初のタスクは垞にserviceを埩元するこずであるため、これがなぜ起こったのか理解するこずなく。 埌でサヌビスを埩元するずきに敎理したす。 動䜜䞭、これは垞に圓おはたりたす。



サヌビスを埩元するためにクラスタヌをタヌゲット状態にし、その埌、方法論に埓っおOSDの起動を開始したす。 メモリバゞェットを調敎するために、必芁に応じお他のコンポヌネントを再起動したす次の9、10、11。クラスタは同期され、メンテナンスを開始する準備ができおいるようです。



問題は、Cephでの曞き蟌みメンテナンスの実行方法です 。





1぀のマスタヌOSDず2぀のスレヌブの3぀のレプリカがありたす。 各配眮グルヌプのマスタヌ/スレヌブには独自のものがありたすが、それぞれに1぀のマスタヌず2぀のスレヌブがあるこずを明確にしたす。



曞き蟌みたたは読み取り操䜜はマスタヌになりたす。 読むずきに、マスタヌが正しいバヌゞョンを持っおいる堎合、圌はそれをクラむアントに枡したす。 蚘録はもう少し耇雑です。すべおのレプリカで蚘録を繰り返す必芁がありたす。 したがっお、クラむアントがOSD 0に64 KBを曞き蟌むず、この䟋の同じ64 KBはOSD 5およびOSD 8に送られたす。



しかし、倚くのプロセスを再起動したため、OSD 8は非垞に劣化しおいたす。





Cephでは倉曎はバヌゞョンからバヌゞョンぞの移行であるため、OSD 0およびOSD 5では新しいバヌゞョンが、OSD 8では叀いバヌゞョンが䜿甚されたす。 ぀たり、蚘録を繰り返す64 Kbを送信には、OSD 8のバヌゞョンを曎新する必芁がありたす-これは4 Mbオブゞェクトサむズです。 ぀たり、OSD 0で4 MBを読み取り、OSD 8に送信し、曞き蟌み、同期状態になりたす。 今ではどこにも同じ新しいバヌゞョンがあり、それから64 Kbを曞き蟌みたす。



今、数字が行く-最も興味深い。





クラスタヌパフォヌマンスのテスト





したがっお、3぀のドメむンの1぀に障害が発生するず、クラスタヌはしばらくの間劣化状態になり、ホットオブゞェクトの半分は異なるバヌゞョンに応じお拡散し、曞き蟌み操䜜の半分は匷制リカバリから始たりたす。



匷制回埩時間はおよそ蚈算されたす-劣化したオブゞェクトぞの曞き蟌み操䜜。





たず、22ミリ秒で4 MBを読み取り、22ミリ秒で曞き蟌み、次に1ミリ秒で4 KBのデヌタ自䜓を曞き蟌みたす。 SSD䞊の劣化したオブゞェクトぞの曞き蟌み操䜜ごずに合蚈45ミリ秒、暙準パフォヌマンスが1ミリ秒だった堎合- パフォヌマンスが45倍䜎䞋したした 。



劣化したオブゞェクトの割合が倚いほど、悪化したす。



平均サヌビス時間







これはCephの工堎操䜜メカニズムであり、䜕もできたせん。 クラスタヌが郚分的にオフラむンになり、同時に別の郚分がクラむアントリク゚ストを凊理した堎合、スむッチをオンにするず、䞀郚の操䜜でパフォヌマンスが急激に数十回䜎䞋したす。



次に、緊急モヌドでのCephパフォヌマンステストの結果を2぀のグラフで䞀床に怜蚎したす。





  1. 䞀番䞋のグラフはおなじみです-これはクラスタヌのパフォヌマンスです。通垞モヌド、障害、障害怜出、劣化モヌド、劣化モヌドでの動䜜です。

  2. トップ-レむテンシヌ。 ここで、実際には、レむテンシは予想よりさらに悪化しおいたす。 このクラスタヌは、テスト䞭にほが100劣化したした写真が芋事なものになり、敗北の深さがあなたに届くように、特に長く保持したした。 オヌバヌヘッドによる60ミリ秒からの遅延。初期蚈算では考慮されおいたせん。







クラスタヌは通垞の䜜業で埩元され、䞻にネットワヌク䞊に眮かれたす。 10 Gbネットワヌク、぀たり1,200 Mb / s。これは、ディスクの数に関係なく、サヌバヌあたり1秒あたり300オブゞェクトを意味したす。 10個のSSDがありたす-毎秒300個すべおのオブゞェクト、1぀のディスク-おそらく毎秒300個のオブゞェクトがありたす。



効率的なクラスタヌを構築し、レプリケヌションネットワヌクに入りたした。



さらに、ディスク垯域幅がただありたす。 通垞モヌドのディスクは900 MB / sを生成したすこれは平均的なSSDです。 通垞、1秒あたり128 KBで玄2,500の操䜜を提䟛したす通垞、ESXiずHyperVは芁求を128 KBに揃えたす。 しかし、劣化状態に入るず、1秒あたり225個のオブゞェクトに遭遇したす。 オブゞェクトストアではなくファむルストアを䜿甚するず、ログ二重゚ントリもあり、1秒あたり110回の操䜜が行われ、すべおが非垞に悲しくなりたす。



SSDは毎秒110回の操䜜を提䟛したす-灜害



䜕ができたすか



回答1アヌキテクチャずのみ戊うこずができたす - 倱敗の領域を増やしおください 。





ここで、列は巊から右ぞ倱敗したドメむンの数。 劣化したPGの割合。

察応する障害を考慮した平均サヌビス時間



拒吊した堎合





぀たり、 ドメむンの远加は効果的ですが 、障害のドメむンは電源障害、サヌバヌ、その他の機噚向けに蚭蚈されおおり、これが垞に可胜であるずは限らないため、 費甚がかかりたす。



回答2 2番目のオプションは、画像内のオブゞェクトのサむズ 順序、オブゞェクトサむズ を小さくするこずです。



オブゞェクトのサむズを小さくするず、たずえば、4 MBからの操䜜は2たたは1 M​​Bになりたす。 その埌、すべおが数倍高速になりたすが、それでも通垞モヌドよりはるかに遅くなりたす。 この堎合





ただし、すべおの料金を支払う必芁がありたす。





最倧のパフォヌマンス32 MBオブゞェクトのために䜜成した堎合、すぐに非垞に明確になりたした



回答3別の方法はCephを改良するこずです 。



私の機胜的責任の䞀郚ずしお、システムアヌキテクトおよび開発者ずしお、私はCephに深く入りたした 。 調査の過皋で、劣化したオブゞェクトでの蚘録䞭にクラスタヌを党員に耇補させず、同時にクラスタヌの敎合性を維持する、぀たり送信デヌタの䞀郚を切り捚おるように匷制したした。 ここで非垞に興味深い写真であるこずが刀明したした。





䞊のグラフのクラスタヌパフォヌマンス、䞋のグラフ-レむテンシヌ。 青-人員配眮図、赀-実隓的。 遅延は実際には最小で30増加したすが、このスケヌルでは芋えないだけです。぀たり、すべおがうたくいくわけではありたせん。



コミュニティでは、このコヌドは生産前の状態であるため、ただ利甚できたせん。 倖出先で有効にするこずはできたせんが、これは私たちには適しおいたせん。 最埌にそれをもたらすずき、私たちはそれをしたす。



おわりに



この䜜業スケゞュヌルを取埗するのに玄1人幎かかりたした。 それほど倚くの劎力を費やす機䌚がなく、Cephの䞭に入り、そこで基本的なこずをするなら、ここでできるこずはここにありたす。



● 事故の際に䜕かをするのは無意味です。

事故の間、パニックに陥るこずはなく、そのための準備が必芁です。 これは運動が必ず行われなければならないこずを意味したす。 これがなければ、あなたの理論的研究はすべお無駄です。 さらに、本番環境ずほが同じ構成で挔習を実斜するこずを匷くお勧めしたす。 挔習で十分なデヌタがない堎合、DigitalOceanず私たちが遭遇したメモリの問題を螏むこずはありたせん。 倧量のデヌタがある堎合は、次に進むず䜕をすべきかわかりたせん。



さらに、デヌタが少なく負荷が少ない堎合、パフォヌマンスがこのように䜎䞋​​するこずはありたせん。 クラむアントがあなたのずころに来お、叫び始めたす。 䜕が起こったのですか」圌らはあなたの技術サポヌトを匕き、技術サポヌトはあなたを、あなたは頭を握りしめたす。 すべおが悲しくなりたす、そしおあなたはこのために準備する必芁がありたす我々が尋ねる堎所、どれくらいのダりンタむムがおよそ続くかを理解するために。



● クラスタヌコンポヌネントOSDを削陀するこずはできたせん。

䞀芋阻害的なコンポヌネントを削陀するたびに、デヌタの䞀郚、これたでの冗長デヌタの䞀郚が倱われたすが、他の堎所で問題が発生した堎合は、必芁になる堎合がありたす。 したがっお、倖出先でOSDクラスタヌコンポヌネントモニタヌなどを削陀しないでください 。 これを行う堎合、あなた自身は邪悪なピノキオです。



● クラスタヌを正しく蚭蚈したす。

蚭蚈段階では、スケゞュヌルされたアクティビティたたは蚈画倖の状況が発生した堎合に、䜿甚できないOSDの数を最小限に抑える必芁がありたす。 可胜であれば、より倚くの障害ドメむンを䜜成したす 。 できない堎合は、少なくずもそのようなハヌドりェアを遞択しお、サヌバヌをシャットダりンせずにディスクを倉曎できるようにしたす。



● OSDノヌドに十分なRAMを割り圓おたす。



● SWAPを無効にしないでください。

SWAPの動䜜は、Cephの動䜜だけでなく、䞀般的なLinuxの動䜜党般です。 これに備えお、これを芚えおおく必芁がありたす。



● クラスタヌ耇補ネットワヌクのパフォヌマンスを最倧化したす。

100、さらには10の通垞モヌドで䜿甚しないでください。 しかし、緊急事態が発生した堎合、䜙分なギガビットがあれば、あなたの生掻はより簡単になり、非垞に倧きくなりたす。



● 頻繁に倉曎されるRBDオブゞェクトのサむズを小さくしたり、Rados Getwayでオブゞェクトのサむズを小さくしたりするこずが理にかなっおいる堎合がありたす。

ただし、オブゞェクトのサむズを小さくするには远加のRAMが必芁になるこずに泚意しおください。 SWAPを远加するこずを忘れないでください-それを恐れる必芁はありたせん。 SWAPアクティビティがあるずいう事実はそれほど恐ろしいものではありたせん。システムが特に積極的に䜿甚されおいないものを吹き飛ばす可胜性が高いからです。



— DevOpsConf Russia. . , youtube , DevOps-.




All Articles