บทนำ
ในบทความก่อนหน้า เราได้แนะนำเทคโนโลยีจัดเก็บข้อมูลแบบกระจายใหม่ที่ปรากฏใน Windows Server 2016 คือ Storage Spaces Direct (S2D) S2D ช่วยให้สามารถสร้างที่เก็บข้อมูลเสมือนแบบกระจายและทนทานต่อข้อผิดพลาด (failover) บนดิสก์ท้องถิ่นของเซิร์ฟเวอร์คลัสเตอร์ได้ (ดูรายละเอียดในบทความก่อนหน้า) ในบทความนี้ เราจะแสดงวิธีการตรวจจับและเปลี่ยนดิสก์ทางกายภาพที่ล้มเหลวในคลัสเตอร์ S2D
ประเภทการจัดเก็บข้อมูลใน S2D
S2D รองรับการสร้างที่เก็บข้อมูล 2 ประเภทหลัก:
- Mirror (เหมือน RAID 1): ในการตั้งค่า 2 ดิสก์ (ไม่แนะนำ) สามารถทนทานต่อการล้มเหลวของดิสก์ใดดิสก์หนึ่งได้ หากมี 3 ดิสก์ขึ้นไปในพูล สามารถทนทานต่อการล้มเหลวของดิสก์ได้สูงสุด 2 ดิสก์พร้อมกัน
- Parity (เหมือน RAID 5): ในการตั้งค่า 3 ดิสก์ สามารถสูญเสียดิสก์ได้ 1 ดิสก์ หากมี 7 ดิสก์ สามารถทนทานต่อการล้มเหลวของดิสก์ได้ 2 ดิสก์พร้อมกัน
ตรวจสอบสถานะระบบจัดเก็บข้อมูล
สามารถตรวจสอบสถานะของระบบจัดเก็บข้อมูลในคลัสเตอร์ S2D ได้ด้วยคำสั่ง PowerShell:
Get-StorageSubSystem *Cluster* | Get-StorageJob
ตรวจหาดิสก์ที่ผิดปกติ
สามารถค้นหาดิสก์ที่มีปัญหาในพูลจัดเก็บได้ผ่าน GUI ใน Failover Cluster Manager (Storage → Storage Pool) จะเห็นว่าดิสก์ทางกายภาพหนึ่งในพูลอยู่ในสถานะ Unhealthy
หรือใช้ PowerShell เพื่อดูสถานะดิสก์ทั้งหมดในพูล:
Get-StoragePool *S2D* | Get-PhysicalDisk
บันทึกออบเจกต์ของดิสก์ที่มีปัญหาไว้ในตัวแปร:
$Disk = Get-PhysicalDisk | ? OperationalStatus -Notlike ok
ขั้นตอนการเปลี่ยนดิสก์
- ป้องกันการเขียนข้อมูลต่อไป: ตั้งค่าดิสก์ให้เป็นสถานะ Retired
Set-PhysicalDisk -InputObject $Disk -Usage Retired - ลบดิสก์ที่ล้มเหลวออกจากพูล:
Get-StoragePool *S2D* | Remove-PhysicalDisk –PhysicalDisk $Diskจะมีคำเตือนปรากฏขึ้นว่าอุปกรณ์ไม่ตอบสนอง
- เปิดไฟ LED ระบุตำแหน่งดิสก์: เพื่อให้ง่ายต่อการค้นหาในเคสเซิร์ฟเวอร์
Get-PhysicalDisk | ? OperationalStatus -Notlike OK | Enable-PhysicalDiskIdentificationหมายเหตุ: ฟีเจอร์การระบุตำแหน่งดิสก์ด้วยไฟ LED เพิ่มเข้ามาใน Windows Server 2016 แต่ต้องมีการรองรับ SCSI Enclosure Storage (SES) จากฮาร์ดแวร์เซิร์ฟเวอร์ทางกายภาพ
- ไปที่ห้องเซิร์ฟเวอร์และค้นหาดิสก์ที่มีปัญหา จากไฟ LED ที่เปิดอยู่
- เปลี่ยนดิสก์ที่ล้มเหลวเป็นดิสก์ใหม่
- ปิดไฟ LED:
Get-PhysicalDisk | ? OperationalStatus -like OK | Disable-PhysicalDiskIdentification - ตรวจสอบว่า OS ตรวจจับดิสก์ใหม่แล้ว:
$Disk = Get-PhysicalDisk | ? CanPool –eq Trueหมายเหตุ: ในบางเซิร์ฟเวอร์ระดับต้นอาจต้องรีสตาร์ทเซิร์ฟเวอร์เพื่อให้ตรวจจับดิสก์ได้ถูกต้อง
- เพิ่มดิสก์ใหม่เข้าไปในพูล:
Get-StoragePool *S2D* | Add-PhysicalDisk –PhysicalDisks $Disk –Verbose
หลังจากเปลี่ยนดิสก์แล้ว
S2D จะเริ่มกระบวนการกระจายข้อมูล (resync) ระหว่างดิสก์ในคลัสเตอร์โดยอัตโนมัติ (ใน Windows Server 2012 Storage Spaces ต้องรันคำสั่ง Repair-VirtualDisk เอง) เวลาในการซิงโครไนซ์ขึ้นอยู่กับความจุของดิสก์และภาระงานของพูล (ในสภาพแวดล้อมทดสอบใช้เวลาประมาณ 30 นาที) หลังจากนั้นสามารถตรวจสอบสถานะพูลได้อีกครั้ง