Bài 01

Ảo hóa cơ bản: ESXi và Máy ảo

11 tháng 5, 2026 · 120 phút đọc

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 ESXi

3 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

  1. Tải ISO ESXi từ trang VMware (cần đăng ký account).
  2. Burn ISO ra USB hoặc mount qua iDRAC/iLO.
  3. Boot server từ ISO → installer khởi động.
  4. Đồng ý EULA → chọn disk cài → đặt root password → cài.
  5. 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 / Restart

Bấ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 → SystemTime 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

4 cách tạo VM:

  1. Tạo VM mới — từ con số 0, chọn từng option.
  2. 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.
  3. Clone từ VM có sẵn — copy VM hiện tại.
  4. 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.loglog 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 shutdownshutdown từ 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 Không Không
Hỗ trợ FT Không Không

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: AMDNVIDIA.

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.iso

Use 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:

  1. Web console — qua trình duyệt, không cần cài gì. Tiện nhưng hơi lag.
  2. 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 7

P2V 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:

  1. Ả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.

  2. P2V là tool cứu mạng. Có hardware cũ sắp die → P2V ngay, lo gì.

  3. Snapshot trước mọi thay đổi. App legacy update → snapshot → update → fail → rollback. An toàn 100%.

  4. 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:

  1. Tải VMware Workstation Pro trial.

  2. Tải ESXi ISO từ VMware.

  3. 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).
  4. Mount ISO ESXi → boot VM → cài ESXi như cài bare-metal.

  5. Sau khi cài xong, ESXi boot lên DCUI:

    • F2 → đặt IP tĩnh (vd: 192.168.32.150)
    • Setup DNS, NTP
    • Apply
  6. 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:

  1. Click Create / Register VMCreate a new virtual machine.

  2. Đặt tên: test-vm, Guest OS Family: Linux, Version: CentOS 9 (64-bit).

  3. Chọn datastore (datastore1 default).

  4. 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.
  5. Click Finish.

  6. Power on VM → console → cài CentOS như bare-metal.

  7. 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-tools là 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 -la

Thấ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.log

Kiể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

  1. Trong Host Client → chọn VM → SnapshotsTake snapshot.
  2. Đặt tên "before-test".
  3. Trong VM, làm gì đó (xóa file, sửa config).
  4. 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:

  1. Power off VM.
  2. Right-click VM → Inflate.
  3. ESXi sẽ ghi zero cho phần chưa dùng → file -flat.vmdk chiếm đủ 20GB.
du -sh test-vm-flat.vmdk
# 20G  test-vm-flat.vmdk

Pitfalls

  1. 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.

  2. ESXi license expire 60 ngày → trial hết, tính năng nâng cao tắt. Mua license hoặc reinstall.

  3. Quên Virtualize Intel VT-x/EPT khi nested ESXi trên Workstation → ESXi không boot. Bật trong VM settings.

  4. 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.

  5. 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.

  6. 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.

  7. 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 đủ.

  8. Dùng E1000 thay VMXNET3 → tốc độ network giới hạn 1Gb. Đổi sang VMXNET3 sau khi cài VMware Tools.

  9. 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.

  10. Quên backup .vmx-flat.vmdk → mất VM. Backup datastore là bắt buộc.

  11. Dùng DirectPath I/O production → mất vMotion, HA → khi host die là VM die luôn. Trade-off cao.

  12. 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.

Bài tiếp theo →
Bài 02
Zalo tư vấn