Technology

computer virtualization คือ

computer virtualization คอ
computer virtualization คือ | SiamCafe Blog
2026-02-06· อ. บอม — SiamCafe.net· 10,059 คำ

Computer Virtualization

Virtualization Hypervisor Type 1 Type 2 VM Container Docker Kubernetes VDI Cloud Computing KVM ESXi Proxmox VirtualBox Hardware Abstraction

TechnologyTypeOverheadIsolationUse Case
VMware ESXiType 1ต่ำสูงมากEnterprise
Proxmox VEType 1ต่ำสูงมากHome Lab/SME
VirtualBoxType 2ปานกลางสูงDesktop Dev
DockerContainerต่ำมากปานกลางMicroservices
KVM/QEMUType 1ต่ำสูงมากLinux Server

Hypervisor และ VM

# === Virtualization Technologies ===

# Type 1 — Bare-metal Hypervisor
# ┌──────────┬──────────┬──────────┐
# │   VM 1   │   VM 2   │   VM 3   │
# │ Ubuntu   │ Windows  │ CentOS   │
# ├──────────┴──────────┴──────────┤
# │        Hypervisor (ESXi)       │
# ├────────────────────────────────┤
# │        Hardware (Server)       │
# └────────────────────────────────┘

# Type 2 — Hosted Hypervisor
# ┌──────────┬──────────┐
# │   VM 1   │   VM 2   │
# ├──────────┴──────────┤
# │ VirtualBox/VMware   │
# ├─────────────────────┤
# │ Host OS (Windows)   │
# ├─────────────────────┤
# │ Hardware (Desktop)  │
# └─────────────────────┘

# KVM — ติดตั้งบน Linux
# sudo apt install qemu-kvm libvirt-daemon-system virt-manager
# sudo systemctl enable libvirtd
# sudo usermod -aG libvirt $USER
#
# # สร้าง VM ด้วย virt-install
# virt-install \
#   --name ubuntu-vm \
#   --ram 4096 \
#   --vcpus 2 \
#   --disk size=50 \
#   --os-variant ubuntu22.04 \
#   --cdrom /path/to/ubuntu-22.04.iso \
#   --network bridge=br0 \
#   --graphics vnc

# Proxmox VE — Web UI
# ISO: https://www.proxmox.com/downloads
# ติดตั้งบน USB Boot
# เข้า Web UI: https://proxmox-ip:8006
# สร้าง VM: Datacenter > Node > Create VM

from dataclasses import dataclass
from typing import List

@dataclass
class Hypervisor:
    name: str
    type: str
    license: str
    max_vms: int
    live_migration: bool
    ha: bool
    storage: str

hypervisors = [
    Hypervisor("VMware ESXi", "Type 1", "Commercial", 1024, True, True, "VMFS, vSAN, NFS"),
    Hypervisor("Proxmox VE", "Type 1", "Open Source", 500, True, True, "ZFS, Ceph, LVM"),
    Hypervisor("Microsoft Hyper-V", "Type 1", "Windows License", 1024, True, True, "CSV, SMB"),
    Hypervisor("KVM/QEMU", "Type 1", "Open Source", 500, True, True, "LVM, Ceph, NFS"),
    Hypervisor("VirtualBox", "Type 2", "Free/Commercial", 100, False, False, "VDI, VMDK"),
    Hypervisor("VMware Workstation", "Type 2", "Commercial", 100, False, False, "VMDK"),
]

print("=== Hypervisor Comparison ===")
for h in hypervisors:
    migrate = "Yes" if h.live_migration else "No"
    print(f"  [{h.type}] {h.name} ({h.license})")
    print(f"    Max VMs: {h.max_vms} | Live Migration: {migrate} | Storage: {h.storage}")

Container vs VM

# === Container vs VM ===

# Container Architecture
# ┌───────┬───────┬───────┐
# │ App 1 │ App 2 │ App 3 │
# ├───────┴───────┴───────┤
# │  Container Runtime    │
# │  (Docker/containerd)  │
# ├───────────────────────┤
# │  Host OS (Linux)      │
# ├───────────────────────┤
# │  Hardware             │
# └───────────────────────┘

# Docker — Basic Commands
# docker pull ubuntu:22.04
# docker run -d --name web -p 80:80 nginx
# docker exec -it web bash
# docker stop web && docker rm web
#
# # Dockerfile
# FROM python:3.12-slim
# WORKDIR /app
# COPY requirements.txt .
# RUN pip install -r requirements.txt
# COPY . .
# CMD ["python", "app.py"]
#
# docker build -t myapp:1.0 .
# docker run -d -p 8000:8000 myapp:1.0

# Kubernetes — Container Orchestration
# kubectl create deployment web --image=nginx --replicas=3
# kubectl expose deployment web --port=80 --type=LoadBalancer
# kubectl scale deployment web --replicas=5
# kubectl get pods -o wide

@dataclass
class Comparison:
    feature: str
    vm: str
    container: str

comparisons = [
    Comparison("Boot Time", "นาที", "วินาที"),
    Comparison("RAM Usage", "GB (Full OS)", "MB (App Only)"),
    Comparison("Disk Usage", "GB", "MB-GB"),
    Comparison("Isolation", "สูงมาก (Hardware)", "ปานกลาง (Kernel)"),
    Comparison("OS Support", "Any OS", "Linux (mainly)"),
    Comparison("Density", "10-50 VMs/Host", "100-1000 Containers/Host"),
    Comparison("Management", "vCenter/Proxmox", "Docker/Kubernetes"),
    Comparison("Use Case", "Legacy, Multi-OS", "Microservices, CI/CD"),
    Comparison("Security", "สูงมาก", "ดี (ใช้ gVisor/Kata เพิ่ม)"),
]

print("\n=== VM vs Container ===")
print(f"  {'Feature':<20} {'VM':<25} {'Container'}")
for c in comparisons:
    print(f"  {c.feature:<20} {c.vm:<25} {c.container}")

Cloud และ VDI

# === Cloud Computing & VDI ===

# Cloud Virtualization Stack
# IaaS: AWS EC2, Azure VM, GCP Compute Engine
# PaaS: Heroku, Google App Engine, Azure App Service
# SaaS: Gmail, Office 365, Salesforce
# FaaS: AWS Lambda, Azure Functions, GCP Cloud Functions

# VDI — Virtual Desktop Infrastructure
# ใช้ Virtual Machine เป็น Desktop
# User เข้าผ่าน Thin Client หรือ Browser
# Citrix, VMware Horizon, Microsoft AVD

cloud_services = {
    "AWS EC2": {"type": "IaaS", "vm_type": "Xen/Nitro", "pricing": "On-demand/Reserved/Spot"},
    "Azure VM": {"type": "IaaS", "vm_type": "Hyper-V", "pricing": "Pay-as-you-go/Reserved"},
    "GCP Compute": {"type": "IaaS", "vm_type": "KVM", "pricing": "On-demand/Committed"},
    "Proxmox VE": {"type": "On-premise", "vm_type": "KVM/LXC", "pricing": "Free + Support"},
    "VMware vSphere": {"type": "On-premise", "vm_type": "ESXi", "pricing": "Per-CPU License"},
}

print("Cloud & On-premise:")
for name, info in cloud_services.items():
    print(f"  [{info['type']}] {name}")
    print(f"    VM Type: {info['vm_type']} | Pricing: {info['pricing']}")

# Resource Planning
@dataclass
class VMPlan:
    workload: str
    vcpu: int
    ram_gb: int
    disk_gb: int
    count: int
    monthly_cost: float

plan = [
    VMPlan("Web Server", 2, 4, 50, 3, 45),
    VMPlan("API Server", 4, 8, 100, 2, 80),
    VMPlan("Database", 8, 32, 500, 2, 200),
    VMPlan("Redis Cache", 2, 16, 50, 2, 60),
    VMPlan("CI/CD Runner", 4, 8, 100, 3, 80),
    VMPlan("Monitoring", 2, 4, 200, 1, 40),
]

print(f"\n\n=== VM Resource Planning ===")
total_cost = 0
for p in plan:
    cost = p.monthly_cost * p.count
    total_cost += cost
    print(f"  {p.workload} x{p.count}: {p.vcpu}vCPU / {p.ram_gb}GB RAM / {p.disk_gb}GB — /mo")
print(f"\n  Total: /mo")

เคล็ดลับ

Virtualization คืออะไร

สร้าง Virtual Hardware CPU Memory Storage Network Hypervisor VM Container Server Desktop Network Storage ประหยัด

Hypervisor Type 1 กับ Type 2 ต่างกันอย่างไร

Type 1 Bare-metal ESXi Proxmox Hyper-V KVM Performance Production Type 2 Hosted VirtualBox Workstation Dev Testing ง่าย

VM กับ Container ต่างกันอย่างไร

VM Full OS RAM มาก Boot ช้า Isolation ดี Legacy Container Share Kernel RAM น้อย Start เร็ว Microservices Docker K8s

เริ่มต้นเรียน Virtualization อย่างไร

VirtualBox ฟรี สร้าง VM Linux Docker Container Proxmox Home Lab Networking VLAN Storage ZFS Kubernetes MiniKube Lab

สรุป

Virtualization Hypervisor Type 1 Type 2 VM Container Docker Kubernetes KVM ESXi Proxmox VirtualBox VDI Cloud IaaS Resource Planning Home Lab

📖 บทความที่เกี่ยวข้อง

Computer Vision YOLO Container Orchestrationอ่านบทความ → oVirt Virtualization MLOps Workflowอ่านบทความ → virtualization system คืออ่านบทความ → oVirt Virtualization Log Management ELKอ่านบทความ → oVirt Virtualization Audit Trail Loggingอ่านบทความ →

📚 ดูบทความทั้งหมด →