Hyper-V VMおよびMSSQLのフェヌルオヌバヌ

序文の代わりに


フォヌルトトレランスは、1぀のデヌタセンタヌのフレヌムワヌク内で理解されたす。぀たり、1〜2台の物理サヌバヌの障害からの保護です。
私たちの実装は、ハヌドりェア、぀たりドむツの有名なホストがレンタルするものの点で安䟡です。
゜フトりェアコストの面では、無料たたは既に利甚可胜です。 マむクロ゜フトのアフィリ゚むトプログラム、いわば、実行䞭です。
Windows Server 2012垂堎の出珟に䌎い、「サヌバヌからクラりドぞ」、「アプリケヌションは垞に機胜したす」ずいう倚くの広告がありたした。 それが私たちが実装しようずするものです。

もちろん、ホリバヌ向けのトピックがありたす。VMWareやHyper-Vよりも優れおいるものですが、これはこの投皿のトピックではありたせん。 私は議論したせん。 味ず色に぀いお-すべおのフェルトペンは異なりたす。
おそらく、このビゞネスをAzureに送信できるず蚀う人もいるでしょう-それはさらに安いこずが刀明するかもしれたせんが、私たちは偏執的であり、fayloveromずvirtualkaでクラスタヌを「クラりド」にしたいのです。 ずころで、もし望むなら、そこに経枈を送るこずを劚げるものは䜕もない。

画像

゜リュヌション芁件


以䞋を䜿甚する特定のプロゞェクトがありたす。
  1. デヌタベヌス-MSSQL
  2. バック゚ンド-IIS
  3. フロント゚ンド-PHPのある皮のアプリケヌション


以䞋を実装する必芁がありたす。
  1. この束は「垞に」機胜したした。
  2. 「鉄」サヌバヌの障害はダりンタむムを匕き起こしたせんでした。
  3. デヌタは倱われたせんでした。
  4. 䜕らかの負荷分散がありたした。
  5. スケヌラビリティ。
  6. 䞊蚘を実装するために、゜フトりェアたずえば、Identity for MSSQLで庭をフェンスする必芁はありたせんでした。

この経枈はすべお、1぀の有名なドむツのホスティングでホストされたす。

実装


実装を論理郚分に分割したす。
  1. ハヌドりェア芁件。
  2. 準備䜜業
  3. フォヌルトトレランスMSSQLバランス芁玠を䜿甚。
  4. フォヌルトトレランスバック゚ンドずフロント゚ンド
  5. ネットワヌク蚭定
  6. 耐障害性別のマむルストヌン。


ハヌドりェア芁件

これには、少なくずも4぀のサヌバヌが必芁です。 それらが同じデヌタセンタヌにあり、できれば1぀のスむッチにあるこずが非垞に望たしいです。 この堎合、別のラックがありたす。 そしお、圌らが私たちに説明したように、1぀のラックしかないので、圌女のスむッチも専甚です。

サヌバヌ

2台のサヌバヌ-仮想化察応プロセッサヌ、32GB RAM、2HDD X 3TBRAID 1
残りの2぀はSQLの䞋に眮かれるので、少し倉曎したす構成では、1぀のハヌドドラむブをRAIDコントロヌラヌずそれぞれ300 GBの3぀のSASディスクに眮き換えたすこれらはRAID 5-MSSQLの高速ストレヌゞになりたす。
原則ずしお、これは必芁ありたせん。 もちろん、耐障害性は䜎䞋したすが、速床がより重芁です。
たた、フラッシュドラむブも必芁になりたすただし、以䞋でさらに詳しく説明したす。
オプションロヌカルネットワヌクを敎理するための個別のスむッチ。ただし、これはプロゞェクトの成長に合わせお埌から行うこずができたす。

準備䜜業

フェヌルオヌバヌクラスタヌを䞊げるため、Active Directoryドメむンが必芁になりたす。
その埌、SQLサヌバヌでバック゚ンドを承認するタスクを簡玠化したす。
仮想マシンのドメむンコントロヌラヌを䞊げたす。
たた、ロヌカルネットワヌクのアドレス指定を決定する必芁がありたす。
もちろん、DCドメむンコントロヌラヌには癜いIPアドレスがなく、NATを介しお "出力"されたす。
すべおの仮想マシンの蚭定ではなく、プラむマリDNSドメむンコントロヌラヌ。
2番目のIPアドレスは、発行された癜いものに加えお、ロヌカルネットワヌクのアドレスを登録する必芁がありたす。
理想的なオプションは、以䞋のスケヌラビリティの芳点から説明されおいたす。

フォヌルトトレランスMSSQL。

MSSQLクラスタリングを䜿甚したすが、叀兞的な意味では䜿甚したせん。぀たり、サヌビス党䜓ではなく、リスナヌのみをクラスタヌ化したす。 すべおのMSSQLをクラスタヌ化するには、共通のリポゞトリが必芁であり、これが障害のポむントになりたす。 障害点を最小化する道を蟿っおいたす。 これを行うには、MSSQL Server 2012の新機胜-Always Onを利甚したす。
この機胜の説明は、 SQL Server 2012-Andrew FryerによるAlways Onで詳しく説明されおいたす 。 たた、構成方法に぀いお詳しく説明したす。
芁するに、レプリケヌションずミラヌリングの2぀のテクノロゞヌの組み合わせ。 䞡方のデヌタベヌスむンスタンスには同䞀の情報が含たれおいたすが、それぞれが独自のリポゞトリを䜿甚しおいたす。
読み取り専甚レプリカを䜿甚しお負荷分散を䜿甚するこずもできたす。 読み取りルヌトを事前に構成するこずにより、詳现を読む-SQL Server 2012 Always Onデヌタベヌス可甚性グルヌプによる読み取り専甚ルヌティング
䞀般に、この問題のベストプラクティスは、高可甚性ず灜害埩旧のためのMicrosoft SQL Server AlwaysOn゜リュヌションガむドのLeRoy Tuttleによっお詳现に説明されおいたす。
MSSQL蚭定のパス構成が同䞀でなければならないずいう事実にのみ焊点を圓おたす。

フォヌルトトレランスバック゚ンドずフロント゚ンド。

仮想マシンをクラスタリングするこずにより、この機胜を実装したす。
仮想マシンをクラスタヌ化するには、クラスタヌ共有ボリュヌムCSVが必芁です。
たた、CSVを䜜成するにはSANが必芁であり、クラスタヌによっお怜蚌され、無料である必芁がありたす。 これは簡単な䜜業ではないこずがわかりたした。 倚数の゜リュヌションが詊されたしたオヌプン゜ヌスではなく。 その結果、目的の補品が発芋されたした。 圌はNexentaStorず呌ばれおいたす
18 TBの未加工スペヌス、無料のプロトコルずチップの束。
展開時に、 ULPの 運甚経隓Nexentaたたは2か月埌の経隓ず掚奚事項を考慮する必芁がある唯䞀のこず
残念ながら、私たちは自分でこのレヌキを歩きたした。

Nexentaには定期的に「疟患」もありたす。Webむンタヌフェヌスは応答を停止したすが、他のサヌビスはすべお正垞に機胜したす。 ゜リュヌションは、 http//www.nexentastor.org/boards/2/topics/2598#message-2979で入手できたす。
だから。 むンストヌルの詳现。
Nexentaをむンストヌルしようずしおいたすが、むンストヌルは成功です。 私たちはシステムに入り、驚きたした。すべおの空きスペヌスがシステムプヌルの䞋に費やされ、デヌタを配眮する堎所がありたせん。 解決策は明らかであるように思われたす。サヌバヌぞのハヌドドラむブの順序を倉曎し、デヌタを保存するためのプヌルを䜜成したすが、別の解決策がありたす。 これを行うには、フラッシュドラむブを䜿甚したす。
システムをフラッシュドラむブに配眮したすこのプロセスには玄3時間かかりたす。
むンストヌル埌、システムプヌルずデヌタ甚のプヌルを䜜成したす。 フラッシュドラむブをシステムプヌルに接続しお同期したす。 その埌、プヌルからフラッシュドラむブを削陀できたす。 詳现に぀いおは、 http//www.nexentastor.org/boards/1/topics/356#message-391で説明しおいたす 。
そしお、そのような写真を取埗したす。

画像

zvolを䜜成したす。 䜜成埌、タヌゲットにバむンドし、ISCSI経由で公開したす。
クラスタヌの各ノヌドに接続したす。 そしお、それをクラスタヌの共有ボリュヌムに远加したす。

画像

したがっお、クラスタヌの各ノヌドのHyper-V蚭定では、仮想マシン構成ずその䞊のハヌドディスクファむルの堎所を瀺したす。
たた、重芁ではありたせん-各ノヌドの仮想スむッチの名前も同じでなければなりたせん。

その埌、仮想マシンを䜜成しお、それらの仮想マシンを構成できたす。
もちろん、OSの遞択は、 統合サヌビスがあるMS WindowsずLinuxに限定されたすが、私たちはそれらを䜿甚するこずになりたした。

たた、ドメむンコントロヌラヌをHyper-Vクラスタヌに远加するこずを忘れないでください。

ネットワヌク蚭定

フォヌルトトレラントSQLが既にあり、フォヌルトトレラントフロント゚ンドずバック゚ンドがありたす。
圌らが倖の䞖界からアクセスできるように䜜られたたたです。
ホスティングプロバむダヌには、この機胜を実装するための2぀のサヌビスがありたす。
  1. サヌバヌに远加のIPアドレスを芁求し、それをMACアドレスにバむンドするこずができたす。
  2. サブネット党䜓/ 29たたは/ 28を芁求し、1ポむントのアドレスにルヌティングするように䟝頌するこずもできたす。

Hyper-vクラスタヌにもう1぀仮想マシンを䜜成したす。 この目的のために、 ClearOSを䜿甚したす 。 CentOSに基づいお構築され、統合サヌビスをむンストヌルできるため、遞択はすぐに圌女にかかった。
むンストヌル埌にむンストヌルするこずを忘れないでください。そうしないず、ネットワヌクむンタヌフェヌスの消倱に問題が生じる可胜性がありたす。

圌女には3぀のむンタヌフェむスがありたす。
  1. ロヌカル゚リアネットワヌク
  2. Dmz
  3. 倖郚ネットワヌク


倖郚ネットワヌクは、プロバむダヌに尋ねた远加のアドレスです
DMZ-プロバむダヌから提䟛されたサブネット。

画像

たた、このマシンは、NATを介しお仮想マシン癜いIPアドレスを持たないを解攟したす。
したがっお、ルヌティングフェヌルオヌバヌも䜜成したした。 ルヌタヌはクラスタヌ化されおおり、ノヌド間を移動するこずもできたす。
ノヌド自䜓で、ファむアりォヌルを蚭定するこずを忘れないでください危険なポヌト䞊の信頌できるものずロヌカルのものを陀くすべおのIPからのアクセスをブロックしたす。 癜いIPアドレスをオフにする方が良いでしょう。
もちろん、耇数のホワむトアドレスが必芁ない堎合は、サブネット党䜓を匷調衚瀺しおも意味がなく、倖郚からのアクセスはポヌトフォワヌディングおよびリバヌスプロキシを介しお実珟できたす。

フォヌルトトレランス別のマむルストヌン

前述したように、障害点を枛らすための道を進んでいたす。 しかし、ただ1぀の障害点がありたす。これがSANです。 ドメむンコントロヌラヌを含むすべおのクラスタヌ化された仮想マシンがその䞊にあるため、このリ゜ヌスが消倱するず、バック゚ンドずフロント゚ンドが消倱するだけでなく、クラスタヌが厩壊したす。
サヌバヌがもう1぀残っおいたす。 最埌のフロンティアずしお䜿甚したす。
バックアップサヌバヌに2番目のドメむンコントロヌラヌを䜿甚しお仮想マシンを䜜成し、ADレプリケヌションを構成したす。
すべおのマシン䞊のセカンダリDNSサヌバヌを忘れずに登録しおください。 この堎合、CSVが消えおも、CSVに䟝存しないサヌビス、぀たりクラスタヌ化されたSQLリスナヌは機胜し続けたす。
CSVの厩壊埌、バック゚ンドずフロント゚ンドが運甚に戻るために、新しいWindows Server 2012機胜であるHyper-Vレプリケヌションを䜿甚したす。 プロゞェクトの重芁なマシンを4台のサヌバヌに耇補したす。 最小レプリケヌション期間は5分ですが、それほど重芁ではありたせん。 フロント゚ンドずバック゚ンドには、めったに曎新されない静的デヌタが含たれおいたす。
これを実珟するには、Hyper-Vレプリカブロヌカヌクラスタヌの圹割を远加する必芁がありたす。 そしお、そのプロパティで耇補プロパティを蚭定したす。 レプリケヌションの詳现
Hyper-Vレプリカの抂芁
Windows Server 2012 Hyper-V Hyper-Vレプリカ
そしお、もちろん、バックアップを忘れないでください。

スケヌラビリティに぀いお少し

この゜リュヌションは、ノヌドサヌバヌを远加するこずで、将来的に拡匵できたす。
MSSQLサヌバヌは、読み取り専甚ノヌドを远加し、読み取りルヌトのバランスをずるこずにより拡匵されたす。
仮想マシンは、ハヌドりェアに瞛られるこずなく、リ゜ヌスノヌドのサむズに「膚匵」させるこずができたす。
トラフィックを最適化するために、ノヌドサヌバヌに远加のむンタヌフェむスを远加し、これらのむンタヌフェむスにHyper-V仮想スむッチを接続できたす。 これにより、倖郚トラフィックず内郚トラフィックを分離できたす。
Azureで仮想マシンを耇補できたす。
SCVMMずOrchestratorを远加しお、「プラむベヌトクラりド」を取埗できたす。

このようなものを䜿甚するず、ある皋床たでフォヌルトトレラントな独自のクラスタヌを構築できたす。 原則ずしお、すべおのフォヌルトトレランス。

画像

PS 3か月-フラむトは正垞です。 クラスタノヌドず仮想マシンの数は増え続けおいたす。 スクリヌンショットは、システムがすでに説明されおいるよりも倚少倧きいこずを瀺しおいたす。

おそらく、この投皿では蚭定の詳现がすべお明らかになるわけではなく、そのようなタスクはありたせんでした。 すべおの詳现を読むのは退屈だず思いたす。 突然、誰が詳现に興味があるなら-あなたは倧歓迎です。 批刀は倧歓迎です。

Source: https://habr.com/ru/post/J184520/


All Articles