web-dev-qa-db-ja.com

SSDを使用した遅いソフトウェアRAID

古いサーバーが機能しなくなったため、Oracleデータベースを備えたWebアプリケーションを新しいサーバーに移動しました。古いサーバーには、2つのミラーリングされたハードディスクと、Oracleデータファイル用の個別の非ミラーリングSSD(REDOおよびUNDOログなし)がありました。新しいサーバーの構成はほぼ同じですが、SSDが2つあり、それらもミラーリングされています。

残念ながら、SSDを搭載したソフトウェアRAID-1のランダム書き込みパフォーマンスは非常に劣っていました。大量のデータがデータベースにマージされる夜間、ログエントリの追加などの単純な挿入操作に20秒以上かかったため、Webアプリケーションはほとんど機能しなくなりました。 RAID-1は、夜間のジョブ(データファイルへのランダムアクセス)によって引き起こされるOracleの書き込み要求に対応できませんでした。

次に、構成を古い構成に戻しました。RAIDはなく、データファイル用のSSDは1つだけです。これでパフォーマンスの問題はなくなり、Webアプリケーションは常に高速になり、夜間のジョブはRAIDの場合よりも約10倍高速になります(古いサーバーとほぼ同じです)。

ソフトウェアRAIDは、RAIDのない同じドライブよりも少なくとも10倍遅くなる可能性がありますか?

ハードウェア:

  • Intel Xeon E3-1245 V2 @ 3.40GHz
  • 32 GB RAM
  • 2 x Seagate Constellation ES.2 ST33000650NS
  • 2 x INTEL SSDSC2BW240A4

RAIDをセットアップするコマンド:

# mdadm –-create –-name=3 /dev/md/3 --level=raid1 --raid-devices=2 /dev/sda1 /dev/sdb1
# mkfs.ext4 /dev/md3

ところで:新しいサーバーを生産的に設定するよう圧力がかかっていたため、新しいサーバーで実験を実行することはできません(古いサーバーは死にかけていました)。

1
Codo

Oracleに支払うのに十分なお金はありますが、テスト環境には十分なお金がありませんか?

答えはありませんが(コメントには少し長いですが)、いくつかの所見があります:

SSDは、物理的なブロックサイズ(これは実際には消去ブロックサイズです)について嘘をついています。これは巨大です。

ほとんどのディスクもそのジオメトリについて嘘をついています(MS-DOSからフォーマットできます)-しかし、これ本当にはデータストライピングRAIDレベルのパフォーマンスを損ないます(しかしミラーリングにあまり影響を与えるとは思っていませんでした)。

それらがどのように分割されたか、またはどのジャーナリングを構成したかを示していません。

RAID構成についてextに伝える -が必要ですが、IIRCでも、これはミラーリングよりもストライピングの問題です。

ミラーでの書き込み操作は、単一のディスクよりも速くなることはありません(20%程度であることが多いですが、最大2倍遅くなる可能性があります)。

SSDの問題は書き込み摩耗です。ミラーでは、回転するRustディスクが、同じバッチからでも同時に失敗することは珍しいです。OTOHの大規模な場合、2つのSSDが同時に失敗する可能性が高くなります。1つの解決策は次のとおりです。ディスクの寿命を意図的にずらすためですが、このハードウェアミックスを使用してマシンを設定する場合は、mdadmを使用してSSDとHD間のミラーセットを構成していました ハイブリッドストレージ

問題はファイルシステム層にあると思われます。本番環境にない場合は、Oracleにミラーデバイスへのアクセスを rawパーティション として許可し、パフォーマンスを確認することをお勧めします。

1
symcbean

データアライメントの問題だと思います。すべてのレベル(パーティション、RAID、ファイルシステム)は、スーパーセルの境界から開始する必要があります。そうでない場合、すべての消去サイクル(フラッシュメモリテクノロジの最悪の部分)が効果的に複製されます。

OCZフォーラム で説明されている オンラインツール があります。それは役立つかもしれません。

1
Javier

Redhatは、SSDおよびmdadmを使用したRAID1を推奨していません。

これらのRAIDレベルの初期化段階で、一部のRAID管理ユーティリティ(mdadmなど)は、チェックサムが正しく動作することを確認するために、ストレージデバイス上のすべてのブロックに書き込みます。これにより、SSDのパフォーマンスが急速に低下します。

第21章ソリッドステートディスク導入ガイドライン

同様の懸念が他の場所でも表明されています。

TRIM( https://en.wikipedia.org/wiki/TRIM )は、ハードウェアコントローラー上のSSD上のRAIDではサポートされておらず、LinuxのほとんどのディストリビューションはRAID上のTRIMをサポートしていません。ソフトウェアRAIDを実行している場合はボックスを使用するため、ディスクに1回の書き込みを実行すると、パフォーマンスが岩のように急落します。多くのRAID構成では、フォーマット時にディスク全体をゼロ書き込みするため、パフォーマンスは最初から低下します。

https://news.ycombinator.com/item?id=4266119

0
Swoogan