IT General
น้องๆ เคยสงสัยไหมว่า Server ตัวเดียว ทำไมรันได้หลาย OS? นั่นแหละ Virtualization! Proxmox VE (Virtual Environment) คือ Open-Source Platform ที่รวมเอา KVM (Kernel-based Virtual Machine) สำหรับ Virtual Machine และ LXC (Linux Containers) ไว้ด้วยกัน ทำให้เราสร้างและจัดการ VM หรือ Container ได้ง่าย
สมัยผมทำร้านเน็ต SiamCafe ยุคแรกๆ Server แต่ละตัวแพงหูฉี่ แถมกินไฟมหาศาล ถ้ามี Proxmox ตั้งแต่ตอนนั้น คงประหยัดไปเยอะ! Proxmox ช่วยให้เราใช้ทรัพยากร Hardware ได้อย่างมีประสิทธิภาพสูงสุด ลดค่าใช้จ่าย และเพิ่มความยืดหยุ่นในการจัดการ Server
VM คือการจำลอง Hardware ขึ้นมาบน Software ทำให้เราสามารถรัน OS ได้หลายตัวบนเครื่องเดียว แต่ละ VM จะมี Resource เป็นของตัวเอง เช่น CPU, RAM, Storage เหมือนเป็นคอมพิวเตอร์อีกเครื่องหนึ่ง
Container คล้าย VM แต่เบากว่า เพราะแชร์ Kernel ของ Host OS ทำให้ใช้ Resource น้อยกว่า Start เร็วกว่า เหมาะสำหรับรัน Application ที่ต้องการความเร็วและความคล่องตัวสูง
KVM คือ Hypervisor ที่ใช้สร้าง VM ส่วน LXC คือ Containerization Technology ทั้งสองอย่างรวมกันใน Proxmox ทำให้เราเลือกใช้เทคโนโลยีที่เหมาะสมกับแต่ละ Workload ได้
Proxmox ติดตั้งง่ายมาก Download ISO Image มา Boot แล้วทำตาม Wizard แค่นั้นเอง แต่ก่อนอื่น เราต้องมี Server ที่ Spec เหมาะสมก่อนนะ CPU แรงๆ RAM เยอะๆ Storage เร็วๆ (SSD นี่จำเป็นเลย)
พอติดตั้งเสร็จ เราจะเข้า Proxmox Web Interface ได้ผ่าน Browser จากนั้นก็สร้าง VM หรือ Container ได้ตามใจชอบ
# Example command to create a VM using qm command (Proxmox CLI)
qm create 100 --name myvm --memory 2048 --net0 bridge=vmbr0,model=virtio --ostemplate local:iso/ubuntu-20.04.iso --sockets 1 --cores 2 --disk 32
# Example command to create a Container using pct command (Proxmox CLI)
pct create 101 local:vztmpl/ubuntu-20.04-standard_20.04-1_amd64.tar.gz --hostname mycontainer --rootfs local:20 --memory 512 --swap 512 --net0 name=eth0,bridge=vmbr0,ip=192.168.1.101/24,gw=192.168.1.1
มี Software Virtualization หลายตัวให้เลือกใช้ แต่ Proxmox เด่นตรงที่เป็น Open-Source ฟรี และรวมเอา KVM กับ LXC ไว้ด้วยกัน ทำให้ยืดหยุ่นในการใช้งาน
VMware ESXi ก็เป็นตัวเลือกที่ดี แต่ต้องเสียเงินซื้อ License (ยกเว้น ESXi Free ที่มีข้อจำกัด) Hyper-V ของ Microsoft ก็ใช้ได้ แต่ต้องใช้กับ Windows Server เป็นหลัก
| Feature | Proxmox VE | VMware ESXi | Microsoft Hyper-V |
|---|---|---|---|
| License | Open-Source (GPLv2) | Proprietary (Free version available with limitations) | Included with Windows Server |
| Hypervisor | KVM, LXC | VMware vSphere | Hyper-V |
| Management Interface | Web-based | vSphere Client | Hyper-V Manager |
| Ease of Use | Relatively Easy | Complex | Relatively Easy |
| Cost | Free (Support subscriptions available) | Paid (Expensive) | Included with Windows Server license |
ลองเข้าไปอ่านบทความอื่นๆ เกี่ยวกับ IT ได้ที่ SiamCafe Blog นะครับ
เอาล่ะน้องๆ มาถึงส่วนที่พี่จะแชร์ประสบการณ์ตรงจากการทำร้านเน็ตสมัยก่อน ที่ต้องงัดทุกวิถีทางเพื่อให้ร้านลื่นปรื๊ด ลูกค้าติดตรึม Proxmox ก็เหมือนกัน เราต้องมีเทคนิคกันหน่อย
จำไว้เลยว่า Proxmox เนี่ยมันยืดหยุ่นมาก แต่ถ้าเราไม่รู้จักปรับแต่งให้ดี มันก็เหมือนรถแรงๆ ที่ขับไม่เป็นนั่นแหละ
เคยไหมเปิด VM หลายตัวแล้วเครื่องอืดเป็นเรือเกลือ? สาเหตุหลักๆ คือ VM แย่ง CPU กันวุ่นวาย เราแก้ได้ด้วยการ CPU Pinning คือการกำหนดให้ VM แต่ละตัวใช้ CPU core เฉพาะเจาะจงไปเลย ไม่ต้องไปแย่งกับชาวบ้าน
วิธีทำก็ง่ายๆ สมมติว่าเรามี CPU 4 core เราอาจจะกำหนดให้ VM1 ใช้ core 0-1, VM2 ใช้ core 2-3 อะไรแบบนี้
# ตัวอย่างการกำหนด CPU Affinity ใน Proxmox
qm set VMID --cpulimit 2
qm set VMID --cpuunits 2048
qm set VMID --cpuset 0-1
ข้อดี: ลดการแย่ง CPU, ประสิทธิภาพดีขึ้น โดยเฉพาะ VM ที่ต้องการ performance สูงๆ
เรื่อง storage นี่สำคัญสุดๆ สมัยพี่ทำร้านเกมส์ เรื่อง HDD นี่ต้องใส่ใจเป็นพิเศษ เลือก HDD ดีๆ เร็วๆ สำคัญมาก Proxmox ก็เหมือนกัน เลือก storage ให้เหมาะสมกับการใช้งาน VM แต่ละตัว
ถ้า VM ไหนต้องการ IOPS สูงๆ อย่างเช่นพวก database server หรือ game server ก็ควรจะใช้ SSD ไปเลย แต่ถ้าเป็นพวก file server หรือ backup ก็ใช้ HDD ธรรมดาก็ได้
ข้อดี: จัดการ storage ได้อย่างมีประสิทธิภาพ, เพิ่มความเร็วในการอ่านเขียนข้อมูล
ร้านเน็ตสมัยก่อนเรื่องเน็ตเวิร์คสำคัญสุดๆ ping ต้องนิ่ง load ต้องบาลานซ์ Proxmox ก็เหมือนกัน การจัดการ network ให้ดีก็สำคัญไม่แพ้กัน เราสามารถใช้ Bridge Network หรือ VLAN เพื่อแบ่ง network ให้ VM แต่ละตัวได้
Bridge Network คือการสร้าง bridge ระหว่าง VM กับ network card จริงๆ ของ host ทำให้ VM ได้ IP address เดียวกับ host
VLAN คือการแบ่ง network ออกเป็นส่วนๆ ทำให้ VM แต่ละส่วนสามารถสื่อสารกันได้ แต่ไม่สามารถสื่อสารกับ VM ในส่วนอื่นได้
# ตัวอย่างการสร้าง Bridge Network ใน Proxmox
auto vmbr1
iface vmbr1 inet static
address 192.168.1.254
netmask 255.255.255.0
gateway 192.168.1.1
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
ข้อดี: จัดการ network ได้อย่างยืดหยุ่น, เพิ่มความปลอดภัย
Proxmox มีฟีเจอร์ที่เรียกว่า Memory Ballooning คือการให้ VM แต่ละตัวสามารถยืม memory จาก host ได้ ถ้า VM ตัวไหนไม่ได้ใช้ memory เยอะ Proxmox ก็จะคืน memory นั้นให้กับ host
ข้อดี: ใช้ memory ได้อย่างมีประสิทธิภาพ, ลดการใช้ทรัพยากรโดยรวม
มีหลายสาเหตุที่เป็นไปได้ ลองตรวจสอบ CPU usage, memory usage, disk I/O และ network traffic ดู ถ้า resource ตัวไหนถูกใช้จนเต็ม ก็อาจจะเป็นสาเหตุที่ทำให้ VM ช้า
ได้! Proxmox รองรับ HA อย่างเต็มรูปแบบ เราสามารถสร้าง cluster ของ Proxmox server หลายๆ ตัว แล้วกำหนดให้ VM สามารถ migrate ไปมาระหว่าง server ได้ ถ้า server ตัวไหนเสีย VM ก็จะถูกย้ายไปรันบน server ตัวอื่นโดยอัตโนมัติ
แน่นอน Proxmox มีเครื่องมือ Backup และ Restore ในตัว เราสามารถ backup VM ได้ทั้งแบบ full backup และ incremental backup นอกจากนี้เรายังสามารถใช้ Proxmox Backup Server เพื่อจัดการ backup ได้อย่างมีประสิทธิภาพมากขึ้น
ถ้าสนใจเรื่องการลงทุน ลองเข้าไปดูที่ iCafeForex ได้นะครับ อาจจะเป็นประโยชน์สำหรับใครที่สนใจด้านนี้
Proxmox เป็น virtualization platform ที่ทรงพลังและยืดหยุ่นมากๆ เหมาะสำหรับทั้งมือใหม่และมือเก๋า ถ้าเราเข้าใจหลักการทำงานและเทคนิคต่างๆ เราก็จะสามารถใช้ Proxmox ได้อย่างมีประสิทธิภาพสูงสุด
อย่าลืมเข้าไปอ่านบทความอื่นๆ ใน SiamCafe Blog ด้วยนะ มีอะไรดีๆ อีกเยอะแยะเลย