OSI Model & Trobleshoot

OSI Model (Open Systems Interconnection Model) มี 7 เลเยอร์ ออกแบบมาเพื่ออธิบายขั้นตอนการสื่อสารข้อมูลในระบบเครือข่าย

วิธีจำง่ายๆ ไม่ให้ลืม (Mnemonic)

1. จำจากบนลงล่าง (Layer 7 –> Layer 1):

All People Seem To Need Data Processing

(Application, Presentation, Session, Transport, Network, Data Link, Physical)

2. จำจากล่างขึ้นบน (Layer 1 –> Layer 7) — เหมาะมากสำหรับสาย Data Center Technician เพราะเริ่มจากงานสาย/ฮาร์ดแวร์:

Please Do Not Throw Sausage Pizza Away

(Physical, Data Link, Network, Transport, Session, Presentation, Application)

เจาะลึก 7 เลเยอร์ และหน่วยข้อมูล (PDU)

Layerชื่อเลเยอร์หน่วยข้อมูล (PDU)หน้าที่หลักตัวอย่างอุปกรณ์ / โปรโตคอล
7ApplicationDataส่วนต่อประสานกับผู้ใช้และแอปพลิเคชันHTTP, HTTPS, DNS, DHCP, SSH, FTP
6PresentationDataแปลงรูปแบบข้อมูล, บีบอัด, เข้ารหัส/ถอดรหัสSSL/TLS, JPEG, ASCII, MP4
5SessionDataสร้าง, ควบคุม และตัดการเชื่อมต่อระหว่างระบบRPC, NetBIOS, PPTP
4TransportSegment (TCP) / Datagram (UDP)ส่งข้อมูลแบบ End-to-End, ควบคุมความเร็ว (Flow Control), ตรวจจับข้อผิดพลาดTCP, UDP, Port numbers (เช่น 80, 443, 22)
3NetworkPacketค้นหาเส้นทาง (Routing) และระบุที่อยู่เชิงตรรกะ (Logical Addressing)Router, L3 Switch, IPv4, IPv6, ICMP (Ping)
2Data LinkFrameส่งข้อมูลระหว่างโหนดในเครือข่ายเดียวกันผ่าน Physical Address (MAC Address)L2 Switch, NIC, MAC Address, VLAN, ARP
1PhysicalBitส่งสัญญาณไฟฟ้า/แสงดิบๆ ผ่านตัวกลางทางกายภาพสาย LAN (Cat6), ไฟเบอร์ออปติก, หัวต่อ (RJ45, LC/SC), Transceiver (SFP+), PDU, ไฟสถานะ Link

วิธีจำหน่วยข้อมูล (PDU) จาก Layer 4 $\rightarrow$ 1:

Some People Fear Birthday

(Segment –> Packet –> Frame –> Bit)

💻 7. Application Layer

  • ลอจิกการจำ: “หน้าต่างแอปพลิเคชันที่ตาเรามองเห็น”
  • อธิบาย: เป็นชั้นที่เชื่อมต่อกับผู้ใช้โดยตรง ถ้าเราไม่เปิดเบราว์เซอร์ (HTTP) หรือแอปส่งเมล (SMTP) ข้อมูลก็จะไม่เกิด ดังนั้น PDU ตรงนี้จึงเป็นข้อมูลดิบ (Data) ที่มนุษย์อ่านออก เช่น ข้อความ “สวัสดี” หรือรูปภาพ

🎨 6. Presentation Layer

  • ลอจิกการจำ: “ฝ่ายจัดเตรียมและแปลภาษา”
  • อธิบาย: คอมพิวเตอร์แต่ละเครื่องอาจจะเข้าใจภาษาไม่เหมือนกัน ชั้นนี้เลยทำหน้าที่ จัดรูปแบบ (Format), เข้ารหัส (Encryption) และ บีบอัดข้อมูล เช่น แปลงข้อความให้เป็น ASCII หรือแปลงรูปภาพเป็น JPEG มันคือการเตรียม Data ให้อยู่ในรูปแบบที่พร้อมจะนำส่ง

📞 5. Session Layer

  • ลอจิกการจำ: “โอเปอเรเตอร์เปิด-ปิดสายคุย”
  • อธิบาย: ก่อนจะส่งข้อมูล คอมพิวเตอร์ต้องคุยกันก่อนว่า “พร้อมคุยไหม? เริ่มคุยนะ? วางสายละนะ?” ชั้นนี้ทำหน้าที่สร้างและรักษาจุดเชื่อมต่อ (Session) เพื่อไม่ให้ Data ของคนละสายมาปนกัน เช่น คุณเปิดแท็บเบราว์เซอร์พร้อมกัน 3 แท็บ ข้อมูลก็จะไม่ส่งผิดแท็บ

✂️ 4. Transport Layer

  • ลอจิกการจำ: “บริษัทขนส่งหั่นของลงกล่อง”
  • อธิบาย: ข้อมูล (Data) ชิ้นใหญ่เกินกว่าจะส่งไปทีเดียวได้ ชั้นนี้เลยต้อง หั่นตัดแบ่ง ข้อมูลออกเป็นชิ้นๆ เรียกว่า Segment (เซกเมนต์ แปลว่า ชิ้นส่วน) พร้อมแปะหมายเลขพอร์ต (Port Number) เพื่อบอกว่าข้อมูลนี้เป็นของแอปไหน เช่น พอร์ต 80 คือเว็บ พอร์ต 25 คืออีเมล

📦 3. Network Layer

  • ลอจิกการจำ: “จ่าหน้าซองพัสดุข้ามจังหวัด”
  • อธิบาย: พอมีกล่อง Segment แล้ว แต่ระบบยังไม่รู้ว่าจะส่งไปบ้านไหน ชั้นนี้เลยทำหน้าที่เอา Segment มาห่อเพิ่มเป็นพัสดุที่เรียกว่า Packet แล้วแปะ IP Address (ที่อยู่ผู้ส่ง-ผู้รับ) ลงไป เพื่อให้ Router สามารถเลือกเส้นทางส่งพัสดุนี้ข้ามโลกไปถูกบ้าน

🖼️ 2. Data Link Layer

  • ลอจิกการจำ: “ใส่ตะกร้าวิ่งส่งข้างบ้าน (LAN)”
  • อธิบาย: เมื่อ Packet มาถึงเครือข่ายปลายทางแล้ว จะต้องถูกนำมาใส่กรอบที่เรียกว่า Frame พร้อมแปะ MAC Address (ซึ่งเปรียบเหมือนเลขบัตรประชาชนประจำการ์ดแลน แปะแล้วเปลี่ยนไม่ได้เหมือนใส่กรอบรูปไว้) เพื่อให้ Switch ส่งข้อมูลวงใน LAN เดียวกันได้ถูกต้องไม่ผิดเครื่อง

⚡ 1. Physical Layer

  • ลอจิกการจำ: “แปลงทุกอย่างเป็นพลังงานวิ่งลุยสาย”
  • อธิบาย: คอมพิวเตอร์ส่งเฟรมข้อมูล (Frame) ไปดื้อๆ บนสายไฟไม่ได้ ชั้นนี้จึงรับหน้าที่แปลงเนื้อหาทั้งหมดให้กลายเป็นจุดสัญญาณดิบๆ หรือ Bits (0 และ 1) เพื่อยิงเป็นสัญญาณไฟฟ้า (สายทองแดง), สัญญาณแสง (ไฟเบอร์ออฟติก) หรือคลื่นวิทยุ (Wi-Fi) วิ่งไปยังจุดหมาย

แนวทางการตอบคำถามสัมภาษณ์ (Data Center Context)

เมื่อผู้สัมภาษณ์ถามว่า “คุณใช้ OSI Model ในการแก้ปัญหาอย่างไร?” ให้แสดงทัศนคติแบบ Bottom-Up Troubleshooting (ไล่จาก Layer 1 ขึ้นไป):

  1. Layer 1 (Physical):
    • ตรวจสอบว่าสายเคเบิล (Cat6/Fiber) เสียบแน่นหรือไม่ มีการหักงอเกินรัศมี (Bend radius) หรือไม่
    • สังเกตไฟสถานะ Link บนการ์ด NIC หรือ Switch Port
    • ตรวจสอบการจ่ายไฟ (Power) และโมดูล Transceiver
  2. Layer 2 (Data Link):
    • ตรวจสอบว่าพอร์ตอยู่ใน VLAN ที่ถูกต้องหรือไม่ มีปัญหา Port Security ปิดพอร์ตไปหรือไม่
    • เช็ก Speed / Duplex Mismatch
    • เช็ก MAC Address Table บน Switch
  3. Layer 3 (Network):
    • ตรวจสอบการตั้งค่า IP Address และ Subnet Mask
    • ทดสอบ ping ไปยัง Gateway เพื่อดูว่าระดับ Local Network ปกติหรือไม่
    • ตรวจสอบ Routing Table
  4. Layer 4 (Transport) ขึ้นไปจนถึง Layer 7 (Application):
    • ตรวจสอบว่า Port ปลายทางเปิดอยู่หรือไม่ (เช่น ทดสอบด้วย Telnet/NC/Test-NetConnection) มี Firewall/Security Group กั้นหรือไม่
    • ตรวจสอบบริการ DNS (แปลงชื่อโฮสต์เป็น IP ได้หรือไม่)
    • ตรวจสอบสถานะของเซอร์วิสบน Server ว่า Service รันอยู่ปกติหรือไม่

สคริปต์ตัวอย่างสำหรับใช้ตอบสัมภาษณ์

“เมื่อเจอปัญหาเซิร์ฟเวอร์ต่อเน็ตไม่ได้ หรือไม่สามารถสื่อสารบนเครือข่ายได้ ผมจะใช้วิธีการแก้ปัญหาแบบ Bottom-Up โดยไล่ตามลำดับของ OSI Model จากล่างขึ้นบน เพื่อตัดประเด็นปัญหาไปทีละระดับ ดังนี้ครับ:

  1. Layer 1: Physical Layer (ตรวจเช็กความพร้อมระดับกายภาพ)
    • เริ่มจากดูไฟสถานะ Link / Activity LED บนการ์ด NIC ท้ายเครื่องเซิร์ฟเวอร์และที่พอร์ตของ Switch ว่าติดหรือไม่
    • ตรวจสอบสายสัญญาณ (Patch Cord) ว่าเสียบแน่นสนิทดีไหม มีการหักงอเกินรัศมี (Bend Radius) หรือชำรุดหรือไม่
    • หากใช้สายไฟเบอร์ออปติก จะตรวจสอบโมดูล Transceiver (SFP+/QSFP) และความสะอาดของหัวต่อ หากไฟ Link ไม่ติดเลย ผมจะลองเปลี่ยนสายเส้นใหม่ที่ผ่านการทดสอบแล้ว หรือใช้พอร์ตสำรองเพื่อแยกแยะว่าเป็นที่สายหรือพอร์ต
  2. Layer 2: Data Link Layer (การเชื่อมต่อระดับ Local และ Switch)
    • เมื่อไฟ Link ติดปกติ แต่ยังรับ-ส่งข้อมูลไม่ได้ ผมจะตรวจสอบว่าพอร์ตบน Switch ถูกปิดอยู่หรือไม่ (Admin Down หรือ err-disabled จาก Port Security)
    • ตรวจสอบว่าพอร์ตถูกจัดให้อยู่ใน VLAN ที่ถูกต้องตามที่ระบุในคอนฟิกหรือไม่
    • ตรวจสอบปัญหา Speed / Duplex Mismatch ระหว่าง NIC กับ Switch Port
    • ตรวจสอบตาราง ARP (arp -a หรือ ip neigh) บนเซิร์ฟเวอร์ เพื่อดูว่าระบบสามารถจับคู่ IP กับ MAC Address ของ Gateway ได้หรือไม่
  3. Layer 3: Network Layer (การกำหนดค่า IP และการค้นหาเส้นทาง)
    • ตรวจสอบคอนฟิก IP Address, Subnet Mask และ Default Gateway บนตัวเซิร์ฟเวอร์ (เช่น ใช้คำสั่ง ip a บน Linux หรือ ipconfig บน Windows) ว่าได้รับค่าถูกต้องหรือไม่ หรือหลุดไปเป็น APIPA (169.254.x.x) เพราะ DHCP ขัดข้อง
    • ทดสอบการเชื่อมต่อระดับเครือข่าย:
      • เริ่มจาก ping 127.0.0.1 (Loopback) เพื่อทดสอบ TCP/IP Stack ในเครื่อง
      • ping ไปที่ตัว Default Gateway เพื่อดูการเชื่อมต่อไปยังเราเตอร์ท้องถิ่น
      • หาก Gateway ตอบสนอง จะลอง ping หรือ traceroute ไปยัง Public IP ภายนอก (เช่น 8.8.8.8) เพื่อดูว่าปัญหาเกิดจากการ Routing ออกสู่ภายนอกหรือไม่
  4. Layer 4: Transport Layer (การเปิดของพอร์ตและไฟร์วอลล์)
    • หาก ping IP ภายนอกได้ แต่ยังใช้งานเซอร์วิสไม่ได้ จะตรวจสอบระดับ Port และ Protocol (TCP/UDP)
    • ตรวจสอบว่าพอร์ตปลายทางเปิดอยู่และรับการเชื่อมต่อได้หรือไม่ (ใช้คำสั่งเช่น nc -zv, telnet, หรือ Test-NetConnection)
    • ตรวจสอบ Local Firewall (เช่น iptables, nftables, UFW หรือ Windows Firewall) ว่าไม่ได้เผลอบล็อกทราฟฟิกขาเข้า/ขาออก
  5. Layer 7: Application Layer (ระบบบริการและ DNS)
    • ตรวจสอบการทำงานของ DNS Resolution โดยลองแปลงชื่อโฮสต์เป็น IP (เช่น ใช้ nslookup หรือ dig) เพื่อแยกแยะว่าปัญหาคือ “เข้าเน็ตไม่ได้จริง” หรือ “เพียงแค่แปลงชื่อเว็บไซต์/โดเมนไม่ได้”
    • หากระบบอื่นปกติทั้งหมด จะตรวจสอบสถานะของ Service ปลายทางที่ต้องการเรียกใช้ว่ายังรันอยู่ปกติหรือไม่

สรุปการส่งต่องาน (Escalation & Documentation):

ตลอดกระบวนการ ผมจะเปลี่ยนตัวแปรทีละอย่าง (Change one variable at a time) และจดบันทึกผลการทดสอบทุกขั้นตอน หากพบว่าเป็นปัญหาเชิงลึกที่เกินขอบเขตของหน้าตู้ Rack เช่น Switch Config ซับซ้อน หรือ Core Router มีปัญหา ผมจะส่งต่อ Ticket ไปยังทีม Network Engineer พร้อมแนบ Logs และประวัติการทดสอบที่ไล่ไว้ เพื่อให้ทีมถัดไปแก้ไขได้ทันทีโดยไม่ต้องเริ่มเช็กสายใหม่ตั้งแต่ต้นครับ”

จุดเด่นที่ทำให้คำตอบนี้ได้คะแนนสูง

  • แสดงความเป็นมืออาชีพ: ไม่กระโดดไปเดาว่าเป็นที่ DNS หรือ Firewall ตั้งแต่แรก แต่เริ่มจากไฟสถานะและสายสัญญาณ ซึ่งเป็นงานหลักของช่างหน้างาน Data Center
  • มีวิธีคิดที่เป็นระบบ (Methodical): ใช้คำว่า “เปลี่ยนตัวแปรทีละอย่าง” และ “ทดสอบเป็นลำดับ”
  • ใส่ใจเรื่องการทำงานเป็นทีม: ตบท้ายด้วยการจด Documentation และส่งต่องาน (Hand-off) อย่างมีคุณภาพ

สคริปต์ตัวอย่างสำหรับใช้ตอบสัมภาษณ์

“เมื่อได้รับเคสเซิร์ฟเวอร์เปิดไม่ติด (Won’t power on) ผมจะดำเนินการตามขั้นตอนอย่างเป็นระบบเพื่อจำกัดขอบเขตของปัญหา โดยไม่เดาสุ่ม ดังนี้ครับ:

  1. ตรวจสอบแหล่งจ่ายไฟภายนอก (External Power Verification)
    • ตรวจสอบที่ตัว Rack PDU ก่อนว่าเบรกเกอร์ทริปหรือไม่ และปลั๊กไฟ (C13/C14 หรือ C19/C20) เสียบแน่นสนิทดีไหม
    • สำหรับเซิร์ฟเวอร์ที่มี Redundant Power Supplies (PSU 1 และ PSU 2) ตรวจสอบว่าสายไฟแต่ละเส้นต่อแยก Feed มาจาก PDU คนละตัว (Feed A และ Feed B) ตามมาตรฐานหรือไม่
  2. ตรวจสอบสถานะที่ตัว Power Supply Units (PSU Inspection)
    • สังเกตไฟ LED ท้ายตัว PSU แต่ละตัว:
      • หาก ไฟดับสนิท หรือขึ้น ไฟสีส้ม/กะพริบ (Amber/Blinking) แสดงว่าไม่มีไฟเข้า หรือตัวโมดูล PSU เองมีปัญหา
      • หาก ไฟสีเขียวติดค้าง (Solid Green) แสดงว่า PSU ได้รับไฟและพร้อมทำงานในระดับ Standby
    • ลองทำ Reseat PSU (ปลดสาย ถอดโมดูลออก แล้วเสียบกลับเข้าไปใหม่ให้ลงล็อก)
    • หากสงสัยว่า PSU เสีย ให้สลับสายไฟหรือสลับตัว PSU ที่ใช้งานได้ปกติมาทดสอบ โดยเปลี่ยนทีละตัวแปร (Change one variable at a time)
  3. ตรวจสอบระบบบริหารจัดการระยะไกล (Out-of-Band / BMC Access)
    • ตรวจสอบว่าพอร์ต Management เช่น iDRAC (Dell), iLO (HPE) หรือ IPMI ยังเข้าถึงได้หรือไม่
    • หากเข้า BMC ได้:
      • ตรวจสอบดู System Event Log (SEL) หรือ Hardware Health ทันทีเพื่อหา Error Code (เช่น Power Fault, Overvoltage, Backplane Failure)
      • ลองสั่งคำสั่งเปิดเครื่อง (Power On / Force Power) ผ่าน Virtual Console เพื่อแยกแยะว่าปุ่มกด Power ทางกายภาพหน้าร้านเสีย หรือเป็นที่บอร์ด
  4. ตรวจสอบขั้นตอน Power-On Self-Test (POST & Diagnostic LEDs)
    • หากไฟเข้าและกดเปิดเครื่องได้ แต่เครื่องหยุดชะงัก (Power On แล้วดับทันที หรือนิ่ง):
      • สังเกตดูไฟ Diagnostic LEDs, รหัสตัวเลขบน 7-segment display (ถ้ามี) หรือเสียง Beep Code เพื่อระบุจุดที่ค้างในขั้นตอน POST
      • ตรวจสอบพัดลมระบายความร้อนว่าหมุนแล้วตัดดับ หรือไม่หมุนเลย ซึ่งอาจเกิดจาก Short Circuit Protection ของ Mainboard
  5. การทดสอบแบบตัดทอนฮาร์ดแวร์ (Minimum-to-POST Troubleshooting)
    • หากระบบยังไม่สามารถบูตได้ ผมจะขออนุมัติตามขั้นตอนเพื่อเปิดฝาเครื่อง (ใส่สายรัดข้อมือกันไฟฟ้าสถิต ESD เสมอ)
    • ตรวจสอบเบื้องต้นว่ามีสายไฟภายในหลุดหลวม หรือมีกลิ่นไหม้/รอยไหม้บนบอร์ดหรือไม่
    • ปลดอุปกรณ์ต่อพ่วงที่ไม่จำเป็นออกทั้งหมดให้เหลือเฉพาะ Minimum-to-POST (เช่น เหลือ CPU 1 ตัว, RAM 1 แถวใน Slot ขั้นต่ำ และปลดการ์ด PCIe, Storage Backplane, อุปกรณ์ USB ออกทั้งหมด)
    • หากเปิดติด จึงค่อยๆ ใส่ชิ้นส่วนกลับเข้าไปทีละชิ้นเพื่อหาว่าชิ้นส่วนใดทำให้เกิดการลัดวงจรหรือระบบไม่ยอมเปิด
  6. การบันทึกข้อมูลและส่งต่องาน (Documentation & Escalation)
    • หากพบว่าเป็นปัญหาความเสียหายระดับบอร์ด (Motherboard Failure) หรือ CPU พัง ผมจะรวบรวม Log จาก BMC, บันทึกขั้นตอนทั้งหมดที่ได้ทดสอบแล้วลงใน Ticket
    • ประสานงานเปิดเคลมอะไหล่กับ Vendor (เช่น Dell ProSupport, HPE Pointnext) พร้อมระบุ Part Number และอาการอย่างแม่นยำ เพื่อให้การแก้ปัญหาเสร็จสิ้นเร็วที่สุดครับ”

จุดเด่นที่ทำให้คำตอบนี้ได้คะแนนดีเยี่ยม

  • คำนึงถึงความปลอดภัย (Safety & Standards): มีการกล่าวถึงสายดินกันไฟฟ้าสถิต (ESD Wrist Strap) และการต่อไฟแยกคู่ A/B
  • ใช้เครื่องมือระดับ Enterprise: ดึงเรื่อง BMC (iDRAC / iLO) มาใช้ ซึ่งเป็นสิ่งที่วิศวกรและช่างประจำ Data Center ใช้งานจริงเป็นอันดับแรกๆ มากกว่าการเดินไปกดปุ่มที่หน้าตู้เพียงอย่างเดียว
  • แสดงวิธีคิด Minimum-to-POST: สะท้อนถึงพื้นฐานช่างฮาร์ดแวร์ที่แน่นหนา ไม่แก้ปัญหาแบบเดาสุ่ม

แนวทางการตอบคำถามนี้ ผู้สัมภาษณ์ต้องการประเมินเรื่อง ความปลอดภัยของข้อมูล (Data Integrity), ความแม่นยำในการระบุชิ้นส่วน (Right Part / Right Slot) เพื่อป้องกันการดึงดิสก์ผิดลูกจนทำให้ RAID Array พังทลาย (Data Loss) และ การยืนยันสถานะหลังการเปลี่ยน (Verification)

สคริปต์ตัวอย่างสำหรับใช้ตอบสัมภาษณ์

“การเปลี่ยน Failed Hard Drive ในระบบ RAID เป็นงานที่มีความเสี่ยงสูงต่อข้อมูลของระบบ Production ผมจึงให้ความสำคัญกับความถูกต้องและความปลอดภัยเป็นอันดับแรก โดยมีขั้นตอนการทำงาน 5 ขั้นตอน ดังนี้ครับ:

  1. การตรวจสอบและยืนยันข้อมูลจากระบบ (Pre-check & Identification)
    • เริ่มจากตรวจสอบรายละเอียดใน Ticket และเข้าไปดูคอนโซลจัดการ เช่น iDRAC, iLO หรือ RAID Controller GUI / CLI (เช่น MegaCLI, storcli หรือ ssacli)
    • ยืนยันข้อมูลสำคัญ 4 อย่าง:
      1. Slot Number และ Bay Number ที่ระบุว่าเสีย
      2. Serial Number และ Part Number ของดิสก์ลูกที่พัง
      3. สถานะของ RAID Array: ตรวจสอบว่าอยู่ในสถานะ Degraded และทนทานพอที่จะเปลี่ยนได้ทันทีหรือไม่ (เช่น หากเป็น RAID 5 แล้วมีดิสก์พังไปแล้ว 1 ลูก จะต้องระมัดระวังเป็นพิเศษ ห้ามดึงดิสก์ผิดลูกเด็ดขาด เพราะจะทำให้ Array ล่มทันที)
      4. ยืนยันว่ามีการสำรองข้อมูล (Backup) ล่าสุดเรียบร้อยแล้ว
    • ใช้ฟังก์ชัน Blink LED / Identify LED ผ่าน Management Console เพื่อสั่งให้ไฟหน้า Tray ของดิสก์ลูกนั้นกะพริบ ทำให้ชี้เป้าหน้าตู้ได้อย่างแม่นยำ 100%
  2. การเตรียมความพร้อมด้านกายภาพและอุปกรณ์สำรอง (Preparation & ESD Safety)
    • เตรียมชิ้นส่วนอะไหล่ (Spare Drive) โดยตรวจสอบว่ามีสเปกตรงกันหรือเข้ากันได้: ชนิดของไดรฟ์ (SAS/SATA/NVMe), ความจุต้องเท่ากันหรือมากกว่า, ความเร็วรอบ (RPM) และ Form Factor (2.5″ หรือ 3.5″)
    • สวมใส่อุปกรณ์ป้องกันไฟฟ้าสถิต เช่น สายรัดข้อมือ ESD Wrist Strap ที่ต่อสายดินเสมอ
  3. ขั้นตอนการถอดและติดตั้ง (Drive Replacement)
    • เดินไปที่หน้าตู้ Rack ยืนยันตำแหน่ง Server Name, Tag, Bay Number และสังเกต ไฟสถานะ LED บน Drive Carrier:
      • ปกติดิสก์ที่เสียจะขึ้นไฟ สีส้ม/สีอำพัน (Amber/Yellow LED) หรือกะพริบตามจังหวะที่สั่ง Identify ไว้
    • ปลดล็อกสลัก (Release Lever) ของ Drive Tray ออกมารอประมาณ 20–30 วินาที เพื่อให้จานหมุนของฮาร์ดดิสก์หยุดหมุนสนิท (Spin-down) ป้องกันความเสียหายทางกลศาสตร์ก่อนดึงออกมาจาก Backplane
    • ตรวจสอบ Serial Number บนฉลากตัวถังของดิสก์ที่ดึงออกมาอีกครั้ง ว่าตรงกับที่ระบบแจ้งพังจริงหรือไม่
    • ขันน็อตยึดดิสก์ตัวใหม่อย่างระมัดระวังเข้ากับ Drive Caddy/Tray แล้วดันสไลด์กลับเข้าไปในสล็อตเดิมอย่างนุ่มนวลจนสลักล็อกคลิกเข้าที่แน่นหนา
  4. การตรวจสอบการทำงานและการ Rebuild (Verification & Monitoring)
    • สังเกตไฟ LED หน้าไดรฟ์ตัวใหม่: ไฟควรเปลี่ยนสถานะเป็นสีเขียวกะพริบ แสดงว่าระบบตรวจพบและเริ่มมี Activity
    • กลับไปที่หน้าคอนโซล BMC หรือ RAID Utility เพื่อยืนยันว่า:
      • คอนโทรลเลอร์ตรวจพบดิสก์ใหม่ (Drive Detected / Online)
      • สถานะของ Array เปลี่ยนเป็น Rebuilding (หรือหากระบบไม่ได้ตั้งค่า Auto-Rebuild ไว้ จะต้องสั่ง Assign ดิสก์ลูกใหม่นี้ให้เป็น Dedicated Hot Spare ของ Array นั้นแบบ Manual เพื่อเริ่มกระบวนการ)
    • ตรวจสอบเปอร์เซ็นต์ความคืบหน้าของการ Rebuild และเช็กว่าไม่มี Error เพิ่มเติม
  5. การปิดงานและการส่งต่อข้อมูล (Documentation & Asset Tracking)
    • ติดป้ายกำกับ (Label) บนดิสก์ตัวที่เสียว่าเป็น ‘Defective’ ระบุ Ticket Number เพื่อเตรียมส่งเคลม RMA
    • อัปเดตข้อมูลทรัพย์สิน (Asset Record / CMDB) โดยบันทึก Serial Number ของอะไหล่ตัวใหม่และตัวเก่า
    • อัปเดต Ticket บันทึกเวลาที่เริ่ม Rebuild, สถานะของระบบ และปิดงานตามขั้นตอนครับ”

จุดเด่นที่ผู้สัมภาษณ์มองหาจากคำตอบนี้

  • การสั่ง Blink LED / Match Serial Number: เป็นสิ่งที่ผู้มีประสบการณ์หน้างานจริงจะพูดถึงเสมอ เพราะการดึงผิดสล็อตคือหายนะอันดับ 1 ของงานเปลี่ยนดิสก์
  • การรอ Spin-down: แสดงถึงความใส่ใจในรายละเอียดเชิงกลไกฮาร์ดแวร์
  • ความเข้าใจเรื่อง RAID State: รู้ว่าในขณะที่ Array กำลัง Degraded หรือ Rebuilding ประสิทธิภาพการอ่านเขียนจะลดลง และระบบจะเปราะบางที่สุดหากมีดิสก์อีกลูกเกิด Bad Sector ระหว่างกระบวนการนี้

Hot Spare คือ ฮาร์ดดิสก์สำรองที่เสียบสแตนด์บายไว้ในระบบเซิร์ฟเวอร์หรือสตอเรจ โดยยังไม่มีข้อมูลใดๆ บันทึกอยู่ เมื่อมีดิสก์ลูกใดลูกหนึ่งใน RAID Array เสียหาย ระบบจะดึงดิสก์ Hot Spare นี้เข้ามาแทนที่และเริ่มกระบวนการ Rebuild ข้อมูลโดยอัตโนมัติทันที โดยไม่ต้องรอให้ช่างเทคนิคเดินทางมาเปลี่ยนไดรฟ์หน้าตู้

ความแตกต่างหลักระหว่าง Global Hot Spare และ Dedicated Hot Spare อยู่ที่ ขอบเขตการคุ้มครอง (Scope of Assignment) ภายใน RAID Controller หรือ Storage Pool เดียวกัน

เปรียบเทียบความแตกต่างหลัก

หัวข้อGlobal Hot SpareDedicated Hot Spare
ขอบเขตการทำงานสแตนด์บายเพื่อรองรับ ทุก RAID Array ในคอนโทรลเลอร์เดียวกันผูกติดเพื่อรองรับ เฉพาะ RAID Array ที่กำหนดไว้เท่านั้น
ความยืดหยุ่นสูงมาก ลูกเดียวสามารถคุ้มครองได้หลาย Virtual Diskต่ำกว่า คุ้มครองได้เฉพาะกลุ่มของตัวเอง
ความคุ้มค่าของดิสก์สูง ไม่ต้องเสียสล็อตดิสก์สำรองหลายลูกต่ำกว่า ต้องสำรองดิสก์แยกตามแต่ละ Array
ความเสี่ยง / ผลกระทบหากดิสก์พังพร้อมกันใน 2 Array ตัว Spare จะช่วยได้แค่อาเรย์แรกที่พังก่อนมีดิสก์สำรองที่การันตีแน่นอนสำหรับ Array วิกฤตนั้นๆ
ข้อจำกัดด้านสเปกขนาดและความเร็วต้องรองรับได้เท่ากับหรือมากกว่าดิสก์ลูกที่ใหญ่ที่สุดในทุกลูปสเปกต้องตรงกับสมาชิกใน Array ที่ตนเองผูกไว้เท่านั้น

1. Global Hot Spare

  • หลักการทำงาน: ดิสก์สำรองลูกนี้ไม่ได้สังกัด Array ใดเป็นพิเศษ หากมีดิสก์พังใน Array 1, Array 2 หรือ Array 3 ตัวคอนโทรลเลอร์จะสั่งดึง Global Hot Spare ตัวนี้เข้าไป Rebuild ทันทีที่พบปัญหา
  • กรณีการใช้งานที่เหมาะสม (Use Cases):
    • เซิร์ฟเวอร์ที่มีฮาร์ดดิสก์ชนิดเดียวกันทั้งตู้: เช่น เซิร์ฟเวอร์ขนาด 24 ช่อง ที่ใส่ดิสก์ SAS 2.4TB 10K RPM เท่ากันหมด และแบ่งซอยเป็น RAID 1 (สำหรับ OS) และ RAID 10 (สำหรับ Data) การตั้ง Global Hot Spare 1-2 ลูกจะช่วยดูแลทั้งสองระบบได้อย่างคุ้มค่า
    • ระบบที่มีสล็อตจำกัด: มี Drive Bay ไม่มากพอที่จะใส่ดิสก์สำรองให้ครบทุก Array

ข้อควรระวังสำคัญสำหรับ Global Hot Spare:

ขนาด (Capacity) และชนิดอินเทอร์เฟซ (Bus Type / Media Type) ต้องเข้ากันได้กับทุกอาเรย์ เช่น หากในตู้มีทั้ง SSD และ HDD การตั้ง HDD เป็น Global Hot Spare จะไม่สามารถเข้าไปแทนที่ SSD ที่พังได้ หรือหากในตู้มีดิสก์ 2TB และ 4TB ตัว Global Hot Spare จะต้องมีขนาดอย่างน้อย 4TB ขึ้นไป จึงจะช่วยได้ครอบคลุม

2. Dedicated Hot Spare

  • หลักการทำงาน: ดิสก์สำรองถูกกำหนด (Assigned) ไว้ให้เจาะจงเฉพาะ RAID Array กลุ่มใดกลุ่มหนึ่งอย่างชัดเจน ต่อให้อาเรย์อื่นมีดิสก์พังเสียหาย ตัวคอนโทรลเลอร์ก็จะไม่ดึง Dedicated Hot Spare ลูกนี้ไปใช้งานข้ามกลุ่มโดยเด็ดขาด
  • กรณีการใช้งานที่เหมาะสม (Use Cases):
    • เซิร์ฟเวอร์ที่มีดิสก์ผสมหลายประเภท (Mixed Media Types): ในเซิร์ฟเวอร์มีทั้ง Pool ของ NVMe/SSD สำหรับฐานข้อมูลประสิทธิภาพสูง และ Pool ของ SATA HDD ขนาดใหญ่สำหรับงาน Backup/Log จึงจำเป็นต้องตั้ง Dedicated Hot Spare แยกชนิดกันอย่างชัดเจน
    • ระบบ Mission-Critical ที่ยอมรับความเสี่ยงไม่ได้: อาเรย์ที่เก็บข้อมูลสำคัญระดับ Tier-1 ต้องการหลักประกันว่าจะมีดิสก์สำรองรอพร้อมอยู่เสมอ 100% ไม่ถูกแย่งไปโดยงานประมวลผลทั่วไป (Non-critical arrays)
    • การป้องกันความต่างของรอบการหมุนและความจุ (Tier Separation): ป้องกันไม่ให้ดิสก์ช้าไป Rebuild แทนดิสก์เร็ว หรือดิสก์ความจุน้อยไปติดปัญหาเรื่องความจุไม่พอ

สรุปจุดสำคัญสำหรับตอบสัมภาษณ์

หากผู้สัมภาษณ์ถามถึงเรื่องนี้ สามารถสรุปความเข้าใจเชิงสถาปัตยกรรมสั้นๆ ได้ว่า:

“Global Hot Spare เน้นความคุ้มค่าและยืดหยุ่น โดยแชร์ตัวสำรองให้ทุก Array ในเครื่อง เหมาะกับตู้ที่ใช้ดิสก์สเปกเดียวกัน ส่วน Dedicated Hot Spare เน้นการการันตีความปลอดภัยและแยกตาม Tier ข้อมูล เหมาะกับเครื่องที่มีงาน Mission-Critical หรือเครื่องที่มีทั้ง SSD และ HDD ผสมกัน เพื่อป้องกันไม่ให้ดึงดิสก์ผิดประเภทไป Rebuild ครับ”

คำสั่งตระกูล storcli (Broadcom/LSI/Cisco/Lenovo) และ perccli (Dell PowerEdge PERC) มีโครงสร้างไวยากรณ์ (Syntax) เหมือนกันเกือบ 100% สามารถสลับคำสั่งหน้าสุดตามค่ายการ์ดที่ใช้งานได้ทันที

โครงสร้างการระบุตำแหน่งพื้นฐาน:

  • /c0 = Controller ตัวที่ 0
  • /eX = Enclosure ID (เช่น e32)
  • /sY = Slot ID ของดิสก์ (เช่น s4)
  • /v0 = Virtual Disk / Array ตัวที่ 0

1. ตรวจสอบสถานะคอนโทรลเลอร์และดิสก์ (Inspection)

ก่อนตั้งค่า ต้องหา Enclosure ID และ Slot ID ของดิสก์ลูกที่ต้องการให้เจอก่อน

  • ดูภาพรวมคอนโทรลเลอร์, Virtual Disks และ Physical Disks ทั้งหมด:Bashperccli /c0 show # หรือ storcli /c0 show
  • ดูสถานะและหมายเลข Enclosure/Slot ของดิสก์ทุกก้อน:Bashperccli /c0/eall/sall show (สังเกตในตารางผลลัพธ์: คอลัมน์ State ควรเป็น UGood หรือ Unconfigured Good ซึ่งหมายถึงดิสก์พร้อมใช้งาน ไม่ได้ผูกกับ Array ใด)
  • ดูสถานะของ Virtual Disk (RAID Array):Bashperccli /c0/vall show

2. คำสั่งสั่งให้ไฟ LED หน้าดิสก์กะพริบ (Identify / Locate)

ใช้สำหรับชี้เป้าหน้าตู้จริง เพื่อให้แน่ใจว่าเลือก Slot ถูกต้องก่อนดำเนินการ:

  • สั่งให้ไฟหน้า Tray กะพริบ (Start Blink):Bashperccli /c0/e32/s4 start locate
  • สั่งหยุดกะพริบ (Stop Blink):Bashperccli /c0/e32/s4 stop locate

3. การตั้งค่า Global Hot Spare

กำหนดให้ดิสก์ใน Enclosure 32 Slot 4 ทำหน้าที่เป็นตัวสำรองส่วนกลางให้ทุก Array ใน Controller c0:

  • คำสั่งตั้งเป็น Global Hot Spare:Bashperccli /c0/e32/s4 add hotsparedrive # หรือ storcli /c0/e32/s4 add hotsparedrive (เมื่อรันเสร็จ สถานะของดิสก์ใน show จะเปลี่ยนจาก UGood เป็น DHS หรือ GHS (Global Hot Spare))
  • คำสั่งยกเลิกการเป็น Hot Spare (กลับมาเป็นดิสก์ว่าง UGood):Bashperccli /c0/e32/s4 delete hotsparedrive

4. การตั้งค่า Dedicated Hot Spare

กำหนดให้ดิสก์ใน Enclosure 32 Slot 4 ผูกติดเป็นตัวสำรองเฉพาะของ Virtual Disk ตัวที่ 0 (/v0) เท่านั้น:

  • คำสั่งตั้งเป็น Dedicated Hot Spare ให้กับ VD 0:Bashperccli /c0/e32/s4 add hotsparedrive dgs=0 # หรือ storcli /c0/e32/s4 add hotsparedrive dgs=0 (พารามิเตอร์ dgs ย่อมาจาก Drive Group Sequence หรือหมายเลข Drive Group / Virtual Disk ที่ต้องการผูก)
  • คำสั่งยกเลิก Dedicated Hot Spare:Bashperccli /c0/e32/s4 delete hotsparedrive

5. การตรวจสอบกระบวนการ Rebuild (เมื่อเกิดการแทนที่จริง)

เมื่อดิสก์ Hot Spare ถูกดึงไปแทนที่ดิสก์ที่พังและเริ่มการสร้างข้อมูลใหม่:

  • ตรวจสอบสถานะและเปอร์เซ็นต์ความคืบหน้าของการ Rebuild:Bashperccli /c0/e32/s4 show rebuild ผลลัพธ์จะแสดง Progress เป็น % และเวลาโดยประมาณ (Estimated Time Remaining)
  • ปรับความเร็วการ Rebuild (Rebuild Rate) กรณีต้องการให้เสร็จเร็วขึ้น:Bash# ตั้ง Rebuild Rate เป็น 50% (ค่าปกติส่วนใหญ่จะอยู่ที่ 30%) perccli /c0 set rebuildrate=50

ทริกการตอบสัมภาษณ์เกี่ยวกับการใช้ CLI

หากถูกถามเรื่องการจัดการ Storage บน Linux ให้เน้นย้ำว่า:

“ก่อนสั่ง Add Hot Spare ผ่าน CLI ผมจะรันคำสั่ง show เพื่อเช็กสถานะให้แน่ใจว่าดิสก์ลูกนั้นเป็น UGood และใช้คำสั่ง start locate เพื่อยืนยันตำแหน่งไฟ LED หน้าตู้ Rack เสมอ และหากเป็นดิสก์ที่เคยติด Foreign Configuration มาก่อน จะต้องสั่งเคลียร์ Foreign Config (perccli /c0/fall del) เพื่อให้สถานะกลับมาเป็น UGood ก่อนนำมาทำ Hot Spare ครับ”