2 คะแนน โดย GN⁺ 2024-09-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แม้ว่าเซิร์ฟเวอร์จะค่อย ๆ บรรจบกับฮาร์ดแวร์อเนกประสงค์ที่คล้ายพีซี แต่ การจัดการนอกแบนด์ สำหรับรับมือกับความขัดข้อง การบูต และการติดตั้งจากระยะไกล ก็ยังคงเป็นคุณสมบัติหลักที่แบ่งเซิร์ฟเวอร์ออกจากเครื่องไคลเอนต์
  • IPMI ไม่ใช่ชื่อผลิตภัณฑ์ แต่เป็น สเปก และระบบจัดการเฉพาะผู้ผลิตอย่าง HP iLO และ Dell DRAC แม้จะทับซ้อนกับ IPMI แต่ก็มีประวัติและความสามารถเสริมของตนเอง
  • IPMI ทำงานบน BMC และให้ทั้ง อินเทอร์เฟซนอกแบนด์ ผ่านเครือข่ายหรือพอร์ตอนุกรม รวมถึงอินเทอร์เฟซ in-band ผ่านไดรเวอร์ของระบบปฏิบัติการ
  • ในการใช้งานจริง ระบบมักมีเว็บ UI, SSH, VNC, คำสั่งผ่าน UDP 623, คอนโซลระยะไกล, virtual media และการควบคุมเซนเซอร์ พลังงาน พัดลม และ watchdog แต่ก็มีความเปราะบางต่อ การเปิดเผยด้านความปลอดภัย เป็นพิเศษ
  • Intel ME และ Intel AMT เป็นเทคโนโลยีคล้ายกันฝั่งพีซีไคลเอนต์ แต่ด้วยเงื่อนไขของ AMT และ vPro ความเชื่อที่ว่าอุปกรณ์ผู้บริโภคทั่วไปสามารถเข้าถึง เครือข่าย sideband ได้นั้น โดยมากแล้วไม่ถูกต้อง

เซิร์ฟเวอร์กลายมาเป็น “คอมพิวเตอร์ขนาดใหญ่” ได้อย่างไร

  • การประมวลผลแบบไคลเอนต์-เซิร์ฟเวอร์เริ่มต้นจากวิวัฒนาการของ time-sharing computing ที่เทอร์มินัลหลายตัวเชื่อมต่อเข้ากับคอมพิวเตอร์เครื่องเดียว
  • เทอร์มินัลไม่จำเป็นต้องมีสถาปัตยกรรมเดียวกับคอมพิวเตอร์ และแนวคิดนี้ก็สืบต่อมาถึงระบบไคลเอนต์-เซิร์ฟเวอร์ยุคแรก
  • การปฏิวัติของพีซีในช่วงกลางทศวรรษ 1990 สร้างวัฒนธรรมเดี่ยวแบบ WinTel ทางฝั่งไคลเอนต์ แต่จนถึงช่วงทศวรรษ 2000 ฝั่งเซิร์ฟเวอร์ก็ยังใช้ระบบปฏิบัติการและสถาปัตยกรรมที่แยกต่างหากกันเป็นเรื่องปกติ
    • ชุดผสม SPARC กับ Solaris ถูกใช้อย่างแพร่หลายในเซิร์ฟเวอร์
    • สถาปัตยกรรมมินิคอมพิวเตอร์ของ IBM และระบบปฏิบัติการหลายแบบของบริษัทก็เป็นแพลตฟอร์มเซิร์ฟเวอร์สำคัญเช่นกัน
    • Java ช่วยให้สามารถนำโค้ดกลับมาใช้ร่วมกันระหว่างแบ็กเอนด์ Solaris/SPARC กับไคลเอนต์ Windows/x86 ได้ จึงมีส่วนต่อแอปพลิเคชันองค์กร
  • เมื่อเวลาผ่านไป สถาปัตยกรรมเฉพาะสำหรับเซิร์ฟเวอร์เริ่มเสียเปรียบมากขึ้นในการแข่งขันด้านต้นทุนและประสิทธิภาพกับสถาปัตยกรรมพีซี
  • ซอฟต์แวร์เซิร์ฟเวอร์เองก็เปลี่ยนจากการเน้นการขยายแนวตั้งและ uptime สูง ไปสู่ การขยายแนวนอน และข้อกำหนดด้านความเชื่อถือได้ที่ผ่อนคลายลง ทำให้ข้อดีของคอมพิวเตอร์ระดับองค์กรลดลง
  • ปัจจุบัน จุดต่างของเซิร์ฟเวอร์ส่วนใหญ่อยู่ที่ SMP แบบหลายซ็อกเก็ต, NUMA, คอนโทรลเลอร์และโทโพโลยีสตอเรจที่ซับซ้อน รวมถึงความสามารถด้านการจัดการนอกแบนด์

การจัดการนอกแบนด์แก้ปัญหาอะไร

  • การจัดการนอกแบนด์ คือความสามารถในการเข้าถึงเซิร์ฟเวอร์ผ่านคอมพิวเตอร์สำหรับจัดการแยกต่างหาก แม้ว่าระบบปฏิบัติการหรือคอมโพเนนต์ทั่วไปจะทำงานไม่ปกติก็ตาม
  • SSH เป็นตัวอย่างคลาสสิกของการจัดการแบบ in-band ที่ให้โดยซอฟต์แวร์บนระบบปฏิบัติการ
  • การจัดการนอกแบนด์รับผิดชอบโดยสแตกฮาร์ดแวร์และซอฟต์แวร์แยกต่างหาก และตามธรรมเนียมแล้วไม่ต้องอาศัยความร่วมมือจากระบบปฏิบัติการหรือ CPU
  • ทุกวันนี้ ความสามารถนี้เห็นได้ชัดที่สุดใน คอนโซลระยะไกล ของเซิร์ฟเวอร์
    • มันทำงานคล้าย IP KVM ในตัว ทำให้ควบคุมเซิร์ฟเวอร์ได้ราวกับมีมอนิเตอร์และคีย์บอร์ดต่ออยู่ในเครื่อง
    • ความสามารถ “virtual media” ช่วยให้อัปโหลดไฟล์ ISO แล้วทำให้ดูเหมือนเป็นอุปกรณ์จริงได้ จึงมีประโยชน์สำหรับการติดตั้งระบบปฏิบัติการ
  • ความสามารถเหล่านี้ไม่ใช่แนวคิดใหม่ และสามารถพบฟังก์ชันคล้ายกันได้ตลอดประวัติศาสตร์ของการประมวลผลเชิงธุรกิจ
  • เซิร์ฟเวอร์สมัยใหม่พอสมควรมักมีความสามารถด้านการจัดการหลายระดับรวมอยู่ด้วย
    • อินเทอร์เฟซสำหรับผู้ดูแลที่เครื่องโดยตรง เช่น LCD หรือ LED ที่แสดงสถานะฮาร์ดแวร์
    • คอนโซลอนุกรมที่เข้าถึงบูตโหลดเดอร์ระยะแรกและระบบจัดการระดับต่ำที่ทำงานต่อเนื่อง
    • ระบบจัดการระดับสูงกว่าสำหรับดูแลเวิร์กโหลดของเครื่องจากระยะไกล
  • แม้ทุกวันนี้ไฟแสดงความขัดข้องที่แผงหน้าเครื่องและความสามารถด้านการจัดการผ่านพอร์ตอนุกรมยังคงอยู่ แต่ขอบเขตของชิ้นส่วนสำรองซ้ำซ้อนที่เปลี่ยนได้ขณะเครื่องทำงานก็น้อยลงกว่าสมัยก่อน

ความสัมพันธ์ระหว่าง IPMI กับ BMC

  • IPMI ไม่ใช่ผลิตภัณฑ์เฉพาะ แต่เป็น สเปก Intel IPMI
  • ผู้ผลิตเซิร์ฟเวอร์รายใหญ่โดยมากมักมีการติดตั้งใช้งาน IPMI ของตนเอง และใช้ชื่ออย่าง HP iLO และ Dell DRAC
    • บางระบบมีอยู่ก่อน IPMI เสียอีก จึงไม่ค่อยแม่นนักหากจะเรียกว่า “ก็แค่ IPMI”
    • ผู้ผลิตหน้าใหม่มักใช้เฟิร์มแวร์มาตรฐานจากผู้ขายเฟิร์มแวร์โดยตรง และมักเรียกมันว่า IPMI
  • ซอฟต์แวร์ IPMI โดยทั่วไปจะรันอยู่บนโปรเซสเซอร์ที่เรียกว่า BMC(Baseboard Management Controller)
  • บางครั้งคำว่า IPMI และ BMC ก็ถูกใช้แทนกัน
  • LOM(Lights-Out Management) โดยรวมเป็นคำที่ค่อนข้างเก่า แต่ยังคงอยู่เพราะ HP(E) ยังคงใช้ชื่อ Integrated Lights-Out
  • BMC ควรถูกแยกออกจาก SMC(System Management Controller) ซึ่งในคอมพิวเตอร์ไคลเอนต์ทำหน้าที่อย่างเช่นควบคุมความเร็วพัดลม
    • ทั้งสองคอมโพเนนต์มีความเกี่ยวข้องกันทางประวัติศาสตร์
    • ในเซิร์ฟเวอร์ BMC จะจัดการหน้าที่เหล่านี้เกือบทั้งหมด
  • IPMI ระบุแนวทางการเข้าถึงไว้สองแบบ
    • อินเทอร์เฟซนอกแบนด์ ผ่านเครือข่ายหรือการเชื่อมต่อแบบอนุกรม
    • อินเทอร์เฟซ in-band ที่ระบบปฏิบัติการเข้าถึงผ่านไดรเวอร์
  • ด้วยการเข้าถึงแบบ in-band เครื่องมืออย่าง ipmitool บน Linux จึงสามารถโต้ตอบกับ IPMI จากระบบปฏิบัติการที่กำลังทำงานอยู่ได้
  • IPMI เป็นทั้งระบบจัดการอิสระและมีอินเทอร์เฟซภายในเครื่องสำหรับระบบปฏิบัติการเพื่อความสะดวก ดังนั้นการเข้าใจโครงสร้างนี้จะช่วยลดความสับสนของคำศัพท์ได้

รูปแบบการใช้งาน IPMI จริงและข้อจำกัดด้านความปลอดภัย

  • ผลิตภัณฑ์ IPMI ให้ความสามารถต่าง ๆ โดยมี เว็บแอปพลิเคชัน เป็นศูนย์กลางมากขึ้นเรื่อย ๆ
  • แม้จะยังมีผลิตภัณฑ์จำนวนมากที่มีซอฟต์แวร์ไคลเอนต์เฉพาะ แต่แนวโน้มคือการย้ายฟังก์ชันไปสู่เว็บแอปในตัว
  • คุณภาพของเว็บอินเทอร์เฟซแตกต่างกันมากตามแต่ละ implementation และโดยรวมมักไม่ค่อยดีนัก
  • เซิร์ฟเวอร์ส่วนใหญ่มีอินเทอร์เฟซอีเธอร์เน็ตเฉพาะที่ระบุว่า IPMI หรือ management
  • วิธีที่พึงประสงค์ที่สุดคือวางอินเทอร์เฟซจัดการ IPMI ไว้บนเครือข่ายกายภาพเฉพาะ เพื่อเหตุผลด้านความปลอดภัยและความเชื่อถือได้
    • แม้เครือข่ายหลักจะมีปัญหาด้านประสิทธิภาพหรือเสถียรภาพ ก็ยังควรเข้าถึง IPMI ได้
    • เครือข่ายกายภาพเฉพาะต้องใช้เวลา พื้นที่ และต้นทุน
  • การประนีประนอมที่พบบ่อยคือสร้างเครือข่ายจัดการเป็น VLAN บนอุปกรณ์เครือข่ายทั่วไป
    • มันทำงานคล้ายเครือข่ายส่วนตัวอิสระ แต่ใช้อุปกรณ์จริงร่วมกัน
    • การแยกส่วนทำผ่านซอฟต์แวร์
  • เพื่อหลีกเลี่ยงการเพิ่มสายเคเบิล IPMI ยังมี sideband networking ด้วย
    • BMC สื่อสารโดยตรงผ่าน NIC ตัวเดียวกับที่ระบบปฏิบัติการใช้งาน
    • NIC ทำตัวเหมือนเป็นสองอินเทอร์เฟซที่ต่างกัน โดยทราฟฟิก IPMI จะปะปนอยู่ในสตรีมแพ็กเก็ตเดียวกับทราฟฟิกของโฮสต์ แต่ใช้ MAC address คนละตัว
    • การแยกระหว่างทราฟฟิก IPMI กับทราฟฟิกแอปพลิเคชันจึงอ่อนลง และต้องคำนึงถึงความปลอดภัย
  • การติดตั้งใช้งาน IPMI จำนวนมากเคยแสดงให้เห็นถึงปัญหาความปลอดภัยร้ายแรง และไม่ควรเปิดให้ผู้ใช้ที่ไม่น่าเชื่อถือเข้าถึงได้
  • ความสามารถด้านเครือข่ายแตกต่างกันไปในแต่ละ implementation แต่โดยทั่วไปมีอินเทอร์เฟซมาตรฐานบน UDP 623 ที่ใช้สำหรับการค้นหาและคำสั่งพื้นฐาน
  • SSH และเว็บอินเทอร์เฟซเป็นของที่พบได้ทั่วไป และ VNC ก็ถูกใช้บ่อยกับคอนโซลระยะไกล
  • ความสามารถพื้นฐานที่ทำได้ผ่าน IPMI ได้แก่
    • ดูรายการโมดูลฮาร์ดแวร์ในระดับ FRU หรือระดับหมายเลขชิ้นส่วนของผู้ผลิต
    • ควบคุมฟังก์ชันฮาร์ดแวร์พื้นฐาน เช่น เซนเซอร์ สถานะพลังงาน และพัดลม
    • ใช้ watchdog timer มาตรฐาน
  • watchdog timer สามารถใช้ร่วมกับซอฟต์แวร์บนระบบปฏิบัติการเพื่อทำให้เซิร์ฟเวอร์รีเซ็ตตัวเองได้ หากแอปพลิเคชันเข้าสู่สถานะผิดปกติ
  • เวลาจำกัดของ watchdog ควรถูกตั้งให้นานพอที่จะเผื่อเวลาระบบบูตและให้เวลาปิดการทำงานหลังจากเชื่อมต่อเข้าไปได้

Intel ME, AMD ST, AMT และข้อยกเว้นของพีซีไคลเอนต์

  • IPMI พบได้ทั่วไปในเซิร์ฟเวอร์ระดับองค์กร แต่พบได้น้อยในคอมพิวเตอร์ไคลเอนต์ทั่วไปหรือคอมพิวเตอร์ขนาดเล็กและใช้พลังงานต่ำ
  • Intel ME และ AMD ST เป็นข้อยกเว้นที่ใกล้เคียงกับ คอนโทรลเลอร์จัดการ OOB ซึ่งมีอยู่ในโปรเซสเซอร์ Intel และ AMD แทบทั้งหมด
  • Intel ME เป็นองค์ประกอบที่ทำให้ Intel AMT(Active Management Technology) ทำงานได้
  • AMT เป็นความพยายามที่จะนำการจัดการนอกแบนด์มาสู่เครื่องไคลเอนต์ และให้ความสามารถส่วนใหญ่ที่คล้ายกับ IPMI
  • AMT ไม่ประสบความสำเร็จมากนัก โดยเหตุผลหลักคือ Intel จำกัดความสามารถส่วนใหญ่ของ AMT ให้ใช้ร่วมกับแพลตฟอร์มจัดการระดับองค์กรที่มีราคาแพง
  • แม้จะมีไคลเอนต์ AMT แบบโอเพนซอร์ส แต่ปัญหาก็ยังอยู่ที่การหาเครื่องที่สามารถใช้ AMT ได้จริง
  • การจัดการ sideband ของ AMT ทำให้ชุมชนด้านความปลอดภัยกังวล แต่ในทางปฏิบัติจะเกิดขึ้นได้ก็ต่อเมื่อมีเงื่อนไขต่อไปนี้ครบทั้งหมด
    • โปรเซสเซอร์ต้องรองรับ AMT
    • ชิปเซ็ตของเมนบอร์ดต้องรองรับ AMT
    • NIC ต้องรองรับ AMT
    • อุปกรณ์ทั้งสามต้องเป็นผลิตภัณฑ์ Intel ที่มีตรา vPro เท่านั้น
  • แค่ข้อเท็จจริงที่ว่า Intel NIC ไม่ได้เป็นที่นิยมในอุปกรณ์ผู้บริโภค ก็ทำให้การเข้าถึงแบบ sideband พบได้น้อยอยู่แล้ว
  • vPro ยังถูกจำกัดอยู่กับโปรเซสเซอร์และชิปเซ็ตระดับค่อนข้างสูง
  • “ข้อเท็จจริง” ที่แพร่หลายว่า Intel ME ในอุปกรณ์ผู้บริโภคสามารถเข้าถึงได้ผ่าน sideband networking นั้น โดยทั่วไปไม่ถูกต้อง และเหตุผลก็ไม่ได้มีแค่เรื่องไลเซนส์ซอฟต์แวร์ของ Intel
  • ตัว Intel ME เองแทบไม่มีความสามารถด้านการจัดการนอกแบนด์หากไม่มี AMT แต่ดูเหมือนจะถูกใช้เป็นฐานที่สะดวกสำหรับโฮสต์และจัดการ คอมโพเนนต์การทำงานที่เชื่อถือได้ อย่าง Secure Boot และ DRM
  • Intel ME ไม่สามารถให้บุคคลที่สามตรวจสอบได้ และในอดีตก็เคยมีช่องโหว่ความปลอดภัยสำคัญอยู่ในตัว
  • SoC ARM สำหรับผู้บริโภคยุคใหม่ก็มีความสามารถคล้ายกัน จึงไม่ใช่ปัญหาที่จบอยู่แค่ผู้ขาย x86 รายใดรายหนึ่ง

1 ความคิดเห็น

 
GN⁺ 2024-09-04
ความคิดเห็นจาก Hacker News
  • มีบางส่วนที่แตกต่างจากข้อมูลล่าสุดเล็กน้อย Intel ตามหลัง AMD ทั้งในฝั่ง CPU/GPU และมีเพียงข้อยกเว้นที่โดดเด่น เช่น ตระกูล N100 ที่เหมาะกับงานใช้พลังงานต่ำและแบบไร้พัดลม
    ดังนั้น CPU ของ Intel มักถูกซื้อโดยองค์กรที่ต้องอัปเกรดสภาพแวดล้อมเดิมด้วย CPU จากผู้ผลิตรายเดิมเป็นหลัก เช่น ใช้ในกรณีอย่าง EVC ของ vSphere ที่ทำให้โปรเซสเซอร์ใหม่ทำงานเหมือนรุ่นเก่าของผู้ผลิตรายเดียวกัน เพื่อหวังให้ทำ hot migration ข้ามสถาปัตยกรรม CPU ได้ และลด downtime ตอนเปลี่ยนฮาร์ดแวร์
    นอกเหนือจากนั้น แทบทุกคนกำลังไปทาง CPU ของ AMD ที่ทั้งดีกว่าและถูกกว่าเมื่อเทียบกับประสิทธิภาพการประมวลผล ส่วน Intel NIC โดยรวมถือว่าใช้ได้ และเริ่มพบมากขึ้นในอุปกรณ์ผู้บริโภคด้วย แต่มีข้อยกเว้นคือ X710 ซึ่งแม้อยู่ในรายการความเข้ากันได้ “ระดับองค์กร” เช่น VMware แต่เคยมีปัญหาไดรเวอร์นานกว่าหนึ่งปี ทำให้เกิดเครือข่ายล่มแบบเงียบ ๆ หรือ crash
    สำหรับองค์กรที่ซื้อเซิร์ฟเวอร์ Supermicro โดยทั่วไปอาจเป็นตัวเลือกที่ดี ราคาถูกกว่า ยืดหยุ่นกว่าในด้าน form factor, chassis, ชิ้นส่วน และจำนวนสล็อต และโดยมากเชื่อถือได้ แต่การสนับสนุนไม่เสถียรเท่าการสนับสนุนในเชิงทฤษฎีของ Dell/HPE จึงเหมาะที่สุดกับการวางระบบแบบ redundant
    นอกจากนี้สเปก IPMI กำลังถูกแทนที่ด้วย Redfish ซึ่งให้ API ที่สมบูรณ์กว่า ปลอดภัยกว่า เป็นมาตรฐานกว่า และปกติกว่า หากเป็นเซิร์ฟเวอร์ mainstream ในช่วงไม่กี่ปีหลัง ก็น่าจะมี Redfish ควบคู่กับ IPMI ด้วย
    เมื่อไม่นานมานี้ บริษัทวิจัยสาย short selling อย่าง Hindenburg ออกรายงานเปิดโปงประเด็นน่าสงสัยของ Supermicro แต่ตัวฮาร์ดแวร์เองยังอยู่ระดับบนสุด และผู้ให้บริการคลาวด์รายใหญ่ก็ใช้งานอยู่: https://hindenburgresearch.com/smci/

    • เคยลองทั้งบอร์ด Supermicro และ ASRock Rack สำหรับเวิร์กสเตชันแล้ว บอร์ด Supermicro ให้ความรู้สึกเหมือน บอร์ดที่ทำในปี 2005 ไม่ใช่ผลิตภัณฑ์ปี 2024
      ไม่รองรับ ACPI sleep, รองรับพัดลม 4-pin/3-pin ได้ไม่ดีจนพัดลม 3-pin หมุน 100% ตลอดเวลา, เว็บอินเทอร์เฟซ IPMI ยังเหมือนยุค 2010s, ตำแหน่ง NVMe ทำให้ใช้ฮีตซิงก์ไม่ได้ และมีจัมเปอร์ทึบ ๆ ที่ไม่มีแม้แต่ป้ายบนบอร์ดอยู่เต็มไปหมด
      ในทางกลับกัน บอร์ด ASRock Rack ระดับเดียวกันดีกว่าจนเทียบกันไม่ได้
    • ปัญหาของ Supermicro ไม่ใช่รายงาน short selling แต่คือ การรั่วไหลของคีย์ Secure Boot รากความเชื่อถือถูกทำลาย ทำให้ฮาร์ดแวร์จำนวนมากไม่สามารถทำให้ปลอดภัยได้
      https://arstechnica.com/security/2024/07/secure-boot-is-comp...
    • CPU Intel รุ่นล่าสุดดูไม่แย่ตามสเปก แต่ในความเป็นจริงมี ปัญหาไหม้
      ยิ่งกระบวนการผลิตเล็กลง ปัญหาอายุการใช้งานก็ยิ่งหลีกเลี่ยงได้ยาก จึงไม่ได้แปลกใจมากนัก ปัญหาอย่าง mobility defect อาจกลายเป็น trouble ใหญ่ได้ง่ายขึ้น หลายคนบอกว่าเป็นปัญหาที่ไมโครโค้ดร้องขอแรงดันจากเมนบอร์ดมากเกินไป ซึ่งก็ถูก แต่ก็เป็นความจริงเช่นกันว่าชิปไวต่อการเปลี่ยนแปลงของสภาพแวดล้อมมากขึ้น
      เมื่อก่อนชอบประสิทธิภาพและความเข้ากันได้กับ Linux ของ Intel NIC และก็ชอบ Intel SSD ด้วย เพียงแต่ต้องอ่านให้ออกว่ามันดีกว่าคู่แข่งราคาถูกเล็กน้อยในช่วง P95~P99 และจังหวะที่รู้สึกหงุดหงิดว่าเครื่องช้าก็คือช่วง P95~P99 นั่นเอง หนึ่งในเหตุผลที่ทั้งชอบและไม่ชอบ Anandtech คือพวกเขามักพลาดประเด็นสำคัญแบบนี้
    • อยากให้ Supermicro PSU เข้าถึงผ่าน PMBus ได้โดยไม่ต้องใช้ ยูทิลิตี IPMI แบบ proprietary แต่ความจริงไม่เป็นเช่นนั้น แถมยังรองรับเฉพาะ x86 จึงไม่มีทาง interface บน ppc64el ได้
      ถ้าเป็นโอเพนซอร์สก็คง build ได้ง่าย ๆ
      https://www.supermicro.com/en/solutions/management-software/...
    • กำลังทำ automation ให้ Redfish คอยอัปเดตใบรับรอง IPMI SSL ให้เป็นปัจจุบัน แต่ขั้นตอนดึงใบรับรองใหม่ต้องใช้ “มนตร์ดำ” ที่ต่างกันเล็กน้อยใน implementation ของ Redfish ของแต่ละ vendor
      แค่การอัปโหลดและเปลี่ยนใบรับรอง เช่น ชื่อใบรับรอง การ encoding ก็ต้องมีชุดโมดูล Python เพื่อจัดการความแตกต่างประหลาด ๆ ของแต่ละ vendor แล้ว เดิมทีมันควรจบด้วยคำขอ PUT มาตรฐานไม่กี่ครั้งที่ใช้ได้ทุกที่ และเอกสาร Redfish API ก็ทำให้เชื่อเช่นนั้น แต่ความจริงไม่ใช่
      ดังนั้นจึงเห็นด้วยได้ยากว่ามัน เป็นมาตรฐานหรือใช้งานได้จริง และน่าหงุดหงิดพอ ๆ กับยุคที่ต้องไปคลิกเว็บอินเทอร์เฟซเอง
  • ทางเลือกหนึ่งต่อคำกล่าวที่ว่าถ้ายืนกรานจะใช้คอมพิวเตอร์ขนาดกะทัดรัดหรือใช้พลังงานต่ำก็ต้องอยู่โดยไม่มี IPMI คือใช้ บอร์ด Supermicro MicroATX ที่ใช้ Atom ใส่ IPMI แล้วทำความเย็นเงียบ ๆ ด้วยพัดลม Noctua ขนาดเล็กใน chassis 1U แบบความลึกสั้น
    ที่บ้านใช้รุ่นเก่าอยู่ มันเงียบและเล็ก จึงน่าสนใจกว่า Dell R2x0 ที่เคยเห็นมาก มีฟีเจอร์เซิร์ฟเวอร์อย่าง IPMI และ ECC RAM จึงดีกว่า mini PC และเสถียรกว่า RasPi แบบหลวม ๆ
    ส่วนตัวคงไม่เสียบพอร์ต IPMI เข้ากับ LAN หลัก แต่เมื่อแยกออกมาก็มีประโยชน์พอสมควร และเอาไว้ลองเล่นก็สนุก

    • ASRock Rack มีบอร์ดที่ใช้ชิป AM4/AM5 มาตรฐานบนชิปเซ็ตอย่าง X470, X570, X670 พร้อมฟีเจอร์เซิร์ฟเวอร์จำนวนมาก เช่น IPMI และ ECC ฝั่ง AMD ดูเหมือนว่า ECC จะพบได้ค่อนข้างทั่วไปแล้ว
      บอร์ดของผมใส่ 5950X แต่ก็เคยใช้กับ 5600G ได้ดีอยู่พักหนึ่ง เป็น mATX/ATX จึงใส่เคสทั่วไปและ power supply ทั่วไปได้ ไม่ต้องมี rack
    • แยก IPMI และอินเทอร์เฟซจัดการอื่น ๆ ไว้ใน management VLAN แยกต่างหาก และให้เข้าถึงได้ผ่าน VPN เฉพาะเท่านั้น
    • มีบอร์ด Atom แบบนั้นอยู่หลายตัว ความคิดแรกที่ผุดขึ้นมาทันทีที่อ่านบทความก็คือสิ่งนี้ และบทความใช้เวลาค่อนข้างนานกว่าจะพูดว่า IPMI หมายถึงอุปกรณ์ขนาดใหญ่
  • หากต้องการเพิ่มฟังก์ชันเข้าถึงระยะไกลให้กับอุปกรณ์ที่ไม่มี IPMI ก็อาจลองใช้อะไรอย่าง NanoKVM แบบ RISC-V ราคา 30 ดอลลาร์ได้
    มี HDMI capture และ encoding, Ethernet/Wi‑Fi, การควบคุมพลังงาน ATX และรันดิสโทร Linux ทั่วไปได้
    https://www.aliexpress.com/item/1005007369816019.html
    https://github.com/sipeed/NanoKVM

    • ตอนนี้กำลังลองใช้โดยต่อชุด full kit เข้ากับมินิพีซีของเล่นอยู่ เป็นอุปกรณ์ RISC-V ขนาดเล็กที่กินไฟแค่ไม่กี่วัตต์ และยังไม่มี Wi‑Fi แต่ capture เอาต์พุต HDMI มาเป็นเว็บ UI พร้อมกับ emulate เป็นอุปกรณ์ 4 อย่างให้พีซีเห็น
      ทำงานเป็น USB keyboard, USB mouse, USB flash drive สำหรับเก็บ boot ISO เพื่อใช้ติดตั้ง/กู้ระบบ และ USB NIC ที่ค่อนข้างยอดเยี่ยม
      USB NIC ตัวนี้ใช้เปิดเผยเฉพาะพอร์ต SSH สำหรับบริหารจัดการจากพีซีได้ ทำให้รู้สึกเหมือนพีซีมีอินเทอร์เฟซ IPMI เฉพาะตัวอยู่แบบหนึ่ง ซอฟต์แวร์รุ่นใหม่ยังรองรับ WireGuard และ Tailscale ด้วย จึงเชื่อมต่อผ่าน VPN ได้โดยตรง
      ยังมีปัญหาเล็ก ๆ น้อย ๆ อยู่ แต่ผู้พัฒนากำลังแก้กันอย่างรวดเร็ว
    • ถ้าจะใช้ ATX power control breakout ต้องใช้ full version ราคา 60 ดอลลาร์ breakout นี้ต่อเข้ากับคอนเน็กเตอร์ USB-C ทางกายภาพประหลาด ๆ ที่บรรทุกสัญญาณ ATX
      จะทำเองก็ได้ แต่คอนเน็กเตอร์ USB-C นั้นบัดกรีได้แย่มากจริง ๆ
    • สงสัยว่าทำไม AliExpress ถึงไม่ขายอุปกรณ์นี้ให้ลูกค้าในสหรัฐฯ
    • ฝั่งซอฟต์แวร์ ไม่ใช่โอเพนซอร์ส จึงไม่ได้ดีกว่าทางเลือกอื่น
      เป็น KVM อีกตัวหนึ่งที่ไว้ใจไม่ได้
  • ช่วงปลายทศวรรษ 1990 เคยติดตั้งเซิร์ฟเวอร์หลายเครื่องที่ Intel ทำไว้ เป็นวิธีที่ส่งแพลตฟอร์มอ้างอิงของ Intel ในรูปคอมพิวเตอร์ “barebone” แล้วให้ผู้รวมระบบใส่ RAM กับสตอเรจเข้าไป และใช้ LANDesk Server Manager Pro กับ “Emergency Management Card”(EMC) สำหรับการจัดการแบบ lights-out
    เป็นอุปกรณ์ยุค Pentium Pro ถึง Pentium II รุ่นแรก ๆ อย่าง AP450GX, BB440FX, RC440FX
    เมื่อคิดว่าโค้ดอ้างอิงของแพลตฟอร์ม x86 นั้นไม่ตายง่าย ๆ ก็มักสงสัยอยู่บ่อย ๆ ว่าส่วนประกอบในโครงสร้าง IPMI ปัจจุบันสืบทอดมาจากฮาร์ดแวร์และซอฟต์แวร์นี้มากแค่ไหน รหัสผ่านเริ่มต้นของ Intel LANDesk Emergency Management Card คือ “calvin” และถ้าเคยจัดการ Dell iDRAC รุ่นแรก ๆ ก็น่าจะคุ้นกับรหัสผ่านนี้ ผมคิดว่าไม่ใช่เรื่องบังเอิญ
    นอกจากนี้ เคยได้ยินจากพนักงาน Intel ว่าโค้ดเนมของ EMC คือ “Hobbes” แต่หาเอกสารยืนยันไม่เจอ
    เวอร์ชัน EMC มักพบได้บน eBay และมีทั้งรุ่น ISA กับ PCI มันคือพีซี x86 บนการ์ด และบางรุ่นหรือทั้งหมดมี UPS ในตัว มีสล็อต PCMCIA สำหรับเพิ่มการจัดการแบบ out-of-band, มีแหล่งจ่ายไฟภายนอก และเชื่อมต่อกับเมนบอร์ดเซิร์ฟเวอร์ผ่านอินเทอร์เฟซ host bus ของการ์ดกับคอนเน็กเตอร์เฉพาะ
    เคยดาวน์โหลดเฟิร์มแวร์ของ EMC บางเวอร์ชันมาดู และบางตัวดูเหมือนเครื่อง DOS แบบ embedded ยังเป็นโปรเจกต์เล่น ๆ ที่ตั้งใจจะทำสักวัน จึงยังไม่ได้ reverse engineer โค้ดหรือเอาไปรันใน qemu แต่ก็อยากลอง
    ผู้ผลิต third-party อย่าง Unisys, Fujitsu, ALR/Gateway, NCR ที่ขายแพลตฟอร์มอ้างอิงของ Intel ก็มีการ์ดนี้ให้ด้วย ถ้าเห็นการ์ดนี้ในรายการขาย ก็เป็นเบาะแสดี ๆ ว่าเป็นแพลตฟอร์มอ้างอิงของ Intel และการอ้างถึง “LDSM” ก็เป็นเบาะแสเช่นกัน
    ถ้ามีใครรู้สายวิวัฒนาการนี้ คงน่าสนใจมากจริง ๆ
    https://www.intel.com/pressroom/archive/releases/1998/ld1030...
    https://web.archive.org/web/20240903131630/https://www.ebay....

  • Intel ME และ AMD PSP มีบทบาทอย่างมากในการทำให้ CPU อยู่ใน สภาพคล้ายพีซี x86 ที่ host firmware สามารถรันได้จริง
    ความซับซ้อนในการเริ่มต้นระบบสูงขึ้นมาก จนแทนที่จะเขียนลอจิกทั้งหมดด้วย assembly ที่ถูกจำกัดอย่างประหลาดเหมือนโค้ดเริ่มต้น BIOS แบบดั้งเดิม การจัดการด้วยซอฟต์แวร์บนคอร์ embedded แยกต่างหากที่เรียบร้อยและเขียนโปรแกรมด้วย C ได้ กลับสมเหตุสมผลกว่า
    ใน HPE ProLiant บางรุ่น ดูเหมือนว่า iLO จะทำงานเริ่มต้นระดับต่ำบางส่วนนี้จริง ๆ ในขั้นตอนบูตนั้น iLO ยังควบคุม framebuffer โดยตรงด้วย และใน G10 จะเห็นข้อความทำนองว่า “ส่งมอบคอนโซลให้โฮสต์” แวบหนึ่ง จากนั้นจอแสดงผลจะ reinitialize แล้วแสดงคำแนะนำปุ่มฟังก์ชัน
    Dell ก็น่าจะทำสิ่งคล้ายกัน แต่ในช่วงต้นจะเห็นแค่ “Please wait” กับสัญลักษณ์โหลดขนาดใหญ่ และไม่เห็นสถานะความคืบหน้า

  • IPMI กับวิธีอื่น ๆ ก็ดี แต่สิ่งที่ต้องการคือ อินเทอร์เฟซ serial มาตรฐานไปยัง UEFI shell ที่ทำงานอยู่ตลอดเวลา ส่วนจะเข้าถึงพอร์ต serial นั้นอย่างไร ผมจัดการเองได้

    • UEFI boot services ที่ shell พึ่งพาอยู่นั้นใช้งานไม่ได้หลังจาก bootloader หรือระบบปฏิบัติการเรียก ExitBootServices() แล้ว
      โค้ดจะถูกถอดออกจาก RAM ตามตัวอักษร และพื้นที่นั้นถูกคืนให้ระบบปฏิบัติการ ดังนั้นการทำให้สำเร็จจึงไม่ง่าย
    • สิ่งที่คิดถึงจาก Sun SPARC และระบบ Unix อื่น ๆ คือการมี การเข้าถึงระยะไกลที่ใช้ได้จริง ในระดับต่ำมาก
      BIOS/UEFI remote console มักจุกจิกและผลลัพธ์ไม่แน่นอนเสมอ ต้องไปปรับ GRUB หรือการตั้งค่า kernel บ่อย ๆ เพื่อให้ I/O ตรงกัน
    • ฮาร์ดแวร์เซิร์ฟเวอร์มักเปิดให้เข้าถึง UEFI ผ่าน serial ได้อยู่แล้ว ถึงอย่างนั้นก็ยังคิดว่าน่าจะต้องมี การควบคุมพลังงานระยะไกล ด้วยไม่ใช่หรือ
  • IPMI มีประโยชน์ แต่ก็แสดงให้เห็นชัดเจนว่าเราไว้ใจไม่ได้ว่าบริษัทเชิงพาณิชย์จะซัพพอร์ตฮาร์ดแวร์อย่างเหมาะสมในระยะยาว
    ระบบปฏิบัติการที่รันอยู่บน IPMI โดยทั่วไปจะค่อนข้างปลอดภัยตอนที่ระบบยังใหม่ แต่เมื่อมีซ็อกเก็ต CPU ใหม่ออกมา ผู้ผลิตก็จะค่อย ๆ หมดความสนใจในการอัปเดตระบบเก่า แม้ว่าฮาร์ดแวร์ IPMI แบบเดียวกันจะอยู่ทั้งบนบอร์ดรุ่นเก่าและรุ่นใหม่ก็ตาม
    ถ้าสามารถลงระบบปฏิบัติการของตัวเองบนฮาร์ดแวร์ IPMI ได้ มันจะมีประโยชน์กว่านี้มาก และอาจปลอดภัยพอที่จะเชื่อมต่อกับอินเทอร์เน็ตโดยตรงได้ ตอนนี้จำเป็นต้องใช้ การสื่อสารแบบ sideband เช่น VPN, SSH port forwarding หรือแยก network segment ทำให้ต้องมีฮาร์ดแวร์และการตั้งค่าเพิ่มขึ้นมากเพื่อรองรับ IPMI
    ในการติดตั้งขนาดใหญ่ ค่าใช้จ่ายเพิ่มเติมนี้กระจายออกไปได้ดี แต่ในการติดตั้งขนาดเล็กถือเป็นภาระค่อนข้างมาก ถ้าเป็นแค่การนำเครื่องเดียวไปวางแบบ colocation ก็แทบไม่คุ้มค่า
    เพราะไม่สามารถเปิด IPMI ให้ออกสู่อินเทอร์เน็ตโดยตรงได้อย่างปลอดภัย สุดท้ายจึงต้องติด Pi บางรูปแบบไว้กับแต่ละเครื่อง พอทำแบบนั้น การใช้พอร์ตอนุกรมก็ง่ายพอ ๆ กัน หรืออาจง่ายกว่าด้วยซ้ำ สุดท้ายก็เหมือนย้อนกลับไปใช้การควบคุมผ่านพอร์ตอนุกรมมาตรฐานที่มีมาตั้งแต่ยุค VAX, Sun, Alpha และยิ่งคิดก็ยิ่งสมเหตุสมผลกว่าอินเทอร์เฟซเครือข่ายที่ไม่ปลอดภัยมาก

  • ถ้าเป็นการดีพลอยขนาดเล็กกว่า เช่น ระดับ ประมาณ 10,000 คอร์ ผมคงสร้างเองโดยผ่านผู้รับรวมระบบ
    เมนบอร์ด Gigabyte/ASRock Rack, Epyc 9003 series, RAM 384GB และชุดจ่ายไฟคู่ทั่วไป จะอยู่ที่ราว 7,000 ดอลลาร์ต่อโหนด และอาจมีประสิทธิภาพด้านพลังงานค่อนข้างดี
    IPMI ในตัวก็ใช้ได้ค่อนข้างดี เข้ากับ ipmitool ได้ดี และโดยปกติก็มีฟังก์ชันเกี่ยวกับ Redfish อยู่บ้าง

  • ผมชอบ IPMI มากจริง ๆ แต่สิ่งที่ไม่ชอบสำหรับการใช้ใน homelab คือไฟขณะ idle เพิ่มขึ้นประมาณ 5W
    บอร์ด Gigabyte MC12-LE0 จับคู่กับ Ryzen Pro 5650 ดูเหมือนเป็นตัวเลือกที่ชัดเจนสำหรับโฮมเซิร์ฟเวอร์ในราคาประมาณ 50 ดอลลาร์ แต่ก็ยังไม่ค่อยพอใจกับการกินไฟที่สูงขึ้น
    เครื่องเก่าอย่าง Dell T20/T30 มี Intel AMT ซึ่งฟังก์ชันอ่อนกว่ามากและมีข้อบกพร่องด้านความปลอดภัยด้วย แต่ถ้าใช้ร่วมกับ MeshCommander อย่างน้อยก็ยังมีวิธีจัดการจากระยะไกลได้ น่าเสียดายที่ MeshCommander เลิกพัฒนาแล้วและไฟล์รีลีสหายไปจากหลายที่ แต่โชคดีที่ผมเก็บแพ็กเกจ MSI และ Node ไว้บนเซิร์ฟเวอร์แล้ว
    วางแผนจะลอง PiKVM V2 ด้วย Raspberry 4 กับการ์ดแคปเจอร์ USB-HDMI แบบง่ายราคา 8 ดอลลาร์: https://docs.pikvm.org/v2/
    นอกจากข้อจำกัดที่ฟังก์ชันบางอย่างไม่มีแล้ว มันดูมีอนาคตเพราะใช้ได้ทั่วไปกว่ากับอุปกรณ์ที่ไม่รองรับการจัดการจากระยะไกลเลย

    • การกินไฟเพิ่มเติมขึ้นอยู่กับคุณภาพของชุดจ่ายไฟเป็นอย่างมาก การทำชุดจ่ายไฟให้มีประสิทธิภาพทั้งตอนโหลดสูงและตอน idle นั้นค่อนข้างยาก
      ยังน่าสงสัยว่า BMC หรือบางครั้ง BMC ที่ฝังอยู่ใน NIC จะกินไฟมากขนาดนั้นจริงหรือไม่ อีกอย่าง ถ้าใช้ Raspberry 4 ทำ PiKVM ก็น่าจะเกิน 5W
    • ตอนนี้ที่เฟิร์มแวร์เปิดแล้ว กำลังดู NanoKVM อยู่
      https://github.com/sipeed/NanoKVM
    • รีลีสของ MeshCommander ยังดาวน์โหลดได้จาก https://www.meshcommander.com/ และติดตั้งผ่าน NPM ได้ด้วย
      ยังไม่ได้ลองใช้ แต่ดูเหมือนตัวต่อยอดที่ตั้งใจให้เป็นภาคต่อคือ https://meshcentral.com/
    • MeshCommander 0.96 ดาวน์โหลดจากเว็บไซต์ได้อีกครั้ง ผมอ่านเจอมาว่าเป็นเพราะนักพัฒนากำลังปรับตัวกับงานใหม่
  • คำถามใหญ่ของ IPMI คือ คีย์เริ่มต้น คืออะไร
    ถ้าที่ไหนสักแห่งในซัพพลายเชนมีใครติดตั้งคีย์ IPMI เพิ่ม หรือมีคีย์เริ่มต้นอยู่ คนคนนั้นก็สามารถจัดการคอมพิวเตอร์จากระยะไกลได้
    https://www.rapid7.com/blog/post/2013/07/02/a-penetration-te...

    • ตามที่อ้างเพิ่มเติมในลิงก์นั้น กระบวนการยืนยันตัวตนของ IPMI 2.0 กำหนดให้เซิร์ฟเวอร์ส่งแฮช salted SHA1 หรือ MD5 ของรหัสผ่านของผู้ใช้ที่ถูกร้องขอไปยังไคลเอนต์ ก่อนที่ไคลเอนต์จะยืนยันตัวตน
      IPMI ยังจำกัดความยาวรหัสผ่านสูงสุดไว้ที่ 20 ตัวอักษรด้วย ในโลกความจริง เราควรมองว่าแฮชจะยังเป็นความลับได้ก็เฉพาะต่อหน้าผู้ทดสอบเจาะระบบที่รู้ตัวและทำงานภายใต้กรอบสัญญาที่มีเวลาจำกัดเท่านั้น ไม่ใช่ต่อหน้าผู้โจมตีจริงที่มีเวลาไม่จำกัด
      ผมวิจารณ์ประเด็นนี้อย่างหนัก มันอยู่ในสเปกมา 20 ปีแล้ว จุดเด่นของซอฟต์แวร์ไม่ใช่ว่าเปลี่ยนได้ง่ายกว่าฮาร์ดแวร์หรอกหรือ การพูดว่า “ต้องเอาไปไว้ใน VLAN” นั้นง่าย แต่เวลาออกไปประเมินจริง IPMI แทบจะต่ออยู่กับเครือข่ายงานเสมอ
      ถ้าใส่สิ่งโง่ ๆ ไว้เป็นค่าเริ่มต้น การตั้งค่าโง่ ๆ ก็จะแพร่ไปทั่วโลก และรวมถึงทุกบริษัทที่ไม่มีผู้ดูแลความปลอดภัยที่มีความรู้ ในวินาทีที่พวกเขา “ซื้อเซิร์ฟเวอร์” ด้วย
    • ควรอยู่บน เครือข่ายที่แยกทางกายภาพ เสมอ และควรหลีกเลี่ยง BMC ที่แชร์ NIC กับระบบ