Tech Essentials

Virtualization: ทำไม 1 เครื่องถึงกลายเป็น 10 เครื่องได้

Virtualization: ทำไม 1 เครื่องถึงกลายเป็น 10 เครื่องได้

บทที่แล้วเราบอกว่า Cloud เปิดเซิร์ฟเวอร์ใหม่ได้ในไม่กี่นาที โบรอาจสงสัยว่า... ทำได้ยังไงกัน ไม่ต้องเดินไปเสียบเครื่องใหม่เหรอ

คำตอบคือเทคโนโลยีที่ชื่อว่า Virtualization ซึ่งเป็นรากฐานของคลาวด์ทั้งหมดที่เราใช้กันทุกวันนี้


Virtualization คืออะไร

คือการซอยคอมพิวเตอร์จริง 1 เครื่อง ให้กลายเป็นคอมพิวเตอร์เสมือนหลายเครื่อง โดยแต่ละเครื่องเสมือนคิดว่าตัวเองเป็นคอมแยกกันจริง ๆ ไม่รู้ตัวเลยว่าโดนแบ่ง

Ubuntu
8 cores / 32GB
Windows Server
8 cores / 32GB
CentOS
8 cores / 32GB
Debian
8 cores / 32GB
Hypervisor - คนแบ่งทรัพยากร
เครื่องจริง 1 เครื่อง · CPU 32 cores · RAM 128GB
เครื่องจริงหนึ่งเครื่อง ซอยเป็นหลายเครื่องเสมือน

นึกภาพหอพักนะโบร - บ้าน 1 หลังกั้นห้องแบ่งเช่าเป็น 5 ห้อง แต่ละห้องมีประตูล็อกของตัวเอง มีห้องน้ำในตัว ผู้เช่าอยู่กันคนละโลก ไม่รู้จักกันด้วยซ้ำ แต่ความจริงใช้โครงสร้างบ้านหลังเดียวกัน

ทำไปทำไม

1. ใช้เครื่องให้คุ้ม: เซิร์ฟเวอร์สมัยนี้แรงมาก ลงงานเดียวมักใช้ไม่ถึง 15% ที่เหลือทิ้งเปล่า เสียดายเงิน 2. แยกกันเด็ดขาด: ตัวนึงพัง ตัวอื่นไม่กระเทือน 3. สร้างและลบง่าย: อยากได้เครื่องใหม่ กดไม่กี่คลิก ไม่ต้องรอของส่ง 4. ย้ายได้: VM คือไฟล์ก้อนนึง ก๊อปย้ายไปเครื่องอื่นได้ บางระบบย้ายได้ทั้งที่ยังเปิดอยู่ด้วยซ้ำ 5. ทดลองได้แบบไม่กลัวพัง: อยากลอง Linux ตัวใหม่ อยากลองของแปลก ๆ สร้าง VM แล้วลบทิ้ง เครื่องจริงไม่เจ็บ


Hypervisor: คนคุมหอพัก

Hypervisor คือซอฟต์แวร์ที่แบ่งทรัพยากรของเครื่องจริงให้เครื่องเสมือน เปรียบเหมือนนิติบุคคลที่จัดสรรน้ำ ไฟ พื้นที่ ให้ผู้เช่าแต่ละห้อง

Type 1 - Bare Metal
VM
VM
VM
Hypervisor
Hardware
Type 2 - Hosted
VM
VM
Hypervisor
OS หลัก (Windows / macOS)
Hardware

Type 1 เร็วกว่าเพราะไม่มีชั้น OS คั่นระหว่าง Hypervisor กับฮาร์ดแวร์

Hypervisor สองแบบ ต่างกันที่มี OS คั่นหรือไม่

Type 1: Bare Metal (ลงบนเครื่องเปล่า)

ติดตั้งลงฮาร์ดแวร์ตรง ๆ ไม่มีระบบปฏิบัติการหลักคั่น เร็วกว่า เสถียรกว่า แบบที่ใช้ในดาต้าเซ็นเตอร์และคลาวด์ทั้งหมด

Type 2: Hosted (ลงบน OS ที่มีอยู่)

ติดตั้งเป็นโปรแกรมบน Windows หรือ macOS ที่ใช้อยู่ ติดตั้งง่าย เหมาะกับการเรียนรู้ แต่ช้ากว่าเพราะต้องผ่าน OS หลักอีกชั้น


เทียบซอฟต์แวร์: เสียเงิน vs โอเพนซอร์ส

💰 ฝั่งเสียเงิน

ชื่อประเภทจุดเด่น
VMware vSphere / ESXiType 1มาตรฐานองค์กรมานาน เครื่องมือครบ มีซัพพอร์ต
Microsoft Hyper-VType 1ติดมากับ Windows Server เข้ากับสาย Microsoft ได้ดี
Nutanix AHVType 1รวมคอมพิวต์กับสตอเรจเป็นก้อนเดียว ติดตั้งง่าย
Parallels DesktopType 2สำหรับชาว Mac ที่อยากรัน Windows

ข้อดี: มีคนซัพพอร์ตเวลาเจอปัญหา เครื่องมือจัดการครบครัน องค์กรใหญ่มักต้องการสัญญาซัพพอร์ตเป็นลายลักษณ์อักษร ข้อเสีย: ค่าไลเซนส์แพงเอาเรื่อง และรูปแบบการคิดเงินเปลี่ยนได้ตามนโยบายบริษัท

🆓 ฝั่งโอเพนซอร์ส

ชื่อประเภทจุดเด่น
Proxmox VEType 1ฮิตที่สุดสำหรับโฮมแล็บและ SME หน้าเว็บจัดการสวย รองรับทั้ง VM และ Container
KVM / QEMUType 1ฝังอยู่ใน Linux Kernel เป็นเครื่องยนต์เบื้องหลังคลาวด์หลายเจ้า
XCP-ngType 1แตกยอดมาจาก Citrix XenServer มีเครื่องมือจัดการชื่อ Xen Orchestra
VirtualBoxType 2ฟรี ติดตั้งง่ายทั้ง Windows/Mac/Linux เหมาะกับมือใหม่ที่สุด

ข้อดี: ไม่มีค่าไลเซนส์ ปรับแต่งได้ทุกอย่าง มีชุมชนช่วยเหลือ ข้อเสีย: พังเมื่อไหร่แก้เอง ต้องมีคนในทีมที่เข้าใจจริง ๆ

สรุปว่าควรเอาอันไหน

  • อยากลองเล่นที่บ้าน → VirtualBox (ง่ายสุด) หรือ Proxmox VE ถ้ามีเครื่องเก่าเหลืออยู่
  • ธุรกิจเล็ก-กลาง งบจำกัด → Proxmox VE
  • องค์กรใหญ่ ต้องมีสัญญาซัพพอร์ต → VMware หรือ Nutanix
  • สาย Microsoft ทั้งบ้าน → Hyper-V

VM กับ Container ต่างกันยังไง (ข้อนี้สำคัญมาก)

นี่คือจุดที่มือใหม่งงที่สุด และเป็นคำถามที่เจอบ่อยเวลาไปสัมภาษณ์งานด้วยนะโบร จำไว้เลย

Virtual Machine
App A + Guest OS
App B + Guest OS
Hypervisor
Host OS
Hardware
Container
App A
App B
App C
Container Engine (Docker)
Host OS
Hardware

ฝั่งขวาไม่มี Guest OS จึงเบากว่ามาก เปิดได้ในไม่กี่วินาทีแทนที่จะเป็นนาที

VM กับ Container - ต่างกันตรงที่ Container ไม่ต้องแบก Guest OS

Virtual Machine (VM)

  • มีระบบปฏิบัติการของตัวเองเต็ม ๆ
  • ตัวใหญ่ ระดับหลาย GB
  • เปิดเครื่องใช้เวลาเป็นนาที
  • แยกกันเด็ดขาดที่สุด ปลอดภัยสูง
  • รันคนละ OS กันได้ เช่นเครื่องจริงเป็น Linux แต่ VM เป็น Windows

Container (เช่น Docker)

  • ไม่มี OS ของตัวเอง ใช้เคอร์เนลของเครื่องหลักร่วมกัน
  • ตัวเล็ก ระดับ MB
  • เปิดใช้ได้ในไม่กี่วินาที
  • แยกกันน้อยกว่า VM
  • ต้องเป็นตระกูล OS เดียวกับเครื่องหลัก

เทียบง่าย ๆ

  • VM = บ้านเดี่ยวแยกหลัง มีไฟมีน้ำของตัวเองครบ
  • Container = ห้องในอพาร์ตเมนต์ ใช้ระบบส่วนกลางร่วมกัน แต่ก็มีประตูล็อกของตัวเอง

แล้วใช้อันไหนดี

จริง ๆ มักใช้คู่กันนะ: ใช้ VM แบ่งเซิร์ฟเวอร์ใหญ่เป็นก้อน ๆ แล้วรัน Container หลายตัวอยู่ใน VM อีกที

  • ต้องการ OS ต่างกัน หรือความปลอดภัยสูงสุด → VM
  • ต้องการเปิด-ปิดเร็ว แพ็กแอปให้ย้ายไปไหนก็รันเหมือนเดิม → Container

เอาไปใช้ทำอะไรได้บ้าง

  • ผู้ให้บริการคลาวด์: ทุกครั้งที่โบรกดเปิด VPS นั่นคือ VM ที่ถูกสร้างบนเซิร์ฟเวอร์ยักษ์
  • โฮมแล็บ: เอาคอมเก่ามาลง Proxmox แล้วสร้าง VM ไว้เล่น ทำ NAS ทำ Home Assistant (สายนี้อันตรายนะ เผลอ ๆ ซื้อเครื่องเพิ่มไม่รู้ตัว)
  • ทีมพัฒนา: สร้างสภาพแวดล้อมทดสอบให้เหมือนของจริง โดยไม่ต้องซื้อเครื่องเพิ่ม
  • การเรียนรู้: อยากลอง Linux แต่ไม่กล้าล้างเครื่อง ก็สร้าง VM ลองในนั้น
  • รวมเซิร์ฟเวอร์: องค์กรที่มีเซิร์ฟเวอร์เก่า 20 เครื่อง ยุบเหลือ 3 เครื่องแรง ๆ ประหยัดทั้งค่าไฟและพื้นที่

ศัพท์ที่ควรรู้

  • Host: เครื่องจริงที่รันทุกอย่าง
  • Guest: เครื่องเสมือนที่อยู่ข้างใน
  • Snapshot: บันทึกสถานะเครื่อง ณ เวลานั้น ทำพังก็ย้อนกลับได้ (มีประโยชน์มากตอนอัปเดตระบบ ใครไม่ทำแล้วพังจะรู้สึก)
  • Template: VM แม่แบบ เอามาโคลนสร้างเครื่องใหม่ได้ไว
  • Overcommit: แจกทรัพยากรรวมมากกว่าที่เครื่องจริงมี โดยหวังว่าทุกตัวจะไม่ใช้เต็มพร้อมกัน (เสี่ยงแต่คนก็ทำกัน)

สรุปให้โบร

Virtualization คือเทคโนโลยีที่ทำให้ เครื่อง 1 เครื่องกลายเป็นหลายเครื่อง ใช้ของคุ้ม สร้าง-ลบไว และแยกงานออกจากกันได้อย่างปลอดภัย

ถ้าอยากลองจริง ๆ แนะนำโหลด VirtualBox มาลงเครื่องตัวเอง แล้วสร้าง VM ลง Ubuntu สักตัว ใช้เวลาไม่ถึงชั่วโมง แต่เข้าใจกว่าอ่านสิบบทความรวมกัน


👉 บทต่อไป: Security พื้นฐานที่โบรต้องรู้ - ระบบพร้อมแล้ว แต่ถ้าไม่ปลอดภัยก็จบกัน มาปิดท้ายซีรีส์กัน

Virtualization: ทำไม 1 เครื่องถึงกลายเป็น 10 เครื่องได้ - ai4bro