web-dev-qa-db-ja.com

Ubuntu 14.04LTSで個別のパーティションまたはLVMを使用しない高可用性ミラーリング

私はクライアントと長い間AWSを利用していますが、サービスを提供し続けるには、今すぐコストを削減する必要があります。 AWSでは、RSyncを使用して一部のフォルダーの同期を維持し、DRDBを使用して、各クライアントマシンのミラーを常に操作可能ですぐに使用できる透過的なフェイルオーバーで高可用性を提供しています。

移行するはるかに安価なクラウドソリューションは、各マシンに1つのパーティションとLVMのないUbuntu 14.04 LTSを提供するだけなので、DRBDを使い続けることはできません。このクラウドプラットフォームは、私の一部のクライアントの要件にもなります。

私が考えている解決策は、シェルスクリプトを一方の側で毎日のBKPにスケジュールし、SSHでもう一方の側に転送して、BKPを復元することです。複雑になり、エラーが発生しやすくなり、開発と管理に多くの作業が必要になります。 。

私のクライアントの多くはWordpress + MySQLであり、1日の遅延を受け入れます。遅延の日があり、それぞれのスクリプトの開発と管理を強制されない場合でも、「高可用性」を提供する代替手段を探しています。コンテキストが制限されている場合。

2
Mark

ブロックデバイスを実際に使用できない場合(DRBDの方がおそらくここで優れており、すでに経験がある場合)、GlusterFSはファイルレベルで求めるレプリケーション機能を提供できます。

Glusterの「ブリック」は、理想的にはXFSで終わる独自のシンLVMスタックを備えた単一のストレージデバイスですが、実際にはノード上の任意のPOSIX準拠のファイルシステム(または専用のFSではなく単なるディレクトリ)にすることができます。

これらのブリックは、「レプリカ」ポリシーを使用して統合された「ボリューム」に集約され、多くのブリックが任意のファイル(この場合はおそらくレプリカ2または3)で書き込まれるように定義されます。これらのレプリカは、すべて可能です。

Glusterの失敗のセマンティクスは、DRBDほど一貫性がありません。データ複製は接続するクライアントの責任であるため、スプリットブレイン条件を実現するのは簡単です(データを複製するマスターに書き込むのではなく、すべての書き込みのN個のコピーを各Glusterノードに送信します)。ただし、レプリケーションを使用する場合、各ブリックは完全に読み取り可能なデータを備えた完全なファイルシステムであるため、発散データを使用してスプリットブレインを解決する方が潜在的に簡単な場合があります。

DRBDほど高速ではありませんが、必要ないのではないでしょうか。

1
Spooler