IT General
น้องๆ เคยสงสัยไหมว่า Cloud Computing มันทำงานยังไง? แล้วพวก Server ที่รันเกมออนไลน์ หรือ Application ต่างๆ มันอยู่ตรงไหน? คำตอบง่ายๆ คือ Virtualization หรือการจำลองเครื่องคอมพิวเตอร์ขึ้นมาในเครื่องเดียวไงล่ะ! Proxmox VE (Virtual Environment) เนี่ยแหละ คือพระเอกของเราในวันนี้
Proxmox VE คือ Open-Source Platform ที่เอาไว้สร้าง Virtual Machine (VM) และ Container (LXC) ได้ง่ายๆ มันรวมเอา KVM (Kernel-based Virtual Machine) และ LXC (Linux Containers) มาไว้ด้วยกัน ทำให้เราจัดการทรัพยากร Hardware ได้อย่างมีประสิทธิภาพมากขึ้น สมัยผมทำร้านเน็ต SiamCafe ก็เคยคิดอยากทำระบบแบบนี้เหมือนกัน แต่ตอนนั้นเทคโนโลยีมันยังไม่เอื้ออำนวยเท่าตอนนี้
แล้วทำไม Homelab ถึงสำคัญ? ลองคิดดูนะ ถ้าเรามีเครื่อง Server เก่าๆ ที่บ้าน แทนที่จะทิ้งไป เราเอามาลง Proxmox แล้วสร้าง VM หลายๆ ตัวไว้ทดลองระบบ, รัน Docker, หรือแม้แต่จำลอง Production Environment ก่อนเอาไปขึ้น Cloud จริงๆ มันคุ้มค่ากว่าเยอะเลย แถมยังได้ความรู้และประสบการณ์อีกเพียบ
ก่อนจะไปลงมือทำ เรามาปูพื้นฐานกันก่อนนิดนึง จะได้ไม่งงตอนใช้งานจริง
VM ก็คือคอมพิวเตอร์เสมือนที่รันอยู่บน Hardware จริงๆ แต่ละ VM จะมี OS (Operating System) เป็นของตัวเอง เช่น Windows, Linux, macOS (ผ่านการ Hack นิดหน่อย) ข้อดีคือมัน Isolated หรือแยกออกจากกัน ถ้า VM ตัวนึงมีปัญหา ตัวอื่นก็ยังทำงานได้ปกติ เปรียบเหมือนร้านเกมสมัยก่อนที่แยกเครื่องใครเครื่องมัน ใครลงโปรแกรมแปลกๆ ก็ไม่กระทบเครื่องอื่น
การสร้าง VM บน Proxmox จะใช้ KVM เป็นหลัก ซึ่ง KVM เนี่ยเป็น Hypervisor Type 1 หมายความว่ามันทำงานโดยตรงบน Kernel ของ Linux ทำให้ประสิทธิภาพสูงมากๆ
Container คล้ายๆ VM แต่เบากว่าเยอะ เพราะมันแชร์ Kernel ของ Host OS (Proxmox) ทำให้ใช้ทรัพยากรน้อยกว่า และ Startup เร็วกว่า แต่ข้อเสียคือ Container ทุกตัวต้องใช้ OS เดียวกัน (Linux) ใครอยากลองเล่น Docker บน Proxmox ก็ต้องใช้ Container นี่แหละ
สมัยผมทำร้านเน็ต เคยลองใช้ Container เทคโนโลยีอื่น (ก่อน Docker จะดัง) มันช่วยประหยัดทรัพยากรได้เยอะจริงๆ แต่ก็ต้องแลกมาด้วยความยุ่งยากในการ Config ที่มากขึ้น
VM และ Container จะต้องมี Network เพื่อเชื่อมต่อกันและออก Internet ได้ Proxmox จะสร้าง Virtual Network ให้เราจัดการได้ง่ายๆ เราสามารถกำหนด IP Address, Gateway, DNS Server ให้แต่ละ VM/Container ได้ตามต้องการ
เรื่อง Network เนี่ยสำคัญมาก ถ้า Config ผิด VM ก็จะคุยกันไม่ได้ ออก Internet ไม่ได้ เหมือนร้านเน็ตที่สาย LAN หลุดซักเส้น ลูกค้าก็จะโวยวายกันทั้งร้าน
เอาล่ะ! ถึงเวลาลงมือทำกันแล้ว ใครมี Server เก่าๆ ที่บ้าน เตรียมตัวให้พร้อม! (หรือจะใช้ Laptop ก็ได้ แต่ต้องมี RAM เยอะหน่อยนะ)
อันดับแรก เราต้อง Download Proxmox VE ISO Image จาก เว็บไซต์ Proxmox มาก่อน แล้วเอาไปเขียนลง USB Drive ด้วยโปรแกรมอย่าง Rufus หรือ Etcher
จากนั้นก็ Boot เครื่อง Server ของเราด้วย USB Drive แล้วทำตามขั้นตอนการติดตั้งที่ Proxmox เตรียมไว้ให้ มันง่ายมากๆ ไม่ต้องกลัวว่าจะยาก
ระหว่างการติดตั้ง Proxmox จะถามเราเรื่อง Network Configuration อย่าลืมใส่ IP Address, Gateway, และ DNS Server ให้ถูกต้อง ไม่งั้นจะเข้า Web Interface ไม่ได้นะ
# ตัวอย่าง Network Configuration
IP Address: 192.168.1.100
Gateway: 192.168.1.1
DNS Server: 8.8.8.8
หลังจากติดตั้ง Proxmox เสร็จแล้ว เราจะสามารถเข้า Web Interface ได้ผ่าน Browser โดยพิมพ์ IP Address ของ Server ลงไป (เช่น `https://192.168.1.100:8006`)
Login ด้วย Username `root` และ Password ที่เราตั้งไว้ตอนติดตั้ง จากนั้นก็คลิกที่ Create VM แล้วทำตาม Wizard ได้เลย
Proxmox จะให้เราเลือกว่าจะใช้ OS อะไร เราสามารถ Upload ISO Image ของ OS ที่เราต้องการ (เช่น Ubuntu, Windows) ขึ้นไปได้ แล้ว Proxmox จะจัดการติดตั้งให้เอง
อย่าลืมกำหนด CPU, RAM, และ Hard Disk ให้ VM ของเราด้วย ถ้าให้เยอะเกินไป Server ก็จะทำงานหนัก ถ้าให้น้อยเกินไป VM ก็จะช้า
การสร้าง Container ก็คล้ายๆ กับการสร้าง VM แต่จะง่ายกว่าเยอะ เพราะ Proxmox มี Template ให้เราเลือกมากมาย เช่น Ubuntu, Debian, CentOS
เราแค่เลือก Template ที่เราต้องการ แล้วกำหนด Container ID, Hostname, และ Password จากนั้น Proxmox ก็จะสร้าง Container ให้เราภายในไม่กี่วินาที
Container จะใช้ทรัพยากรน้อยกว่า VM มาก ทำให้เราสามารถรัน Container ได้หลายตัวบน Server เครื่องเดียว
Proxmox ไม่ใช่ Virtualization Platform ตัวเดียวในตลาด ยังมีตัวเลือกอื่นๆ อีกมากมาย เช่น VMware ESXi, Microsoft Hyper-V, และ XenServer แต่ละตัวก็มีข้อดีข้อเสียแตกต่างกันไป
สมัยผมทำร้านเน็ต เคยลองใช้ VMware ESXi เพราะมันเป็นที่นิยม แต่ต้องเสียเงินซื้อ License ซึ่งแพงเอาเรื่องเลย Proxmox เลยเป็นตัวเลือกที่น่าสนใจกว่า เพราะมัน Open-Source และฟรี
| Feature | Proxmox VE | VMware ESXi | Microsoft Hyper-V |
|---|---|---|---|
| License | Open-Source (AGPLv3) | Proprietary (Free/Paid) | Proprietary (Free/Paid) |
| Hypervisor Type | Type 1 (KVM) | Type 1 | Type 1 |
| Container Support | LXC | None | Windows Containers |
| Web Interface | Yes | Yes | Yes (via Windows Admin Center) |
| Clustering | Yes | Yes | Yes |
| Learning Curve | Moderate | Moderate | Easy (if familiar with Windows) |
จากตารางจะเห็นว่า Proxmox มีข้อดีหลายอย่าง เช่น ฟรี, รองรับ Container, และมี Web Interface ใช้งานง่าย แต่ก็อาจจะยากกว่า Hyper-V สำหรับคนที่คุ้นเคยกับ Windows อยู่แล้ว
สุดท้ายแล้ว การเลือก Virtualization Platform ก็ขึ้นอยู่กับความต้องการและงบประมาณของแต่ละคน ไม่มีตัวเลือกไหนที่ดีที่สุดสำหรับทุกคน ลองศึกษาข้อมูลเพิ่มเติม แล้วเลือกตัวที่เหมาะกับตัวเองที่สุด
หวังว่าบทความนี้จะเป็นประโยชน์สำหรับน้องๆ ที่สนใจเรื่อง Virtualization นะครับ ถ้ามีคำถามอะไรเพิ่มเติม สามารถเข้าไปพูดคุยกันได้ที่ SiamCafe Blog ได้เลยครับ
ดูวิดีโอเพิ่มเติมเกี่ยวกับProxmox Virtualization Homelab:
เอาล่ะน้องๆ หลังจากที่เราเซ็ต Proxmox กันไปแล้ว คราวนี้มาดู Best Practices หรือเคล็ดลับที่ผมใช้จริงใน Homelab กันบ้างดีกว่า สมัยผมทำร้านเน็ตนี่ เรื่อง Server เสถียรๆ นี่สำคัญสุดๆ เลยนะ ไม่งั้นลูกค้าโวยวายแย่
Proxmox เนี่ยมันดีตรงที่ Open Source และฟรี แต่เราก็ต้องรู้จักใช้ให้คุ้มค่าและปลอดภัยนะ มาดูกันว่ามีอะไรบ้าง
เรื่อง Backup เนี่ยสำคัญสุดๆ อย่าคิดว่า "ไม่เป็นไรหรอก" เพราะถ้าเกิดอะไรขึ้นมา เช่น Harddisk พัง หรือโดน Ransomware เล่นงาน จะได้ไม่ต้องมานั่งเสียใจทีหลัง สมัยผมทำร้านเน็ต เคยเจอ HDD เจ๊งยกแผง ลูกค้าหายหมด เศร้าเลย
Proxmox มีระบบ Backup ในตัวอยู่แล้ว ลองใช้ดูนะ ตั้ง Schedule ให้มัน Backup ทุกวัน หรือทุกสัปดาห์ก็ได้ เลือก Storage ที่จะ Backup ด้วย อย่าลืม Test Restore ด้วยนะ ว่า Backup ที่ทำไว้ มันใช้ได้จริง
# Backup VM ID 100 ทุกวันตอนตี 3 ไปที่ Storage 'backup'
pct backup 100 --storage backup --mode snapshot --compress lzo --quiet 1 --starttime 03:00
สังเกต CPU, RAM, Disk I/O ของ Proxmox Host และ VMs ของเราอยู่เสมอ ถ้า Resources ใกล้เต็ม ก็จะได้เตรียมตัวเพิ่ม Resources หรือ Optimize VMs ได้ทันท่วงที
Proxmox มี Web UI ที่แสดง Resources อยู่แล้ว แต่ถ้าอยากได้ละเอียดกว่านั้น ลองใช้พวก Grafana + Prometheus ดูก็ได้นะ สมัยผมทำร้านเน็ตนี่ ผมใช้ Zabbix ช่วย Monitor Server ทุกตัวเลย
# ตัวอย่างการดู CPU Usage ใน Terminal
top
อย่าลืมเรื่อง Security เด็ดขาด เปลี่ยน Password Default ของ Proxmox, Update Software เป็นประจำ, เปิด Firewall, และใช้ Two-Factor Authentication (2FA) ด้วย
สมัยผมทำร้านเน็ต เคยโดน Hack เพราะ Password ง่ายเกินไป เข็ดเลย ตั้งแต่นั้นมา Security มาก่อนเสมอ
# ตัวอย่างการ Update Proxmox
apt update && apt dist-upgrade
วางแผน Network ให้ดี กำหนด IP Address ให้ VMs แต่ละตัวอย่างเหมาะสม ถ้ามีหลาย VMs อาจจะต้องใช้ VLAN เพื่อแบ่ง Network ให้เป็นสัดส่วน
สมัยผมทำร้านเน็ต ผมเคยเจอ IP Conflict ทำให้ลูกค้าเล่นเน็ตไม่ได้ ต้องมานั่งไล่แก้ IP กันวุ่นวาย
VM ช้าได้จากหลายสาเหตุ เช่น CPU ไม่พอ, RAM ไม่พอ, Disk I/O ช้า ลอง Monitor Resources ดู ถ้า Resources ใกล้เต็ม ก็ต้องเพิ่ม Resources หรือ Optimize VM
Backup ใช้เวลานานได้จากหลายสาเหตุ เช่น ขนาด VM ใหญ่, Storage ช้า, Network ช้า ลองเปลี่ยน Storage หรือ Compress Backup ดู
Proxmox Boot ไม่ขึ้นได้จากหลายสาเหตุ เช่น Harddisk เสีย, Kernel Panic, Grub Error ลอง Boot จาก Recovery Mode ดู
Proxmox มีระบบ Migration ในตัวอยู่แล้ว สามารถ Migrate VM ไปอีก Host ได้ง่ายๆ แต่ต้อง Ensure ว่า Host ทั้งสองมี Network ที่เชื่อมต่อกัน และมี Storage ที่เพียงพอ
Proxmox เป็น Virtualization Platform ที่ดีและฟรี เหมาะสำหรับทำ Homelab หรือใช้ใน Production เล็กๆ แต่เราต้องรู้จักใช้ให้คุ้มค่าและปลอดภัย Backup สม่ำเสมอ Monitor Resources อย่างใกล้ชิด และ Security First
หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะครับ ถ้ามีอะไรสงสัย ถามมาได้เลย ผมยินดีตอบเสมอ iCafeForex นี่ก็เป็นอีก Project นึงที่ผมทำนะ ลองเข้าไปดูกันได้
อย่าลืมติดตาม SiamCafe Blog กันด้วยนะ จะมีบทความดีๆ เกี่ยวกับ IT อีกเยอะเลย