hidemium's blog

日々学んだことをアウトプットする。

VMware WorkstationにvSphere 6.5/Virtual SAN 6.5を構築する

この記事は NIFTY Advent Calendar 2016の 21 日目の記事です。

昨日は@licht110さんのserverspec+ansible+vagrant-vsphereでやるテスト駆動サーバー運用という記事でした。

ハイパーコンバージドインフラストラクチャが注目されていますが、VMwareでは、x86サーバを複数台束ねて仮想的なストレージを構築できるVirtual SANという機能を提供しています。
ただし、Virtual SANを試すためには、最低3台のホストを用意する必要があり、検証環境を用意するのも敷居が高くなっています。 今回は、自宅でもVirtual SANを試せるように、VMware Workstation上にオールフラッシュのVirtual SAN 6.5を構築する方法を紹介します。

構成

  • vCenter 6.5 (2vCPU、10GB MEM)
  • ESXi6.5 (Nested) (2vCPU、6GB MEM) x 4
  • Virtual SAN 6.5
  • VMware Workstation 11.1.4 *1
  • SSD (PC側)

インストール

仮想ネットワークの設定

Workstationの仮想ネットワーク エディタを開き、ホストオンリーのネットワーク(プライベートネットワーク)を2つ作成し、以下の用途とします。

名前 用途
VMnet1 Management Network、Virtual Machine Network、vMotion Network
VMnet2 VSAN Network

DNSサーバの構築

vCenterのデプロイで必須となるため、まずは、DNSサーバを用意します。
vSphere Web Clinentでの操作が必要となるので、今回はWindows Server 2012 R2をWorkstationにデプロイし、機能と役割からDNSサーバをインストールします。
DNSサーバの構築方法は省略しますが、vCenterのホスト名が名前解決できるように、DNSサーバに前方参照ゾーンと、Aレコードを追加しておきます。

Nested ESXiの構築

ESXi 6.5 Virtual Appliance is now availableにて、Nested_ESXi6.5のアプライアンスが提供されており、Nested_ESXi6.5_Appliance_Template_v1.ovaというファイルをダウンロードします。
アプライアンスの構成は以下のようになっています。

  • ESXi 6.5 OS
  • GuestType: ESXi 6.5
  • vHW 11
  • 2 vCPU
  • 6GB vMEM
  • 2 x VMXNET vNIC
  • 1 x 2GB HDD (ESXi Installation)
  • 1 x 4GB SSD (for use w/VSAN, empty by default)(SSDとしてラベル済み)
  • 1 x 8GB SSD (for use w/VSAN, empty by default)(SSDとしてラベル済み)

ダウンロードしたovaファイルをダブルクリックし、Workstationに追加します。
OSを起動する前に、VMの設定の変更を行います。VMの設定の変更は、VM>設定を開き、Intel VT-x/EPT または AMD-V/RVI を仮想化の有効化と、ネットワークアダプターにVMnet1、ネットワークアダプター2にVMnet2を設定します。

f:id:hidemium:20161220224503p:plain

VMの起動後に、DCUIにログインし、パスワードの追加(初期ではパスワードが空のため)と、Management NetworkのIPを追加します。
今回は、Virtual SANの検証をするため、Nested ESXiを4台用意します。

vCenter Server Appliance (VCSA)の構築

VCSAのisoファイル(VMware-VCSA-all-6.5.0-4602587.iso)をダウンロードし、isoファイルとしてマウントします。
マウントしたディスクのvcsa配下にVMware-vCenter-Server-Appliance-6.5.0.5100-4602587_OVF10.ovaというovaファイルがあるので、ovaファイルをダブルクリックし、Workstationに追加します。

OSを起動する前に、VCSAのVMのvmxファイルを開き、以下の内容を追記します。

guestinfo.cis.deployment.node.type = "embedded"
guestinfo.cis.appliance.net.addr.family = "ipv4"
guestinfo.cis.appliance.net.mode = "static"
guestinfo.cis.appliance.net.pnid = "vcenter65-1.lab.local"
guestinfo.cis.appliance.net.addr = "192.168.229.170"
guestinfo.cis.appliance.net.prefix = "24"
guestinfo.cis.appliance.net.gateway = "192.168.229.1"
guestinfo.cis.appliance.net.dns.servers = "192.168.229.10"
guestinfo.cis.appliance.root.passwd = "VMware1!"
guestinfo.cis.appliance.ssh.enabled = "True"
guestinfo.cis.deployment.autoconfig = "True"
guestinfo.cis.appliance.ntp.servers = "pool.ntp.org"
guestinfo.cis.vmdir.password = "VMware1!"
guestinfo.cis.vmdir.site-name = "default-site"
guestinfo.cis.vmdir.domain-name = "vsphere.local"
guestinfo.cis.ceip_enabled = "False"

VCSAのVMを起動すると、上記の設定が自動的に追加されます。VCSAの初回起動には時間がかかるので、しばらく待ちます。

なお、DNSサーバを用意しない場合、VCSAの初回起動時に以下のエラーが出ることがあり、はまりました。

Encountered an internal error. Traceback (most recent call last): File "/usr/lib/vmidentity/firstboot/vmidentity-firstboot.py", line 2017, in main vmidentityFB.boot() File "/usr/lib/vmidentity/firstboot/vmidentity-firstboot.py", line 349, in boot self.configureSTS(self.__stsRetryCount, self.__stsRetryInterval) File "/usr/lib/vmidentity/firstboot/vmidentity-firstboot.py", line 1478, in configureSTS self.startSTSService() File "/usr/lib/vmidentity/firstboot/vmidentity-firstboot.py", line 1140, in startSTSService returnCode = self.startService(self.__sts_service_name, self.__stsRetryCount * self.__stsRetryInterval) File "/usr/lib/vmidentity/firstboot/vmidentity-firstboot.py", line 88, in startService return service_start(svc_name, wait_time) File "/usr/lib/vmware/site-packages/cis/utils.py", line 784, in service_start raise ServiceStartException(svc_name) ServiceStartException: { "resolution": null, "detail": [ { "args": [ "vmware-stsd" ], "id": "install.ciscommon.service.failstart", "localized": "An error occurred while starting service 'vmware-stsd'", "translatable": "An error occurred while starting service '%(0)s'" } ], "componentKey": null, "problemId": null }


This is an unrecoverable error, please retry install.
If you run into this error again, please collect a support bundle and opne a support request.

起動した後で、VCSAにログインし、VCSAにNested ESXiを追加します。ホストを追加するとこのようになります。vSphere 6.5では、以前のバージョンと比べてWeb Clinetのナビゲーションの構成が変わっています。

f:id:hidemium:20161220230826p:plain

Virtual SANクラスタの構築

Virtual SANネットワークの設定

ESXiに2本NICが刺さっているので、vmnic0をvSwitch、vmnic1をVirtual SAN用のvDSとして構成します。

f:id:hidemium:20161220232442p:plain

さらに、各ESXiにVirtual SAN用のVMkernel Adapterを作成し、Virtual SAN用のvDSに所属させます。

f:id:hidemium:20161220232638p:plain

Virtual SANクラスタの有効化

Virtual SAN用クラスタのConfigure>Generalから、Configureをクリックし、Virtual SANの構成ウィザードを開きます。ストレージへのディスクの追加モードや、クラスタでデデュープおよび圧縮を有効にするオプション、クラスタのフォールトトレランスのモードがありますが、まずは初期設定のまま進みます。

f:id:hidemium:20161220233913p:plain

次に、Virtual SAN用ネットワークの検証が行われます。

f:id:hidemium:20161220234406p:plain

手動モードとしたので、クラスタごとに使用するディスクを確認します。4GB SSDはキャッシュ用、8GB SSDはキャパシティ用として利用します。

f:id:hidemium:20161220234435p:plain

構成ウィザードが終わると、Virtual SANの構成が開始されるので、タスクが完了するまで少し待ちます。

ストレージポリシーの作成

Virtual SANの設定が完了したので、次はストレージポリシーを作成していきます。Virtual SANでは、ミラー数やストレイピング数などをストレージポリシーによって定義し、VMに適用することで、VMごとのサービスレベルを設定することができます。

Policies and Profiles>VM Storage Prolicies>Virtual SAN Default Storage Policyを選択します。Manage>Rule-set1: VSANから、Editをクリックし、ストレージポリシーの設定画面を開きます。

f:id:hidemium:20161221000203p:plain

許容障害数(failures to tolerate = FTT)で、何台の物理ホスト障害に耐えらるか設定でき、今回は1としておきます。また、Add-ruleから障害の許可方法を追加し、RAID-5/6 Erasure Codingを選択します。イレージャコーディングを使用すると、ミラーリング (RAID 1) と同じレベルのデータ保護が可能であるのに加えて、使用するストレージ容量が少なくて済みます。

仮想マシンへのストレージポリシーの適用

ストレージポリシーが用意できると、仮想マシンを作成する段階で、ストレージポリシーを選択することができます。ここで先ほど作成した、ストレージポリシーを適用することで、ストレージポリシーに従ってFTTやRAIDが決定されます。

f:id:hidemium:20161221001114p:plain

Virtual SANの稼働状態の確認

最後に、Virtual SANで実際にどのように仮想マシンのデータが管理されているか確認しておきます。
Cluster>Monitor>Virtual SAN>Capacityを見ると、データの使用量を確認できます。クラスタでデデュープおよび圧縮を有効にした場合、下のようにDeduplication and Compression Overviewに圧縮しなかった場合と圧縮した場合のデータの使用量が見え、デデュープおよび圧縮により6GB->4GBとストレージの効率が良くなっていることが分かります。

f:id:hidemium:20161221001823p:plain

また、仮想マシン>Monitor>Policiesを見ると、仮想マシンのvmdkファイルがRAID-5で各ホストに分散されて管理されていることが分かります。

f:id:hidemium:20161221002624p:plain

最後に

WorkstationにvSphere 6.5 & Virtual SAN 6.5を構築してみましたが、一通りVirtual SANの設定ができ、VCSAの操作ももたつくことなく等の問題はありませんでした。Virtual SANの操作感や設定を試してみる方法として良いのではと思います。(ただ、メモリがとても必要なので潤沢にメモリを用意しましょう。)
今後は、障害時の動作など、色々試してみようと思います。

明日は@tsubasaogawaさんの記事です。お楽しみに。

参考

*1:ただし、メモリは32GB程度必要になります。