分散ファイルシステムによるバックアップ

分散ファイルシステムによるバックアップ

できるだけ正確に質問を伝えることができれば幸いです。

私は、VM サーバーが処理/生成するデータは貴重なので、できるだけ早く頻繁に VM サーバーのバックアップを作成する方法を探しています。KVM ホストと少なくとも 2 つのゲスト (Web サーバー (Apache/PHP) とデータベース サーバー (MySQL/Solr)) があります。ホストについてはあまり気にしていませんが、ゲストについては気にしています。このトピックでは、KVM や仮想化について深く掘り下げてほしくありません。このスレッドは、すべての VM ベースの環境と他のすべての環境にも適用できるはずです。VM シナリオは、よりトリッキーで、私の想像の中で最も複雑な状況の 1 つを表しているため、適しています。少なくとも、このベースではそれが必要です。

現在、私は VM 内バックアップと LVM ベースのスナップショットを 1 日に 1 ~ 2 回生成しています。ハードウェア障害が発生した場合 (最近発生しました)、最善の場合でも大量のデータが失われます。

したがって、1 つの方法としては、各アプリケーション/サービスを停止して、利用可能な最善のバックアップ戦略を適用することが考えられます。それぞれのケースで検討する必要があります。

もう 1 つの興味深い方法は、分散ファイル システムの使用です。アイデアは、MySQL のバイナリ ログに少し似た動作をするファイル システムを持つことです。または、より一般的には、ファイル システム上のすべての書き込みアクションをキャプチャし、それを別のマシンに非同期的に複製します。ネットワークと書き込まれるデータの量によっては、数秒または数分の遅延が発生する可能性があり、言うまでもなく、キャッシュに保持されているすべてのアクションが失われます。そのため、vm は、vm-host にインストールされている分散ファイル システム上に配置されます。すべての書き込みアクションは、(たとえば) バックアップ サーバーに非同期的に適用されます。ハードウェア障害が発生した場合、(理論上は) バックアップ サーバーを新しいマスターとして切り替えるか、ダウンタイムがデータ損失よりも許容できる場合は、復元されたマスター サーバーにファイルをコピーするだけで済みます。その結果、仮想マシンは数秒から数分前にすぐに電源がオフになったかのように動作するはずです。ただし、数時間ではありません。ファイル システム レベルでのマスター マスター レプリケーションは求めていません。これは、ほとんどのアプリケーション、特に MySQL などのデータベース サーバーではサポートされていないためです。

そこで質問です。このような構成をすでに経験した人や、データのバックアップの試みに関してプラス面とマイナス面の両方の知識を持っている人はいますか? 私はこれらのファイル システムについて深い経験はありません。特に信頼性とパフォーマンスに関しては。

答え1

分散ファイル システムはバックアップではなく、冗長性です。誤って削除したデータも「バックアップ」します。

そうは言っても、DRBD

答え2

あなたの状況に対する最善の答えは、データがブロック レベルで冗長的に保存されるクラスター ストレージです。これを実装する方法はいくつかありますが、私が想像できる最良の方法 (少なくともアップタイム仕様) は、オープン スタック クラスターです。 OpenStack はストレージと計算の両方を分散するため、ハードウェア障害が発生した場合でも、実行とストレージの両方が冗長かつ途切れることはありません。言い換えれば、データの整合性とアップタイムを維持する最善の方法は、そもそもアプリケーションがクラッシュしないようにすることです。 yoonix が指摘したように、これではユーザー/ロジック エラーから保護されませんが、オープン スタックにはディスク イメージング/バックアップ用のツールも含まれています。イメージのロードと起動には、数秒とは言わないまでも数分かかります。 Amazon Web Services と Rackspace は、OpenStack デプロイメントの例です。 http://www.openstack.org/

Openstack を始めるのに適した場所は devstack です (テスト用のさまざまなデプロイメント モードを備えたデプロイ スクリプトです) http://devstack.org/

この実装の弱点はハードウェアが不足していることです。このシステムは、2 台の物理サーバーなどがある小規模オフィスではあまり効果を発揮しません (ただし、ブレード システムではうまく機能します)。

答え3

VMware プラットフォームに移行し、そのソリューションを使用することを検討しましたか?

「フォールト トレランス」(vLockstep を使用) は、VM のプライマリ バージョンに加えられたすべての変更を、VM の 2 番目の「スタンバイ」コピーに最新の状態に保ちます。プライマリ バージョンに何か問題が発生した場合、システムはすぐにセカンダリ VM にフェールオーバーします。(ダウンタイムや影響はほとんどまたはまったくありません)

「高可用性」ではスタンバイ VM が準備された状態が維持されますが、スタンバイ VM は電源オフのままです。プライマリ VM に障害が発生した場合、システムはスタンバイ VM の電源を自動的にオンにします。(ダウンタイムは数分)

このツールは、非常に機能的で信頼性も高いです。しかし、高価です。これらの技術を実行するために必要なライセンスの予算がない場合は、この提案はまったく役に立ちません。少なくとも、どのようなツールがあるのか​​、もう少しアイデアが浮かぶことを願っています。

関連情報