Migrate VM and Storage on Proxmox
Tags: devops, proxmox, virtualmachine, programming
Published: 2024-01-04 09:06:41

Pada postingan ini saya akan membahas sedikit studi kasus. Yang mana pada pada studi kasus kali ini production server menggunakan virtualization, dalam hal ini virtualization menggunakan proxmox VE.

Pada konfigurasi proxmox terdapat beberapa konfigurasi sebagai berikut:

- Clustering network, pada kasus ini terdapat 3 physical server 

- Ceph cluster storage, untuk penyimpanan sudah di konfigurasi menggunakan ceph

- High Availability, pada production server juga terdapat konfigurai HA

Kesalahan yang terjadi pada kasus ini adalah, sebuah VM dengan web service berisi aplikasi perusahaan berjalan pada `node 2` atau `server 2` (selanjutnya akan saya sebut node), sedangkan penyimpanan storagenya di arahkan pada `local-lvm`. Sebenarnya tidak ada masalah untuk config seperti ini, yang jadi masalah adalah ketika terjadi failure. Pada kasus saya yang terjadi adalah `node 2` mengalami fail, sehingga HA aktif dan otomatis memindahkan semua vm di `node 2` ke node yang aktif, dalam hal ini pada `node 3`. 
Tapi sayangnya tidak dengan storagenya, sehingga kondisinya adalah VM berada di `node 3` dan storagenya ada pada `local-lvm` di `node 2`. Ini mengakibatkan VM tidak bisa running sehingga aplikasi tidak dapat di akses dan digunakan.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/86uuu6sklqwh753za50f.png)

Berikut langkah penanganan dalam studi kasus seperti di atas.

- **Membackup configurasi CLI VM bermasalah**, Untuk lokasi file configurasi vm ada pada direktori `/etc/pve/nodes/node3/qemu-server/`, pada VM saya kebetulan ada pada ID 204. copy semua isi filenya, anda bisa gunakan cat atau nano untuk mengcopy ke notepad atau apapun untuk berikutnya kita contek.

```
nano /etc/pve/nodes/node3/qemu-server/204.conf
```

```diff
agent: 1
+ boot: order=scsi0;ide2;net0
cores: 4
cpu: x86-64-v2-AES
ide2: none,media=cdrom
memory: 8192
meta: creation-qemu=8.0.2,ctime=1691566443
name: DATABASE.SIMRS.DEVELOPMENT
net0: virtio=72:D2:F5:DC:D5:54,bridge=vmbr2,firewall=1
numa: 0
onboot: 1
ostype: l26
+ scsi0: vm_pool:vm-204-disk-0,iothread=1,size=180G
scsihw: virtio-scsi-single
smbios1: uuid=1583bea9-c57a-4672-ab10-353e585dbcd0
sockets: 1
tags: dev;on
unused0: local-lvm:vm-204-disk-0
vmgenid: 8639eeea-8d90-441f-b9e6-265a3d7e763f
```
Perhatikan baris yang saya beri tanda, ini yang akan kita copy ke config VM yg trouble ketika berhasil migrasi ke `Node 2`. 

- **Melepaskan HDD virtual pada pada VM yang trouble**, Selanjutnya perhatikan gambar berikut

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6lqbo72j8go66qj2x4vw.png)

Pada bagian yg saya tandai adalah lokasi hardisk pada vm yg trouble. Kita perlu melepaskan hdd virtualnya dulu, klik `Detach` lalu konfirmasi. Intinya jangan ada hardisk virtual yang terpasang pada VM.

- **Melepaskan konfigurasi HA**, kita perlu menghapus konfigurasi HA untuk VM yg trouble.
 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jpvemsux4mp4h3nquaj4.png)

Setelah melepaskan HDD virtual dan menghapus konfigurasi HA untuk VM yang error barulah bisa kita `migrate`, seharusnya tidak ada masalah dalam proses migratenya.

- **Mengembalikan konfigurasi HDD virtual**, sayangnya proxmox tidak menyediakan settingan ini pada GUI consolenya.
Ini adalah alasan kenapa kita mengcopy config manual via CLI nya. Kita akan menimpa isi config VM yg error dengan isi file yang tadi kita backup. Singkatnya kita timpakan isi file di atas kedalam VM error yg berhasil di migrate. Pastikan baris yaang saya beri tanda sesuai dengan kondisinya terutama pada bagian `boot` pastikan booting dari storage bukan dari `iso` file.

Yupp setelah semua selesai harusnya VM sudah dapet berjalan dengan normal.
Selamat mencoba.