Tóm tắt nhanh
- i440FX là Machine Type mặc định cho máy ảo x86 trong Proxmox VE, nhưng tuổi của chipset mô phỏng không quyết định tốc độ CPU hay băng thông của máy ảo.
- Q35 cung cấp bus PCIe ảo, phù hợp khi cần trình bày thiết bị passthrough dưới dạng PCIe; không phải mọi hình thức passthrough đều bắt buộc Q35.
- Chuyển một máy ảo hiện có sang Q35 có thể làm Linux đổi tên giao diện mạng, khiến cấu hình IP cũ không còn khớp.
- Với máy ảo đang phục vụ ổn định, nên xác định nhu cầu cụ thể, chuẩn bị bản sao lưu và đường truy cập console trước khi đổi Machine Type.
Proxmox VE vẫn dùng Intel 440FX làm lựa chọn mặc định cho bo mạch ảo x86 trong tài liệu chính thức, dù XDA Developers ghi nhận chipset gốc đã xuất hiện từ năm 1996. Điều dễ hiểu nhầm là coi lựa chọn này như một giới hạn hiệu năng: máy chủ dùng CPU mới nhưng máy ảo lại phải hoạt động như một chiếc Pentium Pro.
Thực chất, mục Machine quyết định cách hệ điều hành khách nhìn thấy bo mạch và các bus kết nối. Giữ cấu hình cũ có thể là lựa chọn hợp lý, còn đổi sang Q35 chỉ đáng làm khi nó giải quyết được một nhu cầu phần cứng cụ thể. Với một homelab có nhiều dịch vụ, rủi ro mất kết nối sau thay đổi thường đáng quan tâm hơn cảm giác đang dùng một chipset quá cũ.
i440FX không biến máy ảo thành máy tính đời cũ

Machine Type mô tả sơ đồ phần cứng của máy ảo, chứ không ấn định sức mạnh xử lý theo đời chipset mà nó mô phỏng. Hệ điều hành khách nhận diện các cầu nối và bộ điều khiển như trên một bo mạch có thật, nhưng điều đó không có nghĩa QEMU áp tốc độ bus của chiếc máy tính nguyên bản lên toàn bộ hoạt động của máy ảo.
Trên máy chủ x86 sử dụng KVM, mã lệnh của hệ điều hành khách được thực thi bằng CPU của máy chủ. Còn CPU Type quyết định những tính năng bộ xử lý nào được đưa ra cho khách sử dụng. Đây là một lớp cấu hình khác với Machine Type; chỉ đổi tên bo mạch ảo không tương đương nâng cấp CPU hay cấp thêm tài nguyên cho dịch vụ.
Sự phân biệt tương tự cũng áp dụng với ổ đĩa và card mạng. Một thiết bị VirtIO dùng cơ chế bán ảo hóa để phối hợp với hypervisor, thay vì bắt hệ thống mô phỏng toàn bộ hành vi của một bộ điều khiển phần cứng cũ. Vì vậy, cần xem thiết bị mà máy ảo thực sự đang sử dụng, thay vì nhìn i440FX rồi kết luận ngay rằng lưu trữ hoặc mạng bị giới hạn theo phần cứng thời trước.
Tài liệu Proxmox khuyến nghị VirtIO SCSI hoặc VirtIO Block cho hiệu năng và khả năng duy trì. Với máy ảo Linux mới, VirtIO SCSI single cùng IO Thread là cấu hình mặc định từ Proxmox VE 7.3. Khi IO Thread được bật trên cấu hình hỗ trợ, tác vụ nhập xuất được xử lý bằng luồng riêng, giúp tránh để I/O đĩa chặn luồng chính hoặc luồng vCPU.
| Thiết lập | Quyết định điều gì? | Không nên hiểu thành |
|---|---|---|
| Machine Type | Sơ đồ bo mạch ảo, bus và thiết bị tích hợp | Mức hiệu năng của CPU đời chipset gốc |
| CPU Type | Các tính năng CPU mà hệ điều hành khách nhìn thấy | Thay thế cho lựa chọn bus PCI hay PCIe |
| SeaBIOS hoặc OVMF | Firmware khởi động của máy ảo | Một tên gọi khác của i440FX hay Q35 |
| Bộ điều khiển đĩa, card mạng VirtIO | Cách máy ảo trao đổi I/O với hypervisor | Thiết bị bắt buộc phải chạy theo tốc độ bus cổ |
Với một máy ảo chậm, kết luận hữu ích trước tiên là phải kiểm tra đúng lớp cấu hình. Đổi i440FX sang Q35 không tự sửa được việc dùng bộ điều khiển đĩa không phù hợp, thiếu driver VirtIO hay cấp tài nguyên chưa sát nhu cầu. Ngược lại, một máy ảo dùng i440FX cùng thiết bị VirtIO vẫn có thể là cấu hình hoàn toàn hợp lý cho dịch vụ thông thường.
Q35 cần cho PCIe, không phải nút tăng tốc chung

Giá trị quan trọng của Q35 là bus PCI Express ảo. Nó mở ra cách trình bày thiết bị cho hệ điều hành khách mà i440FX không có, thay vì chỉ thay một tên chipset cũ bằng tên mới hơn trong giao diện.

Theo thông số được XDA Developers nêu, Q35 mô phỏng Intel Q35 Express cùng ICH9 từ năm 2007. Bản thân nền tảng này cũng không mới, nên lập luận “chọn cái hiện đại nhất để nhanh hơn” không giải thích đúng khác biệt. Điều cần quan tâm là thiết bị được nối vào loại bus nào và driver trong hệ điều hành khách có làm việc đúng với cách bố trí đó hay không.

Passthrough là trường hợp dễ thấy nhất: máy chủ trao một thiết bị vật lý, chẳng hạn GPU hoặc card điều khiển lưu trữ, cho máy ảo sử dụng. Khi muốn thiết bị xuất hiện trên cổng PCIe ảo, Q35 là lựa chọn cần thiết. i440FX vẫn có thể thực hiện passthrough theo cách trình bày thiết bị như card PCI truyền thống, nhưng cách này không phù hợp với mọi tổ hợp thiết bị, driver và hệ điều hành.

Vì vậy, “GPU passthrough nên bắt đầu với Q35” là lời khuyên thực dụng, còn “mọi passthrough đều không chạy trên i440FX” lại quá tuyệt đối. Cũng không nên suy ra rằng chọn Q35 là hoàn tất passthrough: đó mới là cấu hình phía bo mạch ảo, không thay thế việc chuẩn bị thiết bị và khả năng hỗ trợ trên máy chủ.

Q35 còn là yêu cầu đối với kiểu IOMMU mô phỏng của Intel. Cần phân biệt vIOMMU mà hệ điều hành khách nhìn thấy với việc chuẩn bị IOMMU trên máy chủ; chúng nằm ở những lớp khác nhau và không nên được gộp thành một ô bật tắt duy nhất.

Với Windows 11, trình tạo máy ảo được XDA Developers mô tả sẽ tự chọn Q35 cùng firmware UEFI và TPM. Đây là hành vi của trình tạo cấu hình được bài nguồn ghi nhận, không phải bằng chứng rằng mọi máy ảo Windows 11 có sẵn đều đang dùng Q35, càng không phải lý do để thay đổi hàng loạt máy ảo cũ mà chưa kiểm tra cấu hình thực tế.

Nếu ngay từ đầu đã dự định đưa GPU vào một máy ảo mới, chọn Q35 từ lúc tạo máy giúp tránh một lần thay đổi nền tảng về sau. Còn máy ảo chỉ chạy dịch vụ qua ổ đĩa và card mạng VirtIO, không cần PCIe ảo, sẽ ít có lý do để đổi chỉ vì thấy i440FX mang tên một chipset lâu đời.
Đổi bo mạch ảo có thể làm mất mạng sau khi khởi động

Thay Machine Type trên máy ảo hiện có nên được coi như một lần thay bo mạch, không phải một tinh chỉnh có thể làm mà bỏ qua bước kiểm tra sau đó. Phần mềm và dữ liệu có thể vẫn còn nguyên, nhưng vị trí thiết bị mà hệ điều hành nhìn thấy đã thay đổi.
Trên Linux, tên giao diện mạng có thể phụ thuộc vào vị trí thiết bị trong sơ đồ bus. Khi chuyển từ i440FX sang Q35 rồi khởi động lại, giao diện trước đó mang tên ens18 có thể xuất hiện với tên khác, chẳng hạn enp6s18. Đây là ví dụ, không phải quy tắc đổi tên cố định cho mọi bản phân phối hay mọi cấu hình máy ảo.
Nếu cấu hình mạng vẫn gắn địa chỉ IP với tên cũ, hệ điều hành có thể khởi động nhưng không nhận được cấu hình IP mong muốn. Từ bên ngoài, tình trạng này dễ bị hiểu thành máy ảo không lên hoặc dịch vụ bị lỗi, trong khi nguyên nhân nằm ở việc cấu hình không còn trỏ đúng giao diện. Máy chủ quản trị qua SSH sẽ đặc biệt bất tiện nếu người vận hành không chuẩn bị lối vào console.
Windows cũng nhạy với thay đổi phần cứng ảo. Tài liệu Proxmox giải thích rằng phiên bản machine của khách Windows được ghim khi tạo máy, bởi ngay cả giữa những lần khởi động nguội, việc thay đổi phần cứng vẫn có thể làm cách hệ điều hành liệt kê thiết bị khác đi. Không nên khẳng định lần đổi nào cũng lỗi, nhưng cũng không nên coi việc khởi động thành công là đã kiểm tra xong.
Trước khi thao tác, nên có bản sao lưu dùng được và ghi lại cấu hình hiện tại, đặc biệt là Machine Type, firmware, bộ điều khiển đĩa và thông tin mạng. Với dịch vụ quan trọng, thử trên bản clone là cách thận trọng hơn việc sửa ngay máy đang phục vụ. Đây là khuyến nghị vận hành để giảm rủi ro, không phải cam kết rằng clone tái hiện được mọi điều kiện phần cứng passthrough của máy gốc.
Sau thay đổi và khởi động lại, cần kiểm tra tên giao diện, địa chỉ IP và kết nối từ hệ điều hành khách; tiếp đó mới kiểm tra dịch vụ phụ thuộc vào mạng. Nếu đổi tên giao diện, hãy sửa đúng cấu hình mạng mà bản phân phối đang sử dụng, thay vì áp một lệnh sửa chung cho mọi Linux. Kiểm tra cả thứ tự khởi động và khả năng nhận ổ đĩa nếu máy không vào hệ điều hành như trước.
Một khác biệt nữa thường bị bỏ qua là Machine Type và Machine Version không phải cùng một khái niệm. Có thể vẫn dùng cùng loại bo mạch nhưng thay phiên bản phần cứng ảo mà QEMU cung cấp. Tài liệu Proxmox yêu cầu chuẩn bị sao lưu và đề phòng thay đổi nhận diện phần cứng khi cập nhật phiên bản machine; do đó, cảnh báo phiên bản sắp hết hỗ trợ cần được xử lý theo hướng nâng phiên bản phù hợp, không mặc định hiểu thành yêu cầu chuyển mọi i440FX sang Q35.
Homelab nên tách việc tối ưu khỏi thay đổi nền tảng

Với homelab tại nhà, lựa chọn hợp lý là chia máy ảo theo vai trò thay vì ép tất cả dùng một cấu hình giống nhau. Máy dùng thử phần cứng có thể ưu tiên Q35 ngay từ đầu, còn máy đang cung cấp dịch vụ ổn định cần một lý do rõ ràng hơn trước khi thay bo mạch ảo. Chuẩn hóa cấu hình có ích, nhưng chuẩn hóa chỉ để danh sách trông đồng đều không bù được thời gian khôi phục một dịch vụ bị mất mạng.
Điểm nên tách thành hai việc là tối ưu hiệu năng và thay đổi khả năng kết nối thiết bị. Nếu mục tiêu là I/O, hãy xem bộ điều khiển đĩa, driver và cấu hình VirtIO. Nếu mục tiêu là đưa thiết bị PCIe vào khách theo đúng cách trình bày cần thiết, hãy đánh giá Q35. Làm rõ mục tiêu trước giúp tránh đổi nhiều lớp cùng lúc rồi không biết thay đổi nào gây lỗi hoặc mang lại cải thiện.
Máy ảo mới cũng khác máy đã chạy lâu ngày: chọn Q35 lúc tạo máy có thể tránh phải chuyển đổi về sau khi nhu cầu PCIe đã rõ, nhưng điều đó không khiến cấu hình i440FX hiện tại trở thành cấu hình sai. Với thiết bị phục vụ gia đình, khả năng truy cập và phục hồi sau thay đổi thường có giá trị trực tiếp hơn tuổi của chipset ghi trong mục System.
Phạm vi này cũng chỉ áp dụng cho máy ảo x86. Tài liệu Proxmox nêu máy ảo trên máy chủ arm64 dùng Machine Type virt, mô hình ARM chung dựa trên UEFI; còn container LXC không phải máy ảo QEMU có một bo mạch i440FX hay Q35 để chuyển đổi. Việc chúng cùng xuất hiện trong danh sách quản trị không khiến các lựa chọn phần cứng ảo áp dụng được cho cả hai.
Giữ nguyên i440FX là lựa chọn có cơ sở khi dịch vụ đang ổn và chưa cần bus PCIe ảo. Khi đã có nhu cầu Q35, phần đáng đầu tư thời gian không phải thao tác chọn lại một mục trong giao diện, mà là bản sao lưu, thử nghiệm và đường truy cập để xử lý máy ảo nếu mạng không trở lại sau lần khởi động tiếp theo.
Nguồn tham khảo: Tài liệu Proxmox VE, XDA Developers







