VMware VM Export: ส่งออก VM เป็น OVA เพื่อย้ายขึ้นคลาวด์

ทำ VMware VM Export ส่งออก VM จาก vCenter หรือ ESXi เป็น OVF/OVA ด้วย vSphere Client และ ovftool เตรียมไดรเวอร์ virtio แปลงเป็น qcow2 แล้วตรวจหลังบูต

โดย ทีมงาน THAI DATA CLOUD อ่าน 13 นาที

แชร์FacebookXLINELinkedIn
VMware VM Export — VMware VM Export: ส่งออก VM เป็น OVA เพื่อย้ายขึ้นคลาวด์
VMware VM Export: ส่งออก VM เป็น OVA เพื่อย้ายขึ้นคลาวด์

คำตอบสั้น ๆ: ทำ VMware VM Export ส่งออก VM จาก vCenter หรือ ESXi เป็น OVF/OVA ด้วย vSphere Client และ ovftool เตรียมไดรเวอร์ virtio แปลงเป็น qcow2 แล้วตรวจหลังบูต

คู่มือนี้อธิบาย VMware VM Export ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย

VMware VM Export คือการส่งออกเครื่องเสมือนจาก vCenter หรือ ESXi ออกมาเป็นแพ็กเกจมาตรฐาน OVF (ไฟล์ .ovf คู่กับดิสก์ .vmdk) หรือ OVA (ทุกไฟล์รวมเป็นไฟล์เดียว) เพื่อนำไปเปิดบนแพลตฟอร์มอื่น เช่น คลาวด์ที่ใช้ KVM องค์กรที่ต้องการออกจาก VMware หลังเงื่อนไขไลเซนส์เปลี่ยนมักเริ่มจากงานนี้ เพราะได้เครื่องเดิมทั้งระบบโดยไม่ต้องติดตั้งใหม่

คู่มือนี้เหมาะกับผู้ดูแล vSphere ที่ต้องย้าย VM ทีละเครื่องหรือกลุ่มเล็ก เมื่อทำครบ คุณจะเตรียม VM ก่อนส่งออกได้ถูกต้อง ทำ VMware VM Export ได้ทั้งจาก vSphere Client และด้วย ovftool แปลงดิสก์ให้บูตบนคลาวด์ปลายทางพร้อมไดรเวอร์ virtio และตรวจเครื่องหลังบูตครั้งแรกได้ครบ ถ้าต้นทางเป็นเครื่องจริงที่ไม่ใช่ VM ให้ใช้คู่มือ P2V แทน

สิ่งที่ต้องเตรียม

  • บัญชี vCenter หรือ ESXi ที่มีสิทธิ์ปิดเปิด VM และส่งออก OVF ของ VM นั้น
  • VMware OVF Tool (ovftool) ติดตั้งบนเครื่องที่ใช้ทำงาน ดาวน์โหลดได้จาก Broadcom Developer portal และเลือกรุ่นที่ตรงกับระบบปฏิบัติการของเครื่องนั้น
  • พื้นที่ว่างบนเครื่องที่ใช้ทำ VMware VM Export มากกว่าข้อมูลที่ใช้จริงในดิสก์ของ VM และพื้นที่เพิ่มอีกเท่าตัวบนเครื่องที่ใช้แปลงไฟล์
  • ข้อมูลของ VM: ขนาดดิสก์ Firmware แบบ BIOS หรือ EFI (ดูใน Edit Settings > VM Options > Boot Options) IP ที่ตั้งไว้ และบริการที่รันอยู่
  • Backup ล่าสุดของ VM และช่วงเวลาหยุดระบบ เพราะต้องปิด VM ระหว่างส่งออก
ลำดับงาน VMware VM Export ตั้งแต่เตรียม VM ปิดเครื่อง ส่งออกเป็น OVA แปลงดิสก์เป็น qcow2 นำขึ้นคลาวด์ และตรวจหลังบูต
งานที่ทำตอน VM ยังอยู่บน VMware ช่วยตัดปัญหาหลังย้ายได้มากที่สุด

ขั้นตอนที่ 1: เตรียม VM ก่อนทำ VMware VM Export

งานส่วนใหญ่ที่ล้มเหลวหลัง VMware VM Export เกิดจากสิ่งที่ควรทำตอน VM ยังอยู่บน VMware ให้ทำรายการนี้ให้ครบก่อนปิดเครื่อง

ทุกระบบปฏิบัติการ

  • ลบหรือรวม Snapshot ทั้งหมดให้เหลือดิสก์ชุดเดียว และถอด ISO ที่ต่อค้างไว้ในไดรฟ์ CD/DVD
  • บันทึกค่าเครือข่ายเดิม (ip a และ ip r บน Linux หรือ ipconfig /all บน Windows) เพราะการ์ดเครือข่ายบนปลายทางเป็นอุปกรณ์ใหม่
  • VM ที่เข้ารหัสด้วย VM Encryption หรือมีอุปกรณ์ vTPM ส่งออกเป็น OVF ไม่ได้ ถ้า Windows ใช้ BitLocker ที่ผูกกับ vTPM ให้ปิด BitLocker และรอถอดรหัสเสร็จก่อนถอด vTPM ไม่เช่นนั้นจะเปิดดิสก์ไม่ได้

Windows

  • ถอนการติดตั้ง VMware Tools ขณะยังอยู่บน VMware เพราะเอกสาร virt-v2v ระบุว่าการถอนหลังย้ายมักล้มเหลว
  • ปิด Fast Startup และ Hibernate ด้วย powercfg /h off แล้วสั่ง Shut down ตามปกติ ไม่ใช้ Power Off

Linux

  • ตรวจว่า /etc/fstab อ้างดิสก์ด้วย UUID ไม่ใช่ /dev/sda1 เพราะชื่ออุปกรณ์บนปลายทางจะเป็น /dev/vda
  • ตรวจว่า kernel โหลดไดรเวอร์ virtio ได้ตอนบูต ถ้าเป็น =y คือฝังใน kernel แล้ว ถ้าเป็น =m ต้องมีอยู่ใน initramfs
grep -E 'CONFIG_VIRTIO_(BLK|NET|PCI)=|CONFIG_SCSI_VIRTIO=' /boot/config-$(uname -r)
lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio     # Ubuntu / Debian
sudo lsinitrd | grep virtio                                  # AlmaLinux / Rocky / RHEL

# ถ้าไม่พบ ให้สร้าง initramfs ใหม่ที่มีไดรเวอร์ virtio
sudo dracut -f --add-drivers "virtio_blk virtio_scsi virtio_net virtio_pci"   # ตระกูล RHEL
printf 'virtio_blk\nvirtio_scsi\nvirtio_net\nvirtio_pci\n' | sudo tee -a /etc/initramfs-tools/modules && sudo update-initramfs -u   # Ubuntu / Debian

ขั้นตอนที่ 2: VMware VM Export แบบ OVF จาก vSphere Client

ปิด VM จากในระบบปฏิบัติการให้เรียบร้อย แล้วทำ VMware VM Export ผ่านหน้าเว็บ

  1. ใน vSphere Client คลิกขวาที่ VM เลือก Template > Export OVF Template
  2. ตั้งชื่อ ใส่คำอธิบายถ้าต้องการ แล้วคลิก OK เบราว์เซอร์จะดาวน์โหลดไฟล์ .ovf, .vmdk และไฟล์อื่นในแพ็กเกจทีละไฟล์ ถ้าเบราว์เซอร์ถามเรื่องการดาวน์โหลดหลายไฟล์ ให้กดอนุญาต
  3. ถ้าเปิดจาก ESXi Host Client ให้คลิกขวาที่ VM แล้วเลือก Export ได้ไฟล์ชุดเดียวกัน

ตั้งแต่ vSphere 6.5 เป็นต้นมา vSphere Client ไม่มีตัวเลือกส่งออกเป็น OVA ไฟล์เดียวแล้ว Broadcom แนะนำให้แปลงชุด OVF เป็น OVA ด้วย ovftool ตาม บทความ Exporting a Virtual Machine as a Single OVA File การดาวน์โหลดผ่านเบราว์เซอร์ยังหลุดง่ายเมื่อดิสก์ใหญ่ ถ้า VM มีดิสก์เกินร้อย GB ให้ใช้ ovftool ในขั้นตอนที่ 3 แทน

ovftool web-01/web-01.ovf web-01.ova

ขั้นตอนที่ 3: ทำ VMware VM Export เป็น OVA ด้วย ovftool

ovftool ทำ VMware VM Export จาก ESXi หรือ vCenter มาเป็นไฟล์ OVA ได้ในคำสั่งเดียว เสถียรกว่าการดาวน์โหลดผ่านเบราว์เซอร์ ระบุตำแหน่ง VM ด้วยรูปแบบ vi:// ถ้าชื่อผู้ใช้มีอักขระพิเศษ เช่น @ ให้เขียนเป็น %40

# จาก ESXi โดยตรง
ovftool --noSSLVerify vi://[email protected]/web-01 /data/export/web-01.ova

# จาก vCenter ระบุ Datacenter และโฟลเดอร์ของ VM
ovftool --noSSLVerify "vi://administrator%[email protected]/DC1/vm/web-01" /data/export/web-01.ova

# ไม่รู้ path ของ VM ให้ไล่ดูทีละระดับ
ovftool --noSSLVerify vi://administrator%[email protected]/DC1/vm/

ovftool จะถามรหัสผ่านเอง อย่าใส่รหัสผ่านลงในคำสั่งเพราะจะติดอยู่ในประวัติคำสั่ง ตัวเลือก --noSSLVerify ข้ามการตรวจใบรับรองของ vCenter ใช้ได้ในเครือข่ายภายในที่ไว้ใจได้เท่านั้น รูปแบบคำสั่งเพิ่มเติมดูใน OVF Tool Command Syntax to Export and Deploy OVA/OVF Packages

ขั้นตอนที่ 4: ตรวจไฟล์จาก VMware VM Export แล้วแปลงดิสก์

ไฟล์ OVA ที่ได้จาก VMware VM Export คือไฟล์ tar ที่มี .ovf, .mf (ค่า checksum) และดิสก์ .vmdk แบบ streamOptimized อยู่ข้างใน ก่อนส่งต่อให้ตรวจว่าไฟล์ครบและเปิดได้ บนเครื่อง Linux ที่ใช้แปลง (ชื่อไฟล์ดิสก์จริงดูจากผล tar -tvf)

tar -tvf web-01.ova
tar -xvf web-01.ova
qemu-img info web-01-disk1.vmdk
ผลคำสั่ง qemu-img info ของดิสก์ vmdk แบบ streamOptimized จากไฟล์ VMware VM Export และการแปลงเป็น qcow2
virtual size ต้องเท่ากับขนาดดิสก์ใน vSphere ส่วน disk size คือข้อมูลที่ใช้จริงหลังบีบอัด

มีสองทางให้เลือก ทางที่แนะนำคือ virt-v2v ซึ่งอ่าน OVA ตรวจ checksum ในไฟล์ .mf ติดตั้งไดรเวอร์ virtio ให้ Windows และพยายามถอด VMware Tools ให้ด้วย แต่ต้องใช้พื้นที่ใน /var/tmp (หรือ $VIRT_V2V_TMPDIR) เท่ากับขนาดดิสก์แบบไม่บีบอัด รายละเอียดอยู่ใน เอกสาร virt-v2v

mkdir -p /srv/v2v
virt-v2v -i ova /data/export/web-01.ova -o local -os /srv/v2v -of qcow2

อีกทางสำหรับ Linux ที่ตรวจไดรเวอร์ virtio ใน initramfs แล้วตามขั้นตอนที่ 1 คือแปลงไฟล์ดิสก์ตรง ๆ ด้วย qemu-img ซึ่งเร็วกว่าแต่ไม่แก้อะไรในระบบปฏิบัติการ

qemu-img convert -p -f vmdk -O qcow2 web-01-disk1.vmdk web-01.qcow2

ขั้นตอนที่ 5: นำดิสก์จาก VMware VM Export ขึ้นคลาวด์และบูตครั้งแรก

วิธีนำไฟล์ดิสก์เข้าแต่ละแพลตฟอร์มต่างกัน ก่อนอัปโหลดให้ถามผู้ให้บริการว่ารับไฟล์แบบ qcow2, raw หรือ OVA ส่งทางใด และเครื่องปลายทางรองรับ Firmware แบบ BIOS หรือ UEFI ตรงกับ VM เดิมหรือไม่ เพราะ VM ที่ติดตั้งแบบ EFI จะบูตไม่ขึ้นบนเครื่องที่ตั้งเป็น BIOS สำหรับลูกค้า THAI DATA CLOUD ให้เปิด Ticket แจ้งทีมงานพร้อมขนาดไฟล์จาก VMware VM Export และ Firmware ของ VM

บูตครั้งแรกแบบยังไม่เปิดให้ผู้ใช้เข้า และดูหน้าจอผ่าน Console ของแพลตฟอร์มตาม คู่มือ Remote เข้า Console ผ่าน Web UI เพราะถ้าเครือข่ายยังไม่ขึ้น จะ SSH หรือ Remote Desktop เข้าไม่ได้

ขั้นตอนที่ 6: ตรวจระบบหลัง VMware VM Export และเก็บงานที่เหลือ

Linux

ip -br a                       # ชื่อการ์ดเครือข่ายใหม่ เช่น ens3 แทน ens192
lsmod | grep virtio
findmnt --verify
systemctl --failed
journalctl -p err -b --no-pager | tail -n 30
sudo apt purge -y open-vm-tools      # Ubuntu / Debian
sudo dnf remove -y open-vm-tools     # AlmaLinux / Rocky

ถ้าการ์ดเครือข่ายเปลี่ยนชื่อ ให้แก้ไฟล์ตั้งค่าเครือข่ายให้ตรงชื่อใหม่ บน Ubuntu ดูวิธีใน คู่มือ Netplan แล้วรัน sudo netplan apply จากหน้า Console

Windows

เปิด Device Manager ตรวจว่าไม่มีอุปกรณ์ที่ขึ้นเครื่องหมายตกใจ ตั้ง IP ให้การ์ดเครือข่ายใหม่ถ้าไม่ได้ใช้ DHCP ถ้า Windows แจ้งว่า IP นี้ถูกใช้โดยการ์ดอื่น แปลว่าการ์ด vmxnet3 เดิมยังซ่อนอยู่ ให้เปิด View > Show hidden devices แล้วถอนการ์ดเดิมออก จากนั้นตรวจ VMware Tools ใน Apps & features ว่าถูกถอนแล้ว และตรวจสถานะการเปิดใช้งาน Windows

ตารางเปรียบเทียบอุปกรณ์ของ VM บน VMware กับบนคลาวด์ KVM หลัง VMware VM Export เช่น ตัวควบคุมดิสก์ การ์ดเครือข่าย และ Guest tools
ทุกแถวคือสิ่งที่ต้องตรวจหลังบูตครั้งแรก โดยเฉพาะชื่อการ์ดเครือข่ายและไดรเวอร์ดิสก์

เมื่อทุกอย่างผ่าน ให้ทำตามรายการตรวจก่อนเปิดใช้ใน เช็กลิสต์ Go-live แล้วจึงสลับ DNS ให้ผู้ใช้มาที่เครื่องใหม่ หลัง VMware VM Export ให้เก็บ VM เดิมไว้แบบปิดเครื่องจนผ่านช่วงรอถอยกลับ อย่าเปิด VM เดิมพร้อมเครื่องใหม่ในเครือข่ายเดียวกัน เพราะ IP และชื่อเครื่องจะชนกัน

เช็กลิสต์หลัง VMware VM Export และบูตบนคลาวด์ ตรวจเครือข่าย ไดรเวอร์ บริการ VMware Tools และ VM เดิมที่ยังเก็บไว้
ผ่านทุกข้อสีเขียวก่อนสลับ DNS และอย่าเปิด VM เดิมพร้อมเครื่องใหม่ในเครือข่ายเดียวกัน

ปัญหาที่พบบ่อยเกี่ยวกับ VMware VM Export

ทำไมเมนู Export OVF Template เป็นสีเทาตอนเริ่ม VMware VM Export?

VM ยังเปิดอยู่ ต้องปิด VM ก่อนส่งออก ถ้าปิดแล้วยังกดไม่ได้ ให้ตรวจว่าบัญชีมีสิทธิ์ส่งออก และ VM ไม่ได้เข้ารหัสหรือมี vTPM

VMware VM Export ผ่านเบราว์เซอร์หยุดกลางทางเมื่อดิสก์ใหญ่ ทำอย่างไร?

ใช้ ovftool ส่งออกตรงจาก ESXi แทนการผ่านเบราว์เซอร์ และให้เครื่องที่รัน ovftool อยู่ในเครือข่ายเดียวกับ ESXi ตามบทความของ Broadcom การส่งออกตรงจาก ESXi ยังเลี่ยงปัญหา session ของ vCenter หมดเวลาได้ด้วย

ไฟล์ OVA จาก VMware VM Export ไม่เท่ากับขนาดดิสก์ใน vSphere เป็นเรื่องปกติไหม?

ปกติ ดิสก์ใน OVA เป็น vmdk แบบบีบอัด ขนาดไฟล์จึงใกล้กับข้อมูลที่ใช้จริงมากกว่าขนาดดิสก์ที่ตั้งไว้ เมื่อแปลงเป็น qcow2 ไฟล์จะโตตามข้อมูลจริงเช่นกัน ส่วน virtual size ใน qemu-img info ต้องเท่ากับขนาดดิสก์เดิมเสมอ

Linux บูตแล้วค้างที่ dracut emergency shell หรือหาดิสก์ราก (root) ไม่เจอ แก้อย่างไร?

initramfs ไม่มีไดรเวอร์ virtio หรือ fstab อ้างชื่ออุปกรณ์เดิม ให้กลับไปทำขั้นตอนที่ 1 บน VM ต้นทางแล้วทำ VMware VM Export ใหม่ หรือแปลงด้วย virt-v2v ซึ่งตรวจและเตือนเรื่องนี้ระหว่างแปลง

ถ้ามี VM หลายเครื่องที่ต้องทำ VMware VM Export และต้องการแผนย้ายเป็นรอบพร้อมช่วงทดสอบ ติดต่อทีมงาน THAI DATA CLOUD หรือดูรายละเอียดบริการ VMware Migration

อ่านเพิ่มเติมเกี่ยวกับ VMware VM Export

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน