Alibaba Cloud NVMe disk and shared storage

7x24 高可用性はどのように実現されるのか

現実の世界では、単一障害点の存在は日常茶飯事であり、障害発生時の業務継続性を確保することこそ、高可用性システムのコア能力である。金融、保険、行政などの重要業務で 7x24 高可用性をどのように確保するのか。一般的に、業務システムはコンピュート、ネットワーク、ストレージで構成される。クラウド上では、ネットワークマルチパスとストレージ分散により安定した高可用性が確保されている。しかし、ビジネスのフルリンク高可用性を実現するには、コンピュート側とビジネス側の単一障害点も解消する必要がある。一般的なデータベースを例に取ると、単一障害点による業務停止はユーザーにとって受け入れがたい。停電、ダウンタイム、ハードウェア障害などでインスタンスが利用不能になった場合、どのようにして業務を迅速に復旧するのか。

シナリオによってソリューションは異なる。MySQL では通常、マスター・スレーブアーキテクチャを構築してビジネスの高可用性を実現する。マスターデータベースに障害が発生した場合、スレーブデータベースに切り替えて外部へのサービス提供を継続する。しかし、インスタンス切り替え後にマスター・スレーブ間のデータ整合性をどのように確保するのか。データ損失に対するビジネスの許容度に応じて、MySQL では通常、同期または非同期のデータレプリケーションを使用するが、これにより追加の問題が生じる。一部のシナリオでのデータ損失、同期レプリケーションによるシステムパフォーマンスへの影響、ビジネス拡張時に機器一式と全データレプリケーションの追加が必要、アクティブ/スタンバイ切り替え時間の長さによる業務継続性への影響などである。このように、高可用性システムを構築しようとするとアーキテクチャが複雑化し、可用性、信頼性、スケーラビリティ、コスト、パフォーマンスなどを同時に満たすことが難しくなる。両方を兼ね備えた、より先進的なソリューションはあるのだろうか。答えは明確だ。ある。

共有ストレージを通じて、異なるデータベースインスタンスが同じデータを共有でき、コンピュートインスタンスの高速切り替えにより高可用性を獲得できる(図 1)。
ここでの鍵は共有ストレージである。従来の SAN は高価で、拡張や縮小が難しく、ストレージコントローラ自体がボトルネックになりやすい。利用のハードルの高さはユーザーにとって不便である。より優れ、より高速で、より経済的な共有ストレージでユーザーの課題を解決できないだろうか。最近リリースされた Alibaba Cloud の NVMe クラウドディスクと共有機能が、ユーザーのニーズを完全に満たす。次に、これらに注目していく。ここで 1 つ質問がある。インスタンス切り替え後、元のデータベースがまだデータを書き込んでいる場合、データの整合性をどのように確保するのか。読者はまず考えてみてほしい。

歴史の変遷:クラウド上の SAN と NVMe

私たちは「データは新たな石油」というデジタルエコノミー時代に突入した。クラウドコンピューティング、人工知能、IoT、5G などの技術の急速な発展がデータの爆発的成長を推進している。IDC の 2020 年レポートによると、グローバルデータ規模は年々増加し、2025 年には 175 ZB に達し、データは主にパブリッククラウドと企業データセンターに集中すると予測されている。データの急増は、ストレージの発展に新たな原動力と要件をもたらした。次に、ブロックストレージの形態がどのように段階的に進化してきたかを振り返る。

DAS:ストレージデバイスは直接接続(SCSI、SAS、FC などのプロトコル)を通じてホストに接続される。システムはシンプルで設定・管理が容易、コストも低い。ただし、ストレージリソースを十分に活用・共有できないため、集中管理と保守は難しい。

SAN:ストレージアレイとビジネスホストは専用ネットワークで接続され、一元管理とデータ共有の問題を解決し、高性能・低レイテンシのデータアクセスを可能にする。しかし、SAN ストレージは高価で、運用保守が複雑、スケーラビリティに乏しく、ユーザーにとってハードルが高い。

オールフラッシュ:基盤ストレージメディアの変革とコスト低下により、オールフラッシュ時代が到来した。ストレージパフォーマンスのボトルネックがソフトウェアスタックに移行し、ソフトウェアの大規模な変革が求められ、ユーザーモードプロトコル、ソフトウェア・ハードウェア統合、RDMA などの技術の急速な発展を推進し、ストレージパフォーマンスの飛躍的向上をもたらした。

クラウドディスク:クラウドコンピューティングの急速な発展期に、ストレージはクラウドへ移行した。クラウドディスクは本質的な優位性を持つ。柔軟性、使いやすさ、容易な拡張性、高い信頼性、大容量、低コスト、運用保守フリー。デジタルトランスフォーメーションプロセスにおけるストレージの堅牢な基盤となった。

クラウド SAN:あらゆる面でストレージビジネスをサポートし、従来の SAN ストレージを置き換えるため、クラウド SAN が時代の要請に応じて登場した。クラウドディスクの多くの利点を継承しつつ、従来の SAN ストレージ機能も備え、共有ストレージ、データ保護、同期/非同期レプリケーション、即時スナップショットなどの機能を含み、エンタープライズストレージ市場で引き続き活躍するだろう。

一方、NVMe はストレージプロトコルの進化において新時代の寵児となりつつある。

SCSI/SATA:かつては、ハードディスクはほとんど低速デバイスだった。データは SCSI 層と SATA バスを通じて転送され、パフォーマンスはメカニカルハードディスクなどの低速メディアに制限されており、SATA シングルチャネルと SCSI ソフトウェア層のパフォーマンス上の欠点は目立たなかった。

VirtIO-BLK/VirtIO-SSCSI:仮想化技術とクラウドコンピューティングの急速な発展に伴い、VirtIO-BLK/VirtIO-SSCSI はクラウドコンピューティングの主流ストレージプロトコルとなり、ストレージリソースの利用をより柔軟、俊敏、安全、スケーラブルにした。

NVMe/NVMe oF:フラッシュメモリ技術の発展と普及は、新世代のストレージ技術革命を推進した。ストレージメディアがもはやパフォーマンスの障壁でなくなったとき、ソフトウェアスタックが最大のボトルネックとなり、NVMe/NVMe oF、DPDK/SPDK、ユーザーモードネットワークなどの高性能で軽量なプロトコルの誕生を促した。NVMe プロトコルファミリーは高性能、先進的な機能、高いスケーラビリティを備え、クラウドコンピューティングの新時代を確実にリードするだろう。

予見可能な将来において、クラウド上の SAN と NVMe が未来のトレンドになることは、必然的な流れである。

クラウドディスクの新時代 NVMe

フラッシュメモリ技術の急速な発展と普及に伴い、パフォーマンスボトルネックはソフトウェア側に移行した。ストレージパフォーマンスと機能に対するより高い要求が、NVMe を歴史の舞台に押し上げた。NVMe は高性能デバイス向けに特別に設計されたデータアクセスプロトコルである。従来の SCSI プロトコルと比較して、NVMe はよりシンプルで軽量であり、マルチキュー技術によりストレージパフォーマンスを大幅に向上できる。同時に、NVMe は豊富なストレージ機能も提供している。2011 年の誕生以来、NVMe 規格はプロトコルの継続的な改善を通じて、複数のネームスペース、マルチパス、T10-DIF 全リンクデータ保護、Persistent Reservation 権限制御プロトコル、アトミックライトなど、多くの先進機能を標準化してきた。これらの新しいストレージ機能は、ユーザーの価値創造に貢献し続けるだろう。

NVMe の高いパフォーマンスと豊富な機能は、エンタープライズストレージの堅牢な基盤を提供する。さらに、プロトコル自体のスケーラビリティと進化可能性は、NVMe クラウドディスク進化のコア推進力となっている。NVMe クラウドディスクは ESSD を基盤としており、ESSD の高い信頼性、高可用性、高性能、アトミックライトなどの能力、およびネイティブスナップショットデータ保護、クロスリージョンディザスタリカバリ、暗号化、即時パフォーマンス変更などの ESSD エンタープライズ機能を継承している。ESSD と NVMe 機能の統合は、エンタープライズアプリケーションのニーズに効果的に対応し、NVMe ベースと SCSI ベースのビジネスの大部分をシームレスにクラウド移行させることができる。本稿で説明する共有ストレージ技術は、NVMe Persistent Reservation 規格に基づいて実装されている。NVMe クラウドディスクの追加機能の 1 つとして、マルチマウントと IO フェンシング技術は、ユーザーのストレージコストを大幅に削減し、ビジネスの俊敏性とデータ信頼性を効果的に向上させる。

エンタープライズストレージの最前線:共有ストレージ

前述のように、共有ストレージはデータベースの高可用性問題を効果的に解決できる。主な機能としてマルチマウントと IO フェンシングがある。データベースを例に、その仕組みを説明する。

ビジネス高可用性の鍵――マルチマウント

マルチマウントにより、1 台のクラウドディスクを複数の ECS インスタンスに同時にマウントでき(現在最大 16 台までサポート)、すべてのインスタンスが読み書きモードでクラウドディスクにアクセスできる(図 6)。マルチマウントを通じて、複数ノードが同じデータを共有でき、ストレージコストを効果的に削減できる。単一ノード障害時、ビジネスは健全なノードへ迅速に切り替えることができる。なお、共有ストレージはデータ層の整合性と復旧機能を提供するが、最終的なビジネス整合性を実現するには、データベースログリプレイなどの追加処理が必要になる場合があることに注意が必要である。

一般的に、スタンドアロンのファイルシステムはマルチマウントには適さない。ext4 などのファイルシステムはファイルアクセスを高速化するためにデータとメタデータをキャッシュする。ファイル更新情報が他のノードにタイムリーに同期されないため、複数ノード間でデータの不整合が発生する。メタデータの非同期は、ノード間のディスク領域アクセス競合にもつながり、データエラーを引き起こす。したがって、マルチマウントは通常、OCFS2、GFS2、GPFS、Veritas CFS などのクラスターファイルシステムと組み合わせて使用する必要がある。Alibaba Cloud の DBFS や PolarFS もこの機能を備えている。

マルチマウントがあれば安心できるだろうか。マルチマウントは万能ではなく、自力では解決できない独自の盲点がある。それは権限管理である。通常、マルチマウントベースのアプリケーションは、Linux Pacemaker などのクラスター管理システムに依存して権限を管理する必要がある。しかし、一部のシナリオでは権限管理が失敗し、深刻な問題を引き起こす。記事の冒頭で提起した問題を振り返ってみよう。高可用性設定では、プライマリインスタンスは異常発生時にスタンバイインスタンスに切り替わる。もしプライマリインスタンスがサスペンド状態(ネットワークパーティション、ハードウェア障害などのシナリオ)にある場合、自身がまだ書き込み権限を持っていると誤認し、スタンバイインスタンスと同時にダーティデータを書き込んでしまう。このリスクをどのように回避するのか。ここで IO フェンシングの出番である。

データ整合性の確保――IO フェンシング

ダーティデータ書き込みの問題を解決する選択肢の 1 つは、元のインスタンスの処理中のリクエストを終了させ、新しいリクエストの発行を拒否し、古いデータが書き込まれないことを確認してからインスタンスを切り替えることである。この考え方に基づく従来のソリューションが STONITH(Shoot The Other Node In The Head)であり、障害発生マシンをリモートで再起動することで古いデータの書き込みを防止する。しかし、この方式には 2 つの問題がある。1 つ目は、再起動プロセスが長く、ビジネス切り替えが遅いため、通常数十秒から数分間の業務停止が発生すること。さらに深刻なのは、クラウド上の IO パスは長く多くのコンポーネントが関与するため、コンピュートインスタンスのコンポーネント障害(ハードウェア障害、ネットワーク障害など)により IO が短時間で復旧できず、データの正確性を 100% 保証できないことである。

この問題を根本的に解決するため、NVMe は Persistent Reservation(PR)機能を標準化し、NVMe クラウドディスクの権限設定ルールを定義し、クラウドディスクとマウントノードの権限を柔軟に変更できるようにした。このシナリオでは、マスターデータベースに障害が発生した場合、スレーブデータベースはまず PR コマンドを送信してマスターデータベースの書き込み権限を禁止し、マスターデータベースからの処理中のリクエストをすべて拒否する。この時点で、スレーブデータベースはリスクなしにデータを更新できる(図 7)。IO フェンシングは通常、アプリケーションがミリ秒レベルでフェールオーバーを完了するのを支援し、障害復旧時間を大幅に短縮する。サービスのスムーズな移行により上位層アプリケーションはほぼ感知せず、STONITH と比べて質的な飛躍である。次に、IO フェンシングの権限管理技術についてさらに詳しく紹介する。

権限管理の切り札――Persistent Reservation

NVMe Persistent Reservation(PR)プロトコルは、クラウドディスクとクライアントの権限を定義する。マルチマウント機能と組み合わせることで、効率的、安全かつ安定的なサービス切り替えを実現する。PR プロトコルでは、マウントノードは Holder、Registrar、Non-Registrar の 3 つの ID を持つ。名前から分かるように、Holder はクラウドディスクの全権限を持ち、Registrar は一部の権限を持ち、Non-Registrar は読み取り専用権限のみを持つ。同時に、クラウドディスクには 6 つの共有モードがあり、排他的、1 回書き込み複数読み取り、複数書き込みの機能を実現できる。共有モードとロール ID を設定することで、各ノードの権限を柔軟に管理でき(表 1)、豊富なビジネスシナリオのニーズを満たすことができる。NVMe PR は SCSI PR の全機能を継承しており、SCSI PR ベースのアプリケーションはほとんど変更せずに NVMe 共有クラウドディスク上で動作できる。

表 1:NVMe Persistent Reservation 権限表

マルチマウントと IO フェンシング機能を組み合わせることで、完璧な高可用性システムを構築できる。さらに、NVMe 共有ディスクは 1 回書き込み複数読み取りの機能も提供し、読み書き分離データベース、機械学習モデルトレーニング、ストリーム処理などのシナリオで広く活用されている。加えて、共有クラウドディスクを通じて、イメージ共有、ハートビート検出、調停、ロック機構などの技術を容易に実現できる。

NVMe クラウドディスク技術の全貌

NVMe クラウドディスクは、コンピュート・ストレージ分離アーキテクチャに基づいて実装されている。DPCA ハードウェアプラットフォームに依存して効率的な NVMe 仮想化と超高速 IO パスを実現し、Pangu 2.0 ストレージを基盤として高い信頼性、高可用性、高性能を実現している。コンピュートとストレージはユーザーモードネットワークプロトコルと RDMA で相互接続されている。NVMe クラウドディスクは、高性能・高可用性技術のフルスタック集大成である(図 9)。

NVMe ハードウェア仮想化:NVMe ハードウェア仮想化技術は DPCA MOC プラットフォーム上に構築され、送信キュー(SQ)と完了キュー(CQ)を通じてデータフローと制御フローの効率的な相互作用を実現している。シンプルな NVMe プロトコルと効率的な設計にハードウェアオフロード技術を組み合わせ、NVMe 仮想化レイテンシを 30% 削減している。

超高速 IO チャネル:DPCA MOC のソフトウェア・ハードウェア統合技術に基づき、超高速 IO チャネルを実現。IO パスを効果的に短縮し、究極のパフォーマンスを獲得している。

ユーザーモードプロトコル:NVMe は新世代の Solar-RDMA ユーザーモードネットワーク通信プロトコルを採用し、Leap CC 独自の輻輳制御と組み合わせることで、信頼性の高いデータ転送を実現し、ネットワークのロングテールレイテンシを低減している。25G ネットワークベースのジャンボフレームにより効率的なラージパケット転送を実現し、データプレーンとコントロールプレーンの完全な分離によってネットワークソフトウェアスタックを簡素化し、パフォーマンスを向上させている。ネットワークマルチパス技術は、リンク障害からのミリ秒レベル復旧をサポートしている。

コントロールプレーン高可用性:Pangu 2.0 分散高可用性ストレージにより NVMe コントロールセンターを実現し、NVMe 制御コマンドがコントロールノードを経由しなくなることで、IO に近い信頼性と可用性を獲得。ユーザーのミリ秒レベルのビジネス切り替えを実現できる。NVMe コントロールセンターに基づき、複数クライアントとサーバー間の正確なフロー制御を実現し、IO に対する正確な分散フロー制御をミリ秒レベルで実現。さらに、分散システム上で複数ノードの IO フェンシング整合性を実現。クラウドディスクパーティション間の権限は 2 フェーズ更新により一貫に保たれ、パーティション権限の問題を効果的に解決している。

大規模 IO アトミック性:分散システムに基づき、コンピュート、ネットワーク、ストレージのエンドツーエンドで大規模 IO のアトミックライト機能を実現。IO が隣接する 128K 境界を越えない条件下で、同じデータが部分的に書き込まれないことを保証する。これはアトミックライトに依存するデータベースなどのアプリケーションシナリオで重要な役割を果たし、データベースのダブルライトプロセスを効果的に最適化することで、データベースの書き込みパフォーマンスを大幅に向上させる。

現状と今後の展望

現在の NVMe クラウドディスクは、業界で最も先進的なソフトウェアとハードウェア技術を組み合わせている。クラウドストレージ市場で初めて、NVMe プロトコル、共有アクセス、IO フェンシング技術を同時に実現した。ESSD を基盤として高い信頼性、高可用性、高性能を獲得すると同時に、マルチマウント、IO フェンシング、暗号化、オフライン容量拡張、ネイティブスナップショット、非同期レプリケーションなど、NVMe プロトコルに基づく豊富なエンタープライズ機能を実現している。

現在、NVMe クラウドディスクと NVMe 共有ディスクは既に招待制テストを開始しており、RAC、SAP HANA、内部データベースチームから初期認証を取得している。今後はパブリックテストの範囲をさらに拡大し、商用化を進めていく。予見可能な将来において、NVMe クラウドディスクを中心に、オンライン拡張、T10-DIF 全リンクデータ保護、クラウドディスクマルチネームスペースなどの先進機能を段階的に進化させ、包括的なクラウド SAN 機能へと発展させていく予定である。

Related Articles

Explore More Special Offers

  1. Short Message Service(SMS) & Mail Service

    50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00

phone お問い合わせ
Hi, I'm Alibaba Cloud AI Assistant!
I can help with questions and solutions.