ほんの数日前に、私たちは最新のストレージシステムを試運転しました。これは過去6か月間取り組んでいます。 その新機能を説明する前に、その開発の歴史について説明します。
ストレージシステムはクラウドホスティングのデバイスの基盤であることにすぐに注意してください。 2つの必須ストレージ要件があります。 まず、ユーザーの仮想マシンがコンピューティングノード間を自由に移動できるように、ネットワーク化する必要があります。 第二に、多数の顧客が同時に使用するため、並列操作に生産的でなければなりません。
システムを設計した当時、これは2007年で、市場でネットワークストレージを編成するための3つの主要なテクノロジーがありました。iSCSIover Ethernet 1/10 Gbit / s、FibreChannel 4 Gbit / s、Infiniband 40 Gbit / sです。 価格特性などの調査を行った後、Infinibandの最後のオプションを選択しました。 これにより、ストレージシステムとIPデータの転送の両方に1つのネットワークファクトリを使用できました。 多くの人が、Infinibandをスーパーコンピューターの世界からの非常に高価なエキゾチックなテクノロジーと考えることに慣れているため、一見、これは奇妙に思えます。 しかし、単純な価格比較は、この場合、Infinibandが非常に経済的であることを示しています。
したがって、私たちはおそらく、Infinibandを適用した世界ホスティングの歴史上最初の会社になりました。 現在、私たちのほかに、
アメリカと精通したロシアのホスティング会社と、社内のニーズに合わせたデータセンターがこれを探しています。
ストレージ自体については、Infinibandと連携できる既製の生産的なソリューションは見つかりませんでした。
LSIと
DDNには何かがありましたが、非常に生の形式でした。 iSCSIとFCに基づいてフォールトトレラントソリューションのコストを再度計算したところ、結果の価格で誰もそれらを購入できないことがわかりました。
その瞬間、IBMの商用製品であるGPFSクラスターファイルシステムの使用経験がある
Maxim Lapanが入社しました。 GPFSはInfinibandと直接連携し、そのすべての機能を最大限に活用でき、バックアップ用のすべてのツールを備えていることが判明しました。 そのため、Skalaxiクラウドストレージシステムの最初のバージョンが作成されました。 GPFSノードでraid10を使用し、ノード自体の二重の冗長性を使用しました。 仮想マシンのディスクイメージは、GPFS上の通常のファイルの形式で配置されます。
ただし、操作中にGPFSが問題を非常に不十分に解決することが判明しました。 まず、クラスターの構成中に頻繁にクラッシュします(新しいノードの追加など)。 私たちの道を辿った同僚は今、様々な
問題に直面してい
ます 。 第二に、低パフォーマンス:GPFSは元々、たとえばビデオファイルのストリーミングなど、大きなデータの連続作業用に設計されており、小さなブロックへのランダムアクセスが前面に出てくるユーザーディスクイメージの作業用ではありません。
私たちは問題について考え始め、さまざまな解決策を試しました。 同時に、プロプライエタリで予測不可能なテクノロジーから逃れたいと強く思っていました。 VA Linux Systemsの開発であるVastSkyに
出会いました 。 そのアーキテクチャは、私たちが目指していたものと非常に似ていました-
デバイスマッパードライバーを使用してユーザーイメージを操作します。 LVMもこのドライバーに基づいて動作し、基本的にその管理ユーティリティです。 ただし、VastSkyはまだ運用システムで使用する準備ができていません。
しかし、このコンセプトにより、私たちは正しい軌道に乗っていると確信しました。 その結果、ストレージシステムの新しいバージョンが開発されました。 彼女の図は次のとおりです。
クラウドには3種類のサーバーがあります。
VRT(ViRTualization)-クライアント仮想マシンを実行するディスクレス仮想化サーバー。
IBRP(IB Raid Proxy)-タスクがRAIDのサービスを提供するストレージシステムプロキシ。
IBRN(IB Raid Node)-ディスクとキャッシュを含むストレージシステムノード。
IBRNを使用したフロントラックの写真:
戻る:
Photo Infinibandスイッチ:
すべて次のように機能します。
-IBRNは、最速のオープンSCSIターゲットドライバである
キャッシュされたSCSTドライバを使用して、Infiniband
SRP (SRP-SCSI over RDMAプロトコル)を使用してドライブをエクスポートします。 SCSTは一般的に良いことで、同じMaxim Lapanからアドバイスを受けました。 彼女のロシア人を開発します。 Linuxを使用して、あらゆるボックスからエンタープライズレベルのストレージを作成できます。
-IBRPはIBRNからディスクを受信し、mdを使用してraid10を収集する各IBRNペアについて、競合状態での動作を慎重に検証したコードを使用して、このraidでLVグループを作成し、SCSTを介してキャッシュなしで再度エクスポートします。
-VRTはすべてのIBRPからディスクを受信し、マルチパスドライバーはそれらからラウンドロビングループを作成し、すべてのIBRPに負荷を分散します。
-IBRPの1つで新しいディスクを作成すると、lvcreateコマンドが実行され、作成されたボリュームのデバイスマッパーテーブルが記憶されます。デバイスマッパーを介して、デバイスはすでにVRTで作成され、Xenに与えられます。
-クライアント仮想マシンからのI / O書き込み操作はIBRPに到達し、mdになり、両方のIBRNにmdレコードが記録され、その後で操作が成功したという応答が返されます。 したがって、I / Oノードがクラッシュした場合、クライアントマシンでの操作は正しく処理されます。
一見、多くのレベルがあり、生産性が低下するようです。 しかし、そうではありません。Infinibandバスの速度はSASの速度を上回り、設計全体が少なくともローカルディスクより遅くなく動作し、96 GBのキャッシュを使用すると、数倍を超えます。
次に、このシステムのフォールトトレランステストシナリオのリストを作成し、何度も実施しました。結果は以下のとおりです。
1. IBRNのハンギングまたは栄養の低下。
テストに合格しました。 しばらくの間、クライアントマシンのI / Oは、IBRPのディスクタイムアウトが機能するまで凍結されます。 次に、IBRPのmdは、落ちたIBRNのディスクを切断し、引き続き動作します。 IBRNリカバリ後、md同期は24時間以内に成功します。
2. SCSTドライバーをアンロードして、IBRNを停止します。
テストに合格しました。 イベントのコースは前のテストと似ていますが、タイムアウトはありません。
3. IBRPの吊り下げまたは栄養の低下。
テストに合格しました。 タイムアウトにより、SRPセッションは中断し、VRTのマルチパスはパスを削除します。 クライアントマシンでは、マルチパスタイムアウト中にすべてのI / Oがフリーズします。
4. SCSTドライバーをアンロードして、IBRPを停止します。
テストに合格しました。 SCSTがアンロードされた後、SRPセッションは正しく切断され、VRTのマルチパスはすぐにパスを失敗としてマークします。 顧客にとっては、すべてが透明でタイムアウトなしに見えます。
5. IBRNの不良ディスク(ディスクをホットに引き出します)。
テストに合格しました。 ディスクはIBRNで消え、エラーが注入され、エラーもIBRPに注入され、mdは常にミラーにリダイレクトします。 ディスクを挿入し直すと、mdの同期は24時間以内に成功します。
6. Infiniband
スイッチを再起動します。
テストに合格しました。 スイッチは電源によって数秒間オフになり、再びオンになりました。 再起動中に、IBリンクの落下と上昇、SRPセッションの破壊と復元、VRT上のマルチパスパスの一時的なドロップが観察されました。 再起動中にクライアントI / Oがフリーズします。
7. IBRPとIBRNの同時下落。
テストに合格しました。
8. SCSTドライバーをアンロードして、IBRNペアを同時に停止します。
テストに合格しました。 テスト中、IBRNペアは停止され、再起動され、サービスが再開されました。 この間ずっと、I / Oクライアントマシンは凍結され、すべてのクライアントマシンが解凍された後、I / O操作が再開されました。 結論-IBRNペアの同時停止を実行して、スケジュールされた時間帯(2晩から午前6時まで)に物理IBRNサーバーにサービスを提供できます。
すべてのストレージシステムサーバーは
Oversan-Mercuryデータセンターにあり、独立した入力からの2つの電源が各ラックに接続されていることを思い出してください。これは、UPSとディーゼル発電機によってさらに予約されています。 したがって、このようなストレージを削除するには、DCへのディーゼル燃料の供給をブロック(たとえば、OMON)し、モスクワ全体を1週間停止する必要があります。
新しいストレージシステムのパフォーマンスは実に巨大で、1組のIBRNから12万IOPS以上の記録を得ることができました。 しかし、ロシアと外国のさまざまなクラウドホスティングサービスのディスクサブシステムのパフォーマンスの比較分析を行った後、次の投稿のいずれかでこれについて説明します。
既に新しいストレージシステムをテストする場合は、既存のサーバーの
クローンを作成するか(新しいディスクはすべて新しいシステム上に作成されます)、最終移行を行う次の週まで待つことができます。 Skalaxiにまだサーバーを持っていない人のために、テストに登録するとき、
150ルーブルが利用可能です。