高可用性仮想化環境のセットアップ


9

プロジェクトでは、WebショップとCMSシステムの高可用性セットアップを計画するタスクがあります。ただし、当然のことながら、プロジェクトの予算は限られています。したがって、ハイエンドのソリューションは予算に収まらない可能性があります。

Webサーバー(CMS、ショップ)を実行する2台のマシン、データベースを実行する1台のマシン、およびパートナーに注文を配信するために必要なFAXサーバーを実行する1台のマシンがあります。すべてのシステムでLinuxが実行されています。これらのコンポーネントはすべて高可用性である必要があり、透過的なフェイルオーバーをサポートする必要があります。

ハードウェアコストを削減するために、仮想化環境について考えます。世の中にはたくさんの情報がありますが、何から始めたらよいのか正確にはわかりません。少なくともサーバーが仮想マシンのホストとして必要であることは明らかであり、単一障害点はありません。

高可用性をサポートするための最善の方法はどれですか。

最初の質問は、どの仮想化ソリューションがこの状況で最適かということです。なんらかの管理インターフェースが必要です。実行中の仮想マシンをあるホストから別のホストに移動して、ホストのメンテナンスを行えるようにする方法が必要です。1つのホストに障害が発生した場合でも仮想マシンを引き続き使用できるように、何らかのメカニズムが必要です。ここで有効な解決策についてアドバイスできますか?

共有ファイルストレージは、ほとんどの場合、高可用性の前提条件のようです(VMware vSphereはかなり高価です)。ただし、2台のサーバーをセットアップに追加して冗長なNFSファイルストアを提供するよりも、仮想マシンホストに多くのお金を投入した方がよいでしょう。2つの仮想マシンホストだけでうまくいく可能性はありますか?解決策は、これら2つをNFSホストとして使用することです。これを行うと、パフォーマンスの低下が大きくなりますか?

編集:私は99,9%の可用性を目指しています。ただし、通常の営業時間があるため、24時間年中無休で稼働する必要はありません。これにより、操作にある程度のスペースが確保されます。何らかの形で保証する必要がある可用性の期間は、午前10時から深夜0時までです。


2
「高」は「高可用性」ですか?1ナインまたは6ナインの可用性を狙って撮影していますか?具体的な要件が整うまでは、自分のやりたいことが特定の予算で達成できるかどうかを判断することはできません。
2012年

はい、そうです。私は99,9%の可用性を目指しています。
スパ

「99.9%」は私たちが投げかけるフレーズだけではありません。これは、年間約8.8時間のダウンタイムに相当します。これにより、限られた予算で一緒に投入されるシステムの範囲から外れます。予算が限られている場合、そのレベルの可用性をサポートする余裕がありますか?
Rob Moir

1
@RobMoir-私が私の回答で概説した基準を満たしていれば、その8時間で修正できなかった問題は多くはない(そして予算はまだ小さいかもしれない)と私は主張します。事前警告、時間外、スケジュールされたダウンタイムがSLAにカウントされないことを確認する場合(24/7以外のソフトウェアの場合)。
Mark Henderson、

@MarkHenderson私はあなたが正しいことを知っています、私はプロセスがいくつかの思考と計画を必要とし、「ただ起こる」ことはないことを言っているだけです(あなたはその8時間以内にサイトでスペアパーツを得ることができることを確認する必要があります。たとえば、郵便局への「ウィンドウ」の7時間を失いたくない場合や、お気に入りのサプライヤーがその日を選んだ場合に、通常は数千個もある些細なケーブルの在庫がないことがわかります) 。
Rob Moir

回答:


13

一般的な概要として、高可用性を実現するには、次のものが必要です。

  1. 複数のサーバー
  2. データの複数の一貫したコピー
  3. 複数のサーバー間でアクセスできる一貫したデータ
  4. スタンバイサーバーで2番目のインスタンスを自動的に起動する方法

番号1は、見た目と同じくらい簡単です。2台の同じサーバーを購入します。

ナンバー2は、SANの複製(高価、非常に高速、非常に信頼性の高い)、または各サーバーのファイルシステムの複製(安価、速度、信頼性は、選択したテクノロジーに関する知識に依存します)によって実現できます。

番号3は、SAN(1つのストレージLUN、2つのサーバーによってアクセスされる)、または複製されたファイルシステム(2つの別個のストレージエリア、各サーバーは自身のストレージエリアしか認識できない)によって実現できます。

番号4は、ハートビートアプリケーションによって実現できます。

少ない予算でこれを行うには、たとえばVMWare vSphereを使用します。SAN または VMWareのいずれかを使用すると、高可用性に使用できる2つのサーバー上に2つの異なるデータストアを提供する自己複製ストレージアプライアンスを提供できます。vSphereは、組み込みのハートビートと高可用性構成も提供します。

予算なしでこれを行うには、Xenパスを下り、DRBDを使用して2つのノード間でストレージを複製します。次に、ハートビートを設定して、アクティブなDRBDストレージノードとXenインスタンスを切り替え、最初のホストがダウンしたときに2番目のホストでVMを起動します。

これらの基本的な推奨事項を使用しても、5ナイン(99.999%)の稼働時間はられませんが、何をしているのかわかっている場合は、最も安価な方法を使用すると、3ナイン(99.9%)を簡単に得ることができます。


9

共有ストレージについて議論するとき、「この費用はどれくらいの現金で購入できるか」という観点から「費用」について話します。もちろん、それは完全に有効なポイントです。お金はどこでもタイトです。

ただし、高可用性について話している場合は、「なぜ高可用性が必要なのか」についても質問する必要があります。たとえば、答えが「ビジネスがオンライン販売で1時間あたり2000ドルを超えるため、1時間休むと2000ドルを失った」という場合、費用と手頃な価格の問題は「余裕がない可能か、大幅に当社の高可用性の展開を向上させ、何かを購入します?」

これは重要な詳細であり、予算についてのあなたのコメントに役立ちます-ITの「テール」は、小さな問題に対して過度に複雑で高価なソリューションを主張することによってビジネスの「犬」を揺るがしてはなりませんが、同時にビジネスがそのITインフラストラクチャの特定の要件は、適切に予算を組むか、要件を調整する準備をする必要があります。

仮想化はシステムの可用性を向上させる上で多くの可能性を秘めていると思いますが、魔法の杖ではありません。ハードウェアの側面は重要ですが、ソフトウェア要件の二次的なものです-通信するフロントエンドアプリケーションがSQLサーバーのいずれかがクラッシュした場合に問題なくSQLデータベースクラスターがフォールオーバーするのは良くありませんフェイルオーバーを処理できないため、データベースのチョークに。

また、データセンター内で隣り合って配置されている2つの「高可用性」サーバーは、依然として電源障害や盗難などに対して脆弱です。ここでも、「なぜこれを行っているのか」に対する回答によっては、この側面をかなり考慮する必要があるかもしれません。プロジェクトのかなりの部分に費用と複雑さを追加する可能性があるため、注意してください。


3
...no good having a SQL database cluster that falls over with no trouble in the event of one of the SQL servers crashing if the front-end application that talks to the database chokes because it can't handle the failover.-私はこれを十分に強調することができませんでした。大規模なSANにHA SQL Serverクラスターを実装するクライアントがあり、1日の終わりに、通信の中断を処理できなかったため、フェイルオーバーの場合にソフトウェアを再起動する必要がありました。SQLミラーとNLBで十分だったとしたら、それは無駄な費用のかかる作業でした。
Mark Henderson、

私たち2人は古いプロジェクトから同様の傷を負っているようです
Rob Moir

@MarkHenderson通信が切断されたのはなぜですか(SANまたはネットワークのどちらか)。
ニルス

5

使用しているDBとアプリケーションサーバーがわからない場合は、次のことをお勧めします。

  • VMのPVモードでXEN> 3.2を使用します(私の個人的なお気に入りです)-コンパートメントまたは他のライトワイトの仮想化ソリューションも同様に適合する可能性があります(OpenVZはその1つです)。
  • 各物理ノードに4つのVMマシンを構築する
  • SAS 3,5 "ディスクでローカルRAID 5を使用-ローカルで可能な限り多くのディスク(5が良い)
  • 15k RPMディスクを使用します(DBで必要になります)
  • DRBDとOCFS2を使用して安価な「共有」ストレージを提供し、この接続に高速で安全な信頼性の高いローカルネットワークを使用します(直接相互接続の結合はかなり高速で優れています)。
  • アプリケーションレベルでHAを実行する
  • マシンのペア間で負荷分散を使用すると、8台のマシンで並行タスクを実行できます

HAの例:

  • アプリケーションサーバー:クラスター化されたアクティブ/アクティブモードでTomcatを使用する
  • LVS:LVのスレーブとマスターの同時レプリケーションを使用する
  • Oracle-DB:RACを使用します(オープンソースDBに同等のソリューションがあるかどうかはわかりません)

アプリケーション層でHAを実行する場合、その層はセッションを複製する方法を最もよく理解しています。1つのノードが停止した場合(計画済みまたは計画外)、残りのノードがセッションを含めて引き継ぎます。


「Oracle-DB:Use RAC」-Standard Editionは、OCFS2でライセンスまたはサポートされていません。それ以外は、非常に有益な答えです。
kubanczyk 2013年

@kubanczyk Oracle-RACはocfs2よりも優れています。しかし、ocfs2は無料です。したがって、いつでも使用できます。
Nils

2

なぜ自分のホストを購入したいのですか?必要なインフラストラクチャを提供するBlueLockTerremarkなどのエンタープライズクラウド/ IaaSプロバイダーを見つけてみませんか。彼らは、vSphere HA(サービスHAよりもダウンタイムの削減に似ていますが、費用対効果の高いソリューションです)、ファイアウォール、LTM / SSLオフローダー、SAN(冗長シェルフを使用)、監視/アラートなどのサービスを提供します。ここで消費者向けクラウドソリューションについて話しているので、代金を払う準備をしてください。


はい、そうです。ただし、セットアップにはFAX配信用のカスタムハードウェアが含まれます。したがって、クラウドソリューションは悲しいことにはなりません。
スパ

@spaでは、物理ハードウェアにカスタムハードウェアをプロビジョニングし、残りを仮想にプロビジョニングして、VLANをブリッジすることができます。
HTTP500

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.