VMware ESXiにvmfsパーティションとデータストアを追加

# やること

ESXi 7.0をインストールしたディスクにパーティションを作成し，新しくVMFSをセットアップする．

パーティションを新しく末尾に追加し，vmfsファイルシステムでフォーマットする．

| 変更前 | 変更後 |
| --- | --- |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103672/32ce7203-d9fe-045b-4b4a-3ad0d1ef6b28.png) | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103672/9a931d4a-cb3f-79eb-6a03-2aa4dc4040cc.png) |

# 環境

- ESXi-7.0b-16324942-standard (VMware, Inc.)
- ESXiのSSHを有効化

# 手順

## (1) パーティションを追加したいデバイスを調べる

デバイス一覧からvmfsパーティションを追加したいデバイスを調べる．ここでデバイスは `/dev/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964` である．

```
[root@rose:~] ls /dev/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964
t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964
t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964:1
```

## (2) デバイスのパーティションを調べる

現在のデバイスのパーティション一覧を調べる．結果の `268435455` は現状の最後のパーティションの終了セクタの番号を表す．この後に使うのでメモしておく．

```
[root@rose:~] partedUtil getptbl /dev/disks /t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964
gpt
124519 255 63 2000409264
1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 208896 8595455 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 8597504 16984063 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 16986112 268435455 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0
```

## (3) 末尾パーティションの終了セクタを調べる

利用可能なデバイスのパーティションを調べる．結果の `2000409230` がパーティションの**最終セクタの番号**を表す．この後に使うのでメモしておく．

```
[root@rose:~] partedUtil getUsableSectors /dev/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964
34 2000409230
```

## (4) 末尾にパーティションを追加する

パーティションを新たに追加する．`partedUtil add` コマンドを使う．コマンドの細かなオプションは以下の意味をもつ．

- デバイス: `/dev/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964`
- ディスクラベル: `gpt`
    - vmfs3はmsdosを指定
    - vmfs5,6はgptを指定
- パーティション番号: `8`
    - 手順(2)で表示されたパーティション番号の最大値+1
- 開始セクタ: `268435456`
    - 手順(2)でメモした値
- 終了セクタ: `2000409230`
    - 手順(3)でメモした値 + 1
- タイプ/GUID: `AA31E02A400F11DB9590000C2911D1B8`
    - VMFS DatastoreはAA31E02A400F11DB9590000C2911D1B8を指定
    - コマンド `partedUtil showGuids` でパーティションタイプと対応するGUIDが調べられる．
    - VMwareのサイトにも一覧表がある．
        - [Using partedUtil command line disk partitioning utility on ESXi (1036609)](https://kb.vmware.com/s/article/1036609#Retrieve)

```
[root@rose:~] partedUtil add /dev/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964 gpt "8 268435456 2000409230 AA31E02A400F11DB9590000C2911D1B8 0"
gpt
124519 255 63 2000409264
1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B 128
5 208896 8595455 EBD0A0A2B9E5443387C068B6B72699C7 0
6 8597504 16984063 EBD0A0A2B9E5443387C068B6B72699C7 0
7 16986112 268435455 4EB2EA3978554790A79EFAE495E21F8D 0
8 268435456 2000409230 AA31E02A400F11DB9590000C2911D1B8 0
```

## (5) パーティションの再構成

GPTパーティションの構成が変更されたため，ヘッダの再構成をする．

```
[root@rose:~] partedUtil fixGpt /dev/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964

FixGpt tries to fix any problems detected in GPT table.
Please ensure that you don't run this on any RDM (Raw Device Mapping) disk.
Are you sure you want to continue (Y/N): y
gpt
124519 255 63 2000409264
1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 208896 8595455 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 8597504 16984063 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 16986112 268435455 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0
8 268435456 2000409230 AA31E02A400F11DB9590000C2911D1B8 vmfs 0
```

## (6) VMFSボリュームの拡張

```
[root@rose:~] vmkfstools -V
```

## (7) データストアへデバイスを登録

```
[root@rose:~] vmkfstools -C vmfs6 /vmfs/devices/disks/t10.NVMe____SPCC_M.2_PCIe_SSD_______________________3235020025A77964:8
[root@rose:~] vmkfstools -V
```

新しいパーティションが追加されているか確認する．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103672/9a931d4a-cb3f-79eb-6a03-2aa4dc4040cc.png)

新しいデータストアが追加されているか確かめる．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103672/99e2e2c1-625b-98e6-8d84-f6c196e69ae4.png)

# 参考URL

- [CLIによるESXiのデータストアの拡張 - Qiita](https://qiita.com/daisuke0115/items/33d0010ec668f31d3a8f)
- [Using partedUtil command line disk partitioning utility on ESXi (1036609)](https://kb.vmware.com/s/article/1036609)
- [Add VMware ESXi datastore to install disk using partedUtil](https://gist.github.com/csamsel/eb71211bfdaa356c55e62344201354fd)