OpenStack Nova คือหัวใจของระบบ Cloud Computing แบบ Open Source ที่องค์กรระดับโลกอย่าง CERN, Walmart และ PayPal เลือกใช้ในการจัดการ Virtual Machine นับหมื่นตัว บทความนี้จะเจาะลึกทุกมิติของ Nova ตั้งแต่หลักการทำงาน องค์ประกอบหลัก ไปจนถึงการนำไปใช้งานจริง
OpenStack Nova คืออะไร
OpenStack Nova หรือ OpenStack Compute คือบริการจัดการ Virtual Machine ที่เป็นแกนหลักของ OpenStack ทำหน้าที่เป็นศูนย์กลางในการสร้าง เรียกใช้ ปรับขนาด และจัดการ VM บนเซิร์ฟเวอร์จำนวนมาก เปรียบเสมือนสมองของระบบ Cloud ที่ตัดสินใจว่า VM แต่ละตัวควรทำงานบนเซิร์ฟเวอร์ตัวไหนและจัดสรรทรัพยากรให้เหมาะสม
Nova เป็นโปรเจกต์ Open Source ที่องค์กรสามารถนำไปสร้าง Private Cloud ได้โดยไม่ต้องเสียค่าลิขสิทธิ์ หลักการทำงานคล้ายกับ VPS ที่แบ่งทรัพยากรจาก Dedicated Server ออกเป็นเซิร์ฟเวอร์เสมือนหลายตัว
การทำงานของ OpenStack Nova
การสร้างและจัดการ Virtual Machine
Nova ให้ผู้ใช้สร้าง VM ได้ตามต้องการผ่าน API หรือ Dashboard โดยกำหนดสเปกต่าง ๆ เช่น จำนวน vCPU ขนาด RAM พื้นที่ Storage และ OS Image ที่ต้องการ เมื่อได้รับคำสั่ง Nova จะค้นหาเซิร์ฟเวอร์ที่มีทรัพยากรว่างเพียงพอและสร้าง VM บนเซิร์ฟเวอร์นั้นโดยอัตโนมัติ
Scheduler ระบบจัดสรรทรัพยากรอัจฉริยะ
Nova Scheduler เป็นองค์ประกอบสำคัญที่ตัดสินใจวาง VM บนเซิร์ฟเวอร์ที่เหมาะสมที่สุด โดยพิจารณาจากทรัพยากรที่เหลืออยู่ Availability Zone นโยบายที่ผู้ดูแลระบบกำหนด และ Affinity/Anti-affinity Rules ที่ระบุว่า VM ไหนควรหรือไม่ควรอยู่บนเซิร์ฟเวอร์เดียวกัน
การจัดการ Lifecycle ของ VM
Nova จัดการ VM ได้ตลอดอายุการใช้งาน ตั้งแต่การสร้าง หยุดชั่วคราว (Pause/Suspend) รีบูต ปรับขนาด (Resize) ไปจนถึงการลบ ที่สำคัญคือสามารถ Live Migrate ย้าย VM ข้ามเซิร์ฟเวอร์ได้โดยไม่มี Downtime เหมาะสำหรับการบำรุงรักษาเซิร์ฟเวอร์โดยไม่กระทบผู้ใช้
องค์ประกอบหลักของ Nova
Nova API
จุดรับคำสั่งจากผู้ใช้ รับ Request ผ่าน RESTful API ตรวจสอบสิทธิ์กับ Keystone แล้วส่งต่อไปยังส่วนประกอบอื่น เป็น Stateless Service ที่ Scale-out ได้ง่าย
Nova Scheduler
วิเคราะห์ทรัพยากรและเลือกเซิร์ฟเวอร์ที่เหมาะสมสำหรับ VM ใหม่ ใช้ระบบ Filter และ Weigher ในการตัดสินใจ ผู้ดูแลระบบสามารถปรับแต่งอัลกอริทึมได้ตามต้องการ
Nova Compute
ทำงานจริงบนเซิร์ฟเวอร์แต่ละตัว สร้าง หยุด และจัดการ VM ผ่าน Hypervisor ที่รองรับ เช่น KVM QEMU VMware หรือ Hyper-V
Nova Conductor
ตัวกลางระหว่าง Nova Compute กับฐานข้อมูล ป้องกันไม่ให้ Compute Node เข้าถึงฐานข้อมูลโดยตรงเพื่อความปลอดภัยของระบบ
ความปลอดภัยใน Nova
Nova มีระบบรักษาความปลอดภัยหลายระดับ Security Groups ทำหน้าที่เป็น Virtual Firewall สำหรับ VM กำหนดกฎ Inbound/Outbound Traffic ได้ละเอียดถึงระดับ Port และ Protocol ระบบ Key Pair ใช้ SSH Key สำหรับการเข้าถึง VM อย่างปลอดภัยโดยไม่ต้องใช้รหัสผ่าน และ RBAC (Role-Based Access Control) ควบคุมสิทธิ์ผู้ใช้ได้อย่างละเอียด
Nova กับ Hypervisor ที่รองรับ
Nova รองรับ Hypervisor หลายตัว KVM เป็นตัวเลือกเริ่มต้นที่นิยมมากที่สุดเพราะเป็น Open Source และมีประสิทธิภาพสูง QEMU เหมาะสำหรับ Development และ Testing VMware vSphere สำหรับองค์กรที่ใช้ VMware อยู่แล้ว และ Hyper-V สำหรับสภาพแวดล้อม Windows
Nova ทำงานร่วมกับบริการอื่นอย่างไร
Nova ไม่ได้ทำงานเดี่ยว แต่ทำงานร่วมกับบริการอื่นของ OpenStack อย่างแน่นแฟ้น Neutron จัดการเครือข่ายเสมือนสำหรับ VM Cinder จัดสรร Block Storage Glance เก็บและจัดการ OS Image Swift เก็บข้อมูลแบบ Object Storage และ Keystone ยืนยันตัวตนและจัดการสิทธิ์ การทำงานร่วมกันนี้ทำให้ OpenStack เป็นแพลตฟอร์ม Cloud ที่สมบูรณ์
สำหรับองค์กรที่ต้องการติดตั้ง OpenStack สามารถใช้ Dedicated Server หรือ Colocation เพื่อวางเซิร์ฟเวอร์ใน Data Center ที่มีโครงสร้างพื้นฐานคุณภาพสูง
คำถามที่พบบ่อย
OpenStack Nova เหมาะกับองค์กรขนาดเล็กไหม?
สามารถใช้ได้ แต่ต้องมีทีม IT ที่มีความเชี่ยวชาญ สำหรับองค์กรเล็กที่ต้องการ VM ไม่กี่ตัว การใช้ VPS จากผู้ให้บริการอาจคุ้มค่ากว่า
Nova รองรับ Container ได้ไหม?
Nova ออกแบบมาสำหรับ VM เป็นหลัก หากต้องการจัดการ Container ควรใช้ OpenStack Magnum หรือ Zun ที่ออกแบบมาเฉพาะ
ต้องใช้เซิร์ฟเวอร์กี่ตัวถึงจะเริ่มใช้ OpenStack Nova ได้?
เริ่มต้นได้ด้วยเซิร์ฟเวอร์ 1 ตัว (All-in-one) สำหรับทดสอบ แต่สำหรับ Production แนะนำอย่างน้อย 3 ตัว เพื่อแยก Controller, Compute และ Storage Node
สรุป
OpenStack Nova เป็นองค์ประกอบหลักของ OpenStack ที่จัดการ Virtual Machine บนระบบ Cloud ได้อย่างมีประสิทธิภาพ ด้วย Scheduler อัจฉริยะ รองรับ Hypervisor หลากหลาย พร้อมระบบรักษาความปลอดภัยที่ครบถ้วน Nova จึงเป็นตัวเลือกชั้นนำสำหรับองค์กรที่ต้องการสร้าง Private Cloud ของตัวเอง
พร้อมเริ่มต้นสร้าง Private Cloud? ติดต่อ DriteStudio สำหรับ Dedicated Server และ Colocation ที่รองรับ OpenStack