Nutanix CE 2.0クラスターにディスクを追加

## 初めに
今回は前回作成したCE2.0クラスタの１ノードに対してUSB接続のSSDを追加してみる。
本来なら下記コマンドで追加できるらしいがエラーになってダメだった。
```
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ ce_add_disk
INFO: CVM Domain Name : 5536ef50-efb0-49ad-8fe0-34a6b8635725
INFO: Found [] as disks attached to CVM
FATAL: Unable to find collect_disk_info.py on host
```





## 作業対象のIPアドレス
　AHV：192.168.2.31
　CVM：192.168.2.41




## ディスク追加前
対象ノードはSSD-PCle×1、HDD×1が挿さっている。
ここに1枚追加する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/741824/2504a8de-c2da-175d-780a-bfafbc8fff69.png)



















## CVMにて、現状確認
現在、2枚認識している
```
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ list_disks
Slot  Disk          Model                  Serial              Size
0     ------------  ---------------------  ------------------  ------
1     /dev/sda      725050A7E630           RCF50ACE1BV6YM      500 GB
2     /dev/nvme0n1  Lexar SSD NM6A1 512GB  PK5616R001395P110N  512 GB
3     ------------  ---------------------  ------------------  ------

nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        9.8G     0  9.8G   0% /dev
tmpfs           512M     0  512M   0% /dev/shm
tmpfs           9.9G  520K  9.9G   1% /run
tmpfs           9.9G     0  9.9G   0% /sys/fs/cgroup
/dev/nvme0n1p1  9.8G  4.3G  5.4G  45% /
/dev/loop0      240M  2.9M  221M   2% /tmp
/dev/nvme0n1p3   40G   11G   29G  27% /home
tmpfs           2.0G     0  2.0G   0% /run/user/0
tmpfs           2.0G     0  2.0G   0% /run/user/1000
/dev/sda1       462G  120M  458G   1% /home/nutanix/data/stargate-storage/disks/RCF50ACE1BV6YM
/dev/nvme0n1p4  411G  1.2G  405G   1% /home/nutanix/data/stargate-storage/disks/PK5616R001395P110N
```
今回はUSBでの増設なのでAHVをメンテナンスモードに入れる必要はありません。
CVMをシャットダウン。
```
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ cvm_shutdown -P now
```




## AHVにて、追加ディスクの情報を取得

```
'CVMが停止してることを確認
[root@NTNX-b91975f3-A ~]# virsh list --all
 Id   Name                                   State
-------------------------------------------------------
 2    5536ef50-efb0-49ad-8fe0-34a6b8635725   running
 -    NTNX-b91975f3-A-CVM                    shut off        <=コレ


'接続したディスクを確認
[root@NTNX-b91975f3-A ~]# lsscsi
[0:0:0:0]    disk    HGST HTS 725050A7E630     0     /dev/sda
[1:0:0:0]    disk    BUFFALO  SSD-PUT/N        0215  /dev/sdb
[2:0:0:0]    disk    NUTANIX  VDISK            0     /dev/sdc
[2:0:0:1]    disk    NUTANIX  VDISK            0     /dev/sdf
[2:0:0:2]    disk    NUTANIX  VDISK            0     /dev/sdg
[2:0:0:3]    disk    NUTANIX  VDISK            0     /dev/sdh
[2:0:0:4]    disk    NUTANIX  VDISK            0     /dev/sdi
[2:0:0:5]    disk    NUTANIX  VDISK            0     /dev/sdj
[2:0:0:6]    disk    NUTANIX  VDISK            0     /dev/sde
[2:0:0:7]    disk    NUTANIX  VDISK            0     /dev/sdd
[3:0:0:0]    disk    MTFDDAK4 80TDS-1AW1ZA 02J 0     /dev/sdk <=追加したディスク


'追加ディスクの情報を取得
[root@NTNX-b91975f3-A ~]# smartctl -i /dev/sdk
=== START OF INFORMATION SECTION ===
Device Model:     MTFDDAK480TDS-1AW1ZA 02JG532D7A44694LEN      <=控える
Serial Number:    262276A7                                     <=控える
LU WWN Device Id: 5 00a075 1262276a7                           <=控える
Firmware Version: MP32
User Capacity:    480,103,981,056 bytes [480 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[root@NTNX-b91975f3-A ~]# ls -la /dev/disk/by-id | grep sdk
lrwxrwxrwx. 1 root root    9 Feb  1 06:52 ata-MTFDDAK480TDS-1AW1ZA_02JG532D7A44694LEN_262276A7 -> ../../sdk
lrwxrwxrwx. 1 root root    9 Feb  1 06:52 wwn-0x500a0751262276a7 -> ../../sdk
 ```
## AHVにて、CVMの定義ファイルを変更
各タグ(source、serial、wwn、product)の中身は上記コマンド結果に読み替えてください。
virsh editの使用感はviと同じです。

:::note warn
・今回のCVMはsda、nvme0n1を使用してる為、追加ディスクはsdbとします。
・wwnタグはスペース不可？なので除去します。
・addressタグのunit番号は1とします(既存のsdaが0の為)。
:::

```
[root@NTNX-b91975f3-A ~]# virsh edit NTNX-b91975f3-A-CVM
    <!-- 下記を追記 -->
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/disk/by-id/ata-MTFDDAK480TDS-1AW1ZA_02JG532D7A44694LEN_262276A7'/>
      <target dev='sdb' bus='scsi'/>
      <serial>262276A7</serial>
      <wwn>500a0751262276a7</wwn>
      <vendor>ATA</vendor>
      <product>MTFDDAK480TDS</product>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
```

:wqで保存時、エラーが出た際は「i」を入力すると詳細エラーが出ました。
下記はproductタグが長すぎた例

```
error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content

Failed. Try again? [y,n,i,f,?]:
error: XML error: disk product is more than 16 characters
```

保存が出来たらCVMを起動
```
[root@NTNX-b91975f3-A ~]# virsh start NTNX-b91975f3-A-CVM
Domain NTNX-b91975f3-A-CVM started

[root@NTNX-b91975f3-A ~]# virsh list --all
 Id   Name                                   State
------------------------------------------------------
 2    5536ef50-efb0-49ad-8fe0-34a6b8635725   running
 5    NTNX-b91975f3-A-CVM                    running
 ```


## CVMにて、追加ディスクをストレージとして使用
追加ディスクはsdbとして認識できている。


```
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ lsscsi
[1:0:0:0]    cd/dvd  QEMU     QEMU DVD-ROM     2.5+  /dev/sr0
[2:0:0:0]    disk    ATA      725050A7E630     2.5+  /dev/sda
[2:0:0:1]    disk    ATA      MTFDDAK480TDS    2.5+  /dev/sdb       <=追加ディスク
```


ディスクを初期化
```
'パーティション再設定
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ sudo cluster/bin/repartition_disks -d /dev/sdb
Node is managed by Hades. This script should not be run manually. Do you really want to continue? (Y/[N]):y
2025-02-01 07:03:26,697Z INFO repartition_disks:367 Cleaning existing partition tables on disks: set(['/dev/sdb'])
2025-02-01 07:03:26,742Z INFO repartition_disks:395 Creating data partitions on disks: ['/dev/sdb']
2025-02-01 07:03:26,789Z INFO repartition_disks:215 Detected partition /dev/sdb1
2025-02-01 07:03:26,789Z INFO repartition_disks:167 sgdisk not found, unable to prevent hyper-V automount

'ファイルシステムの初期化
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ sudo cluster/bin/clean_disks -p /dev/sdb1
Node is managed by Hades. This script should not be run manually. Do you really want to continue? (Y/[N]):y
2025-02-01 07:03:58,053Z INFO clean_disks:250 Cleaning partitions: ['/dev/sdb1']
2025-02-01 07:03:58,054Z INFO clean_disks:96 Formatting partition /dev/sdb1 with ext4
2025-02-01 07:03:58,055Z INFO disk.py:1298 Formatting disk /dev/sdb1 with ext4
2025-02-01 07:03:58,055Z INFO disk.py:1266 Checking if ext4 FS should enable bigalloc for /dev/sdb1
2025-02-01 07:03:58,056Z INFO disk.py:1270 Checking if partition /dev/sdb1 on /dev/sdb is a HDD for bigalloc
2025-02-01 07:03:58,056Z INFO disk.py:1273 Executing: sudo sg_vpd --page=bdc /dev/sdb
2025-02-01 07:03:58,127Z INFO disk.py:1308 Formatting using command: sudo mke2fs -F -m 1 -t ext4  -E lazy_itable_init,nodiscard /dev/sdb1
```


CVMを一旦シャットダウンして再起動
```
'CVMにて
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ cvm_shutdown -P now

'AHVにて
[root@NTNX-b91975f3-A ~]# virsh start NTNX-b91975f3-A-CVM
Domain NTNX-b91975f3-A-CVM started
```

再起動後、CVMにてディスクがストレージにマウントされている。
```
nutanix@NTNX-b91975f3-A-CVM:192.168.2.41:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        9.8G     0  9.8G   0% /dev
tmpfs           512M     0  512M   0% /dev/shm
tmpfs           9.9G  528K  9.9G   1% /run
tmpfs           9.9G     0  9.9G   0% /sys/fs/cgroup
/dev/nvme0n1p1  9.8G  4.3G  5.4G  45% /
/dev/loop0      240M  3.1M  221M   2% /tmp
/dev/nvme0n1p3   40G   11G   29G  27% /home
tmpfs           2.0G     0  2.0G   0% /run/user/0
tmpfs           2.0G     0  2.0G   0% /run/user/1000
/dev/sdb1       440G   74M  435G   1% /home/nutanix/data/stargate-storage/disks/262276A7
/dev/sda1       462G   81M  458G   1% /home/nutanix/data/stargate-storage/disks/RCF50ACE1BV6YM
/dev/nvme0n1p4  411G  511M  406G   1% /home/nutanix/data/stargate-storage/disks/PK5616R001395P110N
```

Webコンソール上でも認識できている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/741824/d7e9a0a4-fb7a-af32-f605-0ba8be77b813.png)