โหมโรง:
ฉันเป็นรหัสลิงที่รับหน้าที่ดูแลระบบดูแล บริษัท ขนาดเล็กของฉันมากขึ้น รหัสของฉันคือผลิตภัณฑ์ของเราและเราให้แอพเดียวกันกับ SaaS มากขึ้นเรื่อย ๆ
ประมาณ 18 เดือนที่ผ่านมาฉันย้ายเซิร์ฟเวอร์ของเราจากผู้ให้บริการโฮสต์ศูนย์กลางระดับพรีเมี่ยมไปยังเครื่องมือดันชั้นวางเปล่าในศูนย์ข้อมูลระดับ IV (แท้จริงอยู่ฝั่งตรงข้ามถนน) สิ่งนี้ทำให้เราทำสิ่งต่าง ๆ ได้มากมายเช่นเครือข่ายการจัดเก็บและการตรวจสอบ
ในฐานะที่เป็นส่วนสำคัญในการเปลี่ยนที่เก็บข้อมูลแบบต่อพ่วงโดยตรงจาก บริษัท โฮสติ้งฉันได้สร้าง NAS แบบสองโหนดขนาด 9TB โดยใช้ SuperMicro chassises, การ์ด RAID 3ware, Ubuntu 10.04, ดิสก์ SATA สองโหล, DRBD และ เป็นเอกสารทั้งหมดด้วยความรักในสามบล็อกโพสต์: สร้างขึ้นและการทดสอบใหม่ 9TB SATA RAID10 NFSv4 NAS: Part I , Part IIและPart III
นอกจากนี้เรายังติดตั้งระบบตรวจสอบ Cacit เมื่อเร็ว ๆ นี้เราได้เพิ่มจุดข้อมูลมากขึ้นเช่นค่าสมาร์ท
ผมไม่ได้ทำทั้งหมดนี้ได้โดยไม่ต้องกลัว boffins ที่ ServerFault มันเป็นประสบการณ์ที่สนุกและให้ความรู้ เจ้านายของฉันมีความสุข(ที่เราบันทึกไว้โหลดถัง $$$)ลูกค้าของเรามีความสุข(เก็บค่าใช้จ่ายจะลดลง)ผมมีความสุข(สนุกสนุกสนุก)
จนกระทั่งเมื่อวาน
ดับและการกู้คืน:
บางครั้งหลังอาหารกลางวันเราเริ่มได้รับรายงานประสิทธิภาพการทำงานที่ซบเซาจากแอปพลิเคชันของเราซึ่งเป็น CMS สื่อสตรีมมิ่งตามความต้องการ ในเวลาเดียวกันระบบการตรวจสอบ Cacti ของเราก็ส่งอีเมลพายุหิมะ อีกหนึ่งการแจ้งเตือนการแจ้งเตือนคือกราฟของ iostat รออยู่
ประสิทธิภาพลดลงจน Pingdom เริ่มส่งการแจ้งเตือน "เซิร์ฟเวอร์ลง" โหลดโดยรวมอยู่ในระดับปานกลางไม่มีการจราจรติดขัด
หลังจากเข้าสู่เซิร์ฟเวอร์แอปพลิเคชันไคลเอนต์ NFS ของ NAS ฉันยืนยันว่าทุกสิ่งทุกอย่างกำลังประสบปัญหาเป็นระยะ ๆ และใช้เวลารอคอย IO นานมาก และเมื่อฉันกระโดดไปยังโหนด NAS หลักตัวเองความล่าช้าแบบเดียวกันก็ปรากฏชัดเมื่อพยายามนำทางระบบไฟล์ของอาเรย์ปัญหา
เวลาที่จะล้มเหลวนั่นก็เป็นไปด้วยดี ภายใน 20 นาทีทุกอย่างได้รับการยืนยันว่าสามารถสำรองและทำงานได้อย่างสมบูรณ์แบบ
ชันสูตรศพ:
หลังจากความล้มเหลวของระบบใด ๆ และทั้งหมดฉันดำเนินการชันสูตรศพเพื่อกำหนดสาเหตุของความล้มเหลว สิ่งแรกที่ฉันทำคือกลับไปที่กล่องและเริ่มตรวจสอบบันทึก มันเป็นแบบออฟไลน์โดยสมบูรณ์ เวลาสำหรับการเดินทางไปยังศูนย์ข้อมูล การรีเซ็ตฮาร์ดแวร์การสำรองและการใช้งาน
ใน/var/syslog
ฉันพบรายการที่ดูน่ากลัวนี้:
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_00], 6 Currently unreadable (pending) sectors
Nov 15 06:49:44 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_07], SMART Prefailure Attribute: 1 Raw_Read_Error_Rate changed from 171 to 170
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 16 Currently unreadable (pending) sectors
Nov 15 06:49:45 umbilo smartd[2827]: Device: /dev/twa0 [3ware_disk_10], 4 Offline uncorrectable sectors
Nov 15 06:49:45 umbilo smartd[2827]: Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
Nov 15 06:49:45 umbilo smartd[2827]: # 1 Short offline Completed: read failure 90% 6576 3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 2 Short offline Completed: read failure 90% 6087 3421766910
Nov 15 06:49:45 umbilo smartd[2827]: # 3 Short offline Completed: read failure 10% 5901 656821791
Nov 15 06:49:45 umbilo smartd[2827]: # 4 Short offline Completed: read failure 90% 5818 651637856
Nov 15 06:49:45 umbilo smartd[2827]:
ดังนั้นฉันไปตรวจสอบกราฟ Cacti สำหรับดิสก์ในอาร์เรย์ ที่นี่เราเห็นว่าใช่ดิสก์ 7 หลุดออกไปเหมือน syslog บอกว่ามันเป็น แต่เรายังเห็นว่าข้อผิดพลาดการอ่าน SMART ของดิสก์ 8 นั้นมีความผันผวน
ไม่มีข้อความเกี่ยวกับดิสก์ 8 ใน syslog สิ่งที่น่าสนใจยิ่งกว่าคือค่าความผันผวนของดิสก์ 8 นั้นสัมพันธ์โดยตรงกับเวลารอคอยของ IO สูง! การตีความของฉันคือ:
- ดิสก์ 8 กำลังประสบกับความผิดพลาดของฮาร์ดแวร์แปลก ๆ ซึ่งส่งผลให้มีการดำเนินการเป็นระยะเวลานาน
- ยังไงก็เถอะเงื่อนไขข้อผิดพลาดนี้บนดิสก์กำลังล็อคอาร์เรย์ทั้งหมด
อาจมีคำอธิบายที่ถูกต้องหรือถูกต้องมากขึ้น แต่ผลลัพธ์สุทธิเป็นเช่นนั้นว่าดิสก์หนึ่งแผ่นมีผลต่อประสิทธิภาพของอาเรย์ทั้งหมด
คำถาม)
- ดิสก์เดียวในอาร์เรย์ SATA RAID-10 ของฮาร์ดแวร์สามารถนำอาร์เรย์ทั้งหมดมาหยุดการร้องเสียงกรี๊ดได้อย่างไร
- ฉันไร้เดียงสาที่คิดว่าการ์ด RAID ควรจัดการกับเรื่องนี้หรือไม่?
- ฉันจะป้องกันไม่ให้ดิสก์ทำงานผิดปกติเพียงครั้งเดียวจากการกระทบอาเรย์ทั้งหมดได้อย่างไร
- ฉันพลาดอะไรไปรึเปล่า?