Hardware
น้องๆ เคยสงสัยมั้ยว่า Server ที่วางอยู่ใน Data Center เนี่ย เค้าดูแลรักษากันยังไง? ไม่ใช่แค่เปิดแอร์ให้เย็นเฉยๆ นะ สมัยผมทำร้านเน็ต SiamCafe เนี่ย (ตั้งแต่ปี 97 นู่น!) Server แต่ละตัวสำคัญมากๆ ถ้าดับไปนี่ ลูกค้าโวยวายกันตรึม เลยต้องหาวิธี Monitor Hardware ให้ดีๆ ซึ่งหนึ่งในเทคโนโลยีที่ช่วยได้เยอะมากๆ ก็คือ IPMI และ BMC นี่แหละ
IPMI ย่อมาจาก Intelligent Platform Management Interface ส่วน BMC ก็คือ Baseboard Management Controller เจ้าสองสิ่งนี้มันคือพระเอกขี่ม้าขาวที่ช่วยให้เราดูแล Server จากระยะไกลได้ ไม่ว่า Server จะเปิดอยู่ หรือดับไปแล้วก็ตาม! ลองนึกภาพว่า Server ดับกลางดึก แทนที่จะต้องวิ่งไป Data Center ตอนตีสาม เราสามารถ Remote เข้าไปดู Log, Restart เครื่อง หรือแม้กระทั่งลง OS ใหม่ได้เลย เจ๋งป่ะล่ะ?
IPMI คือ Standard Interface ที่ช่วยให้เราคุยกับ BMC ได้ ลองนึกภาพว่า IPMI เป็นภาษาที่เราใช้สั่งงาน BMC ก็แล้วกัน ไม่ว่าจะเป็นการอ่านค่า Sensor ต่างๆ (อุณหภูมิ, แรงดันไฟ), การควบคุม Power (เปิด/ปิด/Restart), หรือการดู Log เหตุการณ์ต่างๆ
BMC คือ Microcontroller ที่ฝังอยู่ใน Motherboard ของ Server ทำหน้าที่เป็น "ผู้จัดการ" ของ Hardware ทั้งหมด BMC จะคอย Monitor สถานะของ Hardware ต่างๆ และรายงานให้เราทราบผ่าน IPMI หรือ Interface อื่นๆ (เช่น Web UI)
เอาล่ะ ทีนี้มาดูวิธีใช้งาน IPMI และ BMC กันบ้าง สมัยผมทำร้าน SiamCafe เนี่ย เริ่มต้นจากหา Server ที่รองรับ IPMI ก่อนเลย สมัยนั้นหายากเหมือนกันนะ แต่เดี๋ยวนี้ Server ส่วนใหญ่ก็รองรับ IPMI หมดแล้ว
หลังจากได้ Server แล้ว สิ่งที่ต้องทำก็คือ Enable IPMI ใน BIOS และกำหนด IP Address ให้กับ BMC หลังจากนั้นเราก็จะสามารถ Remote เข้าไปจัดการ Server ได้แล้ว
ขั้นตอนการ Enable IPMI ใน BIOS จะแตกต่างกันไปขึ้นอยู่กับยี่ห้อและรุ่นของ Server แต่โดยทั่วไปแล้ว จะอยู่ในส่วนของ "Server Management" หรือ "IPMI Configuration" ลองหาดูใน BIOS นะครับ
BMC จะมี IP Address เป็นของตัวเอง ซึ่งเราต้องกำหนดให้ BMC เพื่อให้สามารถ Remote เข้าไปจัดการได้ โดยทั่วไปแล้ว เราสามารถกำหนด IP Address ผ่าน BIOS หรือผ่าน Command Line Interface (CLI) ของ BMC ได้
IPMItool เป็น Command Line Tool ที่ช่วยให้เราคุยกับ BMC ผ่าน IPMI ได้ ลองดูตัวอย่างการใช้งาน IPMItool ด้านล่างนี้
# แสดงข้อมูล Sensor ทั้งหมด
ipmitool sensor
# สั่ง Restart Server
ipmitool power reset
# ดู Log เหตุการณ์
ipmitool sel list
IPMItool เป็น Tool ที่มีประโยชน์มากๆ ลองศึกษาดูนะครับ จะช่วยให้เราจัดการ Server ได้ง่ายขึ้นเยอะเลย SiamCafe Blog มีบทความเกี่ยวกับ IPMItool อยู่นะ ลองเข้าไปอ่านดูได้
นอกจาก IPMI และ BMC แล้ว ก็ยังมี Software Monitoring Tools อื่นๆ อีกมากมาย เช่น Nagios, Zabbix, Prometheus แต่ Tools เหล่านี้ส่วนใหญ่จะทำงานบน OS ของ Server ซึ่งหมายความว่า ถ้า OS ของ Server มีปัญหา เราก็จะไม่สามารถ Monitor Hardware ได้
ข้อดีของ IPMI และ BMC คือ ทำงานแยกจาก OS ของ Server ทำให้เราสามารถ Monitor Hardware ได้ แม้ว่า OS จะมีปัญหา ลองดูตารางเปรียบเทียบด้านล่างนี้เพื่อความเข้าใจที่มากขึ้น
| คุณสมบัติ | IPMI/BMC | Software Monitoring Tools (Nagios, Zabbix) |
|---|---|---|
| ทำงานบน OS | ไม่ | ใช่ |
| Remote Management | ใช่ | จำกัด |
| Hardware Monitoring | ใช่ | ใช่ (แต่ต้องมี Agent บน OS) |
| Power Management | ใช่ | ไม่ |
| ราคา | ฟรี (มาพร้อมกับ Server) | ฟรี/เสียเงิน (ขึ้นอยู่กับ Tool) |
สรุปแล้ว IPMI และ BMC เหมาะสำหรับคนที่ต้องการ Remote Management และ Hardware Monitoring แบบครบวงจร โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่มี Server จำนวนมาก และต้องการความเสถียรสูง ลองเอาไปปรับใช้กันดูนะครับ ที่ SiamCafe Blog ยังมีบทความดีๆ อีกเยอะเลย
เอาล่ะน้องๆ หลังจากที่เราปูพื้นฐาน IPMI/BMC กันไปแล้ว คราวนี้มาดูเคล็ดลับที่พี่ใช้จริงสมัยทำร้านเน็ต SiamCafe ดีกว่า สมัยนั้นคือยุคบุกเบิกจริงๆ อะไรๆ ก็ต้องงมเอง
จำไว้เลยว่าการมอนิเตอร์ฮาร์ดแวร์ไม่ใช่แค่ดูว่าพังหรือไม่พัง แต่มันคือการป้องกันปัญหาตั้งแต่เนิ่นๆ เหมือนหมอที่คอยตรวจสุขภาพให้เรานั่นแหละ
ไม่ใช่ว่าอะไรนิดอะไรหน่อยก็เตือนไปหมด แบบนั้นจะ Over Alerting ทำให้เราละเลยสิ่งที่สำคัญจริงๆ สมัยผมทำร้านเน็ต เคยเจอเคส Power Supply ร้อนเกินไป แต่ Alert มันดังทั้งวันจนชิน สุดท้าย Power Supply ไหม้ ควันโขมง เสียหายบานปลาย
ดังนั้นต้องตั้ง Threshold ให้เหมาะสมกับ Hardware แต่ละตัว CPU, RAM, HDD, SSD ก็มีค่าที่ต่างกัน ลองดู Data Sheet ของ Hardware แต่ละตัวประกอบการตัดสินใจได้เลย
สมัยก่อน Server ค้างทีนึงคือต้องวิ่งไป Reset ถึง IDC เสียเวลาสุดๆ พอมี IPMI/BMC นี่ชีวิตดีขึ้นเยอะ แค่ Remote Power Cycle ก็แก้ปัญหาได้เยอะแล้ว
แต่ก็ต้องระวัง บางที Power Cycle บ่อยๆ ก็ไม่ดี อาจจะทำให้ Hardware เสียหายได้ ทางที่ดีคือต้องหาสาเหตุของอาการค้างให้เจอก่อน
Firmware ของ BMC ก็เหมือน Software ตัวนึง มี Bug มีช่องโหว่ มี Performance Improvement ดังนั้นต้อง Update สม่ำเสมอ แต่ก่อน Update ก็ต้องอ่าน Release Note ให้ดีก่อนนะ
เคยเจอเคส Update Firmware แล้ว BMC บึ้ม Boot ไม่ขึ้น ต้องส่ง Server กลับไป Flash Firmware ใหม่ เสียเวลาไปหลายวันเลย
Log ที่ BMC เก็บไว้คือขุมทรัพย์เลยนะน้องๆ เวลา Server มีปัญหาอะไร Log นี่แหละที่จะช่วยให้เราหาสาเหตุได้ง่ายขึ้น แต่ Log มันเยอะมากกกกกกก ดังนั้นต้องมีระบบจัดการ Log ที่ดี
สมัยก่อนผมใช้ Script ง่ายๆ ดึง Log จาก BMC มาเก็บไว้ใน Central Log Server แล้วใช้พวก Log Analyzer ช่วยวิเคราะห์
IPMI คือ Standard, BMC คือ Hardware Implementation คิดง่ายๆ IPMI คือภาษาที่ใช้คุยกัน ส่วน BMC คือคนที่พูดภาษานั้นได้ Server ส่วนใหญ่จะมี BMC Chip ติดตั้งอยู่
ใช่ครับ BMC มี Power Supply แยกของตัวเอง ดังนั้นมันจะทำงานได้แม้ว่า Server จะดับไปแล้ว นี่แหละคือข้อดีของมัน
Error จาก IPMItool มีหลายสาเหตุ อาจจะเป็นเรื่องของ Username/Password ไม่ถูกต้อง, Network Configuration ผิดพลาด หรือ Firmware Bug ลองเช็ค Log ดูครับ น่าจะมีบอกรายละเอียด
มีแน่นอนครับ BMC เป็นเป้าหมายที่น่าสนใจของ Hacker เพราะมันสามารถควบคุม Server ได้ทั้งหมด ดังนั้นต้อง Update Firmware สม่ำเสมอ และตั้ง Password ให้ Strong
IPMI/BMC คือเครื่องมือสำคัญสำหรับ System Administrator ในการ Monitor และจัดการ Hardware ของ Server จากระยะไกล ช่วยลดเวลาและค่าใช้จ่ายได้เยอะ แต่ก็ต้องใช้งานอย่างระมัดระวัง อย่าลืมเรื่อง Security ด้วยนะครับ
ถ้าใครสนใจเรื่อง Internet Cafe สมัยก่อน ลองไปอ่านที่ SiamCafe Blog ได้นะครับ มีเรื่องเล่าขำๆ เพียบ
ส่วนใครสนใจเรื่อง Forex ลองดูที่ iCafeForex ได้นะครับ