Archive for the ‘Proxmox’ Category
Convert RAW to VHDX&qcow2
คำสั่ง Convert ไฟล์เพื่อนำ Virtual HDD ไปใช้งาน
ตัวอย่างไฟล์ที่นามสกุล .raw
Convert ไปเป็น vhdx เอาไปใช้งานกับ Hyper-V
root@worldnas:/mnt/Backup_World/Teee-Backup/TEST# ls -l
total 14454449
-rwxrwx— 1 root root 136365211648 Oct 8 14:03 rms-monitor.raw
root@worldnas:/mnt/Backup_World/Teee-Backup/TEST# qemu-img convert -p -f raw -O vhdx -o subformat=dynamic \
> /mnt/Backup_World/Teee-Backup/TEST/rms-monitor.raw \
> /mnt/Backup_World/Teee-Backup/TEST/rms-monitor.vhdx
(100.00/100%)
Convert เป็น qcow2(บีบอัด) เพื่อนำไปใช้งานกับ Proxmox เครื่องอื่น
root@worldnas:/mnt/Backup_World/Teee-Backup/TEST# qemu-img convert -p -c -f raw -O qcow2 \
> -o compression_type=zstd \
> rms-monitor.raw rms-monitor.qcow2
(100.00/100%)
ย้ายเครื่องจาก VMWARE ESXI -> Proxmox
1. เช็คไฟล์ VM Guest ที่จะต้องย้าย นามสกุล *.vmdk
[teee@localhost:~] cd vmfs/
[teee@localhost:/vmfs] ls
devices volumes
[teee@localhost:/vmfs] cd volumes/
[teee@localhost:/vmfs/volumes] ls
11406870-47d1d00d-7d43-5e77c5881669 60f42150-f34e061e-5126-b8cb29a73d0c 81683070-2aaffa8e-91f8-d999fb12eebc
60f4212b-9ac26bf6-1a7d-b8cb29a73d0c 60f42159-83cd1070-e23d-b8cb29a73d0c datastore1
[teee@localhost:/vmfs/volumes] cd datastore1/
[teee@localhost:/vmfs/volumes/60f42150-f34e061e-5126-b8cb29a73d0c] ls -l
total 40
drwxr-xr-x 1 root root 1120 Apr 27 06:16 APPS_AI_Tableau
drwxr-xr-x 1 root root 2800 Jan 26 08:52 OracleVM
drwxr-xr-x 1 root root 420 Mar 31 02:10 iso
drwxr-xr-x 1 root root 560 Apr 1 2025 wiorcl19c
drwxr-xr-x 1 root root 2940 Mar 30 09:01 wishare
[teee@localhost:/vmfs/volumes/60f42150-f34e061e-5126-b8cb29a73d0c] cd APPS_AI_Tableau/
[teee@localhost:/vmfs/volumes/60f42150-f34e061e-5126-b8cb29a73d0c/APPS_AI_Tableau] ls -l
total 524290056
-rw——- 1 root root 536870912000 Apr 27 06:16 APPS_AI_Tableau-flat.vmdk
-rw——- 1 root root 8684 Apr 27 06:16 APPS_AI_Tableau.nvram
-rw——- 1 root root 534 Mar 31 06:46 APPS_AI_Tableau.vmdk
-rw-r–r– 1 root root 0 Mar 31 06:36 APPS_AI_Tableau.vmsd
-rwxr-xr-x 1 root root 3023 Apr 27 06:16 APPS_AI_Tableau.vmx
-rw-r–r– 1 root root 302242 Apr 27 06:16 vmware.log
[teee@localhost:/vmfs/volumes/60f42150-f34e061e-5126-b8cb29a73d0c/APPS_AI_Tableau]
2. ssh เข้าไปที่เครื่อง Proxmox และ scp เพื่อ Copy ข้ามเครื่องมาจาก VmWare
root@server2:/mnt/sda1/images/TableAU-APPS-AI# scp teee@192.168.100.101:/vmfs/volumes/datastore1/APPS_AI_Tableau/*.vmdk .
(teee@192.168.100.101) Password:
APPS_AI_Tableau-flat.vmdk 12% 63GB 102.1MB/s 1:13:00 ETA
3.เช็คข้อมูลว่า Harddisk Data ที่ Copy มาเป็น Thick หรือ Thin Provisioning ถ้าเป็น Thick ควรแปลงให้เป็น Thin ก่อน(ใช้เท่าที่ใช้จริง)
ใช้ qemu-img convert (ดีที่สุด)
วิธีนี้จะ “บีบขนาดตาม data จริง” ให้เลย
qemu-img convert -f vmdk APPS_AI_Tableau.vmdk -O qcow2 disk.qcow2
📌 ผลลัพธ์:
จาก 563GB → เหลือเท่าที่ใช้จริง เช่น 80GB
ได้ไฟล์แบบ thin
root@server2:/mnt/sda1/images/TableAU-APPS-AI# qemu-img convert -f vmdk APPS_AI_Tableau.vmdk -O qcow2 disk.qcow2
การ Convert แบบนี้อาจจะใช้เวลานานตามขนาด Harddisk เราสามารถ Import .vmdk เข้าไปที่ Proxmox ได้เลย
Import เข้า local-lvm
แม้จะ “ไม่ convert เอง” แต่ Proxmox จะจัดการให้ตอน import
#qm importdisk 200 APPS_AI_Tableau.vmdk local-lvm
Proxmox จะอ่าน .vmdk
แล้วเขียนเข้า LVM (เป็น raw)
ใช้งานได้ทันที
✔ ไม่ต้อง convert เอง
✔ ใช้กับ local-lvm ได้ดีที่สุด
❗ แต่ใช้เวลา “พอ ๆ กับ convert” (เพราะต้อง copy 500GB อยู่ดี)
root@server2:/mnt/sda1/images/TableAU-APPS-AI# qm importdisk 200 APPS_AI_Tableau.vmdk local-lvm Configuration file ‘nodes/server2/qemu-server/200.conf’ does not exist
หมายถึง ยังไม่ได้สร้าง VM ID 200 ใน Proxmox VE
วิธีแก้ (ทำก่อน import)สร้าง VM เปล่า
#qm create 200 –name tableau –memory 8192 –cores 4 –net0 virtio,bridge=vmbr0
แค่ create เฉย ๆ ยังไม่ต้องมี disk
แล้วค่อย import ใหม่
#qm importdisk 200 APPS_AI_Tableau.vmdk local-lvm
เสร็จแล้วเพิ่ม Disk
#qm set 200 –scsihw virtio-scsi-pci –scsi0 local-lvm:vm-200-disk-0
#qm set 200 –boot order=scsi0
สังเกตถ้ามีขึ้นข้อความ
update VM 200: -scsi0 local-lvm:vm-200-disk-0 -scsihw virtio-scsi-pci
update VM 200: -boot order=scsi0
ถือว่าเรียบร้อยแล้ว 100%
Disk ถูก attach + ตั้ง boot ถูกต้องใน Proxmox VE แล้ว
สิ่งที่ต้องระวัง
1. MAC ซ้ำใน network
👉 ถ้ามีเครื่องอื่นใช้ MAC นี้อยู่ → network พังทันที
2. OS ภายในอาจจำ MAC เก่า
Windows:
อาจมองเป็น “network ใหม่”
IP หาย / profile เปลี่ยน
Linux:เช็ค:
#ip a
3. ต้องการใช้ MAC เดิม. BC:24:xx:96:xx:9D
ใช้คำสั่ง
#qm set 200 –net0 virtio=BC:24:xx:96:xx:9D,bridge=vmbr0
สรุป
> ใช้ qm set เปลี่ยนได้ทันที
> restart แล้วใช้งานได้เลย
> ตรวจสอบ IP / network ในเครื่องอีกที
ย้ายเครื่อง VM Guest Proxmox ข้าม Server
Server ต้นทาง

Server ปลายทาง

ที่ Server ต้นทางเช็คเครื่องที่จะย้ายก่อนว่าเครื่องไหน

root@server2:~# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 TableAU running 25480 250.00 1374 <– ย้ายเครื่อง VMID 100
101 Tableau stopped 25480 250.00 0
STEP 1: Backup
root@server2:~# vzdump 100 –mode stop –compress zstd
กันพลาด ใส่ storage ให้ชัดเจน:
root@server2:~# vzdump 100 –mode stop –compress zstd –storage local
มันทำอะไรบ้าง
⛔ หยุด VM 100 ชั่วคราว
💾 backup disk ทั้งหมด (รวม EFI + TPM)
📦 บีบอัดเป็นไฟล์ .vma.zst
▶️ เสร็จแล้ว VM จะ กลับมารันต่อ
root@server2:~# vzdump 100 –mode stop –compress zstd –storage local
INFO: starting new backup job: vzdump 100 –storage local –mode stop –compress zstd
INFO: Starting Backup of VM 100 (qemu)
INFO: Backup started at 2026-04-27 10:03:56
INFO: status = stopped
INFO: backup mode: stop
INFO: ionice priority: 7
INFO: VM Name: TableAU
INFO: include disk ‘ide0’ ‘Disk1:100/vm-100-disk-1.qcow2’ 250G
INFO: include disk ‘efidisk0’ ‘Disk1:100/vm-100-disk-0.qcow2’ 528K
INFO: include disk ‘tpmstate0’ ‘Disk1:100/vm-100-disk-2.qcow2’ 4M
INFO: creating vzdump archive ‘/var/lib/vz/dump/vzdump-qemu-100-2026_04_27-10_03_56.vma.zst’
INFO: starting kvm to execute backup task
swtpm_setup: Not overwriting existing state file.
INFO: attaching TPM drive to QEMU for backup
INFO: started backup task ‘7e9bf25f-9c27-4947-97bc-2f9c950569e1’
INFO: 0% (147.2 MiB of 250.0 GiB) in 3s, read: 49.1 MiB/s, write: 16.9 MiB/s
INFO: 1% (2.5 GiB of 250.0 GiB) in 1m 58s, read: 21.2 MiB/s, write: 20.4 MiB/s
INFO: 2% (5.0 GiB of 250.0 GiB) in 3m 56s, read: 21.6 MiB/s, write: 21.5 MiB/s
INFO: 3% (7.5 GiB of 250.0 GiB) in 5m 24s, read: 29.2 MiB/s, write: 29.1 MiB/s
INFO: 4% (10.0 GiB of 250.0 GiB) in 6m 41s, read: 33.3 MiB/s, write: 33.2 MiB/s
INFO: 5% (12.6 GiB of 250.0 GiB) in 8m 23s, read: 25.7 MiB/s, write: 24.8 MiB/s
……..
INFO: 73% (183.0 GiB of 250.0 GiB) in 1h 12m 44s, read: 8.8 GiB/s, write: 0 B/s
INFO: 84% (210.0 GiB of 250.0 GiB) in 1h 12m 47s, read: 9.0 GiB/s, write: 0 B/s
INFO: 94% (237.0 GiB of 250.0 GiB) in 1h 12m 50s, read: 9.0 GiB/s, write: 0 B/s
INFO: 99% (249.6 GiB of 250.0 GiB) in 1h 12m 53s, read: 4.2 GiB/s, write: 44.2 MiB/s
INFO: 100% (250.0 GiB of 250.0 GiB) in 1h 13m 5s, read: 34.1 MiB/s, write: 27.7 MiB/s
INFO: backup is sparse: 163.40 GiB (65%) total zero data
INFO: transferred 250.00 GiB in 4385 seconds (58.4 MiB/s)
INFO: stopping kvm after backup task
INFO: archive file size: 36.49GB
INFO: Finished Backup of VM 100 (01:13:06)
INFO: Backup finished at 2026-04-27 11:17:02
INFO: Backup job finished successfully
INFO: notified via target `mail-to-root`
ไฟล์ที่ได้
จะอยู่ที่: /var/lib/vz/dump/
root@server2:~# cd /var/lib/vz/dump/
root@server2:/var/lib/vz/dump# ls -l
total 46025300
-rw-r–r– 1 root root 2132 Apr 27 09:36 vzdump-qemu-100-2026_04_27-09_19_05.log
-rw-r–r– 1 root root 743 Apr 27 09:57 vzdump-qemu-100-2026_04_27-09_47_41.log
-rw-r–r– 1 root root 5863 Apr 27 11:17 vzdump-qemu-100-2026_04_27-10_03_56.log
-rw-r–r– 1 root root 39180988248 Apr 27 11:17 vzdump-qemu-100-2026_04_27-10_03_56.vma.zst
⏱️ หมายเหตุ
VM จะ ดับระหว่าง backup (ระยะเวลาขึ้นกับขนาด disk)
ของคุณ 250GB → ประมาณ 20–60 นาที (แล้วแต่ disk)
STEP 2: ส่งไฟล์ไปเครื่องปลายทาง
บนเครื่องต้นทาง (server2) รัน:
root@server2:/var/lib/vz/dump# scp /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst root@192.168.100.11:/var/lib/vz/dump/
The authenticity of host ‘192.168.100.11 (192.168.100.11)’ can’t be established.
👉 จะให้ใส่ password ของ root ฝั่งปลายทาง
root@192.168.100.11’s password:
vzdump-qemu-100-2026_04_27-10_03_56.vma.zst 100% 36GB 112.0MB/s 05:33
STEP 3: Restore ที่เครื่อง 192.168.100.11
SSH เข้าเครื่องปลายทาง:
ssh root@192.168.100.11
แล้วรัน:
root@world2:/var/lib/vz/dump# ls -l
total 38262688
-rw-r–r– 1 root root 39180988248 Apr 27 11:26 vzdump-qemu-100-2026_04_27-10_03_56.vma.zst
root@world2:/var/lib/vz/dump# qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 100 –storage local-lvm
unable to restore VM 100 – VM 100 already exists on node ‘world2’. <–VMID (จากที่ Copy มาจากเครื่องเก่าหมายเลข 100 มีอยู่แล้วต้องเปลี่ยนชื่อใหม่เพื่อ Restore)
root@world2:/var/lib/vz/dump# qmrestore /var/lib/vz/dump/vzdump-qemu-100-*.vma.zst 200 –storage local-lvm
restore vma archive: zstd -q -d -c /var/lib/vz/dump/vzdump-qemu-100-2026_04_27-10_03_56.vma.zst | vma extract -v -r /var/tmp/vzdumptmp649754.fifo – /var/tmp/vzdumptmp649754
CFG: size: 745 name: qemu-server.conf
DEV: dev_id=1 size: 540672 devname: drive-efidisk0
DEV: dev_id=2 size: 268435456000 devname: drive-ide0
DEV: dev_id=3 size: 4194304 devname: drive-tpmstate0-backup
CTIME: Mon Apr 27 10:03:57 2026
Rounding up size to full physical extent 4.00 MiB
Logical volume “vm-200-disk-0” created.
Logical volume pve/vm-200-disk-0 changed.
new volume ID is ‘local-lvm:vm-200-disk-0’
Logical volume “vm-200-disk-1” created.
Logical volume pve/vm-200-disk-1 changed.
new volume ID is ‘local-lvm:vm-200-disk-1’
Logical volume “vm-200-disk-2” created.
Logical volume pve/vm-200-disk-2 changed.
new volume ID is ‘local-lvm:vm-200-disk-2’
map ‘drive-efidisk0’ to ‘/dev/pve/vm-200-disk-0’ (write zeros = 0)
map ‘drive-ide0’ to ‘/dev/pve/vm-200-disk-1’ (write zeros = 0)
map ‘drive-tpmstate0-backup’ to ‘/dev/pve/vm-200-disk-2’ (write zeros = 0)
progress 1% (read 2684420096 bytes, duration 2 sec)
progress 2% (read 5368840192 bytes, duration 4 sec)
progress 3% (read 8053260288 bytes, duration 6 sec)
………………………………………………
progress 98% (read 263071399936 bytes, duration 73 sec)
progress 99% (read 265755820032 bytes, duration 73 sec)
progress 100% (read 268440174592 bytes, duration 74 sec)
total bytes read 268440240128, sparse bytes 175452459008 (65.4%)
space reduction due to 4K zero blocks 0.864%
rescan volumes…
VM 200 (efidisk0): size of disk ‘local-lvm:vm-200-disk-0’ updated from 528K to 4M
ความหมาย:
restore VM จาก backup
สร้างเป็น VMID 200 (ไม่ชนของเดิม)
disk จะไปอยู่ที่ local-lvm (pve-data)
หลัง restore เสร็จ ทำต่อเลย
ต้องเห็น:
200 TableAU stopped
root@world2:/var/lib/vz/dump# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 VM 100 stopped 512 0.00 0
200 TableAU stopped 25480 250.00 0
root@world2:/var/lib/vz/dump# qm config 200
bios: ovmf
boot: order=ide0;ide2;net0
cores: 8
cpu: host
efidisk0: local-lvm:vm-200-disk-0,efitype=4m,ms-cert=2023,pre-enrolled-keys=1,size=4M
ide0: local-lvm:vm-200-disk-1,size=250G
ide2: none,media=cdrom
machine: pc-q35-10.1
memory: 25480
meta: creation-qemu=10.1.2,ctime=1771858213
name: TableAU
net0: e1000e=BC:24:11:43:6C:83,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=14f129dc-b684-49fd-a31c-46e3d9b4e4c8
sockets: 1
tpmstate0: local-lvm:vm-200-disk-2,size=4M,version=v2.0
vmgenid: 4d63fc51-7113-4f7b-b63d-b925295f4ef3
เปิด VM
qm start 200
⚠️ ถ้าเปิดแล้วมีปัญหา
❌ Boot ไม่ขึ้น
ลอง:
qm set 200 –cpu x86-64-v2-AES
❌ เน็ตไม่ออก
เช็ค:
ip a
👉 ต้องมี vmbr0
ถ้าไม่ตรง:
qm set 200 –net0 e1000e,bridge=vmbr0
🔥 สรุป
✔️ คำสั่งคุณถูกต้อง 100%
✔️ ใช้ ID 200 กันชน
✔️ Restore เสร็จ = เปิดใช้งานได้เลย
อีกตัวอย่าง ย้ายเครื่อง ID 200 ขนาด 127GB
root@rms:# vzdump 200 –compress zstd –mode snapshot –dumpdir /var/lib/vz/dump
ตอนที่ Snap เสร็จจะเก็บอยู่ที่
root@rms:# ls -lh /var/lib/vz/dump/
total 11G
-rw-r–r– 1 root root 4.0K Sep 28 18:12 vzdump-qemu-200-2026_09_28-18_06_37.log
-rw-r–r– 1 root root 11G Sep 28 18:12 vzdump-qemu-200-2026_09_28-18_06_37.vma.zst <-ขนาดบีบอัดลดลงไปมาก
Copy Backup จากต้นทางไปปลายทาง
#scp /var/lib/vz/dump/vzdump-qemu-200-2026_09_28-18_06_37.vma.zst \
root@(IP ปลายทาง):/var/lib/vz/dump/
ระบบจะถาม รหัสผ่านของ ปลายทาง
แล้วรอจน 11 GB ส่งเสร็จ
ตรวจเช็คที่ปลายทางควรจะเห็นขนาดเท่ากันที่ Copy ไป
#ls -lh /var/lib/vz/dump/
Restore เป็น VM ใหม่เข้า local-lvm
ควรจะเป็น ID ใหม่เพื่อกันความสับสันกับ ID เดิมต้นฉบับ
#qmrestore /var/lib/vz/dump/vzdump-qemu-200-2026_09_28-18_06_37.vma.zst 200 –storage local-lvm
ขนาดไฟล์ Backup 11 GB ไม่ได้หมายความว่า Disk VM จะมีแค่ 11 GB เพราะ .vma.zst เป็น compressed backup ของ VM ทั้งหมด
ถ้า VM 200 เดิมมี disk 127 GB ก็จะสร้าง disk ประมาณ 127 GB บน local-lvm