Nutanix Community Edition（ce-2015.06.08-beta）のKVMベース仮想化基盤「Acropolis」の環境設定

今回は，VMの作成の前に必要となるNutanix CEで提供されているKVMベースの仮想化基盤である「Acropolis Hypervisor」の環境設定とともに，設定に関連する箇所についてPRISMの操作や表示内容を見ていきます。
![スクリーンショット 2015-07-18 11.04.37_R.png](https://qiita-image-store.s3.amazonaws.com/0/84474/8afd04c2-0060-cf87-e5fd-be8f9e5ed0b3.png)


**こちらはベアメタルインストールを対象にしています。**

**なお，7月12日現在，ダウンロード可能なNutanix CEは，ce-2015.06.08-betaとなっており，7月12日時点，ce-2015.06.08-betaに基づいて記載しています。そのため，今後新しいバージョンが提供された場合に，当該記載と矛盾が生じる場合がありますのでご注意ください。
また，さわりはじめたばかりで認識誤り等があるかもしれません。おかしい，なんか違う等ありましたらご一報を。**

# Nutanix CEのAcropolisの設定において参考にした資料
[Nutanix Community Edition 技術解説](http://www.slideshare.net/smzksts/nutanix-community-edition)
> 日本語でインストール手順が纏められており，インストール初期において何度も見返した資料です。Nutanix CEのインストールから，クラスタ構成後，Acropris上にで起動するVMのインストール用OSイメージファイルのアップロードまでの手順が記載されています。

[Getting Started with Nutanix Community Edition ](http://download.nutanix.com/guides/additional_releases/communityedition/index_frames.html)
> Nutanix本家にあるNutanix CEのインストールガイドです。Nutanix Community Meetup#2では，口頭で紹介があり，上記の「Nutanix Community Edition 技術解説」には記載されていない注意事項やインストールにおける詳細が記載されています。

[Nutanix Community Edition Primer](http://www.technologyug.co.uk/How-To-Guides/Nutanix-Community-Edition-Primer-TechUG-Labs-Q2-20.pdf)
> 色々ググってたら見つけたNutanix CEインストールガイドです。こちらの資料ではVMのOSインストールまでが記載（Windows 7のインストール例が掲載）されているほか，インストール画面やPRISM上での各設定項目等の解説を含め，詳細な説明が記載されており，非常に助かるガイドでした。

【要Nutanix Next Communityログイン】[Web Console Guide ](https://portal.nutanix.com/#/page/docs/details?targetId=Web_Console_Guide-NOS_v4_1:Web_Console_Guide-NOS_v4_1)
> PRISM上から行う，Nutanix CE及びAcropolis hypervisorの各種設定項目について，これは一体何を設定するのか，何に影響するのか等について，少しずつ分からない部分が出始めているので，リファレンスマニュアル的なものが必要な段階に入りました。日本語版ないかなー…

　
***

前回の[Nutanix Community Edition（ce-2015.06.08-beta）のインストール2（4ノードクラスター構成）](http://qiita.com/hanakara_milk/items/2ed6575d8a3ee99518f3)では，「2．クラスターの構成」とPRISMへのログイン完了までが完了し，いよいよVMの作成ができるようになります。

VMの作成に当たってはVMのデータストアとなる部分を設定の設定やVMが動作するAcropolis Hypervisorにおけるネットワークの設定等が必要になります。VMを作成するために必要となる事前作業は，大きく以下の3つが挙げられます。

1．データストア（Storage PoolとContainer）の作成
>VMのインストールに当たってはVMのデータストアとなる部分を設定する必要があります。そのため，まずは作業をVM等の入れ物を作る作業が必要となります。

2．インストールイメージのアップロード
>VMにOSを作成するには，インストール媒体（isoファイル等）が必要となりますが，Nutanix CEでは，Nutanix CE上のストレージにOSインストールisoファイルを配置する必要があるため，その作業を実施します。

3．ネットワークの定義
>VMにはアクセスするためのネットワークが必要となります。Nutanix CEでは，KVMをベースとしたAcropolisと言う名のHypervisorがVMに提供するネットワークを定義しておく必要があり，そのための設定を実施します。

# ■1．データストア（Storage PoolとContainer）の作成
Nutanix CEでは，Storage PoolとContainerと呼ばれる単位がストレージ管理における単位となっているようです。Nutanix Community Meetup #2で紹介された「Nutanix Community Edition技術解説」では，以下のように紹介されています。
Storage Pool：物理ディスクを束ねたもの
Container：論理ストレージ（データストア）

Storage Poolは，クラスターに参加しているノードにぶら下がっている全てのSSD及びHDDをNDFSで束ねているものとなります。Containerは，その束ねたものの中から，論理的に切り出したボリュームになります。そのため，まずStorage Poolを作り，そのStorage PoolからContainerを切り出すことで，VMをインストールする先のストレージを作成できるようです。

## Storage Poolの作成
PRISMのトップ画面からContainerを作成するウィザードの中で併せて作成することもできますが，分かりやすくするため，Storage Poolの作成は個別に，メインメニューのStorageを選択しStorage Poolで作成します。
![select_storage.png](https://qiita-image-store.s3.amazonaws.com/0/84474/90d4b455-270c-a5f7-962b-d75b1efead80.png)
　

PRISMの画面右上のほうから，+ Storage Poolボタンで，Storage Poolの作成を開始します。
![create_pook.png](https://qiita-image-store.s3.amazonaws.com/0/84474/a8ac4a41-55ef-e5ea-9420-b586b666a366.png)
　
Storage Pool名を設定します。今回は，何の捻りもないですが，poolと言う名称にしました。Nutanix CEでは，基本的に接続されているすべてのディスクをStorage Poolに追加することを推奨しているようなので，そのまま何も考えずにSaveします（Use unallocated capacityのチェックを外すとStorage Poolの容量を別途指定できます）。
![pool_setting.png](https://qiita-image-store.s3.amazonaws.com/0/84474/0f8745fe-d5f4-3bde-75a1-842f73d2883e.png)
　
これで，Storage Poolが作成されました。Storage Summeryの表示が変わり，FreeとUsed，Capacityが表示されるようになりました。
![スクリーンショット 2015-07-17 16.20.377.png](https://qiita-image-store.s3.amazonaws.com/0/84474/cb64b436-34f4-084a-a1f1-75b3355bc887.png)

## Containerの作成
次に，作成したStorage Poolの中にContainerを作成していきます。今回は，VMを配置するためのContainerと，VMのインストール用イメージであるisoファイル等を配置するためのContainerをそれぞれ作成していきます。

### VMを配置するContainerを作成
PRISMの画面右上のほうから，今度は，+ Containerボタンで，Containerの作成を開始します。
![create_container.png](https://qiita-image-store.s3.amazonaws.com/0/84474/3790f4a8-beae-ddd4-555b-12aa6203f81a.png)
　
Containerの作成では，Container名とContainerを作成するStorage Poolを選択します。今回はContainer名をvmstore01とし，作成するContainerは，先ほど作成したStorage Poolのpoolに配置します。
![container_setting.png](https://qiita-image-store.s3.amazonaws.com/0/84474/c052ccd0-99c7-aac7-a5d1-f51f970185fe.png)
　
今回は，特に設定項目はありませんが，Advanced Settingsを覗いておきます。Advanced Settingsでは，Replication Factor（RF）の数値を設定することができます。RFの値は，マルチノードクラスターでは，通常2以上が設定されています。5ノード以上あれば，RF3を設定できるようですが，そもそもNutanix CEは4ノードまでしか対応していないため，残念ながらRF3は選択できません。
![advset_rf.png](https://qiita-image-store.s3.amazonaws.com/0/84474/0714fc14-9684-f7e8-51c6-2756f1fe8d50.png)
　
なお，一方でシングルノードクラスターでは，当該項目は，1と表示されずに触れない状態になります。
![advset_none_rf.png](https://qiita-image-store.s3.amazonaws.com/0/84474/fb435053-d56b-3156-a4e7-bb6e4f5fed75.png)
　
このほかに，EXPLICT RESERVED CAPACITY FROM STORAGE POOLとADVERTIZED CAPACITY FROM STORAGE POOL，ENABLE COMPRESSION，PERF TIER（RAM/SSD）DEDUPLICATION（FINGER PRINT ON WRITE）と言った項目がありますが，かんたんに調べたところ以下のような感じだと思います。

#### EXPLICT RESERVED CAPACITY FROM STORAGE POOL
>Containerの容量について，確実なリザーブを行うための設定のようです。通常，Container作成時において，特に容量を指定する項目がなくAdvanced Settingsで，このEXPLICT RESERVED CAPACITY FROM STORAGE POOLでの容量指定を行わない限り，Containerは常に所属するStorage Poolの容量の中から自動的に容量を割り当てられます。
こちらの設定で容量をリザーブすると，EXPLICT RESERVED CAPACITY FROM STORAGE POOLを設定していないContainerは，EXPLICT RESERVED CAPACITY FROM STORAGE POOLで容量をリザーブした分を除いた容量を最大値とした割り当てられることになります。

#### ADVERTIZED CAPACITY FROM STORAGE POOL
>こちらは，Containerに設定する容量を明示的に指定はできますが，EXPLICT RESERVED CAPACITY FROM STORAGE POOLと異なり，あくまで利用する容量を宣言のみしておく設定のようです。ADVERTIZED CAPACITY FROM STORAGE POOLを設定した場合，自動割り当てされる容量のうち，ContainerがADVERTIZED CAPACITY FROM STORAGE POOLで設定した容量を超えないように制御してくれるようです。

#### ENABLE COMPRESSION
>そのまんまデータ圧縮だと思います。商用版のNutanix v4.1のドキュメントでは，こちらの項目は存在せず，またNutanix CE版に関連するドキュメントでもこちらの項目に関する説明を見つけられなかったため詳細はよくわかりません。

#### PERF TIER（RAM/SSD）DEDUPLICATION（FINGER PRINT ON WRITE）
>メモリとSSD上のデータの重複排除を行う機能のようです。この機能を利用するには，最低でもメモリが24GB以上に必要になるとのことです。
![advset_dedup.png](https://qiita-image-store.s3.amazonaws.com/0/84474/34caa824-0b29-20c7-e88a-16845967597c.png)
　

#### PERF TIER（HDD）DEDUPLICATION（ON-DISK）
>こちらの機能は，PERF TIER（RAM/SSD）DEDUPLICATION（FINGER PRINT ON WRITE）を有効にしたときのみ表示される項目で，メモリとSSD上のデータの重複排除以外にHDDにおける重複排除を実施する場合のオプションのようです。こちらの機能を有効にする場合，メモリは32GB以上，メタデータ用に300GB以上のSSDを必要とするようです。

### isoファイルを配置するContainerを作成
今度は，isoイメージファイルを配置する専用のContainerを作成します。操作は，VMを配置するContainerの作成の時と変わりありません。ただし，せっかくなので，Advanced SettingsのEXPLICT RESERVED CAPACITY FROM STORAGE POOLを使ってみます。EXPLICT RESERVED CAPACITY FROM STORAGE POOLに200GiBを設定し，Containerを作成します。この設定で，今後，他にContainerを多数作成しても，200GiBを除いた上で，最大容量が設定されるため，必ずこの200GiB分だけは確保されるようになるハズです。
![explict_iso.png](https://qiita-image-store.s3.amazonaws.com/0/84474/e1eb72a9-ad0d-ff83-6835-950fb3364aff.png)

## 作成したStorage PoolとContainerの確認
Storage PoolとContainerの作成が完了したので，PRISMのStorageで，OverviewではなくTableを見て見ると，それぞれStorage PoolとContainerの一覧が表示されます。Storage Poolは1つかないので，特に見るべきものはありません。
![pool.png](https://qiita-image-store.s3.amazonaws.com/0/84474/1c1c1613-d571-0b6a-b8e3-a04e14a56dd1.png)
　
一方，Containerを見ると先ほど，作成したVM用のContainerとiso用のContainerがそれぞれ一覧に表示されていますが，Allowed Max Capacityの部分の表示が異なります。
![container.png](https://qiita-image-store.s3.amazonaws.com/0/84474/43012ed9-c8b2-1bb4-61b1-99eb24ff621d.png)


VM用のContainerのAllowed Max Capacityの数値にマウスオーバーすると詳細が表示されます。Total capacity of storage poolが2.14TiBあるが，Reserved capacity of otherで他のContainerが200GiBをリザーブしていることがわかります。その結果，VM用のContainerは，本来，現時点で作成されたContainerが確保できるハズの最大容量である2.14TiBから200GiB分を除いた，1.94TiBが最大容量となっています。
![vm_container.png](https://qiita-image-store.s3.amazonaws.com/0/84474/84d72543-419e-0eb1-7d25-4fcc4d972d1f.png)
　
逆に，isoイメージ用のContainerのAllowed Max Capacityの数値にマウスオーバーするとTotal capacity of storage poolが2.14TiBなのは同じですが，Reserved capacity of otherが0GiBなので，一覧上に表示されているAllowed Max Capacityは，2.14TiBのままとなっています。
![iso_container.png](https://qiita-image-store.s3.amazonaws.com/0/84474/70966518-a6ba-57d0-92a2-b75092f72a8a.png)

# 2．インストールイメージのアップロード
1．でOSインストールisoファイルを配置するContainerが作成できたので，次はisoファイルのアップロードを行います。ファイルのアップロードでは，以下の3つの方法を選択することができるようです。

* CIFSによるファイルアップロード
> CIFSでのファイルアップロードでは，配置されたコンテナに対して，CVMまたはクラスターのVirtual IPアドレス及びアップロード先のContainerのPATHを指定して操作を行います。
具体的には，例えばWindows上のExplorerでファイルサーバにアクセスするのと同様に`\\IPアドレス\ディレクトリ`のようなURIでアクセスをします。デフォルトの状態では，Nutanix CEのContainerには，IPアドレスでのフィルタ以外はEveryoneのRead/Writeアクセスが可能なようです。

* NFSによるファイルアップロード
> NFSによるファイルアップロードでは，アップロード先のContainerをNFSサーバー，ファイルをアップロードしようとするPCやサーバー等をクライアントとしてアクセスします。Windows 8以降の世代では，NFSクライアントが標準で利用できるようですが，Windows 7以前の世代ではNFSクライアントが入っていないため，それらの世代のPC等からNFSアクセスする場合には，別途NFSクライアントをインストールする必要があります。

* SFTPによるファイルアップロード
> WinSCP等，SFTPが利用できるアプリケーションによるアップロードです。特にコレと言った問題や制限はないように見えます。

## Filesystem Whitelistを設定する
CIFS，NFS，SFTPいずれの方法でisoファイルをアップロードする場合でも，Filesystem Whitelistを設定する必要があるようです。Filesystem Whitelistは，Nutanix CE上に作成されたContainerへのアクセス元制御設定で，デフォルトではAll Denyになっているため，Filesystem WhitelistにContainerへのアクセス可能を可能とする接続元のIPアドレスを指定します。指定の方法は，個別のIPアドレスもしくは，ネットワークアドレスいずれかで行います。
PRISMのメインメニューから画面上部，右上のほうにある歯車のアイコンを選択し，Filesystem Whitelistから設定を開始します。
![filesystem_whitelist.png](https://qiita-image-store.s3.amazonaws.com/0/84474/0b9c2680-1181-3d9b-321a-793b1c9443fa.png)
　
Filesystem Whitelistの設定では，画面上の表記に従って入力します。今回は192.168.100.0のアドレスを有するPCやサーバー等から一律でアクセス可能する設定にするため，`192.168.100.0/255.255.255.0`を入力します。セキュリティの要件等に従って，アップロード元を縛りたい場合は，IPアドレスを1つずつ設定する操作になると思われます。
![whitelist_setting.png](https://qiita-image-store.s3.amazonaws.com/0/84474/d62faca9-e09e-f873-9f65-a01160c3f6cb.png)
　
これで，PC等からContainerに対してアクセスが可能になっているハズです。

## CIFSでアクセスして，インストールイメージをコピーする
それでは，実際にファイルのアップロードを行います。Containerは，CVMのIPアドレスの直下に共有されているため，isoファイルがあるPC等からExplorer上のアドレスバーにNutanix CEのVirtual IPアドレス及びContainerのパスを結合したURI，`\\Virtul IP\container_path`を入力します。シングルノードクラスターの場合は，CVMのIPアドレスとContainerのパスを結合したURIになります。
![cifs_access.png](https://qiita-image-store.s3.amazonaws.com/0/84474/7cb6d4b7-2832-7fc2-161b-cb9cae84d00a.png)
　
Containerに適当にisoファイルを投げ込みます。ちなみに，今回作成した4ノードクラスターを構成するサーバーは，全て10GbEで接続していますが，isoファイルのアップロードは，GbE接続の3Gbps SSDを搭載したノートPCから行っています。NutanixのNDFSのパフォーマンスは，よく分かりませんが，画面のとおりCIFSの転送では50MB/sec程度となっています。10GbEやNFS，SFTPでの転送性能及び書き込み性能が気になるところです。
![cifs_upload.png](https://qiita-image-store.s3.amazonaws.com/0/84474/efe7ce79-d1ef-7b81-5209-3d80cb529a1d.png)

# 3．ネットワークの定義

VM作成開始まで，後一歩ところまで来ました。Nutanix CE上にVMをセットアップするための準備，最後の作業です。

## **注意**
>
実は，Acropolisにおけるネットワークについては，**ほとんど理解できていません**。そもそも，Acropolisにおけるネットワークについてはではなく，正確には，ネットワーク技術については，この業界にそれなりの年数いるにも関わらず，あ…VLANってなんとなくネットワークを分離してくれるんだよね？仕組みとかなんかよくわかんないケド…とかって程度には残念なリテラシー（笑）レベルなので，ここの解説は少なめ（**くわえてかなり高い確率で誤りがあるかも**）です。

## Network Configurationの基本設定
今のところ，この辺の手順から日本語，英語ともにHOW TOやStep by Step的な資料がほとんど見当たらなくなるので，[Nutanix Community Edition Primer](http://www.technologyug.co.uk/How-To-Guides/Nutanix-Community-Edition-Primer-TechUG-Labs-Q2-20.pdf)あたりを見ながら作業を進めます。
ネットワークの追加は，PRISMのメインメニューから画面上部，右上のほうにある歯車のアイコンを選択し，Network Configurationから設定を開始します。
![nw_config.png](https://qiita-image-store.s3.amazonaws.com/0/84474/04eb42a6-7fe6-fed0-ea03-260088d61189.png)
　
Network Configurationの設定画面がモーダルポップアップしてくるので，Nutanix CE上で稼動するAcropolisで利用するネットワークをどこに接続するか，VLANの値を入力することで決定します。
![create_nw.png](https://qiita-image-store.s3.amazonaws.com/0/84474/320a5997-5424-3d5d-decd-d34f060cfdbc.png)
　
+ Create Networksをクリックすると，VLANの入力画面が表示されます。特に今回は，何も考えずに0を指定します。Acropolisにおいて，VLAN0はネイティブVLANとなります。
![set_vlan0.png](https://qiita-image-store.s3.amazonaws.com/0/84474/94ac89f8-4bdc-d6ae-c016-4c5a3a7f7a05.png)

ネットワークに関する設定はこれだけになります。今回，Nutanix CEを検証するために準備した環境には，DHCPサーバーが既に存在することや，特にドメイン等の設定を行う必要がないことから，以降の追加の設定は行っていません。
　
## ENABLE IP ADDRESS MANAGEMENT
ここから先の設定については，各自の環境によってだいぶ設定が変わってきます。VLANの設定ウィンドウの下に，ENABLE IP ADDRESS MANAGEMENTと言う項目がNEW!と言うアイコンとともにあります。このENABLE IP ADDRESS MANAGEMENTのチェックを有効にすることで，Nutanix CEがVMなどに関連するIPアドレスのアサイン等の管理を行うようにするなど，いくつかの追加設定が可能となります。
![ip_mng_enable.png](https://qiita-image-store.s3.amazonaws.com/0/84474/1ebafc1a-c268-cea1-153b-2a5c5654ab0c.png)

### NETWORK IP ADDRESS/PREFIX LENGTH
> ネットワークアドレスとプリフィクスを設定します。
ちなみに…ネイティブVLAN以外のVLANを設定した上で，こちらのネットワークアドレスとプリフィクスを設定すると，Nutanix管理下の仮想ネットワークが定義されると言うことなのでしょうかね？
![ipmng_nw_prefix.png](https://qiita-image-store.s3.amazonaws.com/0/84474/bb2419f7-2a20-b48e-b955-14264ea57aa6.png)

### GATEWAY IP ADDRESS
> VLANのゲートウェイアドレスを設定します。

## CONFIGURE DOMAIN SETTINGS
こちらを有効にすると，VLAN内にあるDNSサーバーやドメイン名，ドメインプリフィクスを設定します。Nutanix的なデータ保護の意味合いでのDomainではなく，一般的な意味でのDomainの設定のようです。
![ip_mng_dns.png](https://qiita-image-store.s3.amazonaws.com/0/84474/e19e9193-1682-943a-46ef-0f019acd57de.png)


### DOMAIN NAME SERVERS (COMMA SEPARATED)
> VLAN内のネットワークで利用するDNSサーバーを設定します。カンマ区切りで複数設定可能です。

### DOMAIN SEARCH (COMMA SEPARATED)
> VLAN内のネットワークで利用するドメインプリフィクスを設定します。カンマ区切りで複数設定可能です。

### DOMAIN NAME
> VLAN内のネットワークで利用するドメイン名を設定します。

## IP ADDRESS POOLS
IP ADDRESS POOLSは，VLAN上のVMにNutanix CEからIPアドレスを払い出すために使用され，従来のDHCPサーバと同じ役割を行います。IP ADDRESS POOLSを利用するには，+ Create Poolから設定を開始します。
![create_pool.png](https://qiita-image-store.s3.amazonaws.com/0/84474/9d7d5704-8495-9886-851e-5c36f430dd93.png)
 
### Add IP Pool
> 従来のDHCPサーバーにおけるスコープ設定と同様に，開始IPアドレスと終了IPアドレスを設定することで，Nutanix CEから払い出されるIPアドレスの範囲を定義します。
![add_ip_pool.png](https://qiita-image-store.s3.amazonaws.com/0/84474/6937a98b-6f97-443d-f687-7eaae0060197.png)


## OVERRIDE DHCP SERVER
Nutanix CEでDHCPの役割を果たすサーバーのIPアドレスを明示的に設定します。このチェックが外れている場合は，VLANアドレスから自動的インストールDHCPサーバーのアドレスが設定されます。自動で設定されるDHCPサーバーのIPアドレスは，末尾から利用可能な一番若いIPアドレスが利用されるようです。
![alt_dhcp_sv.png](https://qiita-image-store.s3.amazonaws.com/0/84474/bca2814f-8c64-80b4-3c5d-adbe93f8c01b.png)
　
　
***
　
　
今回はココまで。これで，VMのセットアップ準備ができました！いよいよ，次回は[Nutanix Community Edition（ce-2015.06.08-beta）上にVMをセットアップ](http://qiita.com/hanakara_milk/items/956308a6ba793ff3f366)していきます。