クラウド屋さんになりたい

地方でインフラエンジニアやってます。 仮想環境を含めた広義のクラウド屋さんを目指して、勉強したことや思ったことをゆるく書いてみます。 時代や最新技術の流れに置いていかれないよう、のんびりでもコツコツ頑張りたいなあ。

Nutanixバイブルを読んでみた(10.3 ストレージ④)

はじめに

前回に引き続きNutanixバイブルを読み進めていきます。前回の記事はこちら。 cloudshopper.hatenadiary.com

※個人的な勉強メモとなりますので、記載内容について一切の責任は持ちません。
※また、個人的に感じたことは網掛け部分に記載しています。

今日のトピックス

Nutanix Cloud バイブル(日本語版)を読んで内容をまとめてみる。
・本記事の対象は、「AOS (Storage for Compute VMs)」-「10.3 ストレージ」の下記2項目。
 ・「10.3.5 可用性ドメイン
 ・「10.3.6 データパスの回復性能」

可用性ドメイン

  • ノード/ブロック/ラックの障害に備えて、データや構成情報を分散配置する仕組み。
  • Nutanixでは以下の階層での可用性(アウェアネス)をサポートしている。
    • ディスク
    • ノード(定義:1台のサーバー)
    • ブロック(定義:1~4ノードを含むシャーシ筐体)
    • ラック(定義:1つ以上のラックを含む物理ユニット)

アウェアネスとは、Nutanixクラスタ内の各コンポーネントの配置に関する概念のことで、ストレージやVMのデータ配置の可用性を高めるために、物理的なブロックやラック単位の冗長性を意識する仕組み。

アウェアネスを持つべき(保護すべき、と理解)要素として、データ(VMデータ) / メタデータ(Cassandra) / 設定データ(Zookeeper)の3種類があります。

  1. データ(VMデータ)に対するアウェアネス
    • 意味:仮想マシンのデータ(vDisk)がどのノードに存在しているか?どのディスクに保存されているか?を意識。
    • 目的:
      • データ冗長性(RF)を維持
      • 障害時に迅速な復旧
      • パフォーマンス最適化(ホットノード回避)

  2. メタデータ(Cassandra)に対するアウェアネス
    • 意味:クラスタ全体で共有されるvDiskのブロックマッピングや統計情報等の管理情報を、どのノードで保持・管理されているか?を意識。
    • 目的:
      • メタデータの一貫性(ACID準拠)
      • 分散管理によるスケーラビリティ
      • ノード追加時の効率的な再配置

  3. 設定データ(Zookeeper)に対するアウェアネス
    • 意味:クラスタの構成情報(ノードの状態、リーダー選出、サービスの有効/無効など)をクラスタ全体で共有することを意識。
    • 目的:
      • クラスタの健全性維持
      • 障害時のフェイルオーバー
      • サービスの状態管理

データパスの回復性能

Nutanixではハードウェアは壊れることを前提として設計されており、障害時でも稼働を維持しながら自動的に回復できるようになっている。データやメタデータは、クラスタのRF(レプリケーションファクター)やFT(フォールトトレランス)によって保護されている。

通常時のデータ配置は、VMのデータ(vDisk)はクラスタ内の複数ノードやディスクに2~3重に分散保存される。書き込み時には、プライマリとセカンダリのコピーがローカルおよびリモートノードに配置され、ホットスポットを防止している。

  • 障害発生時の回復
    • AOSは、ディスク障害 / ノード障害 / CVM障害に対応できるように設計されている。
      • ディスク障害
        • 全体の流れ:
          • StargateがI/Oエラーを検知、Curatorスキャンが実行される。
          • スキャンにより、障害発生ディスク上に保存されていたデータやレプリケーション先となっているノード/ディスクを検索する。必要に応じて再レプリケーションも実行される。
        • VMへの影響:特に無し(I/O継続、レイテンシ影響も無し)

      • ノード障害
        • 全体の流れ:
          • VMはHAによりクラスタ内の他ノード上で再起動。I/Oは新しいノード上のCVMが担う。
          • ディスク障害時と同様に、Curatorスキャンが実行される。
          • スキャンにより、障害発生ディスク上に保存されていたデータやレプリケーション先となっているノード/ディスクを検索する。必要に応じて再レプリケーションも実行される。
        • VMへの影響:再起動あり、I/Oやレイテンシには影響無し

      • CVM障害
        • 全体の流れ:
          • I/Oはクラスタ内の他ノード上のCVMにリダイレクトされ、透過的に処理が継続される。
          • ローカルノード上のCVMが復旧すると、元の経路に切り戻る。
        • VMへの影響:特に無し、ただしネットワーク負荷が一時的に増加する可能性あり

  • レジリエンスキャパシティ
    • レジリエンスキャパシティとは、障害発生後にRFを維持するために必要となる最小限の空きリソースのこと。
    • 計算式の例:レジリエントキャパシティ=(クラスタ総容量 - 障害ドメイン容量)×0.95
    • 状況はPrismのダッシュボードで確認可能、デフォルトでは全体の75%に設定されている。

おわりに

今回もデータ保護に関する話がメインでした。Nutanixの「ハードウェアは壊れること」を前提とした設計は良いですね。IT分野で働いていると、「壊れないものは無いよな…」としみじみ思うことが多々あります。利用者目線に立った設計を行った製品を提供してくれるNutanixがより好きになりました。

「Nutanixバイブル読んでみた」シリーズのリンク集はこちら!よろしければ別の章もご覧ください! cloudshopper.hatenadiary.com