【Equinix Metal/BMaaS】vSphere/vSAN環境をTerraformで一撃デプロイ③

VMwareのSDS(Software Defined Storage)ソリューションである**vSAN**で構成されたvSphereクラスタを、**Equinix Metal**のBMaaS(Baremetal as a Service)に構築してみました。

Terraformを利用する事で、**約1時間でvSAN構成のvSphereクラスタを一撃デプロイ**できます。
vSAN、Equinix Metalについては以下リンクを参照ください。

**[VMware Virtual SAN 入門： 〜 従来のストレージと VSAN の違い〜](https://blogs.vmware.com/vmware-japan/2015/11/vsan_01.html)**

**[Equinix Metal](https://metal.equinix.com/)**

====

* [第１回　概要・事前準備編](https://qiita.com/ktsuruta_eq/items/6209639166bea7705bdf)
* [第２回　terraform設定編](https://qiita.com/ktsuruta_eq/items/614ac993b3dea0d50b08)
* [第３回　デプロイ編](https://qiita.com/ktsuruta_eq/items/2e6327438bd35dfa6625)　★本記事

====

## 参考資料

Equinix MetalがメンテしているGithubリポジトリ。こちらを元に作業を進めます。
https://github.com/equinix/terraform-metal-vsphere

## 環境構成図

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1662665/56d5c5a4-cae6-3bb5-566e-9410d3f25c0b.png)

赤点線の範囲がTerraformにより構築される部分です。
今回はTerraformを使ったデプロイ実行と、デプロイされた環境へアクセス・状態確認してみます。

### 7. 一撃デプロイの開始

以下コマンドで、terraformを実行します。ここからは40分ほどデプロイ処理が走ります。
コーヒーでも飲みながらデプロイ処理中の画面を鑑賞しましょう。

````
# terraform apply --auto-approve

《以下、延々とデプロイ出力・・・》

````

以下出力が表示されたらデプロイ完了です。

````
Apply complete! Resources: 51 added, 0 changed, 0 destroyed.

Outputs:

bastion_host = "[bastion_host_GlobalIP]"
ssh_key_path = "$HOME/.ssh/vmware-on-metal-1-h3npx-key"
vcenter_fqdn = "vcva.metal.local"
vcenter_ip = "[vcenter_GlobalIP]"
vcenter_password = "srU6D4B4OIEu$b!mx"
vcenter_root_password = "3Oi6jz?xqG1$g6k@"
vcenter_username = "Administrator@vsphere.local"
vpn_endpoint = "[vpn_endpoint_GlobalIP]"
vpn_password = "5e@B@g66MC?DZbfu"
vpn_psk = "Rvv?VNgkIcs3LKkP@9wS"
vpn_user = "vm_admin"


````
なお、サーバ自体のデプロイに失敗する等、デプロイ処理中にエラー終了する場合があります。
エラー原因次第ですが、記事後半の削除コマンドを実行するか、Metalポータルから手動でリソース削除した後、再実行してみてください。

また、プラットフォーム側の仕様変更により正常動作しない場合があります。
何度繰り返しても失敗する場合はgithubリポジトリのissueを確認してみてください。

[issues/terraform-metal-vsphere](https://github.com/equinix/terraform-metal-vsphere/issues)

### 8. vSphere/vSAN環境の状態確認

デプロイされた環境へアクセス・状態確認してみます。
vCenterはパブリックIPが付与されているため、Outputsに出力されている以下情報でvSphereクライアント(WEBクライアント)へアクセス可能です。

```
vcenter_ip = "123.456.789.000"
vcenter_username = "Administrator@vsphere.local"
vcenter_password = "srU6D4B4OIEu$b!mx"
```

アクセスURL例： https://123.456.789.000

以下画像がログイン後のvSphereクライアント画面です。
vSphereクラスタ上に、スペック通りにデータストア(vSAN)が構成されている状態が確認できます。
※デプロイ直後のvCenterライセンスは評価版のため、画面上部にライセンス警告が表示されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1662665/2360c167-a14c-d3f8-8ac1-bc2845640d5e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1662665/98f643e5-7bc0-3d67-a9a6-87e417da4301.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1662665/224f57fe-9a62-1a30-a1cd-8e4fc49e3840.png)

vSANデータストアの容量構成は、キャパシティで2620GB、キャッシュで670GBとなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1662665/27f0eb3f-d222-4e73-6a6a-b68c479bb29d.png)

vSANフォールトドメイン設定はシングルサイト構成、各ホストはスタンドアローンホストとなっています。
vSphereクラスタのサーバ数が増えたり複数DCにサーバが分散している場合は、フォールトドメインを構成する必要がありそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1662665/7972fd6b-6aeb-27ee-ccbd-f0184e713771.png)

## デプロイ後の調整 & 後片付け

他の設定値は実際にデプロイして確認いただきたいのですが、デプロイ直後は基本的な設定のみ施されている状態のためご注意ください。
※特にセキュリティ周り
本番環境として利用する場合はVMware社のガイドに沿って調整することをおすすめします。

**[・VMware vSphere のドキュメント](https://docs.vmware.com/jp/VMware-vSphere/index.html)**
**[・vSAN のプランニングとデプロイ](https://docs.vmware.com/jp/VMware-vSphere/7.0/com.vmware.vsphere.vsan-planning.doc/GUID-194D9B44-7593-4D3E-A9DD-A6646C1DCC05.html)**

また、実際はユーザ向けに環境公開、他基盤との接続等、諸々インテグレーションが必要かと思います。
特にゲートウェイノードは１台構成で単一障害点(SPOF)となるため、本番環境として利用する場合はサーバ追加等の冗長化を検討してください。

なお、お試しで構築しただけの場合は、terraform destroyコマンドで環境を全削除することができます。
削除処理に失敗した場合は、Metalポータルから手動で各リソースを削除してください。

```
$ terraform destroy --auto-approve
```

### やってみた感想

オンプレミスで物理サーバ/SW上に基盤構築した経験のある身としては、**BMaaS環境に1時間ほどでvSpher/vSANクラスタがデプロイできたのはちょっと感動しました**。
ただ先述の通り、ゲートウェイノードや他環境との接続構成等、本番環境として利用するためにはいくつか諸々の検討/調整が必要です。

思いつく限りでは以下のような検討が必要かと思います。

* 仮想化基盤までの接続経路検討 （public/private）
  * 閉域接続はEquinix Fabricが便利です。
* システム要求に基づくvSphereクラスタのサイジング・設定調整 ※N+1,N+2等
* ゲートウェイノードの冗長化
* VM用の負荷分散機能
* vSANフォールトトレランス構成の検討
* 仮想基盤全体のバックアップ環境

また、現時点ではEquinix MetalでESXiを実行する場合は、対応したvSphere/vSANライセンスを調達する必要があります。
※必要ライセンス等はVMware社ドキュメントを参照ください。

## まとめ

vSANで実現できるSDSは、ベアメタルサーバを使った仮想化基盤におけるストレージ冗長化/可用性向上に適したソリューションであり、**BMaaSとの親和性はかなり高い**と感じました。
本シリーズで扱った内容に興味がある方は是非コメント頂けると嬉しいです。

今後もEquinix Metalの活用例をご紹介していきます。お楽しみに。