VMWareについて Esxi、Vmotion、HA、iSCSI、共有ストレージ等について調べてみた

# はじめに
業務で**VMware Vsphere**を使うようになったのでVMwareに関する用語をメモしてみました

# 参考
https://blogs.vmware.com/jp-cim/2017/02/vds-2.html
https://go-journey.club/archives/3195

# VMware
## VMware Workstation Player（VMware Player）
非営利目的に限って無料で利用できる仮想環境構築ソフトです。WindowsやLinuxの64bit環境で動作します。

## Vmware Fusionとは
VMware社製の、Intel Mac上で動作する仮想マシン環境。

# VMware vSphereとは
http://e-words.jp/w/VMware_vSphere.html

* VMware vSphereとは、VMware社の仮想化ソフトウェアのパッケージ製品。データセンターなどで**多数のコンピュータを仮想化して遠隔から一括管理するために必要なソフトウェアを組み合わせたもの。**
* **vSphereは複数のコンポーネントから成り立っている。それぞれ`vSphere XXX`と呼ばれる。**
  - 主な構成要素として、サーバを仮想化するハイパーバイザーの**「vSphere ESXi」**、複数のコンピュータをネットワークを通じて監視・管理する**「vCenter Server」**、管理者に操作画面を提供するクライアント環境**「vSphere Client」（Windows版）**および**「vSphere Web Client」（Web版）**などが挙げられる。

主な機能
vMotionとかvSwitchとか

## コントローラ
Vcenter

## ホスト
Esxi

## クライアント
「vSphere Client」（Windows版）および「vSphere Web Client」（Web版）


# ハイパーバイザとは
* 仮想化専用OS。
* Vsphere製品だとESXIのこと
  - ホスト自身が持つ物理NICを`vmnic`呼ぶ
* Esxiをインストールするディスクは**VMFS**というVMWareのファイルシステムにてフォーマットされる
* アクセス方法
  - コンソール接続
  - SSH
  - vSphere Client or vSphere WebClient(**徐々にWebClientがメインになっている**)



# データストア
* データストア =　仮想マシン等がおかれる倉庫
* どこに仮想マシンを置くか。その仮想マシンを置く場所のこと。
  - 内蔵ディスク　or ネットワーク上の共有ストレージ
* 内蔵SSDにEsxiをおいて仮想マシンは別のディスクにおいたりする
* 内蔵ディスクやNASなど
    * ローカルディスクを使うデータストアのことをローカルデータストアと呼ぶ。
    * 仮想マシンが特定のホストに結びつく=`可用性が低くなる`
* 多くの業務レベルのインフラではSANが利用されている。

# 仮想スイッチ(vSwitch)と分散仮想スイッチ(dSwitch)
通常、用途ごとにスイッチを分離させるか、VLANに分ける(ポートグループ)。

## 用途例
サービス用ネットワーク
バックアップ用ネットワーク
管理用ネットワーク
vMotion用ネットワーク
本番用ネットワーク
検証用ネットワーク

## 仮想スイッチ(vSwitch)
* Esxi内にある**仮想的なL2スイッチ**
* ホスト単位で管理する
* アップリンクポートとポート、ポートグループというポートを持つ
* 通常、用途毎に仮想スイッチを作成する。または、仮想スイッチひとつで、VLANを複数作る

## 分散仮想スイッチ(dSwitch)
* 複数のEsxiサーバーにまたがって管理する仮想スイッチ
* 設定を**Vcenterで一元管理する必要がある**
* 仮想マシンを複数のホスト間で移行する場合でも、仮想マシンに対して一貫したネットワーク構成を提供することができます。

### 物理NIC
* vmnic
* 物理NIC は、固有のIP アドレスを持たず トラフィックをバイパスするケーブルと同等の役割

### 仮想NIC
https://blogs.vmware.com/jp-cim/2017/02/vds-1.html

* 仮想マシンが持っているNIC。最大10個？くらいもてる
* 仮想NIC が接続されるのが、仮想スイッチ上にある仮想マシン用ポートグループ
* **IP 及びMAC アドレスは仮想NIC に割り当てられます**

### ポートグループ(Port/Port Group)
* **仮想NICが接続する仮想スイッチのポート(出入口)**のことで、ポートグループはポートの集まりのグループ
* **ポートグループで仮想マシンをグループ分けする**
* 一つの仮想スイッチにポートグループというグループを作ることができる
* **ポートグループごとにVlanを分けるなどの使い方をする**。新しくVLANを作る場合、新しいポートグループを作る
* 仮想マシンに提供するポートグループとESXi自身が使うポートグループは分けられる

ESXi/ESX は、IEEE 802.1Q （dot1q） トランキングのみをサポートしています。

https://go-journey.club/archives/5748

# デフォルトのポートグループ名
### VMNetwork　
仮想マシンに提供されるグループで最初から存在

### Manegement Network , VMkernel ポート
* EsxiのVMKernelNICに接続されている
* ESXi サーバの管理や vMotion 、vSphere HA 、vSphere FT など vSphere の機能を使用するための 


### 仮想マシン用の新しいポートグループを新しく作るシチュエーション
グループAではVLAN10をグループBではVLAN20を使う、といったネットワークのセグメントを分離する場合など



## アップリンク(Uplink Port)
https://blogs.vmware.com/jp-cim/2014/08/vsphere_kiso02.html

* 物理NIC側とつながっている、仮想スイッチのポート




# NIC
## 仮想NIC
仮想マシンのNIC

## VMKernel NIC もしくはVM Kernel Port = VMK
* ESXIの仮想NIC
* VMKと呼ばれる
* **管理、NFS、iSCSI、vmotion、FTの用途に使われる**
* EsxiのIPを持つ

### VMKを新しく作るシチュエーション
* 複数のネットワークセグメントから管理したい場合
* ESXiホストの通信を分離したい場合
  - Vmotion用とstorage用のトラフィックを分けたい場合

# 仮想マシンの構成設定ファイル
仮想マシンは以下２つのファイルから成る。仮想マシンの実体。

* .vmdk
  - 仮想ディスク
* .vmx
  - 設定ファイル
 
# ストレージ
https://blogs.vmware.com/jp-cim/2014/01/vsphere-basic-storage1.html
https://www.unix-power.net/networking/post-453
https://www.atmarkit.co.jp/ait/articles/0808/25/news120_3.html

## 共有ストレージ
https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.storage.doc/GUID-E3B77DE4-7525-47D3-B2D7-BC71CCD7992D.html


### プロビジョニング方法
* シックプロビジョニング（Lazy zeroed）
  - 仮想ディスク作成時に指定したサイズ分の領域を確保します。
* シックプロビジョニング（Eager zeroed）
  - 仮想ディスク作成時に指定したサイズ分の領域を確保し、ゼロで初期化します。
* シンプロビジョニング
  - 仮想ディスク作成時には最低限の領域のみ確保し、必要に応じて増加します。

### 共有ストレージ
共有ストレージのタイプは３種類

* FC SAN 
  - FCするにはFCスイッチやHBAなど専用ハードウェアが必要
* iSCSI
  - 通常のLANを経由してSCSI命令
* NAS


いずれを選択してもファイルシステムはVMFS ( Virtual Machine File System ) という形式でフォーマットされます。VMFSはVMware社が開発したESXi専用の独自のファイルシステムです。NTFSやEXT4などのファイルシステムはこのVMFSの上から構築されることになり、理論上パフォーマンスの低下は必至ですが、大幅に下ることはありません。

### VMFSとは
 FCやiSCSIを使用した共有ストレージ（ブロックデバイス）環境ではVMFSと呼ばれる共有可能なファイルシステム（Virtual Machine File System ）を提供しており、このVMFS でフォーマットされた領域に対して**複数のESXiホストからアクセス可能**としております。ファイルシステムを複数のESXiホストから共有している以上、整合性を保つ何かしらの”仕組み”が必要になってきますが、VMFSの場合SCSI-2のディスクリザベーションを利用して排他制御を実現しています。

# Vcenter(VCSA)
* Esxiをまとめて管理する。また、複数のEsxiをクラスタリングさせて仮想マシンの冗長性を確保したり*(vSphere HA機能)、仮想マシンの移動(vMotion機能)など**Vcenterを利用することで様々な機能を利用できる**
* Vcenterのバージョンによって管理できないEsxiのバージョンが存在するので、VcenterのバージョンとEsxiのバージョンは注意する必要がある

### 利用方法
* Windowsにインストール
* **Linuxベース仮想アプライアンス形式**(**VCSA**)
  - OSとアプリケーションが一つになっている

### Vcenterで利用できる機能
* クローン
* テンプレート機能
* アラーム
* vMotion
* Storage vMotion
* vSphere HA
* vSphere FT
* vSphere Replication

# iSCSI
* iSCSIは従来の**Ethernet(LAN)を使用してストレージ装置とサーバなどを接続する技術**
* 10GBLANなど普及しはじめ、高速なLANを利用することができる

https://www.fujitsu.com/jp/products/computing/storage/lib-f/tech/interface/iscsi/

## DAS->ストレージ専用ネットワークSAN->iSCSIへ iSCSIのメリット
ITシステムの導入が進むにつれ、業務システムごとにサーバが立ち上げられ、そのサーバにはストレージがぶら下がります。このようなサーバとストレージが1：1の状態をDAS（Direct Attached Storage）といいます。DASの状態では、情報量増加への対応やバックアップなど、運用管理が大きな負荷となっていきました。 

そこで、考えられたのがストレージ専用ネットワーク「SAN」です。それまで1：1だったサーバとストレージの関係を、専用ネットワークでストレージをまとめることで、n：1に（ストレージが1、あるいは1に近い数）を実現しようとしたのです。 ストレージを1台（あるいは1台に近い数）にまとめることで、未使用分のストレージ容量を抑えることができ、コスト削減になります。管理する台数も減りますので、バックアップなどの運用も楽になります。

# 機能
## Vmotion
https://tech.nikkeibp.co.jp/it/article/COLUMN/20081203/320631/?P=3

* 一つの**共有ストレージ上**にある仮想マシンを，二つのサーバー間で**稼働させたまま移動させる**技術
* Esxi上の仮想マシンを動作停止せずに別のEsxi上に移動できる
* **共有ストレージを使うことで利用できる**

vMotion を行うためには、対象物理サーバ (= ESXiサーバ)が vCenter に登録されていること、移行元、移行先の物理サーバのCPU互換性があること、共有ストレージが構成されていることが必要です。CPUの互換性に関しては、同じメーカーかつ同一の互換性グループに属するファミリのもの同士でなければなりません。詳細はこちらをご確認ください。 (http://kb.vmware.com/kb/1991, http://kb.vmware.com/kb/1992)

https://go-journey.club/archives/6324#VMkernel_%E3%81%A8%E3%81%AF%EF%BC%9F

## Storage vMotion(クロスホストvMotion)
* メモリ上の仮想マシンと、ストレージを同時に移動
* ストレージ間での仮想マシンのディスクや構成ファイルの移動ができる

## スナップショット
* ある時点の仮想マシンの状態を保存して、いつでもその状態に戻せる機能。メモリをスナップショットに含めるとある時点の起動された状態で復元できる
* Vcenterから利用できる

# 可用性
vSphere HA vSphere FT vSphere DRS

**上記機能を利用するにはvcenterで複数のEsxiをクラスタ構成していることが前提となる**

## Vsphere HA機能
https://blogs.vmware.com/jp-cim/2014/09/vsphere_kiso03.html

* Esxiが障害により停止した場合、稼働していた仮想マシンを別のEsxiで自動起動させる機能
* 共有ストレージを使うことで利用できる。**ダウンタイムあり**

計画外停止( ＝ 物理ホスト障害)に対して可用性を向上する機能が HA と FT です。 HA は “High Availability” ( ＝ 高可用性) を意味し、アクティブースタンバイの可用性を提供する機能です。 HA を使用しない場合、ある物理サーバが障害等で機能を停止するとその上で起動している仮想マシンも停止してしまいます。それに対し、予めクラスタを構成して　HA を有効にしておくことで、**同じクラスタ内の別の物理サーバで自動的に再起動することが可能**です。**HAの場合、仮想マシンが再起動するまで数分の停止が発生**しますが、仮想マシンが自動的に起動するだけでも管理者としては助かります。

## Vsphere FT
* プライマリとセカンダリのイメージ。**ダウンタイムなし**

FT (Fault Tolerance) は、**物理サーバ障害が発生しても無停止でサービスを継続する機能**です。保護対象となる仮想マシン（プライマリ）に対し、別の物理ホスト上にセカンダリというコピーマシンを作成します。（図５）これらは**常に同期し**、仮にプライマリ仮想マシンが起動している物理サーバが停止しても、**すぐに切り替わってセカンダリで動作し続けることが可能**です。これにより物理サーバ障害によるダウンタイムを０にすることができますので、特にダウンタイムが許容されないシステムがある場合はご使用を検討ください。現状では FT 機能が対象とできる仮想マシンはvCPUが１つの仮想マシンに限られています。