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 Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

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