Đến nội dung chính
Infra Notes
DOCS / UTF-8
Runbook // Quy trình vận hànhinfrastructure

Infrastructure

DOC PATH runbooks/infrastructure/operations

📘 Mục đích: Hướng dẫn xử lý sự cố phần cứng và restore hạ tầng VMware/Proxmox. Thay các giá trị dạng <HOST>, <POOL>, <DISK_BY_ID>, <VM>, <MAINTENANCE_WINDOW> bằng thông tin thực tế trước khi thao tác.

⚠ Thay disk, RAM/CPU/PSU, can thiệp RAID/ZFS và thay mainboard đều có thể gây downtime hoặc mất dữ liệu nếu xác định sai thiết bị. Trước khi thao tác, kiểm tra backup, trạng thái cluster/replication, serial/slot vật lý và bố trí maintenance window phù hợp.

Tình huống Ưu tiên an toàn Xác minh hoàn tất
Disk lỗi, hỗ trợ hot-swap Xác nhận đúng serial/slot và quy trình thay disk của model server; theo dõi rebuild/resilver. RAID Optimal/Healthy hoặc ZFS ONLINE.
RAM / CPU / PSU Migrate VM/CT nếu có thể; nếu không, lên lịch downtime và shutdown guest đúng thứ tự. Host/node online, nhận đúng phần cứng, workload hoạt động ổn định.
Hỏng mainboard Ghi nhận thứ tự disk và cấu hình RAID; ưu tiên giữ RAID controller gốc hoặc dùng controller tương thích đã được xác minh. Storage import đúng, network hoạt động và host/node kết nối lại cluster.

💡 Trước khi thay đổi, ghi lại trạng thái hệ thống, cảnh báo phần cứng, serial/slot, thời gian bắt đầu và người thực hiện. Dùng các thông tin này để kiểm tra sau bảo trì, rollback hoặc chuyển sự cố cho bộ phận hỗ trợ.

⚠ Điểm kiểm tra bắt buộc: xác nhận cảnh báo phần cứng, tên pool/RAID, Serial Number và Slot Number trước khi thao tác. Chỉ thay nóng khi server, backplane và disk hỗ trợ hot-swap. Dùng Locate/Blink và đối chiếu serial; không xác định disk chỉ qua màu đèn hoặc vị trí.

💡 Trong khi rebuild/resilver, hạn chế workload nặng và tránh reboot hoặc thay đổi storage khi không cần thiết. Theo dõi tiến trình, lỗi I/O và trạng thái các disk còn lại đến khi RAID/ZFS hoạt động bình thường.

Giai đoạn Thao tác trên RAID 5 Thao tác trên RAID 10
Bước 1: Phát hiện và định vị Kiểm tra cảnh báo Degraded trong vCenter/iDRAC hoặc công cụ RAID controller. Ghi Slot ID, Serial Number; bật Locate/Blink rồi đối chiếu với disk tại rack. Thực hiện như RAID 5; xác định thêm mirror pair có disk lỗi.
Bước 2: Đánh giá tác động RAID 5 đang mất một disk không còn khả năng chịu thêm một disk lỗi. Xác minh backup và cân nhắc migrate VM sang storage khác nếu môi trường cho phép; đánh giá tải do migration tạo ra. Nếu tiếp tục phục vụ, chọn thời điểm ít tải và theo dõi sát. Đánh giá trạng thái disk còn lại trong từng mirror pair. RAID 10 vẫn có nguy cơ mất dữ liệu nếu cả hai disk trong cùng pair lỗi. Migrate VM có thể giảm ảnh hưởng dịch vụ nhưng không loại bỏ rủi ro storage.
Bước 3: Thay disk Thực hiện đúng quy trình hot-swap của model server và carrier. Lắp disk thay thế đáp ứng yêu cầu tương thích, dung lượng và định dạng sector của RAID controller. Thực hiện cùng các bước xác minh và thay disk như RAID 5.
Bước 4: Theo dõi rebuild Controller đọc dữ liệu và parity còn lại để tái tạo dữ liệu trên disk mới. Theo dõi tiến trình, lỗi đọc và latency; thời gian phụ thuộc dung lượng, workload và trạng thái disk. Controller tái tạo dữ liệu từ mirror còn hoạt động. Rebuild thường ít tốn công tính parity hơn RAID 5, nhưng thời gian và ảnh hưởng hiệu năng vẫn phụ thuộc workload, controller và disk.
Bước 5: Hoàn tất Xác nhận rebuild hoàn tất, RAID ở trạng thái Optimal/Healthy và không có lỗi I/O mới. Cho host thoát Maintenance Mode nếu đã bật; kiểm tra dịch vụ. Xác nhận rebuild hoàn tất, mọi mirror pair hoạt động bình thường và RAID ở trạng thái Optimal/Healthy; kiểm tra dịch vụ.

Đối chiếu đặc điểm RAID với tài liệu RAID 5 và RAID 10 của Dell. Thao tác tháo/lắp, thời gian chờ và khả năng hot-swap phải theo manual của model server, không dùng một khoảng rút disk hoặc thời gian chờ cố định cho mọi thiết bị. Xem hướng dẫn xử lý sự cố PowerEdge.

Với ZFS, đối chiếu trạng thái pool và thông tin disk từ hệ điều hành trước khi xác định vị trí vật lý:

  1. SSH vào node Proxmox và kiểm tra trạng thái pool:

    Terminal window
    zpool status

Ghi lại tên thiết bị hoặc ID của disk lỗi, ví dụ sdc hoặc ata-WDC_WD40PURZ-XXXXXX. Tên thiết bị có thể thay đổi sau reboot; ưu tiên đối chiếu thêm đường dẫn by-id và serial.

  1. Lấy Serial Number (S/N) của disk đã xác định. /dev/sdc dưới đây chỉ là ví dụ:

    Terminal window
    smartctl -a /dev/sdc | grep -i serial

Ví dụ kết quả: Serial Number: WCC7K1XALXYZ

Mục có tiêu đề “Bước 2: Vào iDRAC đối chiếu thông tin và bật Blink LED (Verify)”

Đăng nhập giao diện web iDRAC để tìm slot vật lý theo serial vừa ghi nhận. Tên menu có thể khác theo phiên bản iDRAC và RAID controller.

  1. Trên iDRAC, đi tới mục: Storage > Physical Disks.
  2. Tìm disk có Serial Number khớp với giá trị đã ghi nhận ở bước 1; serial phải được đọc từ nhãn disk và inventory.
  3. Ghi lại Slot Number, ví dụ Slot 2. Trạng thái có thể là Non-Critical hoặc Failed, tùy lỗi và cách controller báo cáo.
  4. Tại disk đó, chọn Blink hoặc Execute Action > Blink.
  5. Nhấn Apply và xác nhận đèn định vị của slot tương ứng nhấp nháy.
  1. Xác định đúng server Dell tại rack theo service tag hoặc hồ sơ thiết bị.
  2. Tìm carrier có đèn Blink và đối chiếu số slot với thông tin ở bước 2.
  3. Xác nhận hệ thống hỗ trợ hot-swap rồi tháo disk theo manual của model server và carrier, bao gồm thời gian chờ nếu được yêu cầu.
  4. Đối chiếu lại serial trên nhãn disk vừa tháo với hồ sơ lỗi. Nếu không khớp, dừng thao tác và đánh giá trạng thái pool trước khi tiếp tục.
  5. Lắp disk mới có thông số và dung lượng phù hợp với pool, sau đó khóa carrier theo hướng dẫn của nhà sản xuất.

Trở lại phiên SSH trên node Proxmox để khai báo disk thay thế cho ZFS:

  1. Xác định ID và serial của disk mới:

    Terminal window
    ls -la /dev/disk/by-id/
  2. Đối chiếu tên pool, ID disk cũ và đường dẫn disk mới trước khi chạy lệnh replace. Lệnh này ghi dữ liệu lên disk thay thế:

    Terminal window
    zpool replace <tên_pool> <ID_ổ_cũ_hoặc_mã_số_lỗi> /dev/disk/by-id/<ID_ổ_mới>
  • Dùng zpool status để theo dõi resilver, trạng thái từng vdev và lỗi đọc/ghi/checksum.
  • Chỉ kết thúc khi resilver hoàn tất, pool ở trạng thái ONLINE và các lỗi còn lại đã được đánh giá.
  • Trong iDRAC, chọn disk đã thay và nhấn Unblink để tắt đèn định vị.

⚠ Đánh giá khả năng migrate, tài nguyên đích, tương thích CPU và tác động của local storage trước khi tắt host/node. Nếu không thể migrate, bố trí downtime, shutdown/startup theo thứ tự phụ thuộc dịch vụ và thông báo cho các bên liên quan. Một số PSU hỗ trợ hot-swap; chỉ áp dụng quy trình shutdown khi model phần cứng hoặc tình huống bảo trì yêu cầu.

💡 Sau khi bật lại, xác minh hardware health, network, storage, cluster membership và dịch vụ bên trong VM/CT trước khi kết thúc bảo trì.

Giai đoạn Có thể migrate VM sang host khác Không thể migrate, cần downtime
1. Chuẩn bị Kiểm tra CPU feature, RAM, storage, network vMotion và điều kiện migration của từng VM. EVC có thể giúp thống nhất CPU feature giữa các host tương thích, nhưng không bắt buộc cho mọi vMotion. Xác định dịch vụ bị ảnh hưởng, thời gian downtime, backup và thứ tự shutdown/startup.
2. Xử lý VM Chọn Migrate cho từng VM. Nếu phải chuyển cả compute và local storage, chọn Change both compute resource and storage khi môi trường hỗ trợ. Chờ migration hoàn tất và kiểm tra VM trên host đích. Dừng ứng dụng theo quy trình rồi chọn Power > Shut Down Guest OS hoặc shutdown từ guest. Xác nhận mọi VM đã tắt; xử lý riêng VM không phản hồi yêu cầu shutdown.
3. Đưa host vào bảo trì Khi các VM đã migrate hoặc shutdown, chọn Enter Maintenance Mode. Xác nhận host đã vào Maintenance Mode rồi chọn Power > Shut Down. Giữ dữ liệu VM trên datastore hiện tại. Sau khi mọi VM đã shutdown, đưa host vào Maintenance Mode rồi shutdown host.
4. Thay linh kiện và kiểm tra Khi server đã tắt, ngắt các nguồn điện theo manual trước khi thay RAM/CPU/PSU. Bật server, kiểm tra boot, phần cứng và kết nối vCenter. Xem Monitor > Hardware Health nếu nền tảng hỗ trợ các sensor tương ứng. Thực hiện cùng quy trình phần cứng; kiểm tra RAM/CPU được nhận đúng và không có cảnh báo hardware mới trước khi chạy VM.
5. Đưa dịch vụ trở lại Chọn Exit Maintenance Mode. Đánh giá lại phân bố tài nguyên và migrate VM về khi cần, theo chính sách DRS hoặc kế hoạch vận hành. Chọn Exit Maintenance Mode, bật VM theo thứ tự phụ thuộc dịch vụ, rồi kiểm tra network và ứng dụng.
Ảnh hưởng dịch vụ Live migration có thể giảm downtime, nhưng cần kiểm tra độ trễ hoặc gián đoạn ngắn và tải network/storage trong quá trình chuyển VM. VM và dịch vụ trên host dừng trong thời gian bảo trì, trừ khi ứng dụng có cơ chế dự phòng riêng.

Maintenance Mode không tự bảo đảm chuyển cả VM và disk sang host khác. Khả năng tự động di chuyển VM phụ thuộc DRS và các điều kiện của cluster. Tham khảo điều kiện CPU cho vMotion và xử lý Maintenance Mode khi không có DRS.

Giai đoạn Có thể migrate VM/CT sang node khác Không thể migrate, cần downtime
1. Chuẩn bị Kiểm tra RAM, storage, network và CPU feature mà VM đang dùng. Chọn CPU model tương thích với các node dự kiến nhận VM; không có một CPU model phù hợp mọi cluster. Kiểu CPU host vẫn có thể migrate khi node đích tương thích. Xác định downtime và thứ tự dừng dịch vụ. Kiểm tra backup và thông báo cho user.
2. Xử lý VM/CT Chọn migration phù hợp cho từng workload. VM có thể live migrate khi đáp ứng điều kiện; CT dùng restart migration sẽ dừng rồi khởi động lại và có downtime. Kiểm tra riêng local disk, mount point và thiết bị passthrough trước khi dùng Bulk Migrate. Dừng ứng dụng rồi yêu cầu Shutdown cho từng VM/CT; xác nhận guest đã tắt. Không coi Bulk Stop là bảo đảm graceful shutdown; kiểm tra timeout và tránh ép dừng guest khi chưa đánh giá ảnh hưởng dữ liệu.
3. Tắt node Xác nhận mọi VM/CT đã rời node hoặc dừng, không còn migration đang chạy. Kiểm tra trạng thái HA theo kế hoạch bảo trì rồi shutdown node từ giao diện hoặc console bằng poweroff. Giữ dữ liệu trên local storage. Sau khi các guest đã shutdown và trạng thái HA phù hợp, dùng poweroff để shutdown node.
4. Thay linh kiện và kiểm tra Khi server đã tắt, ngắt nguồn và thay linh kiện theo manual. Sau khi bật lại, kiểm tra boot, hardware, network, storage, quorum và cluster membership. Thực hiện cùng quy trình. Dùng Summary, lscpu hoặc free -m để xác nhận CPU/RAM được nhận đúng.
5. Đưa dịch vụ trở lại Migrate VM/CT về nếu cần để cân bằng tài nguyên và local storage; kiểm tra ứng dụng sau mỗi đợt migration. Kiểm tra log và trạng thái ZFS pool/LVM trước khi bật VM/CT. Khởi động dịch vụ nền tảng như database, DNS theo dependency thực tế, sau đó bật ứng dụng.
Ảnh hưởng dịch vụ VM live migration có thể giảm downtime nhưng không bảo đảm mọi ứng dụng không gián đoạn. CT restart migration có downtime; chuyển local disk tạo tải đáng kể lên network/storage. VM/CT trên node dừng trong thời gian bảo trì, trừ khi dịch vụ có cơ chế dự phòng riêng.

Đối chiếu điều kiện migration theo tài liệu VM của Proxmox và tài liệu container, đặc biệt CPU feature, local resource và loại migration.

⚠ Rủi ro cao: trước khi chuyển linh kiện, ghi lại serial và slot của mọi disk, cấu hình RAID/ZFS và topology. Với hardware RAID, ưu tiên giữ controller gốc; nếu phải thay controller, xác minh khả năng tương thích và quy trình migration của nhà sản xuất. Không chọn Clear Configuration, Create New Virtual Disk hoặc tạo lại pool/array khi đang cần bảo toàn dữ liệu cũ.

📘 Sau khi đổi mainboard, NIC có thể đổi tên/MAC; luôn kiểm tra mapping mạng management, storage và service trước khi đưa host/node trở lại production.

  1. Ngắt điện: Rút toàn bộ cáp nguồn của server lỗi theo quy trình phần cứng của nhà sản xuất.
  2. Đánh dấu disk: Ghi serial và slot của từng disk, ví dụ Slot 0, Slot 1, Slot 2. Lưu ảnh trước khi tháo.
  3. Chuyển linh kiện: Chỉ chuyển CPU, RAM và disk sang mainboard/chassis tương thích. Giữ đúng thứ tự slot theo hồ sơ và hướng dẫn của controller. Với hardware RAID, ưu tiên chuyển cả controller gốc cùng disk; nếu controller hỏng hoặc không tương thích với chassis mới, xác minh phương án thay thế trước khi lắp.
  4. Kết nối network: Gắn cáp management, vMotion, storage và service theo sơ đồ đã ghi nhận; đối chiếu từng NIC và switch port.

Sau khi hoàn tất lắp ráp phần cứng, thực hiện cấu hình phần mềm theo hạ tầng tương ứng:

Lựa chọn A: Đối với hạ tầng VMware vCenter (Hardware RAID)
Mục có tiêu đề “Lựa chọn A: Đối với hạ tầng VMware vCenter (Hardware RAID)”

Bước 1: Kiểm tra cấu hình RAID trước khi import

Bật server mới và vào giao diện RAID controller hoặc Lifecycle Controller. Controller có thể nhận cấu hình hiện có hoặc hiển thị Foreign Configuration, tùy phần cứng và trạng thái metadata. Đối chiếu disk, virtual disk, RAID level và dung lượng với hồ sơ trước khi chọn thao tác.

Chỉ dùng Import Foreign Configuration sau khi xác nhận đúng array, đủ disk cần thiết và không có disk ở trạng thái Missing trong bản xem trước. Nếu thiếu disk hoặc cấu hình không khớp, dừng và kiểm tra kết nối/controller trước. Các thao tác Clear Configuration, Create New Virtual Disk hoặc initialize có thể làm mất cấu hình hay dữ liệu cần restore. Tham khảo hướng dẫn xử lý foreign configuration của Dell.

Bước 2: Khởi động ESXi và cấu hình lại Network

Kiểm tra boot mode, boot order và khả năng nhận boot disk trước khi khởi động ESXi. Sau khi thay mainboard, hệ thống có thể cần cập nhật cấu hình boot hoặc NIC; không mặc định ESXi sẽ boot thành công hay giữ nguyên mapping network.

Bước 3: Kiểm tra management network và mapping NIC

Tại console/DCUI, vào Configure Management Network > Network Adapters để kiểm tra NIC dùng cho management network. Đây không phải thao tác gán lại toàn bộ vSwitch. Sau khi management hoạt động, kiểm tra riêng uplink, vSwitch/vDS, port group, VLAN và VMkernel interface cho vMotion/storage. Xác nhận host kết nối lại vCenter và kiểm tra dịch vụ trước khi đưa workload trở lại.

Lựa chọn B: Đối với hạ tầng Proxmox VE (ZFS / RAID mềm)
Mục có tiêu đề “Lựa chọn B: Đối với hạ tầng Proxmox VE (ZFS / RAID mềm)”

Bước 1: Kiểm tra boot và ZFS pool

Bật server mới, kiểm tra boot mode và khả năng nhận toàn bộ disk. ZFS lưu metadata trên disk, nhưng khả năng import pool còn phụ thuộc trạng thái disk, đường dẫn thiết bị và môi trường boot. Xác minh pool và vdev trước khi tiếp tục.

Nếu OS không boot, dùng môi trường rescue phù hợp để xác định nguyên nhân: UEFI/Legacy, boot entry, ESP, bootloader hoặc trạng thái pool. Không áp dụng một lệnh cứu hộ chung cho mọi hệ thống.

Lệnh zpool import -f rpool ép import pool; chỉ cân nhắc khi đã xác nhận đúng pool và pool không còn được host khác sử dụng. Import đồng thời trên nhiều host có thể gây hỏng dữ liệu. Xem tài liệu zpool import.

Lệnh proxmox-boot-tool init cần chỉ định đúng EFI System Partition và bootloader phù hợp; không chạy lên toàn bộ disk hoặc partition chứa dữ liệu. Xác định cách boot hiện có và làm theo hướng dẫn bootloader Proxmox.

Bước 2: Xác định NIC vật lý

Đăng nhập bằng root qua console server. Dùng ip a để xem tên và MAC của NIC, sau đó đối chiếu với cáp và switch port. Tên NIC có thể đổi khi vị trí PCIe thay đổi, ví dụ từ enp3s0 thành enp4s0f0.

Bước 3: Cập nhật file cấu hình mạng

Sử dụng Vim để chỉnh sửa file mạng:

Terminal window
vim /etc/network/interfaces

Kiểm tra bridge-ports của từng bridge, gồm vmbr0 nếu đang dùng. Cập nhật NIC theo mapping đã xác nhận; kiểm tra thêm bond, VLAN, IP và gateway để tránh sửa đúng tên NIC nhưng gán sai network.

Bước 4: Áp dụng cấu hình

Giữ quyền truy cập console khi áp dụng cấu hình vì management network có thể mất kết nối. Nếu kế hoạch yêu cầu reboot, chỉ khởi động lại sau khi đã kiểm tra cấu hình network và trạng thái storage. Sau khi boot, xác minh management, Corosync, quorum và cluster membership; xử lý lỗi còn lại trước khi chạy VM/CT.

📘 Luồng chuẩn: Kiểm kê VM → backup và chuẩn bị rollback → xử lý snapshot → shutdown VM nguồn → import từ ESXi hoặc VMDK → cấu hình firmware/disk/network → boot cô lập → cài driver/Guest Agent → validation → cutover.

⚠ Không bật đồng thời VM nguồn và VM đích trên cùng mạng production nếu dùng chung IP, hostname hoặc dữ liệu ứng dụng. Không xóa VM VMware cho đến khi VM Proxmox đã được nghiệm thu và backup thành công.

  1. Ghi nhận CPU, RAM, số lượng/thứ tự disk, BIOS/UEFI, VLAN, IP, gateway, DNS, MAC và dependency ứng dụng.

  2. Kiểm tra backup và xác định phương án rollback.

  3. Kiểm tra snapshot trong vSphere Client:

    VM → Snapshots → Manage Snapshots
    VM → Snapshots → Consolidate
  4. Xác định firmware trong guest:

    Terminal window
    # Linux
    test -d /sys/firmware/efi && echo "UEFI" || echo "Legacy BIOS"
    Terminal window
    # Windows PowerShell
    Get-ComputerInfo | Select-Object BiosFirmwareType
  5. Với Windows: lưu BitLocker Recovery Key, tạm suspend BitLocker nếu cần và chuẩn bị ISO VirtIO.

  6. Dừng ứng dụng theo quy trình rồi shutdown guest OS; xác nhận VM nguồn đã tắt hoàn toàn trước khi import chính thức.

Trên giao diện Proxmox:

Datacenter → Storage → Add → ESXi

Nhập thông tin ESXi, sau đó chọn VM trong ESXi storage và chọn Import. Cấu hình storage đích, bridge, BIOS/UEFI, CPU, RAM và disk bus.

Khuyến nghị ban đầu:

  • Linux: VirtIO SCSI Single + disk SCSI + NIC VirtIO.
  • Windows chưa có VirtIO: disk SATA + NIC E1000; sau khi cài driver mới chuyển sang SCSI/VirtIO.
  • Boot lần đầu trong VLAN/bridge cô lập hoặc để NIC ở trạng thái link down.

Kiểm tra cấu hình sau import:

Terminal window
qm config <VMID>
Terminal window
VMID=120
VMNAME="migrated-vm"
STORAGE="vm-data"
BRIDGE="vmbr0"
VMDK="/var/lib/vz/import/vmware-vm/disk.vmdk"
pvesm status
df -h
qemu-img info "$VMDK"

Với datastore VMware có cặp disk.vmdk và disk-flat.vmdk, phải giữ cả hai cùng thư mục và import file descriptor disk.vmdk; không import riêng disk-flat.vmdk.

Terminal window
qm create "$VMID" \
--name "$VMNAME" \
--memory 4096 \
--cores 4 \
--cpu x86-64-v2-AES \
--machine q35 \
--bios ovmf \
--scsihw virtio-scsi-single \
--net0 virtio,bridge="$BRIDGE",link_down=1
qm set "$VMID" \
--efidisk0 "$STORAGE":0,efitype=4m

Nếu VM nguồn dùng Legacy BIOS, chọn SeaBIOS và không tạo EFI Disk:

Terminal window
qm create "$VMID" \
--name "$VMNAME" \
--memory 4096 \
--cores 4 \
--cpu x86-64-v2-AES \
--machine q35 \
--bios seabios \
--scsihw virtio-scsi-single \
--net0 virtio,bridge="$BRIDGE",link_down=1
Terminal window
qm disk import "$VMID" "$VMDK" "$STORAGE"
qm config "$VMID"

Disk import sẽ xuất hiện dưới dạng unused0, ví dụ:

unused0: vm-data:120/vm-120-disk-1.qcow2

Gắn đúng volume ID lấy từ qm config:

Terminal window
qm set "$VMID" \
--scsi0 vm-data:120/vm-120-disk-1.qcow2
qm set "$VMID" \
--boot order=scsi0
qm config "$VMID"

Không tự suy đoán volume ID vì cú pháp khác nhau theo loại storage:

Directory : vm-data:120/vm-120-disk-1.qcow2
LVM-thin : local-lvm:vm-120-disk-0
ZFS : local-zfs:vm-120-disk-0
Ceph RBD : ceph-pool:vm-120-disk-0
Terminal window
qm start "$VMID"
qm status "$VMID"
Terminal window
uname -a
lsblk -f
df -h
ip -br link
ip -br address
ip route
cat /etc/fstab
systemctl --failed
journalctl -p err -b

Tên NIC trong guest như ens160/ens192 trên VMware có thể đổi thành ens18 sau migration; cập nhật Netplan hoặc NetworkManager nếu cấu hình phụ thuộc tên NIC hoặc MAC.

Cài QEMU Guest Agent:

Terminal window
# Ubuntu/Debian
sudo apt update
sudo apt install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
# RHEL/AlmaLinux/Rocky
sudo dnf install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent

Bật QEMU Guest Agent trong cấu hình VM trên Proxmox:

Terminal window
qm set "$VMID" --agent enabled=1
qm agent "$VMID" ping
  1. Boot OS disk bằng SATA và dùng NIC E1000 nếu Windows chưa có VirtIO.
  2. Mount virtio-win.iso và cài VirtIO Storage, Network, Balloon và QEMU Guest Agent.
  3. Shutdown Windows.
  4. Chuyển disk sang SCSI và NIC sang VirtIO.
  5. Không gỡ VMware Tools trước khi VirtIO và QEMU Guest Agent hoạt động ổn định.

Ví dụ gắn ISO VirtIO:

Terminal window
qm set "$VMID" \
--ide2 local:iso/virtio-win.iso,media=cdrom

Kiểm tra trước cutover:

Terminal window
qm config "$VMID"
qm status "$VMID"
qm agent "$VMID" ping

Xác nhận:

  • OS boot và reboot thành công.
  • Disk/filesystem mount đúng thứ tự.
  • VLAN, IP, gateway, DNS, NTP và timezone chính xác.
  • Database, web/API và các service hoạt động.
  • License không bị ảnh hưởng bởi thay đổi UUID/MAC.
  • Backup Proxmox chạy thử thành công.
  • Monitoring nhận VM mới.

Sau khi kiểm tra hoàn tất, xác nhận VM nguồn đã tắt rồi bật network production cho VM đích:

Terminal window
qm set "$VMID" \
--net0 virtio,bridge="$BRIDGE"

Nếu cutover thất bại, shutdown VM Proxmox và xác nhận VM đích đã ngừng ghi dữ liệu. Đánh giá các thay đổi phát sinh sau cutover trước khi bật lại VM VMware nguồn và restore network/DNS cũ. Giữ VM nguồn ở trạng thái powered off trong thời gian nghiệm thu; chỉ xem xét xóa theo kế hoạch sau khi đã xác nhận migration và backup thành công.