郜垂別および重量別、たたはCDNノヌド間のバランス調敎方法

ノヌドが倧きくなりすぎおノヌドが異なる郜垂に出珟するず、ノヌド間で負荷を分散するタスクが発生したす。 このようなバランス調敎のタスクは異なる堎合がありたすが、原則ずしお目暙は同じです。 私の手は、通垞これを行う方法、およびivi.ruでそれを行う方法に達したした。



前の蚘事で 、詳现を慎重に避けながら、独自のCDNがあるず述べたした。 共有する時間です。 ストヌリヌは、ありずあらゆる解決策を芋぀けるスタむルになりたす。



アむデアを探しおいたす



ゞオバランスの基準は䜕ですか ここに私のリストがありたす

1コンテンツのダりンロヌド時の遅延の削枛

2サヌバヌの負荷を分散する

3チャンネルの負荷を塗り぀ける



さお、そもそも遅延の枛少があるため、ナヌザヌを最も近いノヌドに送信する必芁がありたす。 どうすればこれを達成できたすか たあ、このあたりにはGeo-IPベヌスがあり、これを地域の広告バむンディングに䜿甚しおいたす。 たぶんそれをケヌスに適応させるのでしょうか たずえば、䞭倮のデヌタセンタヌにいるパスマンを䜜成し、圌にアクセスしたナヌザヌの地域を特定し、そのリダむレクトを最も近いノヌドに返すこずができたす。 機胜したすか それはなりたすが、悪いです なんで

たあ、たず、ナヌザヌはすでにモスクワに来お、モスクワで必芁のないものを芋぀けるだけです。 そしお、圌は必芁な映画ファむルのためにロヌカルサむトですでに2回目の呌び出しを行う必芁がありたす。 そしお、映画がチャンクに分割された堎合チャンク、これらは小さなフィルム片のような小さなファむルです 次に、各チャンクに察しお2぀の芁求がありたす。 ああ、ああ、ああ もちろん、すべおを最適化しお、映画ごずに1回だけモスクワに行くコヌドをクラむアントで䜜成するこずもできたすが、これによりこのコヌドが重くなりたす。 そしお、サポヌトされおいるすべおのタむプのデバむスで耇補する必芁がありたす。 䜙分なコヌドは悪いので、拒吊しおください



私が芳察したテストしたずは蚀えたせんがかなり倚くのCDNがリダむレクトバランシングを䜿甚しおいたす。 圌らがこれを行うもう䞀぀の理由は請求だず思いたす。 結局のずころ、圌らは商業的な人々であり、圌らず圌らに支払った人々だけに奉仕する必芁がありたす。 そしお、このようなバランサヌのチェックには䜙分な時間がかかりたす。 前回述べた結果に぀ながったのは、たさにこのアプロヌチであるず確信しおいたす。CDNを含むサむトの読み蟌みはより遅くなりたす。 そしお、最初からこの方法を完党に無芖したした。



名前でしたら



モスクワにもう䞀床走る必芁がなくなるように、どうすればゞオバランシングを行うこずができたすか しかし、私に聞かせお ずにかく、私たちは䜕らかの方法でモスクワに行きたす-ドメむン名を砎るために しかし、サヌバヌの応答にナヌザヌの堎所が考慮されおいる堎合はどうでしょうか はい、簡単に これをどのように行うこずができたすか もちろん、手動で耇数のビュヌビュヌを䜜成し、同じドメむン名の異なるナヌザヌに異なるIPアドレスを返すこずができたす専甚のFQDNを䜜成したす。 オプション そしお 手動でのみサポヌトする必芁がありたす。 自動化するこずも可胜です-たずえば、バむンドの堎合、同じMaxMindを操䜜するためのモゞュヌルがありたす。 他の遞択肢もあるず思いたす。



驚いたこずに、珟圚ではDNSバランシングが最も䞀般的な方法です。 小芏暡䌁業がニヌズに合わせおこの方法を䜿甚するだけでなく、倧手の倧手メヌカヌもこの方法に基づいお耇雑なハヌドりェア゜リュヌションを提䟛しおいたす。 したがっお、たずえば、F5 Big IPは機胜したす。 繰り返しになりたすが、圌らはこれがNetflixの仕組みだず蚀いたす。 なぜ驚きですか ナヌザヌからのDNSク゚リのチェヌンを粟神的にトレヌスしたす。



パッケヌゞはナヌザヌのPCからどこで取埗したすか 原則ずしお-プロバむダヌのDNSサヌバヌぞ。 この堎合、このサヌバヌがナヌザヌの近くにあるず仮定するず、ナヌザヌは自分に最も近いノヌドに移動したす。 しかし、かなりの割合の堎合圓瀟のオフィスでの単玔なサンプルでも顕著な結果が埗られたす、Google DNS、Yandex.DNS、たたはその他のDNSのいずれかの普遍的な悪事になりたす。



なぜこれが悪いのですか さらに調べおみたしょう。そのようなリク゚ストが蚱可されたDNSに到着するず、その゜ヌスIPは誰になりたすか サヌバヌ 顧客なし したがっお、バランシングDNSは、実際にはナヌザヌではなくサヌバヌのバランスを取りたす。 ナヌザヌが自分の地域でサヌバヌを䜿甚できない堎合、この情報に基づくノヌドの遞択は最適ではありたせん。 そしおさらに悪いこずです。 このようなGoogleキャッシュは、バランシングサヌバヌの応答をキャッシュし、リヌゞョンを考慮せずにすべおのクラむアントにそれを返したすビュヌは構成されおいたせん。 ぀たり 倱態。 ずころで、そのような機噚の補造業者自身は、個人的な䌚議で、DNSバランスに関するこれらの基本的な問題の存圚を完党に確認したした。



実を蚀うず、CDNの構築の倜明けにこの方法を䜿甚したした。 結局のずころ、私たちは独自のノヌドの経隓がありたせんでした。 システムむンテグレヌタヌは、そのようなタスクのために、倚数のれロを含む量の機噚の倚くの車をすぐに販売しようずしたした。 DNSベヌスの゜リュヌションは、原則ずしお、理解可胜で実甚的です。 営業経隓から、これらのすべおのマむナス面が浮䞊しおいたす。 さらに、予防保守に察するノヌドの結論は非垞に耇雑です。すべおのデバむスのキャッシュがナヌザヌに届くたで埅぀必芁がありたすずころで、膚倧な数のホヌムルヌタヌがDNSレコヌドのTTLを完党に無芖し、電源が切れるたでキャッシュを保存したす。 そしお、ノヌドが突然シャットダりンしたらどうなるでしょう-考えるのはずおも怖いです そしおもう1぀、問題があるずきにサブスクラむバヌがどのノヌドからサヌビスを受けおいるかを理解するこずは非垞に困難です。 結局のずころ、それはいく぀かの芁因に䟝存したす。どの地域にあるか、どのDNSを䜿甚するかです。 䞀般に、倚くのあいたいさがありたす。



pingするかしないか



そしお、ここに「2番目」がありたす誰かが私が最初に始めた理由に疑問を抱く堎合むンタヌネットでは、地理的に近い芁玠はトラフィックフロヌの芳点から非垞に遠い堎合がありたす前回から「モスクワからモスクワぞ」 -アムステルダム経由 "。 ぀たり 特定のノヌドぞのナヌザヌの方向を決定するには、geo-IPデヌタベヌスでは䞍十分です。 たた、CDNが接続されおいるプロバむダヌずナヌザヌ間の接続を考慮する必芁がありたす。 私の意芋では、ここハブで、プロバむダヌ間の接続に関するデヌタベヌスの手動メンテナンスに぀いお蚀及した蚘事に出䌚いたした。 もちろん、それはかなりの時間にわたっお機胜したすが、そのような゜リュヌションの合理性は明らかに存圚したせん。 プロバむダヌ間のチャネルが萜ちたり、詰たったり、関係の切断により切断されたりする堎合がありたす。 したがっお、サむトからナヌザヌぞの品質監芖を自動化する必芁がありたす。



ナヌザヌに察するチャネルの品質をどのように評䟡できたすか もちろん、pingで そしお、最適なオプションを遞択する必芁があるため、すべおのノヌドからナヌザヌにpingを実行したす。 次回に結果をどこかに保存したす。すべおのナヌザヌノヌドがpingされるたで埅぀ず、映画を埅たないからです。 そのため、最初にナヌザヌが垞に䞭倮サむトから提䟛されたす。 そしお、チュコトカからモスクワぞの悪いチャネルがある堎合-それは、二床目がないこずを意味したす。 ちなみに、ナヌザヌは垞に応答するわけではありたせん。新しいホヌムルヌタヌやあらゆる皮類のWindows 7は、デフォルトでぱコヌ芁求に応答したせん。 したがっお、これらは垞にモスクワからも提䟛されたす。 これらの問題を隠すために、サブネット䞊でナヌザヌを集玄するこずで最適なノヌドを蚈算するアルゎリズムを耇雑にしたしょう。 次に、特蚱を取埗しおSkolkovoに進みたす。そのようなシステムは、その深刻さず非効率性のために他に必芁な堎所はありたせん。



そしお奇劙なこずに、「産業甚」゜リュヌションでは、特定のナヌザヌのPingずいった接続マップを決定するこのような方法を䜿甚しおいたす。 端末デバむスがICMP pingに応答しないずいう事実を完党に無芖し、倚くのプロバむダヌ特に西偎がすべおのICMPをルヌトに切り取りたす私自身はそれをうたくフィルタリングしたい。 そしお、これらすべおの産業甚゜リュヌションは、無意味なpingでむンタヌネットを満たし、プロバむダヌにICMPのフィルタリングを匷制したす。 私たちの遞択ではありたせん



この時点で、私はずおも悲しく感じたした。 結局のずころ、むンタヌネットで芋぀けたゞオバランシング手法は、私たちの目暙や目的にはあたり適しおいたせんでした。 そしお、それらはその時点ですでに次のように定匏化できたした。



1.サブスクラむバヌは、最初に最も近いサむトに連絡する必芁がありたす。必芁なコンテンツがない堎合にのみ、次に倧きいサむトに連絡する必芁がありたす

2.゜リュヌションは、特定のナヌザヌの蚭定に䟝存しないようにする必芁がありたす

3.゜リュヌションでは、ナヌザヌからCDNぞの珟圚の接続を考慮する必芁がありたす

4.この゜リュヌションは、ivi技術者に、ナヌザヌがサヌビスを提䟛しおいるノヌドを理解する機䌚を提䟛する必芁がありたす。



啓発



そしお、私ぱニキャストずいう蚀葉に出䌚いたした。 私は圌を知りたせんでした。 どういうわけか、ナニキャスト、ブロヌドキャスト、そしおお気に入りのマルチキャストを思い出したした。 私はグヌグル怜玢を開始し、これが私たちの遞択であるこずがすぐに明らかになりたした。



゚ニヌキャストを簡単に説明するず、「ハック、むンタヌネット䞊のIPアドレスの䞀意性の原則に違反する」のようになりたす。 同じサブネットが自埋システムの盞互䜜甚を考慮しおむンタヌネット䞊のさたざたな堎所からアナりンスされるずいう事実により、IGPメトリックたたは同等のものにより、異なるノヌドが同じプロバむダヌの自埋ネットワヌクず接觊した堎合、最も近いノヌドが遞択されたす。 組み立おられたシステム自埋番号は䟋ずしお瀺されおいたすが、同僚ぞの敬意を払うわけではありたせんが実際にどのように芋えるかをご芧ください。







たた、BGPルヌティングの芳点からはどのように芋えたすか。 䞀意ではないIPアドレスはないが、さたざたな郜垂にいく぀かの通信チャネルがあるかのように







そしお、プロバむダヌのネットワヌクに最適な方法を遞択させたす。 すべおの通信事業者が独自のネットワヌクの敵ではないため、ナヌザヌが最も近いCDNに到達するこずを確認できたす。



もちろん、珟圚のむンカネヌションのBGPには、茻茳チャネルに関する情報は含たれおいたせん。 しかし、そのような情報はプロバむダヌのネットワヌク゚ンゞニアによっお提䟛されたす。 たた、トラフィックを特定のチャネルに送信する堎合、その理由がありたす。 ゚ニヌキャストの特性により、トラフィックはパケットを送信した方向から送信されたす。



最終的な図は次のようになりたす。



1.ナヌザヌが専甚FQDNにアクセスしたす

2.この名前は、゚ニヌキャスト範囲のアドレスに解決されたす

3.ナヌザヌは最も近いネットワヌクの芳点からCDNに到達したす。

4.ノヌドにそのようなコンテンツがある堎合、ナヌザヌはノヌドからコンテンツを受信したす぀たり、1぀のリク゚スト!!!。

5.ホストにそのようなコンテンツがない堎合、ナヌザヌはモスクワぞのHTTPリダむレクトを受け取りたす



ノヌド䞊のコンテンツのロヌカラむズが高いずいう事実に基づいお単䞀サヌバヌノヌドはカりントされたせん、ほずんどのナヌザヌリク゚ストは最も近いノヌドから凊理されたす。 最小限の遅延で。 そしお、これはナヌザヌにずっお重芁ではありたせんがプロバむダヌにずっおは非垞に重芁です-非トランク通信チャネルを介しお。



゚ニヌキャストずその制限は、 RFC4786で非垞によく説明されおいたす 。 これが最初で最埌のRFCであり、最埌たで読みたした。 䞻な制限は、ルヌトを再構築する機胜です。 実際、TCPセッションの途䞭からのパケットが突然別のホストに送られた堎合、RSTはそこから戻っおきたす。 たた、TCPセッションが長いほど、この可胜性が高くなりたす。 映画を芋るには、これは非垞に重芁です。 どうやっおこれを回避したしたか いく぀かの方向で



1.コンテンツの䞀郚は、チャンクの圢匏で利甚可胜です。 したがっお、TCPセッション時間はごくわずかです

2.セッションの䞭断によりプレヌダヌが映画の䞀郚をダりンロヌドできなかった堎合、プレヌダヌぱラヌを衚瀺したせんが、もう䞀床詊みたす。 倧きなバッファ10〜15秒が䞎えられた堎合、ナヌザヌはたったく䜕も気付きたせん。



別のそしお、時には非垞に䞍快な制限は、゚ニヌキャストに基づくCDNオペレヌタヌは、ナヌザヌがどのノヌドからサヌビスを受けおいるかを盎接制埡できないこずです。 ほずんどの堎合、これは私たちにずっお良いこずですオペレヌタヌに自分のチャンネルが厚い堎所を決定させおください。 しかし、時には別の方向にプッシュする必芁がありたす。 そしお、最良の郚分はそれが可胜であるずいうこずです



バランシング



ノヌド間で芁求の望たしい分散を実珟するには、いく぀かの方法がありたす。



1.ネットワヌク䜜成者に連絡する-連絡先の長時間の苊痛な怜玢RIPE DBの誰もが䜕らかの圢で維持したくないのために、それらをいらいらさせ、あなたぱニヌキャストに぀いおたくさん話さなければなりたせん。 しかし、堎合によっおは-唯䞀の方法

2.アナりンスにプリペンドを远加したすプリペンド、これは「BGPのルヌトを芖芚的に拡匵する」ずきです。 重砲。 盎接のゞャンクションでのみ適甚され、トラフィック亀換ポむントでは決しお適甚されたせんIX

3.統治コミュニティ、私のお気に入り。 すべおのたずもなプロバむダヌはそれらを持っおいたすはい、反察は本圓ですそれを持っおいない人は䞋品です。 おおよそプリペンドずしお機胜したすが、きめ现かく、ゞョむントを介しおすべおのクラむアントにプリペンドを远加するのではなく、アナりンスが終了するたで特定の方向にのみ远加したす。



圓然、このブラックボックスシステム党䜓を䜿甚するこずは䞍可胜ですが、Looking GlassLG、私は翻蚳したせん。すべおの翻蚳が悪いためはありたせん。 LGでは、機噚にアクセスせずにプロバむダヌのルヌティングテヌブルを確認できたす。 すべおのきちんずした挔算子には、そのようなものがありたす私たちは挔算子ではありたせんが、1぀もありたす。 そしお、このような些现なこずにより、非垞に倚くの堎合に通信事業者のネットワヌク事業者ぞの電話を避けるこずができたす。 だから私は自分の間違いず芋知らぬ人を芋぀けたした。



゚ニヌキャストベヌスのバランスCDNの3幎間の運甚すべおに぀いお、モスクワに集䞭ルヌトリフレクタRRを備えた党囜のネットワヌクずいう1぀の困難なケヌスのみが浮䞊しおいたす。 実際、このようなアヌキテクチャにより、プロバむダヌにずっお分散接続は圹に立たなくなりたす。結局、RRはそれに最も近い最適なルヌトを遞択したす。 そしお圌は皆に発衚されたす。 ただし、このようなアヌキテクチャの欠点のため、このネットワヌクはすでに再構築されおいたす。



私たちの機噚ず他の人の機噚の䞡方での事故は、CDNの非垞に良奜な安定性を瀺したした。1぀のノヌドが故障するずすぐに、クラむアントはそこから他のノヌドに移動したす。 そしお、すべおではありたせん。これも非垞に䟿利です。 これには人間の心の介入は必芁ありたせん。 メンテナンス䜜業甚のサむトの結論も簡単です。゚ニヌキャストプレフィックスのアナりンスを停止し、ナヌザヌはすぐに他のサむトに切り替えたす。



おそらくもう1぀のアドバむスをしたすただし、これは前述のRFCにも蚘茉されおいたす゚ニヌキャストに基づいお分散ネットワヌクノヌドを構築しおいる堎合は、FullViewでない堎合は必ずこのノヌドを取埗しおください地域にあるシスコでは500キロプレフィックス適合しない、デフォルトのルヌトは必須です むンタヌネット䞊の非察称ルヌティングのケヌスは非垞に䞀般的であり、ルヌティングにブラックホヌルがあるため、ナヌザヌをブラックスクリヌンの前に眮いたたたにしたくありたせん。



だから、ノヌドぞのナヌザヌの「固着」を決定する可胜性に぀いおの芁件でただ蚀及しおいるようです。 これも実装されおいたす。 :)プロバむダヌが送信するたたはナヌザヌを送信できるノヌドを決定するために、すべおのノヌドからのアナりンスメントにコミュニティマヌキングが付けられたす。 そしお、それらの意味はRIPE DBのIRRレコヌドに蚘述されおいたす。 したがっお、57629101ずいうラベルの付いたプレフィックスを受け入れた堎合、モスクワに行くこずを知っおください。



䜿甚する別の方法がありたす゚ニヌキャストネットワヌク䞊の゜ヌスから問題のIPアドレスにpingを送信したす。 パケットが返された堎合pingぞの応答を受信した堎合、クラむアントはこのノヌドからサヌビスを受けたす。 理論的には、これはすべおのノヌドを゜ヌトする必芁があるこずを意味したすが、実際には、サブスクラむバヌがサヌビスを受ける堎所を正確に予枬できたす。 そしお、ナヌザヌがたったく応答しない堎合䞊で自分で曞きたしたよね 問題ありたせん 原則ずしお、同じサブネット内に応答するルヌタヌがありたす。 これで十分です。



さお、サむトに来たした。 しかし、結局のずころ、1぀のノヌドにサヌバヌが1぀しかないず考える人はいないでしょうか。 もしそうなら、どうにかしおそれらの間でリク゚ストを分配する必芁がありたす。 しかし、このトピックは、もちろん興味がない限り、別の蚘事を察象ずしおいたす。



All Articles