web-dev-qa-db-ja.com

RAID0(ストライピング)とスナップショットの復元を使用したEBS

EC2にMySQLデータベースがあり、ディスクのパフォーマンスを調べていますIOパフォーマンス。現在、XFSを備えた単一のEBSボリュームがあり、バックアップ用のスナップショットを作成しています。多くの人が見ているようです。ソフトウェアRAIDを使用して複数のEBSボリュームにストライピングすることで、パフォーマンスが大幅に向上します。これを行う場合、スナップショットを取得してファイルシステムの一貫性を確保するにはどうすればよいですか?複数のスナップショットからファイルシステムを復元するのは難しいと思われます。

4
grourk

間違いなくRAIDを追加します。 EBSボリュームはすぐにボトルネックになります。私たちは8台のドライブで幸運に恵まれました-管理性とパフォーマンスの素晴らしいバランス。最近、m1.largeインスタンスでいくつかのテストを行ったところ、8回のドライブ後にパフォーマンスが低下することがわかりました。

Ec2-consistent-snapshotを使用してスナップショットを作成します: http://alestic.com/2009/09/ec2-consistent-snapshot

これは、複数のボリュームでそれを行うための最良の方法です。ヒュー・パーキンスが概説したプロセスを自動化します。テーブルをフラッシュし、ファイルシステムをロックし、スナップショットを開始してから、すべてを正常に戻します。私たちのシステムでは、DBは通常1秒未満しかロックされていません。これは、マスターマシンとスレーブマシンの両方で行います。

3
Erik Giberti

ライブシステムのEBSボリュームのスナップショットを作成する場合:

  • Xfsを使用すると、スナップショット中にファイルシステムをフリーズできます
  • スナップショット中にmysqlセッションを開き、「読み取りロック付きのフラッシュテーブル」を発行してテーブルをロックし、各ボリュームに対してec2-create-snapshotが返されるまでそのセッションを開いたままにします。

このプロセスの詳細については、 Elastic BlockStoreを使用したAmazonEC2でのMySqlの実行 を参照してください。

または、次のことを検討してください。

  • データを別のマシンに複製し、代わりにスナップショットを作成します。これは簡単な作業であり、プライマリマシンへの影響を回避します。
  • データベース全体をダンプしてファイルをダンプし、それらをs3に保存するか、別のebsボリュームに保存します
1
Hugh Perkins