O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Nutanixを支える技術 - How OSSes work in Nutanix

108 visualizações

Publicada em

オープンソースカンファレンス2019北海道の登壇資料です。
Nutanixの内部アーキテクチャーとそこで活用されているOSSについて解説しています。

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Nutanixを支える技術 - How OSSes work in Nutanix

  1. 1. を支える技術 ニュータニックス・ジャパン合同会社 テクニカルエバンジェリスト 島崎 聡史
  2. 2. • 本資料は、2019年5月時点における弊社の一般的な構想および製品機能の概要を説明を主目的 とするものです。 • 本資料は情報提供を唯一の目的とするものであり、法律的またはその他の指導や助言を意図 したものではなく、いかなる契約にも用いることはできません。 • 本資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現 状」で提供され、明示的または暗示的に関わらず、いかなる保証も伴わないものとします。 • 本資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害 か生した場合も、Nutanix Inc.及びニュータニックス・ジャパン合同会社は責任を負わないも のとします。 • 本資料で提供する情報やマテリアル、機能を確実に提供することを確約するものではありま せん。弊社製品に関して記載されている機能の開発、リリースおよび時期については、弊社 の裁量により決定されます。
  3. 3. 本日お話しすること しないこと お話しすること • が提供するハイパーコンバージドインフラ の 基本コンセプトとアーキテクチャ基礎 • その中で がどのように活用されているか • 時々ピンポイントで異常に細かい分散アーキテクチャの話 • と の関わり お話ししないこと • の 以外のプロダクトについて • ビジネスっぽい話
  4. 4. 基本コンセプト
  5. 5. 統合管理ツール ハイパー コンバージド インフラストラクチャ ごく普通のサーバー × ソフトウェア ↓ クラスタ化された自律的インフラ 仮想化ソフトウェア VM VM ストレージ コントローラ ストレージ コントローラ ストレージ コントローラ ストレージ コントローラ サーバー サーバー ストレージ コントローラ ストレージ コントローラ x86サーバー + SAN + 共有ストレージ装置 複雑さが 問題だ 仮想化ソフトウェア VM VM
  6. 6. 複雑さ ボトルネック 制約条件の理論 TOC - theory of constraints, 物理学者 エリヤフ・ゴールドラット •「ボトルネック(制約条件)以外への注力は •全体スループットの向上に寄与しない」
  7. 7. インフラにまつわるボトルネックいろいろ • 環境をすぐに用意できない • 性能・リソースが十分でない • 障害で停止していることが多い • 定常運用の手間暇が掛かりすぎる • 特定の人しか運用できない 優秀な エンジニアへの依存は 企業活動全体から見れば ボトルネックになり得る くは悟 れや空 ____ |く!! ∠ヾ:/二>\ |き / ≧|//≦ U ヽ って /~/二二二\~ u | !! ( /L| ヒ| /⌒i || (⌒C⌒|u 6)| ヽVヲ⌒/⌒/ヲ (_ノ ヽ\ー―/ / _/ ̄\_\ ̄ ̄ |ヘ/ / / \)三 // Y (二 _/ \ヽノ /
  8. 8. ベースは スケールエンジニアリング 特殊なハードウェアを使わない インテリジェンスソフトウェア スケールアウトアーキテクチャー 自己回復型システム 豊富な自動化と分析機能 X86 X86 X86 ただし、クラウドの規模で動いているアーキテクチャをそのまま持ちこむのではなく オンプレの規模感に最適化し「クラウドのメリットや使い勝手の再現」に注力 初代 元 の は 私が考えた
  9. 9. クラスターと • NutanixのHCIはController VM(CVM)により制御される • CVMの役割は統合管理サーバーであり、ストレージコントローラーでもある 分散ストレージ ファブリック SSD SSD HDD HDD HDD HDD SSD SSD HDD HDD HDD HDD SSD SSD HDD HDD HDD HDD
  10. 10. 単一ノード内の構成 の 基本的な 位置づけ • から見ると • はハイパーバイザーの先にある ストレージ装置のため、特に意識しない • ハイパーバイザーから見ると • は自身の上で稼働する • は一般的なストレージプロトコルで アクセス可能な普通のストレージ装置 • コントローラから見ると • により、 パススルーを介して 直接的に を制御される User VM ハイパーバイザー Controller VM SCSIコントローラ SSD SSD HDD HDD HDD HDD VM I/O PCIパススルー
  11. 11. の基本的な仕組みと特長 データローカリティ 分散ストレージ ファブリック • データを書き込む際に、複数ノードへ多重化する • 多重化したデータのうち、 つはローカルに書き込むことで、 筐体間ネットワークトラフィックを削減
  12. 12. の基本的な仕組みと特長 データローカリティ 分散ストレージ ファブリック • ローカルから読み込むことで、筐体間のネットワーク トラフィックが発生しない
  13. 13. データローカリティの維持・回復 分散ストレージ ファブリック • やライブマイグレーションにより、データローカリティは一時的に低下 • 他ノード上のデータでも、 間での処理によりアクセス可能 • 他ノードからの読込みが繰り返し発生したデータのみを移動してローカリティを回復 →使用頻度の低いデータの無駄な移動は極力行わない
  14. 14. データローカリティと言えば • 大規模データの蓄積や分析 • を支える分散ファイルシステム • デフォルトでデータのレプリカを つ保持する • データ処理方法の つ • データローカリティが特長 • データのあるノードにジョブを割り振る • のいる場所にデータを配置する • の論文を基に作られた • • • の名前も出てくる ※著者というわけではない やっていることは逆に見えるが、どちらもノードを跨いだ データアクセスを減らし、性能を確保することが目的
  15. 15. CVMの内部構造
  16. 16. の内部サービス 丸暗記はしなくていいです
  17. 17. 代表的なサービス ハイパーバイザーとの バックグラウンドジョブメタデータ管理 構成管理、リーダーシップ制御、 死活監視
  18. 18. 登場する • • の • 各種パラメータのカスタマイズ • のプロファイル造り込み • による自己修復 • その他多数 • • 元は のサブプロジェクト • 分散システム管理ソフトウェア • • から寄贈 • 分散データベース管理システム
  19. 19. • ではメタデータ格納用途に特化しているため、 バージョン の時点で したらしい • • メタデータ 何? • >日記 の をのぞいてみる • http://blog.ntnx.jp/entry/2016/06/04/235957 • 多重度 • データ 重化時 の場合、メタデータ 重化 • データ 重化時 の場合、メタデータ 重化 • データ 重化時 の場合、メタデータ 重化
  20. 20. 分散アーキテクチャによる制御 ノード間でのデータ分散冗長化により、 ノードやディスクの障害に対応 • がノード間でデータを冗長化 • がメタデータによる 整合性の担保を担う
  21. 21. Anatomy of a VDisk write V
  22. 22. Anatomy of a VDisk write V Write data with length L to VDisk V,offset O V V V
  23. 23. Anatomy of a VDisk write - Where should we write the data? V V data L V, O Disk d1 Disk d2 data d1,d2
  24. 24. Metadata update - Make a note of disk selection! V V data L V, O Disk d1 <V, O, L> → <d1, d2> Disk d2 <V, O, L> → <d1, d2>
  25. 25. Anatomy of a VDisk write V V data L V, O Disk d1 <V, O, L> → <d1, d2> Disk d2 <V, O, L> → <d1, d2> data d2 data d1 data d2
  26. 26. Anatomy of a VDisk write - Final acknowledgement! V V Disk d1 data <V, O, L> → <d1, d2> Disk d2 data <V, O, L> → <d1, d2> data d1 d2
  27. 27. New write picks different disks! ( All writes with RF >= 2) V V data’ L’ V, O’ Disk d1 data <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> Disk d2 data Disk d4 data’ Disk d3 data’ <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> d3 d4
  28. 28. Anatomy of a VDisk Read V Disk d2 data Disk d4 data’ <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> V O, L ● V ● V
  29. 29. Find out where was the data written? V V Disk d2 data Disk d4 data’ <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> V O, L <V, O, L>
  30. 30. Now read the data! V V Disk d2 data Disk d4 data’ <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> data data d2
  31. 31. 健全性の維持
  32. 32. ノード障害 CVM ハイパーバイザー VM ストレージ ハイパーバイザー VM ストレージ CVM ハイパーバイザー VM ストレージ CVM 1. HAによるVMの移動と再起動 2. レプリケーションデータを読み込み 3. 失われたデータを再レプリケーション • 障害ノード上で稼働していたVMはHAを利用して他ノードで起動 • CVMはVMが要求するデータをレプリケーションから読み込む • クラスタ全体を耐障害性のある状態に戻すため失われたデータの 再レプリケーションを実施
  33. 33. ディスク障害 CVM ハイパーバイザー VM ハイパーバイザー VM ストレージ ハイパーバイザー VM ストレージ CVM 1. I/O詠込リクエスト 2. レプリケーションデータを読み込み 3. 失われたデータを再レプリケーション ストレージ CVM • ディスク障害が発生してもノード上で稼働するVMには影響なし • CVMはVMが要求するデータをレプリケーションから読み込む • クラスタ全体を耐障害性のある状態に戻すため失われたデータの 再レプリケーション実施
  34. 34. Cluster Healing - クラスタ内の全ノードが冗長性回復処理に参加 Disk d2 data Disk d4 data’ <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> Curator Curator d1,d3 d1,d3 d1,d3
  35. 35. Cluster Healing – 全ノードがレプリカを出し合う Disk d2 data Disk d4 data’ <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> Curator Curator Replicate data for <V,O,L> from d2 d1,d3 d1,d3 Replicate data’ for <V,O’,L’> from d4
  36. 36. Cluster Healing – 特定のディスクがボトルネックにならない設計 Disk d2 data Disk d6 data <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> <V,O,L> → <d1,d2> <V,O’,L’> → <d3,d4> Replicate data for <V,O,L> from d2 to d6 Replicate data’ for <V,O’,L’> from d4 to d5 Disk d5 data’ Disk d4 data’
  37. 37. Cluster Healing – メタデータの更新 Disk d2 data Disk d6 data <V,O,L> → <d2,d6> <V,O’,L’> → <d4,d5> <V,O,L> → <d2,d6> <V,O’,L’> → <d4,d5> Update metadata, location for <V,O,L> → <d2,d6> Disk d5 data’ Disk d4 data’ Update metadata, location for <V,O’,L’> → <d4,d5>
  38. 38. スケーラブルなメタデータ • メタデータの保管にはカスタマイズした Cassandraを使用 • 奇数個のレプリケーションを持つ • Paxosアルゴリズムを採用 • 過半数に書き込まれた時点で合意と見做す • リング型のトポロジ B1N1 B1N2 B1N3 B1N4 R
  39. 39. スケーラブルなメタデータ • クラスタ拡張時は自動的にノードをリングの中に組込む
  40. 40. そのほかの の関わり
  41. 41. をコアに採用したハイパーバイザー
  42. 42. プロジェクトとの関わり • • 等の プロジェクトで微力ながら パッチ提供等の形で参加 • • 認定の 実装である を提供 •
  43. 43. が公開している • コード公開 • • リポジトリ • 旧称 • https://gitlab.com/nutanix • HCI向けベンチマークツール • OSS化することでベンチマーク結果の透明性を担保 • • https://github.com/nutanix • 試験的なものが色々
  44. 44. 参考情報 当資料の元ネタ • 日本語版 • 英語版 原著 特許情報 • •
  45. 45. 本、第 弾が出ました さん 第 章 がめざす とは 第 章 を支える仮想化基盤 第 章 を支えるハイパーバイザー 第 章 の設計・導入 第 章 の運用 第 章 のストレージサービス 第 章 のデータ保護 第 章 高度な管理機能 第 章 による 第 章 第 章 によるアプリケーションの自動展開 第 章 のこれから
  46. 46. 月 日 木

×