วิธีวิเคราะห์ความสมบูรณ์ของฮาร์ดไดรฟ์หรือ SSD บนเซิร์ฟเวอร์ Linux และ NAS

เมื่อเรามีเซิฟเวอร์กับ ลินุกซ์ หรือเซิร์ฟเวอร์ NAS (ซึ่งมีระบบปฏิบัติการบนลีนุกซ์ด้วย) ที่มีข้อมูลอยู่ภายในมากมาย ทั้งระบบปฏิบัติการเองและไฟล์ส่วนตัวหรืองานและโฟลเดอร์ จำเป็นต้องควบคุมว่าฮาร์ดไดรฟ์และ SSD ไดรฟ์มีสุขภาพที่ดีและจะไม่พังในเร็วๆ นี้โดยไม่มีการเตือนล่วงหน้า ด้วยเหตุผลนี้ จึงเป็นเรื่องสำคัญมากที่จะต้องตรวจสอบฮาร์ดไดรฟ์หรือ SSD ของเซิร์ฟเวอร์ของเราอย่างต่อเนื่อง เพื่อหลีกเลี่ยงการสูญเสียข้อมูลอันเนื่องมาจากการแตกหัก วันนี้ในบทความนี้เราจะแสดงให้คุณเห็นทุกสิ่งที่คุณควรตรวจสอบบนเซิร์ฟเวอร์ Linux ของคุณเพื่อตรวจสอบความสมบูรณ์ของดิสก์ของคุณ

วิเคราะห์ความสมบูรณ์ของฮาร์ดไดรฟ์หรือ SSD บนเซิร์ฟเวอร์ Linux และ NAS

SMART ของแผ่นดิสก์คืออะไร

ฮาร์ดไดรฟ์และไดรฟ์ SSD ทั้งหมดมีเทคโนโลยีที่เรียกว่า SMART หรือที่เรียกว่า SMART ซึ่งย่อมาจาก “Self Monitoring Analysis and Reporting Technology” เทคโนโลยีนี้รวมอยู่ในเฟิร์มแวร์ของฮาร์ดไดรฟ์และ SSD ประกอบด้วยการตรวจจับความล้มเหลวที่อาจเกิดขึ้นในฮาร์ดไดรฟ์ โดยมีจุดประสงค์เพื่อคาดการณ์ข้อผิดพลาดทางกายภาพในฮาร์ดไดรฟ์หรือความล้มเหลวที่ไม่คาดคิดในไดรฟ์ SSD เนื่องจากการเขียนไปยังหน่วยความจำแฟลชภายใน . เป้าหมายของ SMART คือการแจ้งเตือนผู้ใช้เพื่อให้สามารถสำรองและเปลี่ยนไดรฟ์ได้โดยไม่สูญเสียข้อมูล หากเราละเลย SMART ก็จะมีบางครั้งที่ฮาร์ดไดรฟ์จะพังและเราจะสูญเสียข้อมูล ดังนั้นจึงจำเป็นต้องใส่ใจกับข้อมูล SMART ของดิสก์อยู่เสมอ

ในการใช้ SMART จำเป็นอย่างยิ่งที่ BIOS หรือ UEFI ของเซิร์ฟเวอร์ต้องเข้ากันได้กับเทคโนโลยีนี้และเปิดใช้งานได้ นอกจากนี้ ดิสก์ยังต้องมีการรวมไว้ด้วย ทุกวันนี้เซิร์ฟเวอร์ ระบบปฏิบัติการ และดิสก์ทั้งหมดใช้เทคโนโลยีนี้ในการตรวจจับปัญหาในฮาร์ดดิสก์ เรียกได้ว่าเป็น "สากล" และมักใช้อยู่เสมอ

เทคโนโลยีนี้มีหน้าที่ตรวจสอบพารามิเตอร์ต่างๆ ของฮาร์ดดิสก์ เช่น ความเร็วของจานดิสก์ เซกเตอร์เสีย ข้อผิดพลาดในการสอบเทียบ การตรวจสอบซ้ำแบบเป็นวงกลม (ข้อผิดพลาด CRC ทั่วไป) อุณหภูมิดิสก์ ความเร็วในการอ่านข้อมูล เวลาเริ่มต้น (สปิน- ขึ้น), ตัวนับเซกเตอร์ที่จัดสรรใหม่, ความเร็วในการค้นหา (เวลาค้นหา) และพารามิเตอร์ขั้นสูงอื่น ๆ ที่ช่วยให้คุณรู้ว่าสิ่งที่สำคัญ: หากฮาร์ดไดรฟ์กำลังจะล้มเหลวในไม่ช้า

ภายใน SMART มีช่วงของค่าต่างๆ ที่เรามองว่า "ปกติ" ได้ และเมื่อค่า Parameter หายไปจากค่าเหล่านี้ นั่นคือเมื่อ Alarm ดับลง BIOS/UEFI จะตรวจจับและแจ้งระบบปฏิบัติการว่าเกิดข้อผิดพลาด ในระบบ แผ่นดิสก์และนั่นอาจเป็นเรื่องร้ายแรง ในระบบปฏิบัติการ Linux เรามีความเป็นไปได้ที่จะทำการทดสอบ SMART เพื่อตรวจสอบว่าดิสก์ทำงานอย่างถูกต้องหรือไม่ นอกจากนี้ เรามีความเป็นไปได้ในการเขียนโปรแกรมการทดสอบเหล่านี้เพื่อลดผลกระทบต่อประสิทธิภาพการทำงาน

วิธีดูความสมบูรณ์ของดิสก์

ในการแจกแจงบน Linux ส่วนใหญ่ เรามีแพ็คเกจที่เรียกว่า smartmontools บางครั้งแพ็คเกจนี้ได้รับการติดตั้งไว้ล่วงหน้าในการแจกจ่ายของเรา และในบางครั้งเราต้องติดตั้งด้วยตัวเอง แพ็คเกจนี้มีสองโปรแกรมที่แตกต่างกัน:

  • สมาร์ทคอนโทรล : เป็นโปรแกรมบรรทัดคำสั่งที่ช่วยให้เราสามารถตรวจสอบฮาร์ดไดรฟ์และ SSD ได้ตามต้องการ หรือเราสามารถตั้งโปรแกรมการทำงานของมันผ่าน cron ทั่วไปในระบบปฏิบัติการ
  • สมาร์ทด : เป็น daemon หรือกระบวนการที่ตรวจสอบว่าฮาร์ดไดรฟ์หรือ SSD ในช่วงเวลาที่กำหนดไม่มีข้อผิดพลาดใดๆ มันสามารถลงทะเบียนคำเตือนหรือข้อผิดพลาดของดิสก์ประเภทใดก็ได้ไปยัง syslog หลักของเซิร์ฟเวอร์ นอกจากนี้ยังอนุญาตให้ส่งคำเตือนและข้อผิดพลาดเดียวกันนี้ทางอีเมลไปยังผู้ดูแลระบบเพื่อให้เขาสามารถตรวจสอบได้ว่าทุกอย่างถูกต้อง

แพ็คเกจ smartmontools มีหน้าที่ตรวจสอบฮาร์ดไดรฟ์และไดรฟ์ SSD ไม่ว่าจะใช้อินเทอร์เฟซ SATA, SCSI, SAS หรือ NVME ก็ตาม รองรับอินเทอร์เฟซข้อมูลทุกประเภท แน่นอน โปรแกรมนี้ฟรีทั้งหมด

การติดตั้ง

การติดตั้งโปรแกรมนี้ หากไม่ได้ติดตั้งไว้โดยค่าเริ่มต้นบนลีนุกซ์ลีนุกซ์ของคุณ จะเป็นการใช้ตัวจัดการแพ็คเกจของการแจกจ่ายของคุณ ตัวอย่างเช่น บนระบบปฏิบัติการ Debian ที่มี apt จะเป็นดังนี้:

sudo apt install smartmontools

คุณจะต้องใช้คำสั่งใดคำสั่งหนึ่งหรืออย่างอื่น ทั้งนี้ขึ้นอยู่กับตัวจัดการแพ็คเกจของการแจกจ่ายของคุณ สิ่งสำคัญคือแพ็คเกจนี้พร้อมใช้งานสำหรับการกระจายบน Unix และ Linux ดังนั้นคุณจึงสามารถติดตั้งบน FreeBSD ได้โดยไม่มีปัญหา

การใช้ smartctl

เพื่อที่จะใช้โปรแกรมนี้และตรวจสุขภาพฮาร์ดไดรฟ์ของเรา สิ่งแรกที่เราต้องทำคือรู้ว่าเรามีฮาร์ดไดรฟ์กี่ตัว และเส้นทางในการตรวจสอบฮาร์ดไดรฟ์หรือ SSD เหล่านั้นคืออะไร เพื่อให้ทราบว่าดิสก์อยู่ที่ไหน เราต้องรันคำสั่งต่อไปนี้:

df -h

เรายังสามารถใช้ fdisk เพื่อรับรายการดิสก์ที่เรามีบนเซิร์ฟเวอร์ของเรา:

sudo fdisk -l

คำสั่งเหล่านี้จะแสดงรายการของหน่วยและพาร์ติชั่นให้เราทราบ เราต้องใช้โปรแกรมนี้ที่ระดับฮาร์ดดิสก์หรือ SSD ไม่ใช่ที่ระดับพาร์ติชั่น โดยทั่วไปในระบบ Linux เราจะพบดิสก์ในเส้นทาง /dev/sdX

เมื่อเรารู้ว่าเราจะวิเคราะห์ไดรฟ์ใดเพื่อตรวจสุขภาพผ่าน SMART เราต้องรู้ว่ามีการทดสอบที่แตกต่างกันสองแบบที่เราสามารถทำได้:

  • แบบทดสอบสั้นๆ – การทดสอบนี้มักใช้เพื่อตรวจหาปัญหาดิสก์ เมื่อทำการทดสอบนี้ จะแสดงข้อผิดพลาดและคำเตือนที่สำคัญที่สุดแก่เรา โดยไม่จำเป็นต้องวิเคราะห์ดิสก์ทั้งหมดโดยละเอียด เราสามารถกำหนดเวลาการทดสอบสั้นๆ ผ่าน cron ให้เป็นรายสัปดาห์ ด้วยวิธีนี้ จะทำการวิเคราะห์นี้สัปดาห์ละครั้ง และแจ้งให้เราทราบหากตรวจพบข้อผิดพลาดใดๆ ขอแนะนำให้ทำแบบทดสอบนี้ในช่วงเวลาที่มีการใช้งานเพียงเล็กน้อยหรือไม่มีเลย ไม่แนะนำให้ทำในช่วงเวลาทำงาน ดีกว่าในช่วงเช้าตรู่
  • การทดสอบแบบยาว – การทดสอบนี้อาจใช้เวลานาน ขึ้นอยู่กับไดรฟ์และความจุ การทดสอบแบบครอบคลุมนี้จะแสดงคำเตือนหรือข้อผิดพลาดทั้งหมดที่พบในดิสก์ทั้งหมด เราสามารถกำหนดเวลาการทดสอบแบบยาวด้วย cron ให้ทำเป็นรายเดือน นั่นคือ เราจะทำการทดสอบนี้ทุกๆ เดือนเพื่อตรวจสอบความสมบูรณ์ของดิสก์ ขอแนะนำให้ทำการทดสอบนี้ในเวลาที่มีการใช้งานดิสก์เพียงเล็กน้อย เช่น ในช่วงเช้า เนื่องจากไม่เช่นนั้น ประสิทธิภาพในการอ่านและเขียน ตลอดจนเวลาแฝงในการเข้าถึงข้อมูลจะเพิ่มขึ้นอย่างมาก

เมื่อเราทราบการทดสอบสองประเภทที่เราสามารถใช้ได้ สิ่งแรกที่เราต้องรู้คือว่าฮาร์ดไดรฟ์หรือ SSD นั้นเปิดใช้งาน SMART หรือไม่:

sudo smartctl -i /dev/sda

ในกรณีที่ดิสก์รองรับ SMART แต่ไม่ได้เปิดใช้งาน เราสามารถเปิดใช้งานได้โดยใช้คำสั่งต่อไปนี้:

sudo smartctl -s on /dev/sda

หากต้องการดูแอตทริบิวต์ SMART ทั้งหมดของผู้ผลิตดิสก์ที่เป็นปัญหา เราสามารถดำเนินการคำสั่งต่อไปนี้:

sudo smartctl -a /dev/sda

เพื่อทำการทดสอบสั้นๆ เราดำเนินการดังต่อไปนี้:

sudo smartctl -t short /dev/sda

เพื่อทำการทดสอบระยะยาว เราดำเนินการดังต่อไปนี้:

sudo smartctl -t long /dev/sda

เมื่อเราดำเนินการทดสอบระยะสั้นหรือระยะยาวแล้ว เราสามารถดำเนินการคำสั่งต่อไปนี้เพื่อดูผลลัพธ์ทั้งหมด:

sudo smartctl -H /dev/sda

เราแนะนำให้อ่าน man page ของ smartctl ซึ่งคุณจะพบคำสั่งทั้งหมดที่เราจะดำเนินการเพื่อใช้ความเป็นไปได้ของ SMART อย่างไรก็ตาม คำสั่งหลักคือคำสั่งที่เราอธิบายให้คุณทราบ

ฉันควรดูค่าอะไร

เมื่อเราทำการทดสอบ SMART คุณลักษณะจำนวนมากของฮาร์ดไดรฟ์หรือ SSD ของเราจะปรากฏขึ้น ค่านิยมเหล่านี้บางส่วนมีความสำคัญอย่างยิ่งที่เราจะต้องใส่ใจ เนื่องจากค่าเหล่านี้อาจให้ "เบาะแส" แก่เราว่าดิสก์กำลังจะล้มเหลวในไม่ช้านี้:

  • Reallocated_Sector_Ct: คือจำนวนเซกเตอร์ที่จัดสรรใหม่ไปยังพื้นที่อื่นของดิสก์เนื่องจากมีข้อผิดพลาดในการอ่าน ข้อผิดพลาดนี้เป็นเรื่องปกติมากเมื่อดิสก์เก่ามากและใกล้หมดอายุการใช้งาน
  • Spin_Retry_Count: คือจำนวนครั้งที่จำเป็นในการบู๊ตดิสก์ ซึ่งบ่งชี้ว่ามีปัญหาฮาร์ดแวร์ร้ายแรงในดิสก์ และครั้งต่อไปอาจไม่สามารถบู๊ตได้
  • Reallocated_Event_Count – จำนวนการจัดสรรใหม่ที่ได้รับการดำเนินการ สำเร็จหรือไม่สำเร็จ ยิ่งตัวเลขสูง สุขภาพของฮาร์ดไดรฟ์ก็จะยิ่งแย่ลง
  • Current_Pending_Sector: จำนวนเซกเตอร์ที่รอการจัดสรรใหม่เร็วๆ นี้
  • Offline_Uncorrectable: จำนวนข้อผิดพลาดที่ไม่สามารถแก้ไขได้เมื่อเข้าถึง ทั้งการอ่านหรือการเขียน ไปยังส่วนต่างๆ ของดิสก์
  • Multi_Zone_Error_Rate: จำนวนข้อผิดพลาดทั้งหมดระหว่างการเขียนเซกเตอร์

ในภาพต่อไปนี้ คุณสามารถดูสถานะของฮาร์ดไดรฟ์ WD Red 4TB จาก NAS ของเราที่มีระบบปฏิบัติการ XigmaNAS:

ในภาพหน้าจอที่แล้ว คุณสามารถดูข้อมูลได้มากมาย แต่เราต้องรู้ว่านี่เป็นความล้มเหลวแบบแยกส่วนหรือดิสก์ของเราอาจล้มเหลวในไม่ช้า

สถานะของดิสก์ใน QNAP NAS

หากคุณมีเซิร์ฟเวอร์ QNAP, Synology หรือ ASUSTOR NAS คุณจะสามารถดูสถานะ SMART ของฮาร์ดไดรฟ์และ SSD ของคุณผ่านระบบปฏิบัติการที่มีการเข้าถึงเว็บได้ ไม่จำเป็นต้องป้อนผ่าน SSH หรือ Telnet และดำเนินการคำสั่งใดๆ . ในตัวอย่างด้านล่าง เราได้ใช้เซิร์ฟเวอร์ QNAP NAS แต่กระบวนการกับผู้ผลิตรายอื่นจะคล้ายกันมาก

สิ่งแรกที่เราต้องทำคือไปที่ “ การจัดเก็บและภาพรวม ” เมื่อที่นี่ คลิกที่ “ ที่เก็บข้อมูล / ดิสก์ ” และเราจะเห็นสิ่งนี้:

ถ้าเราคลิกที่ “ สภาพแผ่นดิสก์ ” เราจะต้องเลือกว่าอยากดูแผ่นไหน เราสามารถเลือกได้ทั้งฮาร์ดไดรฟ์ HDD และไดรฟ์ SSD ไม่ว่าจะเป็นประเภทใด เพราะมีข้อมูล SMART ภายในด้วยเพื่อดูว่ามีข้อผิดพลาดของดิสก์หรือไม่

ในเมนู "สรุป" เราสามารถเห็นสถานะทั่วไปของดิสก์ หากมีข้อผิดพลาดประเภทใดหรือคำเตือนที่ร้ายแรง เราสามารถเห็นสถานะทั่วไปของดิสก์ได้ง่ายและรวดเร็วโดยไม่จำเป็นต้องวิเคราะห์ SMART โดยละเอียด ค่า แน่นอน เรายังสามารถดูประวัติการเข้าถึงดิสก์และหากมีปัญหาใดๆ

แม้ว่า QNAP จะให้ข้อมูลที่เข้าใจง่ายแก่เรา แต่ในกรณีที่เราต้องการดูค่าดิบทั้งหมด เราก็สามารถทำได้โดยไม่มีปัญหา นอกจากนี้ เราจะมีคอลัมน์เพิ่มเติมที่บอกเราว่า "สถานะ" และว่าดีหรือไม่ดี

เราจะสามารถทำการทดสอบอย่างรวดเร็วหรือสมบูรณ์ได้ผ่านที่นี่ เราเพียงแค่เลือกวิธีการทดสอบแล้วคลิกปุ่ม “ทดสอบ”

สุดท้าย เรายังสามารถตั้งโปรแกรมการทดสอบเหล่านี้ด้วยวิธีที่ง่ายมาก เราเพียงแค่เลือกเปิดใช้งานการทดสอบอย่างรวดเร็วหรือเสร็จสิ้น และเลือกความถี่: รายวัน รายสัปดาห์ หรือรายเดือน นอกจากนี้ เราสามารถกำหนดเวลาเริ่มต้นของการทดสอบนี้ได้

อย่างที่คุณเห็น การตรวจสอบและยืนยันสถานะความสมบูรณ์ของฮาร์ดไดรฟ์และ SSD ในเซิร์ฟเวอร์เป็นสิ่งสำคัญอย่างยิ่งในการหลีกเลี่ยงข้อมูลสูญหาย เมื่อเกิดข้อผิดพลาดใด ๆ สิ่งสำคัญอย่างยิ่งคือต้องซื้อไดรฟ์ใหม่และสำรองข้อมูลเพื่อหลีกเลี่ยงการสูญหายของข้อมูล นอกจากนี้ เราควรตรวจสอบสถานะของ RAID ด้วย เนื่องจากเราอาจทำให้พูลหน่วยเก็บข้อมูลทั้งหมดสูญหาย โดยเฉพาะอย่างยิ่งหากเรากำหนดค่า ZFS RAID 0 หรือ Stripe