PR

VMware Virtual Volumes(VVOL)

2015年4月22日(水)
工藤 真臣

vSphere 6.0で新規に機能追加された、Virtual Volumes(VVOL)について解説します。

VMware社が目指すSoftware-Defined Storageの方向性

Virtual Volumesの説明を始める前に、現在のVMware社のストレージ仮想化に関する取り組みについて、見ていきます。

従来までのvSphereとストレージの連携では、NetApp社のVSC(Virtual Storage Console)やEMC社のVSI(Virtual Storage Integrator)などのストレージベンダーが提供するプラグインをvCenter Serverに追加することで、vSphereとストレージの管理の統合を進めてきました。この方法は、ベンダーごとに独自の実装ができるため、さまざまなストレージベンダー独自機能との連携ができるというメリットがありますが、それと引き換えにいくつかの課題がありました。

vSphere Web Clientから見たNetAppのVSCの機能

図1:vSphere Web Clientから見たNetAppのVSCの機能

課題の1つは、複数のストレージベンダーを管理する場合、運用管理がベンダーごとに異なってしまうという点です。管理画面こそ1つのユーザーインターフェイスから実行できますが、それぞれのストレージベンダーの知識がないと、設定ができません。

そしてもう1つの課題は、Horizon View 、vCloud DirectorやvRealize AutomationそしてOpenStackといった、vSphere基盤と連携する製品からストレージを利用するときには、プラグインから提供される機能を利用できないという点です。これは、ストレージベンダーが提供するプラグインによる拡張が、vCenter Serverのユーザーインターフェイス上からvCenter ServerのAPIを経由せず、各社のプラグインを経由して、ベンダーのストレージAPIを直接呼び出しているためです。

3rdパーティプラグインからのAPI呼び出し

図2:3rdパーティプラグインからのAPI呼び出し

VMware vSphere Storage Policy Based Management (SPBM)とは?

こうした課題を解決するために、VMware社ではvCenter Serverが提供する仮想マシンストレージプロファイルの機能をコントロールプレーンとする、Storage Policy Based Management (SPBM)を提供するようになりました。Storage Policy Based Management(SPBM)はvSphereが持つ仮想マシンストレージポリシーの機能を使って、vSphereが利用するストレージと連携する機能です。

例えばvSphere 5.5から提供されているVMware Virtual SAN(VSAN)は、仮想マシンストレージプロファイルを用いて、ポリシーベースの管理機能を仮想マシン単位に提供します。そして、同様の管理機能をストレージベンダーが提供する外部ストレージで提供するために、VMware社は、Virtual Volumesと呼ばれる標準規格を提供しました。ストレージベンダーがVirtual Volumesの規格に準拠した実装を行うことで、各ベンダーの外部ストレージを、仮想マシンストレージプロファイルベースで管理することができるようになります。

仮想マシンストレージプロファイルベースの管理機能の提供

図3:仮想マシンストレージプロファイルベースの管理機能の提供

vSphere APIs for IO Filtering

さらにStorage Policy Based Management (SPBM)では、Virtual VolumesだけでなくVAIO(vSphere APIs for IO Filtering)という、新たなAPIをサードパーティベンダーに提供することで、I/Oのキャッシュソリューションや、データレプリケーションのソリューションをVSANやVirtual Volumesと同じように、仮想マシンストレージプロファイルで、ポリシーベースの管理に対応する方向性を打ち出しています。

vSphere APIs for IO Filtering

http://blogs.vmware.com/vsphere/2015/02/vaio_filters.html

VMware vSphere Storage Policy Based Management (SPBM)のメリット

Virtual VolumesはvSphere 6.0の新機能ですが、そのコンセプトはvSphere 5.5 Update 1から利用することができるVMware Virtual SANのStorage Policy Based Management (SPBM)で実装されています。そのため、VMware Virtual SANの管理を理解することで、Virtual Volumesのメリットを理解しやすくなります。

VMware Virtual SANでは、仮想マシンストレージプロファイルから、以下のような設定項目をポリシーとして定義することができます。

Virtual SANのポリシー定義

図4:Virtual SANのポリシー定義

実は、この仮想マシンストレージプロファイルでポリシーとして定義可能な設定項目は、VMware Virtual SANにおいてもVirtual Volumesと同じように、VASAプロバイダ経由でVMware Virtual SANが提供する機能を取得して、仮想マシンストレージプロファイルで利用可能にしているのです。

VASA(VMware vSphere Storage APIs for Storage Awareness)とは

vCenter Serverがストレージと連携し、ストレージ情報を取得するためのAPIです。これによりVMwareでのストレージの仮想インフラ統合や、DRS機能、ストレージのトラブルシューティングなどに対応できます。

VSAN用のVASAプロバイダ

図5:VSAN用のVASAプロバイダ

VASAプロバイダとは?

VASAプロバイダとは、VASA機能を実現させるためのvCenter Serverと連携するプログラムです。仮想マシンストレージプロファイル同様、VASAプロバイダ自体はvSphere 6.0以前からサポートしており、VASAプロバイダは、3rd Partyストレージベンダーから提供されています。VASAプロバイダ自体は、ストレージとは別の管理サーバ経由で提供される場合もあれば、ストレージコントローラの機能として提供される場合もあります。

vSphere 5.5以前のVASAプロバイダは、ストレージの設定と仮想マシンストレージプロファイルが連携して「仮想マシンのストレージの機能要件を満たす設定がされたデータストアを自動選択する」機能だったということができます。例えば、ストレージのLUNのバックエンドがSASディスクで構成されるデータストアを自動選択したり、災害対策サイトへレプリケーションが設定されているデータストアを自動選択したりするような用途で使われていました。

それがvSphere 6.0のVirtual Volumesでは、VASAプロバイダが持つ役割が拡張され、仮想マシンのスナップショットや、仮想マシンのクローン処理の命令自体をVASAプロバイダ経由で実行することにより、vSphereの標準機能を(ストレージの機能に)置換する形で、各ストレージベンダーの提供するスナップショットやクローンを利用することができるようになりました。

Virtual Volumesではこれらの制御処理だけでなく、データ処理部分においても、ブロックストレージが抱えていたLUNの管理や上限数の問題を解決するべく、ストレージベンダーとの協業で開発されています。

Virtual Volumesのアーキテクチャ

Virtual Volumesのコントロールプレーン

前回も紹介したVirtual Volumesの管理を実現するコントロールプレーンを担当するコンポーネントには、「仮想マシンストレージプロファイル」と「VASAプロバイダ」があります。

「仮想マシンストレージプロファイル」は、vCenter Serverが提供する機能で、「VASAプロバイダ」経由でストレージの設定を取得して、管理者はストレージ機能を使ったポリシーとして作成することができます。作成した仮想マシンストレージプロファイルは、仮想マシン単位で適用することが可能です。

「VASAプロバイダ」はストレージベンダーが提供する機能で、ストレージベンダーにより別途管理サーバ経由が必要だったり、ストレージコントローラの機能の一部として提供されたりします。Virtual Volumesにおける「VASA プロバイダ」は、大きくわけて以下の2つの役割を持ちます。

  1. ストレージの機能と設定を取得して、仮想マシンストレージプロファイルとの連携
  2. 仮想マシンストレージプロファイルが適用された対象のデータ管理タスク(スナップショットやクローン)をストレージ側のタスクに変換して実行
Virtual Volumeのコントロールプレーン

図6:Virtual Volumeのコントロールプレーン

Virtual Volumesのデータプレーン

それでは、肝心のVirtual Volumesのデータプレーンについて解説をしていきます。Virtual Volumesでは、「プロトコルエンドポイント」「ストレージコンテナ」として定義されたストレージの中に「Virtual Volumes」を作成します。

「プロトコルエンドポイント」は、ESX/ESXiから見たストレージの接続先になります。従来形式のストレージ接続における、ストレージコントローラということができます。そして「ストレージコンテナ」は、実際のデータ保存先となり、「プロトコルエンドポイント」と紐づいて仮想マシンのデータを保存する領域を提供します。「プロトコルエンドポイント」がストレージコントローラで、「ストレージコンテナ」がディスクシェルフと考えるとイメージしやすいかもしれません。

Virtual Volumeのデータプレーン

図7:Virtual Volumeのデータプレーン

Virtual Volumesのサポートを提供しているストレージベンダー各社は、まったくゼロからVirtual Volumesに対応したストレージを設計しているわけではありません。ストレージベンダーが提供するVASAプロバイダから、各ストレージの管理オブジェクトの「どのレイヤをプロトコルエンドポイントとして扱って」、「どのレイヤをストレージコンテナとして扱うのか」といった対応付けを行うことで、今までのストレージ機能を生かしたVirtual Volumes連携を実現しているのです。そのため、Virtual Volumesと連携したときに、従来までのストレージで利用可能な機能がどのようにサポートされるかは、ストレージベンダーの実装に依存します。そのため、ストレージごとに、事前に動作を確認しておくことが重要になります。

Virtual Volumesのサポート状況

ここまでVirtual Volumesのアーキテクチャを解説してきました。Virtual Volumesは、vSphereで利用可能なすべてのストレージで利用できるというわけではありません。VMware社のWebサイトで公開されているVMware Compatibility Guideの「vSphere APIs for Virtual Volumes (VVOLs)」に掲載されている必要があります。Virtual Volumesに対応したVASAプロバイダの提供と、そのVASAプロバイダと連携するストレージが必要となるため当然ともいえます。

Virtual Volumesは、vSphere以外のVMware製品や、vSphere 6.0の機能との互換性を確認する必要があります。以下に示したVMware社のKB(Knowledge Base)が公開されていますので、必ず互換性があるかどうかを確認しておくことをお勧めします。

VMware Virtual Volumes (VVols) interoperability with other vSphere products and features

http://kb.vmware.com/kb/2112039

本稿執筆時点(2015年3月)では、4社のストレージベンダーがVirtual Volumesをサポートしています。Virtual Volumesのサポートを表明しているストレージベンダーは20社を超えているため、今後サポートされるストレージが増加していくことが予想されます。

Virtual Volumesでは、ストレージベンダーの外部ストレージとの連携を実現することで、柔軟性と機能を両立するVMware社のSoftware Defined Storageを実現していきます。

株式会社ネットワールド

株式会社ネットワールド所属。vExpert2012-2015,Pernix Prime。VCAP-CID、VCAP5-DCA、VCAP5-DCD、VCP-NVを所有。現在はOpenStackやVMware NSXなどクラウド基盤製品の立ち上げを担当。​

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています