Bài 01
Ảo hóa cơ bản: ESXi và Máy ảo
Bài 01 — Ảo hóa cơ bản: ESXi và Máy ảo
Đây là bài đầu tiên của chặng. Mục tiêu: sau bài này bạn hiểu ảo hóa thực sự là gì, cài được ESXi trên server vật lý (hoặc nested ESXi trên laptop), tạo được máy ảo đầu tiên, và biết tại sao chọn thin thay thick (hoặc ngược lại).
Đừng vội học vCenter, HA, DRS. Concept ảo hóa và máy ảo phải vững — không thì sau này nhìn cluster sẽ thấy magic, không hiểu vì sao.
Vấn đề trước khi có ảo hóa
Hồi 2008, mình làm IT cho 1 công ty nhỏ. Datacenter có 30 server vật lý. Mỗi server chạy đúng 1 app:
- 5 server chạy SQL Server (mỗi cái 1 database)
- 8 server chạy web (mỗi cái 1 website)
- 3 server chạy mail
- 14 server chạy linh tinh khác
Vấn đề:
- Mỗi server CPU idle 90%, RAM dùng 20%. Mua hardware mạnh để chỉ dùng 1 phần nhỏ.
- Cài app mới = mua server mới. Chờ ship 2 tuần, cài OS 1 ngày, join domain, cài app — 3 tuần mới có app chạy.
- Server die = downtime. Không có backup ngay, phải mua server mới, restore từ tape backup.
- Tốn điện, tốn không gian, tốn cooling. Datacenter to gấp 5 lần cần thiết.
Cuối 2009, sếp gọi: "Có thằng VMware bán cái gì gọi là ảo hóa, mày tìm hiểu xem."
3 tháng sau, mình chuyển 30 server vật lý xuống còn 5 host ESXi, chạy 30 máy ảo. Tiết kiệm:
- Hardware: từ 30 server xuống 5 → tiết kiệm 80%.
- Điện: tương ứng.
- Không gian rack: từ 30U xuống 5U.
- Deploy app mới: từ 3 tuần xuống 30 phút (clone máy ảo).
Đây là lý do tại sao ảo hóa thay đổi data center. Chặng này dạy bạn tech đó.
Thuật ngữ ảo hóa — phải hiểu trước khi đi tiếp
| Thuật ngữ | Định nghĩa |
|---|---|
| Operating System (OS) | Hệ điều hành — phần mềm chạy trên phần cứng (Windows, Linux). |
| Application | Ứng dụng chạy trên OS (Chrome, MySQL, nginx). |
| Virtual Machine (VM) | Máy ảo — cũng là 1 ứng dụng phần mềm có thể tách khỏi phần vật lý. Trông như 1 PC độc lập (có CPU, RAM, disk, network), nhưng thực ra là phần mềm chạy trên hypervisor. |
| Guest OS | Hệ điều hành cài bên trong máy ảo (Windows trong VM, Linux trong VM...). |
| Hypervisor | Hệ điều hành cài trên máy chủ vật lý để tạo ra nền tảng ảo hóa. Với VMware là ESXi. Hypervisor "mở ra" và quản lý các VM. |
| Host | Máy chủ vật lý đã cài ESXi (hypervisor). |
| vSphere | Cái tên VMware tạo ra cho bộ sản phẩm bao gồm ESXi và vCenter. vSphere = ESXi + vCenter (+ một số component khác). |
| Cluster | Nhiều host (máy chủ ESXi) gộp lại thành một nhóm để quản lý chung. |
| vMotion | Tính năng chuyển máy ảo từ host vật lý này sang host vật lý khác mà VM vẫn đang chạy. Người dùng không cảm nhận được. |
| vSphere HA | Cách VMware bảo vệ máy ảo khi host gặp sự cố — VM tự restart trên host khác. |
| vSphere DRS | Distributed Resource Scheduler — tự cân bằng tải CPU, RAM giữa các host trong cluster. |
⚠️ Nhầm lẫn phổ biến:
- Nhiều người gọi VMware = ESXi. Sai. VMware là công ty. ESXi là hypervisor. vSphere là bộ sản phẩm.
- Nhầm "host" với "guest". Host = máy vật lý (có ESXi). Guest = OS trong VM. Phải nhớ kỹ.
Type 1 vs Type 2 Hypervisor
Tài liệu user không nhắc rõ — nhưng đây là kiến thức base.
Type 1 — Bare-metal hypervisor
Hypervisor chạy trực tiếp trên phần cứng, không cần OS trung gian.
┌─────────────────────────────────┐
│ VM 1 │ VM 2 │ VM 3 │
├────────┴────────┴────────────────┤
│ Hypervisor (ESXi) │ ← chạy trực tiếp trên hardware
├──────────────────────────────────┤
│ Hardware (CPU, RAM) │
└──────────────────────────────────┘Ví dụ: VMware ESXi, Microsoft Hyper-V, Citrix XenServer, Linux KVM.
Ưu: hiệu suất gần như native (overhead < 5%). Sản phẩm production.
Type 2 — Hosted hypervisor
Hypervisor chạy trên OS như 1 app thông thường.
┌─────────────────────────────────┐
│ VM 1 │ VM 2 │
├────────┴───────────────────────┬┤
│ Hypervisor (VMware Workstation)│
├──────────────────────────────────┤
│ Host OS (Windows/macOS) │
├──────────────────────────────────┤
│ Hardware │
└──────────────────────────────────┘Ví dụ: VMware Workstation, VMware Fusion, VirtualBox, Parallels.
Ưu: cài dễ trên laptop. Nhược: chậm hơn Type 1 (vì qua layer OS).
→ Production luôn dùng Type 1 (ESXi). Type 2 chỉ cho dev/test.
Bức tranh tổng thể: Sản phẩm VMware
VMware có 4 sản phẩm ảo hóa chính, kết hợp lại thành Software-Defined Data Center (SDDC):
┌─────────────────────────────────────────────────────────┐
│ Software-Defined Data Center (SDDC) │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ vSphere │ │ NSX │ │ vSAN │ │
│ │ (Server) │ │ (Network) │ │ (Storage) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ │
│ │ Horizon │ │
│ │ (Desktop) │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────┘- vSphere — ảo hóa server (ESXi + vCenter). Đây là cái bạn học chính trong chặng này.
- NSX — ảo hóa network. Tạo virtual switch, router, firewall hoàn toàn phần mềm.
- vSAN — ảo hóa storage. Gộp disk của các host thành 1 pool storage chung.
- Horizon — ảo hóa desktop (VDI). User truy cập máy ảo Windows từ máy tính cá nhân.
Thêm 1 sản phẩm hay: VMware Skyline — thu thập thông tin hệ thống, dùng AI phân tích, đưa ra recommendation (proactive support).
Chặng này focus vào vSphere thôi.
Vật lý vs Ảo hóa — Resource Pool Concept
Trước khi vào lab, hiểu điều quan trọng nhất:
Mô hình vật lý truyền thống
Server 1 Server 2 Server 3
┌──────────┐ ┌──────────┐ ┌──────────┐
│ App A │ │ App B │ │ App C │
├──────────┤ ├──────────┤ ├──────────┤
│ Windows │ │ Linux │ │ Linux │
├──────────┤ ├──────────┤ ├──────────┤
│ 8 CPU │ │ 8 CPU │ │ 8 CPU │
│ 32GB RAM │ │ 32GB RAM │ │ 32GB RAM │
│ 1TB disk │ │ 1TB disk │ │ 1TB disk │
└──────────┘ └──────────┘ └──────────┘
Idle 90% Idle 95% Idle 80%Tài nguyên cố định, không chia sẻ được. Mỗi server chỉ chạy 1 app → lãng phí.
Mô hình ảo hóa — Pool
Resource Pool
┌─────────────────────────────────────────┐
│ 24 CPU / 96GB RAM / 3TB disk │
│ │
│ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
│ │VM1 │ │VM2 │ │VM3 │ │VM4 │ │VM5 │ ...│
│ └────┘ └────┘ └────┘ └────┘ └────┘ │
│ │
└─────────────────────────────────────────┘
▲ ▲ ▲
│ │ │
┌──────────┐ ┌──────────┐ ┌──────────┐
│ ESXi 1 │ │ ESXi 2 │ │ ESXi 3 │
│ 8 CPU │ │ 8 CPU │ │ 8 CPU │
│ 32GB RAM │ │ 32GB RAM │ │ 32GB RAM │
└──────────┘ └──────────┘ └──────────┘3 host vật lý → 1 pool tài nguyên chung. VM "rút" tài nguyên từ pool. Cần bao nhiêu cấp bấy nhiêu.
Mindset thay đổi:
- Vật lý: "App này cần 1 server" → mua server.
- Ảo hóa: "App này cần 4 CPU + 8GB RAM" → tạo VM, lấy từ pool.
Đây là chìa khóa. Hiểu khái niệm pool → hiểu cloud (AWS pool = data center khổng lồ), hiểu Kubernetes resource quota, hiểu mọi modern infra.
Các thành phần ảo hóa từ vật lý
| Tài nguyên vật lý | Trong ảo hóa |
|---|---|
| CPU | vCPU (virtual CPU) — map vào logical CPU của host |
| RAM | vRAM |
| Disk | vDisk (file .vmdk) |
| Network card | vNIC (virtual NIC) |
| Switch | vSwitch (virtual switch) |
| Storage | Datastore (VMFS, NFS, vSAN, vVOLs) |
→ Mọi thứ phần cứng đều có "phiên bản ảo" trong môi trường ảo hóa.
ESXi — Hypervisor của VMware
ESXi là hệ điều hành của VMware, dạng bare-metal hypervisor (Type 1). Cài trực tiếp lên phần cứng server, không cần OS phụ.
Đặc điểm
- File ISO dùng để boot và cài đặt.
- Free trial 60 ngày — tải về dùng thử miễn phí, sau đó cần license.
- ISO có 2 dạng:
- Custom — dành cho server brand cụ thể (Dell, HP, Cisco...). ISO đã có sẵn driver phù hợp với hardware đó.
- Original — generic, tự cài driver thêm nếu cần.
- Footprint nhỏ — ESXi chỉ ~150MB sau cài. So với Linux server ~5GB. Tối ưu cho hypervisor.
- Quản trị qua web UI, SSH, hoặc vCenter (xem section sau).
⚠️ License 60 ngày là vấn đề thật. Trial hết, các tính năng nâng cao tắt. Phải nhập license thật hoặc reinstall. Production luôn mua license đầy đủ.
Cài đặt ESXi
Yêu cầu
- Server vật lý có hỗ trợ Intel VT-x hoặc AMD-V (CPU virtualization extensions). Server hiện đại nào cũng có.
- Tối thiểu 2 CPU core, 8GB RAM (production thường 64GB+).
- Disk để cài ESXi (có thể nhỏ — vài chục GB là đủ vì ESXi nhẹ).
- Network card.
Cho lab — nested ESXi
Không có server vật lý? Dùng nested virtualization:
Laptop (Windows/Mac/Linux)
└── VMware Workstation/Fusion
└── VM1 (4 CPU, 16GB) → cài ESXi
└── VM2 (4 CPU, 16GB) → cài ESXi
└── VM3 (4 CPU, 16GB) → cài ESXi3 ESXi nested → có cluster mini cho lab. Cần laptop ~32GB RAM. Performance kém hơn bare-metal nhưng đủ để học.
Cài đặt step-by-step
- Tải ISO ESXi từ trang VMware (cần đăng ký account).
- Burn ISO ra USB hoặc mount qua iDRAC/iLO.
- Boot server từ ISO → installer khởi động.
- Đồng ý EULA → chọn disk cài → đặt root password → cài.
- Reboot → ESXi boot lên → màn hình DCUI (Direct Console User Interface).
DCUI — màn hình config đầu tiên
DCUI là giao diện console trực tiếp trên màn hình kết nối với server. Đây là nơi config ESXi sau khi cài.
VMware ESXi 8.0.0
--------------------
IP Address: 0.0.0.0 (DHCP failed)
<F2> Customize System / View Logs
<F12> Shut Down / RestartBấm F2 → đăng nhập root → config:
- Configure Management Network — đặt IP tĩnh, gateway, DNS.
- Restart Management Network — apply thay đổi.
- Test Management Network — ping test.
- Lockdown Mode — bật để chặn truy cập trực tiếp qua DCUI (chỉ cho qua vCenter).
- Strict Lockdown Mode — chặn hoàn toàn, chỉ vCenter quản trị được.
Cấu hình NTP — không thể bỏ qua
Thời gian phải được đồng bộ bằng NTP. Đây là cực kỳ quan trọng vì:
- vMotion, HA cần thời gian sync giữa các host.
- Authentication (vCenter SSO) fail nếu thời gian lệch > 5 phút.
- Log timestamp không tin được nếu host trễ giờ.
Bật NTP trên web UI hoặc qua DCUI:
Settings → System → Time and Date → NTP Server
pool.ntp.org⚠️ Mọi host trong cluster phải sync NTP, lệch nhau < 1 giây. Đây là pitfall kinh điển khi setup vCenter.
Giao diện quản trị
vSphere có nhiều cách quản trị, biết để chọn đúng tool:
| Tool | Mục đích | URL/Cách dùng |
|---|---|---|
| VMware Host Client | Quản trị 1 host qua web | https://<ESXi-IP>/ui |
| vSphere Client | Quản trị toàn bộ cluster qua vCenter | https://<vCenter-IP>/ui (Bài 02) |
| SSH / ESXi Shell | CLI low-level, debug | ssh root@<ESXi-IP> |
| PowerCLI | Automation qua PowerShell | Cài PowerCLI module |
Khi nào dùng:
- Lab/small setup → Host Client (web).
- Production multi-host → vSphere Client qua vCenter.
- Automation / scripting → PowerCLI hoặc API.
- Debug deep → SSH vào ESXi (xem log, troubleshoot).
⚠️ Port firewall: ESXi và vCenter dùng nhiều port. Khi setup network policies, check https://ports.vmware.com để biết chính xác port nào cho service nào.
Default ports quan trọng:
- 443 — Web UI, vSphere Client.
- 902 — VMRC console, ESXi → vCenter.
- 22 — SSH.
Tạo máy ảo
Có 4 cách tạo VM:
- Tạo VM mới — từ con số 0, chọn từng option.
- Deploy từ OVA/OVF — file đóng gói VM sẵn (giống "VM image"). Download từ vendor → deploy → có VM chạy luôn.
- Clone từ VM có sẵn — copy VM hiện tại.
- Deploy từ template — VM được convert thành template (Bài 04).
OVA vs OVF
- OVF (Open Virtualization Format) — bộ nhiều file:
.ovf(metadata),.vmdk(disk),.mf(manifest),.cert(signature). - OVA (Open Virtualization Archive) — gói nén tất cả vào 1 file
.ova(thực chất là.tar).
Cả hai là standard cross-hypervisor — xuất từ VMware import được vào VirtualBox/Hyper-V (về lý thuyết).
Tạo VM mới — 4 bước
Bước 1 — Compatibility & Guest OS:
- Compatibility — tính tương thích. Chọn version Hardware (vd: ESXi 7.0) → VM chỉ chạy trên ESXi 7.0+. Chọn thấp hơn → chạy được trên host ESXi cũ.
- Guest OS family — Windows / Linux / Other.
- Guest OS version — cụ thể (Windows Server 2022, RHEL 9...).
⚠️ Chọn đúng Guest OS quan trọng — ESXi sẽ apply optimization phù hợp (driver, default settings).
Bước 2 — Storage:
Chọn datastore để chứa VM. Có thể là local disk hoặc shared storage (NFS, vSAN — Bài 03).
Bước 3 — Hardware:
Cấu hình virtual hardware (xem section sau).
Bước 4 — Power on:
Khởi động VM. Lúc này như máy mới mua — cần cài OS qua ISO.
Files của VM
Mỗi VM nằm trong 1 folder trên datastore. Folder tên trùng tên VM. Ví dụ VM tên web-server:
[datastore1]
└── web-server/
├── web-server.vmx ← config file
├── web-server.vswp ← swap file (= dung lượng RAM)
├── web-server.nvram ← BIOS file
├── vmware.log ← log file
├── web-server.vmtx ← template config (nếu là template)
├── web-server.vmdk ← disk descriptor (mô tả disk)
├── web-server-flat.vmdk ← disk data (chứa data thật)
└── web-server.vmss ← suspend state (khi suspend VM)Hiểu các file:
| File | Vai trò | Khi nào tạo |
|---|---|---|
.vmx |
Config file — định nghĩa hardware VM (CPU, RAM, disk...) | Lúc tạo VM |
.vswp |
Swap file — dùng khi host hết RAM. Kích thước = vRAM của VM | Lúc VM power on |
.nvram |
BIOS/UEFI settings | Lúc tạo VM |
vmware.log |
Log của VM | Lúc tạo |
.vmtx |
Template config (chỉ khi VM convert thành template) | Khi convert |
.vmdk |
Disk descriptor — metadata về disk | Lúc tạo disk |
-flat.vmdk |
Data thật của disk — file lớn nhất | Lúc tạo disk |
.vmss |
Suspend state — khi VM bị suspend | Lúc suspend |
⚠️ Backup .vmx + -flat.vmdk là bắt buộc. 2 file này = toàn bộ VM.
VMware Tools
VMware Tools là bộ driver + utilities cài bên trong Guest OS để VM hoạt động tối ưu với hypervisor.
Tại sao bắt buộc cài
Không cài VMware Tools, VM vẫn chạy nhưng:
- Mouse không di chuyển mượt giữa host và guest.
- Resolution màn hình không auto-fit.
- Network card chỉ dùng được E1000 (1Gb), không dùng được VMXNET3 (10Gb).
- Không hỗ trợ vMotion (cần driver balloon).
Thành phần VMware Tools
- SVGA display driver — hiển thị mượt, resolution cao.
- Keyboard/mouse driver — input mượt.
- VMXNET / VMXNET3 driver — network card hiệu suất cao (1Gb / 10Gb).
- Balloon driver — quản lý memory ảo, giảm downtime khi host thiếu RAM.
- Sync time với host — VM lấy time từ ESXi.
- Graceful shutdown —
shutdowntừ vCenter hoạt động (không phải hard kill). - Heartbeat tới vCenter — vCenter biết VM còn sống.
Balloon Driver — đáng chú ý
Balloon là trick clever của VMware để overcommit RAM.
Scenario: host có 32GB RAM, có 5 VM, mỗi VM cấp 8GB → tổng 40GB. Quá host. Sao chạy được?
- Balloon driver trong guest "giả vờ chiếm" RAM không dùng trong guest.
- Guest OS thấy "RAM full" → swap data ít quan trọng ra disk của nó.
- Balloon driver "trả lại" RAM đó cho hypervisor → host dùng cho VM khác.
Đây là cách VMware làm "memory overcommit" — chỉ work khi VMware Tools cài đúng.
⚠️ Production: cài VMware Tools là bắt buộc. Tải từ web VMware hoặc qua menu Install VMware Tools trong vCenter/Host Client.
Virtual Hardware — cấu hình VM
VM "trông như" máy thật — có CPU, RAM, disk, network. Nhưng tất cả là virtual.
Virtual Hardware Version
Mỗi VM có 1 hardware version — quyết định feature nào hỗ trợ.
Ví dụ:
- Hardware version 11 → tối đa 64 vCPU, 4TB RAM.
- Hardware version 17 → tối đa 256 vCPU, 6TB RAM, hỗ trợ NVMe ảo.
Compatibility quan trọng: VM hardware version cao hơn ESXi → không chạy được trên ESXi đó.
Ví dụ: VM hardware v17 chạy được trên ESXi 7+. Mang sang ESXi 6.7 → fail.
→ Khi tạo VM, chọn compatibility version phù hợp với host thấp nhất trong cluster. Ví dụ cluster có ESXi 6.7 và 7.0 → chọn compatibility 6.7 để VM chạy được trên cả 2.
CPU và RAM
ESXi 7+ giới hạn:
- Tối đa 256 vCPU mỗi VM.
- Tối đa 6TB RAM mỗi VM.
Trong thực tế, hiếm khi cần vậy. Khuyến cáo:
- vCPU nên cấp vừa đủ. Cấp nhiều quá có thể phản tác dụng (CPU scheduling phức tạp). VM 2 vCPU thường tốt hơn 8 vCPU nếu app không multi-thread.
- VMware khuyến cáo: thay vì 4 socket × 1 core, dùng 1 socket × 4 core. Tốt hơn cho most workloads.
Virtual Storage Controllers
Disk được điều khiển qua controller. Các loại controller:
| Controller | Đặc điểm | Use case |
|---|---|---|
| LSI Logic Parallel | Cổ điển, tương thích rộng | Linux cũ |
| LSI Logic SAS | Tương thích Windows, Linux modern | Default cho nhiều OS |
| Paravirtual SCSI (PVSCSI) | Hiệu suất cao — driver tối ưu cho ảo hóa | Production, app I/O nặng |
| AHCI SATA | Tương đương SATA vật lý | OS legacy |
| NVMe | Hiện đại, hiệu suất rất cao | VM mới, SSD storage |
Khuyến cáo production: Paravirtual SCSI hoặc NVMe.
⚠️ Paravirtual SCSI cần driver — Windows/Linux modern có sẵn. Cài Windows cũ cần load driver thủ công.
Disk Provisioning — 3 kiểu cấp disk
Đây là phần kinh điển — chọn sai là tốn dung lượng hoặc chậm.
1. Thin Provisioning
Dùng tới đâu, cấp phát tới đó. File .vmdk tự dãn nở khi guest ghi data.
Tạo VM với disk 100GB (thin):
Lúc tạo: file vmdk = 0 GB
Sau cài OS: file vmdk = 5 GB
Sau cài app: file vmdk = 15 GB
Khi đầy: file vmdk = 100 GB- ✅ Tiết kiệm dung lượng — không phí disk cho không gian chưa dùng.
- ✅ Overcommit — có thể cấp tổng disk vượt quá dung lượng datastore (vd: 5 VM × 100GB = 500GB trên datastore 200GB. Nếu mỗi VM chỉ dùng 20GB, OK).
- ❌ Tốc độ chậm nhất — mỗi lần dãn nở phải allocate block mới.
- ❌ Rủi ro datastore đầy — nếu nhiều VM cùng dãn nở, datastore hết → VM treo.
2. Thick Provisioning Eager Zeroed
Cấp đủ dung lượng + zero-out toàn bộ disk ngay lúc tạo.
Tạo VM với disk 100GB (thick eager zeroed):
Lúc tạo: file vmdk = 100 GB, toàn bộ ghi zeros
Sau cài OS: file vmdk = 100 GB (data ghi đè zeros)- ✅ Tốc độ nhanh nhất — block đã allocated + zero sẵn.
- ✅ Hỗ trợ Fault Tolerance — vSphere FT cần loại này.
- ❌ Tốn dung lượng ngay — 100GB trên disk dù VM chưa dùng.
- ❌ Tốn thời gian tạo — phải ghi 100GB zeros (lâu).
3. Thick Provisioning Lazy Zeroed (default)
Cấp đủ dung lượng nhưng zero-out khi guest ghi data.
Tạo VM với disk 100GB (thick lazy zeroed):
Lúc tạo: file vmdk = 100 GB, chưa zero
Khi guest ghi: block đó được zero rồi mới ghi- ✅ Cấp đủ dung lượng ngay — không lo datastore đầy.
- ✅ Tạo nhanh hơn eager zeroed — không cần ghi zeros toàn bộ.
- ⚠️ Tốc độ trung bình — lần đầu ghi 1 block hơi chậm hơn (cần zero trước).
- Đây là default khi tạo VM.
Bảng so sánh
| Tiêu chí | Thin | Thick Lazy | Thick Eager |
|---|---|---|---|
| Dung lượng tốn ban đầu | Ít | Đầy đủ | Đầy đủ |
| Tốc độ tạo | Nhanh | Nhanh | Chậm |
| Tốc độ I/O | Chậm nhất | Trung bình | Nhanh nhất |
| Overcommit | Có | Không | Không |
| Hỗ trợ FT | Không | Không | Có |
Khi nào chọn gì
- Thin — dev/test, low I/O app, tiết kiệm storage. Nhưng phải monitor datastore.
- Thick Lazy (default) — đa số case production. Cân bằng tốc độ và đơn giản.
- Thick Eager — DB nặng I/O, vSphere FT, không quan tâm dung lượng.
Convert giữa các loại
- Thin → Thick: dùng vMotion hoặc tính năng Inflate (phải tắt VM).
- Thick → Thin: dùng vMotion.
vMotion = công cụ vạn năng, sẽ học chi tiết Bài 04.
Virtual Network Card
Network card ảo gắn vào VM. Có nhiều loại:
| Loại | Tốc độ | Yêu cầu | Use case |
|---|---|---|---|
| E1000 | 1 Gb | Hỗ trợ rộng (không cần VMware Tools) | Default fallback |
| E1000e | 1 Gb | Tương tự E1000, mới hơn | Windows 8+ |
| VMXNET3 | 10 Gb | Cần VMware Tools | Production |
| SR-IOV | Tốc độ vật lý | Card vật lý hỗ trợ + cấu hình BIOS | App siêu nặng network |
Khuyến cáo: VMXNET3 cho mọi production VM. 10Gb là chuẩn data center hiện đại.
SR-IOV và DirectPath I/O
Đây là 2 tính năng bypass hypervisor để VM truy cập card vật lý trực tiếp:
SR-IOV (Single Root I/O Virtualization) — card vật lý chia thành nhiều "virtual function", mỗi VM gắn 1 VF. Hiệu suất gần như native nhưng mất vMotion.
vSphere DirectPath I/O — VM dùng trực tiếp 1 card vật lý, không qua hypervisor. Hiệu suất tốt nhất nhưng VM bị "khóa" với host đó (không vMotion được).
⚠️ Trade-off: Hiệu suất cao ↔ mất tính năng ảo hóa (vMotion, HA, snapshot). Production hiếm dùng, chỉ cho app đặc biệt (HFT trading, ML training).
Port Group và VLAN
- Port Group — nhóm port ảo trên virtual switch, có VLAN ID.
- VM connect vào port group → ăn theo VLAN ID đó.
- Switch ảo không tạo được VLAN mới — phải ăn theo VLAN của switch vật lý.
Học chi tiết hơn ở Bài 03.
Virtual GPU — card đồ họa ảo
vSphere hỗ trợ card đồ họa GPU dành riêng cho nền tảng ảo hóa, từ 2 hãng chính: AMD và NVIDIA.
Có 3 mode chia GPU cho VM:
1. vSGA (Virtual Shared Graphics Acceleration)
- GPU được chia sẻ giữa nhiều VM.
- Hiệu suất tốt cho UI 2D, video playback.
- Không phù hợp 3D nặng.
2. vDGA (Virtual Dedicated Graphics Acceleration)
- 1 GPU dành riêng cho 1 VM (1:1 mapping, như DirectPath I/O).
- Hiệu suất gần như native.
- Mất vMotion (vì GPU gắn cứng host).
3. vGPU (NVIDIA GRID / AMD MxGPU)
- GPU vật lý chia thành profile vGPU — mỗi VM dùng 1 phần.
- Cân bằng giữa chia sẻ và hiệu suất.
- Cần license NVIDIA GRID hoặc AMD MxGPU (không free).
Use cases
- Horizon VDI — user remote desktop cần render 3D (CAD, design).
- Machine Learning — VM training model dùng CUDA.
- Video streaming / transcoding — encode/decode hardware accelerated.
⚠️ Production setup vGPU phức tạp: cần card GPU enterprise (NVIDIA Tesla, A-series; AMD Instinct), driver host + guest, license. Lab thường không cần đụng tới — chỉ note để biết.
Virtual Device — đĩa, USB và các thiết bị khác
Ngoài CPU/RAM/disk/network, VM còn có thể gắn các virtual device khác:
CD/DVD Drive ảo
Settings → CD/DVD Drive →
◯ Client Device (mount từ máy client đang vào console)
◯ Host Device (mount drive vật lý của host)
◉ Datastore ISO File ← dùng nhiều nhất
→ /vmfs/volumes/datastore1/iso/centos-9.isoUse case:
- Cài OS cho VM mới — mount ISO từ datastore.
- Upgrade driver — mount VMware Tools ISO.
- Recovery — boot từ ISO live khi VM lỗi.
Tips: upload sẵn ISO lên datastore, dễ dùng cho nhiều VM.
USB Passthrough
VM có thể truy cập USB device cắm vào host vật lý:
- USB Controller — thêm controller vào VM (USB 2.0 hoặc 3.x).
- USB Device — add USB cụ thể cắm vào host (license key, smart card reader, dongle).
⚠️ USB passthrough khóa VM vào host đó — không vMotion được khi USB đang gắn.
Use case kinh điển: app legacy yêu cầu dongle license (HASP key) — phải gắn USB vật lý lên host và passthrough vào VM.
Serial Port / Parallel Port
VM có thể có virtual serial/parallel port — dùng cho:
- Console output (Linux kernel debug).
- Legacy hardware (POS terminal, máy đo lường công nghiệp).
Floppy Drive
Vẫn còn tồn tại (!) — chủ yếu cho OS rất cũ cần boot từ floppy. Đa số production không dùng.
Virtual Machine Console
Console là cách "nhìn vào màn hình" của VM (như cắm monitor vào server vật lý).
2 cách mở console:
- Web console — qua trình duyệt, không cần cài gì. Tiện nhưng hơi lag.
- VMRC (VMware Remote Console) — cài tool riêng. Chạy mượt hơn, hỗ trợ mount ISO, copy/paste với host.
→ Lab thì web console OK. Production nên cài VMRC. Tải từ trang VMware.
Câu chuyện thực tế
Năm 2017, mình làm cho 1 cty fintech. Họ có 1 app trading legacy chạy trên Windows Server 2003 — OS đã hết support, không thể update, không thể cài driver mới. Nhưng app rất quan trọng, không thể viết lại.
Hardware chạy app này là server Dell PowerEdge 2950 — đã 10 năm tuổi. Đèn báo lỗi HDD bật từ tháng trước. Sếp IT lo: "server này die là cả công ty mất tiền."
Bài toán: giữ app chạy được, nhưng không thể tin tưởng hardware cũ.
Giải pháp: P2V (Physical to Virtual) — convert server vật lý thành VM.
Server Dell PowerEdge 2950 (Windows Server 2003)
│
│ P2V tool (VMware Converter)
▼
VM file (.vmx + .vmdk)
│
│ Import vào ESXi 7.0 (server modern)
▼
VM Windows Server 2003 chạy trên ESXi 7P2V copy toàn bộ disk + state của server vật lý thành VM. Sau đó deploy lên ESXi mới. VM trông y hệt server cũ với guest OS — registry, file, IP, app, mọi thứ.
Result:
- Server cũ tắt được.
- App vẫn chạy như cũ trên VM.
- Snapshot trước update — rollback nếu fail.
- Backup VM = backup cả app.
- Khi hardware mới die → vMotion sang host khác trong 30 giây.
App đã chết về mặt support từ 2014, nhưng vẫn chạy đến 2020 nhờ ảo hóa. Cty đỡ phải rewrite app (~6 tháng dev).
Bài học:
Ảo hóa = bảo hiểm cho legacy. App cũ không thể viết lại → biến thành VM, chạy mãi mãi.
P2V là tool cứu mạng. Có hardware cũ sắp die → P2V ngay, lo gì.
Snapshot trước mọi thay đổi. App legacy update → snapshot → update → fail → rollback. An toàn 100%.
VM portable hơn hardware. Hardware đời cũ chết là chết. VM mang sang host mới trong 5 phút.
Lab — chạy từ đầu
Lab 1: Cài ESXi trên nested (VMware Workstation)
Trên laptop:
Tải VMware Workstation Pro trial.
Tải ESXi ISO từ VMware.
Tạo VM trên Workstation:
- Guest OS: "VMware ESX 7" (hoặc Other → custom)
- 4 vCPU, 8GB RAM, 80GB disk
- Quan trọng: bật "Virtualize Intel VT-x/EPT" trong VM settings (nếu không thì ESXi không cài được).
Mount ISO ESXi → boot VM → cài ESXi như cài bare-metal.
Sau khi cài xong, ESXi boot lên DCUI:
- F2 → đặt IP tĩnh (vd:
192.168.32.150) - Setup DNS, NTP
- Apply
- F2 → đặt IP tĩnh (vd:
Truy cập
https://192.168.32.150/ui→ đăng nhập root → vào Host Client.
Lab 2: Tạo VM đầu tiên
Trong Host Client:
Click Create / Register VM → Create a new virtual machine.
Đặt tên:
test-vm, Guest OS Family: Linux, Version: CentOS 9 (64-bit).Chọn datastore (datastore1 default).
Customize hardware:
- 2 vCPU, 4GB RAM
- Disk 20GB, Thin Provisioning (lab nên thin để tiết kiệm).
- Network: VM Network
- CD/DVD: Datastore ISO file → upload ISO CentOS lên datastore trước.
Click Finish.
Power on VM → console → cài CentOS như bare-metal.
Sau khi cài xong, cài VMware Tools:
# Trong VM CentOS sudo dnf install -y open-vm-tools sudo systemctl enable --now vmtoolsd(
open-vm-toolslà VMware Tools open-source, đã có trong repo CentOS.)
Lab 3: Quan sát files của VM
SSH vào ESXi:
ssh root@192.168.32.150
cd /vmfs/volumes/datastore1/test-vm
ls -laThấy các file:
test-vm.vmx
test-vm.vmdk ← 1KB (descriptor)
test-vm-flat.vmdk ← 20GB (data — sparse vì thin)
test-vm.nvram
vmware.logKiểm tra disk thật chiếm bao nhiêu (thin nên ít hơn 20GB):
du -sh test-vm-flat.vmdk
# Vd: 4.5G test-vm-flat.vmdk→ File "kích thước 20GB" thực ra chỉ chiếm 4.5GB trên đĩa. Đây là sparse file — magic của thin provisioning.
Lab 4: Snapshot và rollback
- Trong Host Client → chọn VM → Snapshots → Take snapshot.
- Đặt tên "before-test".
- Trong VM, làm gì đó (xóa file, sửa config).
- Click Restore snapshot → VM rollback về trạng thái lúc snapshot.
Quan sát file trên datastore:
ls /vmfs/volumes/datastore1/test-vm
# Có thêm: test-vm-000001-delta.vmdk ← chứa thay đổi sau snapshot(Snapshot chi tiết ở Bài 04.)
Lab 5: Convert thin → thick
VM hiện đang thin. Convert sang thick:
- Power off VM.
- Right-click VM → Inflate.
- ESXi sẽ ghi zero cho phần chưa dùng → file
-flat.vmdkchiếm đủ 20GB.
du -sh test-vm-flat.vmdk
# 20G test-vm-flat.vmdkPitfalls
NTP không sync giữa các host → vCenter SSO fail, vMotion fail, log timestamp lệch. Production luôn config NTP cùng pool.ntp.org hoặc internal NTP server.
ESXi license expire 60 ngày → trial hết, tính năng nâng cao tắt. Mua license hoặc reinstall.
Quên
Virtualize Intel VT-x/EPTkhi nested ESXi trên Workstation → ESXi không boot. Bật trong VM settings.Tạo VM với hardware version cao hơn ESXi → VM không chạy trên ESXi cũ. Chọn compatibility version phù hợp với host thấp nhất.
Thin provisioning + không monitor datastore → datastore đầy do nhiều VM cùng dãn nở → mọi VM treo. Monitor disk usage qua vCenter.
Không cài VMware Tools → không vMotion được, mouse lag, network chỉ E1000 (1Gb). Cài VMware Tools (hoặc
open-vm-tools) là bắt buộc.Cấp quá nhiều vCPU → ngược tác dụng. CPU scheduling phức tạp, performance kém hơn ít vCPU. Cấp vừa đủ.
Dùng E1000 thay VMXNET3 → tốc độ network giới hạn 1Gb. Đổi sang VMXNET3 sau khi cài VMware Tools.
Snapshot quá lâu (>72h) hoặc quá nhiều (>3 cái) → file delta lớn, máy chậm, rủi ro fail. Snapshot là test rollback ngắn hạn, không phải backup.
Quên backup
.vmxvà-flat.vmdk→ mất VM. Backup datastore là bắt buộc.Dùng DirectPath I/O production → mất vMotion, HA → khi host die là VM die luôn. Trade-off cao.
Lockdown mode bật trước khi setup vCenter → không truy cập được host nữa! Bật lockdown SAU khi join vCenter.
Tóm tắt
- Ảo hóa = tách app khỏi phần cứng vật lý. 1 server vật lý → nhiều VM, mỗi VM như 1 server riêng.
- Hypervisor Type 1 (ESXi) chạy trực tiếp hardware, Type 2 (Workstation) chạy trên OS.
- vSphere = ESXi + vCenter (+ một số component). Là sản phẩm chính của VMware cho server virtualization.
- Resource pool — tài nguyên cluster là pool, VM rút từ pool. Mindset khác hoàn toàn vật lý.
- VMware Tools là bắt buộc trong mọi production VM — driver, balloon, sync, vMotion.
- 3 disk provisioning: Thin (tiết kiệm, chậm), Thick Lazy (default), Thick Eager (FT, nhanh nhất).
- VMXNET3 cho network — 10Gb, cần VMware Tools.
- Files của VM:
.vmx(config) +-flat.vmdk(data) là 2 file quan trọng nhất. - NTP sync là bắt buộc trong cluster — không sync = nhiều thứ fail.
- Snapshot ngắn hạn, không phải backup. Max 3 snapshot, max 72h.
Bài tiếp: 02 — vCenter Server: quản lý tập trung nhiều host.