RAID 10に組み込まれたSASインターフェイスおよびハードウェアコントローラー。このソリューションは、信頼性とパフォーマンスの点で完全に満足しています。 クライアントデータの部分的な損失の問題は、12年間の使用で3回発生しました。 ハードウェアコントローラーが2回燃え尽きました。 バッテリーが故障し、緊急停電が発生すると、RAIDの内蔵キャッシュメモリがクリアされました。
ただし、SAS HDDは高価です。 1台のサーバーに対して、4つの600 GBディスクのセット、バッテリー付きハードウェアRAIDコントローラーを使用しました。 ソリューション全体の費用は44,806ルーブルです。 1 Tbの場合。 VDSの価格を引き上げたくありませんでした。 速度と信頼性を損なうことなく、より安価なソリューションを見つける必要がありました。 そして理想的には、VDSに提供されるスペースを増やします。
さらに高価なのはSSDだけです。 当時、240 GBドライブのコストは8,000ルーブルです。 合計ボリュームが1 TBのSSDを使用するよりも、Raid 10 SASを使用する方が安価でした。 また、ストレージを増やすことはさらに高価です。 そのため、いくつかのソフトウェアソリューションを確認し、テストにSSDを含めて速度を比較しました。 下の結果の表。
代替ソリューション
zfsは、Sun Microsystemsが開発した適応置換キャッシュファイルシステムおよび論理パーティションマネージャーです。 ライセンスの非互換性(CDDLとGPL)のため、ZfsをLinuxカーネルのオリジナルバージョンに含めることはできません。 システムはDKMSモジュールでねじ止めすることができますが、努力する価値はありません-公開テストによると、書き込み/読み取り速度は低かったです。 彼らは自分でテストを開始しませんでした。
bcache- 2013年のGoogleの開発はまだ未加工でした - 本番環境では使用されませんでした。 CentOS 7でのみ動作し、CentOS 6を使用しました。Bcacheもテストしませんでした。
lvmキャッシュは、Linuxコミュニティのテクノロジーです。 また、CentOS 7でのみ機能しましたが、当時は公開テストがありませんでした。 数字は好きではなかった。
flashcache -Facebookによって開発されました。会社は自信を呼び起こし 、このテクノロジーはすでに実稼働でテストされています。
Flashcacheは3つのモードで動作します:
- ライトスルー -データは最初にディスクに書き込まれ、次にキャッシュにフラッシュされます。 レコードのみがキャッシュされます。
- ライトバック -データは最初にキャッシュに書き込まれ、次にディスクにフラッシュされます。 書き込みと読み取りはキャッシュされます。
- ライトアラウンド -データはディスクに書き込まれ、最初の読み取り後にキャッシュに到達します。 読み取り専用はキャッシュされます。
ライトバックは最速のモードなので、テスト用に選択しました。
MD-ソフトウェア襲撃。 FlashcacheはMDおよびRaid 1と連携して機能します。Flashcacheを使用しないMDをテストに含めて、個別に動作する方法をテストしました。
試験結果
研究条件をできるだけ実際の条件に近づけるために、32 GBファイル(マウントされたファイルシステム)へのランダムな書き込みと読み取りを開始しました。
パラメータ | raid10 sas | SSD | MD | フラッシュキャッシュの書き戻し |
---|---|---|---|---|
キューの深さ | 32 | 32 | 32 | 32 |
IOPSread | 1,401 | 51 460 | 598 | 6 124 |
IOPSwrite | 999 | 23,082 | 230 | 3 205 |
読み取り速度 | 5 607 Kb / s | 205 842 Kb / s | 2 393 Kb / s | 24 496 Kb / s |
書き込み速度 | 3 998 Kb / s | 92329 Kb / s | 922 Kb / s | 12 823 Kb / s |
ライトバックモードのフラッシュキャッシュは、lvmcacheをバイパスし、ソフトウェアRAIDを上書きしました。 彼は高価なSSDで多くのことを失いましたが、最も重要なことは、フラッシュキャッシュがSAS HDDのソリューションを上回ったことです。
flashcacheを使用した新しいソリューション
2014年1月の調査によると、SSD + SATA HDDにフラッシュキャッシュを実装しました。 それ以降、1台のサーバーのコストは、ミラー内に4 TBのSSD 1台とSATA HDD 2台です。 この技術はライトバックモードで動作します。つまり、データをキャッシュにすばやく書き込み、メインキャリアにゆっくりとドロップします。
フラッシュキャッシュを実装および保守する際、テクノロジーのいくつかの機能に直面しました。
フラッシュキャッシュ機能
1)SSDが摩耗している
過剰な数の記録/書き換えにより、SSDは新しいデータの記録を停止します。 これを防ぐために、SMART属性を監視します。
- Media_Wearout_Indicatorは、ディスクの寿命または摩耗です。新しいディスクの値は100であり、時間とともに減少します。 最小許容値は10です。この値に達すると、ディスクは読み取り専用になります。
- Reallocated_Sector_Count-再割り当てされたセクターの数は、100未満でなければなりません。
監視プログラムはこれらの値を自動的に監視し、問題のあるディスクを従業員に通知します。 時間どおりに変更することしかできません。
以前は、240 GBのディスクを使用していましたが、1年もかかりませんでした。 オーバープロビジョニングテクノロジーにより、ディスクのスペア領域を増やし、SSDの寿命を延ばすことができます。 1 TBのディスクを最大240 GBにカットします。これは作業領域であり、残りの760 GBは消耗品です。 現在、SSDは平均1年です。
2)SSDが燃え尽き、同期されていない(ダーティな)データが失われた場合の障害
ライトバックモードでは、データは最初にSSDキャッシュに送られ、次にSATA HDDに送られます。 SATA HDDでチップ化する時間がなかったデータはダーティと呼ばれます。 障害が発生した場合、SSDを使用して完全に焼き切れます。 緊急の停電時には、SSDが故障してデータが失われることもあります。
幸いなことに、クラッシュはそれほど頻繁には発生しません。 2.5年間、リポジトリに登録する時間がなかったクライアントデータが失われた2つのケースがありました。
失敗の数を減らすには2つの方法があります。
- 高品質のサーバーSSDを使用します。 インテル、日立、東芝などのドライブを購入しています
- キャッシュレプリケーション(ミラーRAID)を構成します。 このソリューションは2番目のSSDのインストールを提供しますが、まれな障害のために、そのための資金を絞りました。
3)ロングクリーンキャッシュ
SSDを変更し、フラッシュキャッシュを構成します-5分。 しかし、その前に、キャッシュをクリアする必要があります-すべてのダーティデータをディスクにスローします。
平均して、SSDのダーティデータの30%があり、最大は70%です。 キャッシュのクリアには最大4時間かかります。
このとき、システムは低速のメディアにアクセスするため、実行速度が遅くなります。 速度の低下については常にお客様に警告しますが、プロセスを強制することはできません。 SATA HDDへの書き込み速度は、クライアントがドライブをどれだけ集中的に使用するかによって異なります。 集中的に使用するほど、負荷が大きくなり、記録速度が遅くなります。
4)キャッシュがオーバーフローする可能性があります
頻繁に使用されるデータはキャッシュにあり、ホットと呼ばれます。 サーバーには約13%、最大62%があります。 この量は、サーバー上のすべてのVDSをすばやく読み書きするのに十分です。 ただし、キャッシュが過密になり、パフォーマンスが低下する原因は、1つのクライアントだけに対する不信感です。
クライアントがディスクサブシステムをテストしたいとします。 ランダムファイル記録プログラムを実行します。 クライアントのディスク容量がキャッシュよりも大きい場合、すべてが不良です。 キャッシュがオーバーフローし、すべてがパフォーマンスの低下に陥ります。 サーバー上のすべてのVDSが影響を受けます。
そのようなテストを行うことにした場合、実際の結果を期待しないでください。 プログラムにより、攻撃者にディスクアクセスの回数を制限します。これにより、速度が低下します。
5)Centos 7でFlashcacheが機能しない
カーネルの更新後、flashcacheはCentos 7と互換性がなくなりました。このバージョンのディストリビューションキットは50%のサーバーにインストールされているため、問題は深刻です。 Centos 7は、SSDを搭載したsw raid1で使用されるようになりました。 3つのクラスターで、Enhanceio(別のキャッシングテクノロジー)をテストしていますが、結果を発表する準備はまだ整っていません。
フラッシュキャッシュの実装結果
SSD + SATA HDDのフラッシュキャッシュがRAID 10 SASよりも収益性が高いことを計算してみましょう。 これを行うには、各ソリューションのコストを計算します。
RAID 10 SAS | 2013年3月のおおよその価格 |
---|---|
SAS 600 GB、4個 | 7,714こする。 x 4 |
ハードウェアコントローラー+バッテリー | 8600こする。 + 4500こする。 |
ケーブル | 850こする |
= 44806こする。 または1493ドル(1ドル= 30ルーブルのコースの場合) | |
-親サーバー上の1 TBのスペースのコスト |
SATA HDD + SSD | 2017年5月の価格 |
---|---|
SATA HDD 4 TB、2個 | 12,000こする。 x 2 |
SSD | 17 100こする。 |
= 41,100ルーブル。 または685ドル(1ドル= 60ルーブルのコースの場合) |
2013年以降、ドルの価格は2倍に上昇しています。 したがって、ルーブルでフラッシュキャッシュを使用するソリューションのコストはRAID 10 SASとほぼ同じであり、費用は2倍です。
ストレージ容量を4倍に増やすことで、1 TBの価格を引き下げました。 今ではルーブルで4倍、ドルで8倍です。
おわりに
2014年にフラッシュキャッシュを導入しました。VDSに提供されるスペースを4倍に増やし、ディスクサブシステムとの対話速度を向上させました。 この決定は以前の決定よりも安価であり、VDSの価格を引き上げずにコストを削減できます。
信頼性には疑問が残りましたが、HW RAID 10 SASでのクラッシュはほとんどありませんでした。 2015年5月、信頼性と速度が重要な人々のために、SSDを主なキャリアとする関税を導入しました。