プロジェクトの場合、WebショップとCMSシステムの高可用性セットアップを計画するタスクがあります。ただし、もちろんプロジェクトの予算は限られています。したがって、ハイエンドソリューションは予算内にない可能性があります。
Webサーバー(CMS、ショップ)を実行する2台のマシン、データベースを実行する1台のマシン、およびパートナーに注文を配信するために必要なファックスサーバーを実行するための1台のマシンがあります。すべてのシステムはLinuxを実行します。これらのコンポーネントはすべて高可用性である必要があり、透過的なフェイルオーバーをサポートする必要があります。
ハードウェアのコストを削減するために、仮想化環境について考えます。そこにはたくさんの情報がありますが、正確に始めるべきかどうかはわかりません。仮想マシンのホストとして少なくともサーバーが必要であることは明らかであるため、単一障害点はありません。
高可用性をサポートするための最善の方法はどれですか?
最初の質問は、この状況でどの仮想化ソリューションが最適かということです。ある種の管理インターフェースが必要です。実行中の仮想マシンをあるホストから別のホストに移動して、ホストのメンテナンスを実行できるようにする方法が必要です。 1つのホストに障害が発生した場合でも仮想マシンを使用できるように、何らかのメカニズムが必要です。ここで有効な解決策についてアドバイスをいただけますか?
ほとんどの場合、共有ファイルストレージは高可用性の前提条件のようです(かなり高価なVMware vSphereを期待してください)。ただし、冗長NFSファイルストアを提供するためにセットアップに別の2台のサーバーを追加するよりも、仮想マシンホストにより多くのお金を投入したいと考えています。 2つの仮想マシンホストだけとうまくやっていく可能性はありますか?解決策は、これら2つをNFSホストとしても使用することです。これを行うには、パフォーマンスが大幅に低下しますか?
編集:私は99.9%の可用性を目指しています。ただし、通常の営業時間があり、操作にある程度のスペースがあるため、24時間年中無休の可用性は必要ありません。何らかの方法で保証する必要のある可用性の期間は、午前10時から深夜0時までです。
一般的な概要として、高可用性を実現するには、次のものが必要です。
ナンバー1はそれが聞こえるほど単純です-2つの同一のサーバーを購入してください。
2番目は、複製SAN(高価、非常に高速、非常に信頼性が高い)、または各サーバーに複製されたファイルシステム(安価、速度、信頼性は、選択したテクノロジー)。
3番目は、SAN(1つのストレージLUN、2つのサーバーからアクセス)またはレプリケートされたファイルシステム(2つの個別のストレージエリア、各サーバーは独自のストレージ領域しか認識できない)によって実現できます。
ナンバー4はハートビートアプリケーションによって達成することができます。
少ない予算でこれを行うには、たとえばVMWare vSphereの場合、a SANまたはVMWareが提供する)のいずれかを使用できます。 a 自己複製ストレージアプライアンス 高可用性を実現するために使用できる2つのサーバー上に2つの異なるデータストアを提供します。vSphereは、組み込みのハートビートと高可用性構成も提供します。
noバジェットでこれを行うには、Xenパスをたどり、DRBDを使用して2つのノード間でストレージを複製します。次に、ハートビートを設定して、アクティブなDRBDストレージノードとXenインスタンスを切り替え、最初のホストがダウンしたときに2番目のホストでVMを起動します。
これらの基本的な推奨事項を使用すると、ファイブナイン(99.999%)の稼働時間は得られませんが、easillyを使用すると、スリーナイン(99.9%)を得ることができます。あなたが何をしているのかを知っているなら、最も安い方法。
共有ストレージについて議論するとき、あなたは「この購入にいくらの現金がかかるか」という観点から「費用」について話します。もちろん、それは完全に有効なポイントです。お金はどこでもタイトです。
しかし、高可用性について話している場合は、「なぜ高可用性が必要なのか?」と尋ねる必要もあります。たとえば、答えが「オンライン販売で1時間あたり2000ドルを超えるため、1時間休むと、2000ドルを失った」という場合、費用と手頃な価格の問題は「できますか」になります。余裕がありますない高可用性の導入を可能にする、または大幅に改善するものを購入しますか?」
これは重要な詳細であり、予算についてのあなたのコメントに影響します-ITの「テール」は、小さな問題に対する過度に複雑で高価な解決策を主張することによってビジネスの「犬」を揺さぶってはなりませんが、同時にビジネスがITインフラストラクチャの特定の要件については、適切な予算を立てるか、要件を調整する準備をする必要があります。
仮想化はシステムの可用性を向上させる上で多くの可能性を秘めていると思いますが、それは魔法の杖ではありません。物事のハードウェア側は重要ですが、ソフトウェア要件に非常に二次的です-フロントエンドアプリケーションが通信する場合にSQLサーバーの1つがクラッシュした場合に問題なくフェイルオーバーするSQLデータベースクラスターを持つことは良くありませんフェイルオーバーを処理できないため、データベースがチョークします。
また、データセンター内で隣り合って配置されている2つの「高可用性」サーバーは、停電や盗難などに対して脆弱です。繰り返しになりますが、「whyこれを行っていますか?」、プロジェクトのかなりの部分に費用と複雑さが加わる可能性があるため、この側面を慎重に検討する必要があるかもしれません。
使用しているDBとアプリケーションサーバーがわからない場合は、次のことをお勧めします。
HA-例:
アプリケーション層でHAを実行する場合、その層はセッションを複製する方法を最もよく知っています。 1つのノードがダウンした場合(計画的または計画外)、生き残ったノードが引き継ぎます-セッションを含みます。
オールインワンの仮想化/ストレージレプリケーションソリューションを見ることができます。
ZFSファイルシステムはこれを可能にします このブログ投稿で概説されています 。
別のオプションは、チュートリアルに従うことです Red Hat KVMを使用したソリューションの詳細 。