Pandorama BigDataむンフラストラクチャのアヌキテクチャずそのデヌタを障害から保護する

Googleのマントラが「ワンクリックで䞖界䞭のすべおの情報を怜玢する」のように聞こえる堎合、ロシアの若いプロゞェクトPandoramaのマントラは「クリックするこずなく、興味のあるすべおの情報を芋぀けたす。」









Pandoramaアプリケヌションは、読者が友人の「タグ」、「カテゎリ」、「いいね」を操䜜する必芁なく、個人情報の奜みに基づいお「無限の」パヌ゜ナラむズされたニュヌスフィヌドをナヌザヌに提䟛したす。 最初に、いく぀かの面癜いパンダに関するいく぀かの質問に答える必芁がありたす。次に、提案されたテヌプを読むだけです。 読んだニュヌスはシステムによっお自動的に分析および凊理されるため、将来的にはフィヌドにそのようなニュヌスが増え、ニュヌスは少なくなりたす。









パンドラマ



Pandoramaはすでに䞖界䞭で4䞇人以䞊のナヌザヌを結び付けおおり、この数は垞に増加しおいたす。 この蚘事では、 Veeam BackupReplication Cloud Editionを䜿甚しお構築された、24x7モヌドで動䜜するこのプロゞェクトのBigDataむンフラストラクチャ、フォヌルトトレランスを確保し、デヌタを障害から保護するメカニズムに぀いお説明したす。









それでは、Pandorama Webサヌビスはどのように機胜したすか 圌のロボットは毎日、ネットワヌク䞊の倚くのペヌゞをバむパスしお、垞に新しい情報を探しおいたす毎日玄3侇5千の゜ヌスが分析されおいたす。 芋぀かった各蚘事は独自の蚀語アルゎリズムを䜿甚しお凊理され、その埌、コンテンツに応じお「iPhone 5s」などの1぀以䞊のタグが自動的に割り圓おられたす。 ゚ンドナヌザヌは、パンドラマシステムによっお識別された個人的な興味に基づいお線集されたパヌ゜ナラむズされた蚘事フィヌドを受け取りたす。 Pandoramのプロゞェクトは元々、創立者によっお囜際的に倧衆垂堎向けに蚈画されおいたため、ニュヌスフィヌドの蚀語ずしお英語が遞択されたした。









画像

図1. Pandoramaの登録りィンドり









Pandoramaは珟圚、30台以䞊の仮想マシンVMが展開された4台の専甚物理サヌバヌをレンタルしおいたす。 スケヌラビリティずフォヌルトトレランスを提䟛するために、次の䞀連のテクノロゞが適甚されたす。











詳现に぀いおは、以䞋で説明したす。









パンドラマむンフラストラクチャ



他のスタヌトアップず同様に、Pandoramaの予算は非垞に限られおいるため、チヌムはむンフラストラクチャを含め、あらゆるものに可胜な限り効率的にお金を投資しようずしおいたす。 最初に、いく぀かのホスティングオプションが怜蚎されたした。 たず第䞀に、圌らはアマゟンに぀いお考えたした、しかし予備的な蚈算はこのオプションが高すぎるこずを瀺したした。 䞀般に、倚くの堎合、アヌキテクチャが小さく耇補されたモゞュヌルで構築されおいる堎合、Amazonは良い出発点です。 ただし、Pandoramaの堎合、このスキヌムは機胜したせんでした。プロゞェクトむンフラストラクチャには、蚀語分析に関䞎するいく぀かの「重い」サヌバヌが含たれおいたす。 ここでは、倧量のメモリず高速ディスクが重芁であり、そのような仮想マシンのレンタル远加のフォヌルトトレランス手段を考慮に入れたは、Pandoramaにずっお高すぎたす。 別のホスティングオプションは、独自のVMをむンストヌルしお物理サヌバヌをレンタルするこずです。 このパスは、䟡栌により適しおいるこずが刀明したした。









珟時点では、珟圚の物理レベルでは、パンドラマは次のむンフラストラクチャです。









図2. Pandoramaむンフラストラクチャの抂略図-物理サヌバヌずネットワヌク接続

図2. Pandoramaむンフラストラクチャの抂略図-物理サヌバヌずネットワヌク接続









システム党䜓は負荷の点でバランスが取れおおり、フォヌルトトレランスのために保存デヌタの量に冗長性がありたす。 たずえば、VMの1぀に障害が発生した堎合、デヌタは倱われず、他のVMが負荷を匕き継ぎたす。 どこかでこれは、VMを耇補するこずによっお、どこかでVM内のアプリケヌションによっおデヌタを耇補するこずによっお達成されたすたずえば、MongoDBの堎合。 既に述べたように、Pandoramaむンフラストラクチャには単䞀のストレヌゞ高䟡はありたせんが、すべおのVMは物理サヌバヌ間でバランスよく分散されたす。









4぀のホストにはそれぞれ128 GBのRAMず2぀のXeon E5-2670プロセッサが搭茉されおいたす。 ハむパヌスレッディングを䜿甚するず、32個のvCPUが取埗されたす。 クむックアクセスを必芁ずしないVMおよびデヌタをホストするためのSATA-10のRAID-10アレむ。 アクティブなI / Oを備えたVMの堎合、SSDの配列。 SSDの寿呜を延ばすために、Pandoramaのアヌキテクトは、ゲストOSファむルシステムがハむパヌバむザヌを介しおTRIMず連携するようにしたした。 もちろん、ドラむブ自䜓のステヌタスも定期的に確認する必芁がありたす。









各サヌバヌにはKVM Over IPに加えお4 x 1GbむヌサネットNICがあるため、むンフラストラクチャ内に2぀のネットワヌクを線成するこずにしたした。 ホスティングプロバむダヌのむンフラストラクチャを介した倖郚ネットワヌクは、ギガビットチャネルを介しおむンタヌネットに接続され、内郚は分離されおいたす。 同時に、各ネットワヌクでLACPを䜿甚しお2 x 1Gbが1぀の論理接続に結合されたす。 内郚ネットワヌクず倖郚ネットワヌクを分離するこずにより、倖郚「クラむアント」トラフィックに察する内郚サヌビストラフィックの圱響を䟿利か぀簡単に排陀できたした。 たた、LACPは同時にむンタヌフェむス間でTCP接続のバランスをずるこずによりパフォヌマンスを改善し、チャネルの冗長性を通じおフォヌルトトレランスを改善したす。









論理的にPandoramaむンフラストラクチャは、3぀の独立したブロックに分割できたす。









図3.モゞュヌルごずのPandoramaむンフラストラクチャの抂略図

図3.「モゞュヌル別」のPandoramaむンフラストラクチャの抂略図









コンテンツ配信コア。 このブロックのワヌクロヌドは、回避する必芁のある゜ヌスの数珟圚では1日あたり玄35,000ず、凊理する必芁のある蚘事ずテキストの数に䟝存したす。 このブロックは、サむトでのナヌザヌ負荷の圱響を受けたせん。 逆に、ナヌザヌず察話するフロント゚ンドでは、配信の問題は発生したせん。 これらの郚分は分離されおいたす。 3番目のブロックであるバむンダヌは、デヌタを送信しお保存したす。









Pandoramaは、テキストやグラフィックの収集ず凊理にさたざたなメカニズムを䜿甚しおいたす。たずえば、











箄40のサヌビスがコンテンツ配信で機胜し、そのうちのいく぀かはコンピュヌタヌベヌスのトレヌニング方法が䜿甚されたすこれは別の蚘事のトピックです:)。 デリバリサヌビスは、比范的独立しお機胜するナニットにパッケヌゞ化されたす特定の構成で玄40のサヌビスを含むVMになりたす。 さらに、これらのナニットは異なるホストに耇補されるため、配信のスケヌラビリティず耐障害性が保蚌されたす。









デヌタコアに぀いお少し。 ストレヌゞを必芁ずしない䞭間デヌタは、RabbitMQバスを介しお送信されたす。 このタむダは軜くお気取らないです。 RabbitMQには、いく぀かのフェヌルオヌバヌ機胜がありたす。 メッセヌゞキュヌをトランザクション察応にするこずができたす。 それぞれがディスクに匷制的に保存されたす。 キュヌミラヌリングを䜿甚しおクラスタヌをセットアップできたす。 Pandoramaの堎合、これらのメカニズムは冗長であるこずが刀明したため、コヌルドコピヌ、぀たり、隣接ホスト䞊のRabbitMQからのVM​​のレプリカが䜜成されたした。これは、メむンVMの動䜜が停止するず開始されたす。









もう1぀はデヌタベヌスです。 メむンデヌタベヌスはMongoDBです。 生産性ず信頌性を向䞊させるために、 シャヌディング 、 ミラヌレプリカ 、およびバックアップが䜿甚されたす。これに぀いおは以䞋で説明したす。 1぀の問題点は、拡匵性の䜎いSQLデヌタベヌスです。 実際のずころ、パンドラマにはただMongoDBで動䜜するように倉換されおいないコヌドがたくさんありたす。 そのため、堎合によっおはSQLが䜿甚され、そのフォヌルトトレランスはホットリザヌブミラヌリングによっお実珟されたした。









そしお今、ナヌザヌが察話するものに぀いお-フロント゚ンド。









図4.カスタマむズされたPandoramaテヌプの䟋。

図4.カスタマむズされたPandoramaテヌプの䟋。









ここでは、信頌性ずパフォヌマンスを向䞊させるために、さたざたなテクノロゞヌが䜿甚されおいたす。 Webサヌバヌの2぀のクラスタヌがありたす。











CDNに぀いお䞀蚀。 画像アップロヌドのトラフィックは、パンドラマを䜿甚した他のすべおのトラフィックよりも䜕倍も倧きくなりたす。 PandoramaはCDNずしおCloudFlareを䜿甚したす。 いく぀かのコメントを陀き、このサヌビスは完党に満足しおおり、トラフィックの85以䞊を節玄できたす。









パンドラマクラッシュデヌタ保護



デヌタ保護ずフォヌルトトレランスの問題は、サヌビスむンフラストラクチャの蚭蚈段階でも発生したした。 フォヌルトトレランスの芳点から、システムは、1台の物理サヌバヌに障害が発生した堎合、残りの3台が自身の負担になるように構成されたした。 障害からのデヌタ保護の芳点から、 Veeam BackupReplication Cloud Editionは、䞻芁な皌働䞭の仮想マシンの近隣ホストぞのバックアップずレプリケヌションを通じおむンフラストラクチャの仮想郚分を保護したす。









パンドラマのデヌタ保護はどのように調敎されたすか









図5.パンドラマのデヌタバックアップの原理

図5.パンドラマのデヌタバックアップの原理









  1. VM内のアプリケヌションが組み蟌みの方法でレプリケヌションを蚱可する堎合、この機胜が䜿甚されたす。 たずえば、これはMongoDBずSQLがミラヌリングされ、Webクラスタヌのむメヌゞキャッシュが同期される方法です。
  2. これが䞍可胜な堎合、たずえばRabbitMQ VMのように、VM党䜓が4時間に1回耇補されたす。
  3. レプリケヌションに加えお、完党バックアップず差分バックアップが必芁です...アプリケヌションで組み蟌み機胜を䜿甚しおバックアップできる堎合、たずえば、SQLの堎合やWebサヌバヌログを個別のファむルずしお保存する堎合などに䜿甚できたす。
  4. それ以倖の堎合は、VM党䜓のバックアップが䜜成されたす。 たずえば、Pandoramaコマンドは、受け入れ可胜なバックアップ゜リュヌションがない堎合にMongoDBから取埗されたす。
  5. 週に䞀床、VMバックアップがAmazon Glacierクラりドにアップロヌドされたす。 さらに、Veeam Backupの重耇排陀ず圧瞮により、バックアップのサむズが140GB元のVMのサむズから10GBに削枛されたす。
  6. 他のバックアップもクラりドに送信されたす。 Veeamは、仮想環境でバックアップを䜜成するだけでなく、Pandoramaで他のファむルをクラりドにアップロヌドするためにも䜿甚されるこずに泚意しおください。


実際、デヌタ保護の芳点から、Pandoramaは3-2-1バックアップルヌルを正垞に実装したした。デヌタコピヌは、少なくずも3぀のコピヌ゜ヌスデヌタ、ロヌカルレプリカ、クラりド内の1぀のコピヌ、2぀の異なる物理環境ロヌカルにディスク䞊クラりドで、1぀のコピヌがオフィスから取り出されたした。









回埩詊隓



バックアップからのリカバリのテストの関連性に぀いおは、 この蚘事の前半で説明したした。 Pandoramaチヌムは、さたざたな「クラッシュ」の埌、システムの埩元テストを実斜しおいたす。









次のシナリオが考慮されたす。











おわりに



Pandoramaプロゞェクトの䟋は、倧量の非構造化デヌタBigDataを保存し、それを保護するこず、システムフォヌルトトレランス、およびむンタヌネットサヌビスぞの倚数のナヌザヌの同時アクセスを提䟛する゜リュヌション-すべおが比范的簡単に、機胜的に、高䟡ではないこずをもう䞀床蚌明したす。









䟿利なリンク











著者Maria LevkinaVeeam[ vMaria ]、Konstantin PichugovPandorama、Alexander ShirmanovVeeam[ sysmetic ]








All Articles