โหมโรง:

ฉันเป็นรหัสลิงที่ทำหน้าที่ SysAdmin มากขึ้นสำหรับบริษัทขนาดเล็กของฉัน รหัสของฉันคือผลิตภัณฑ์ของเรา และเราให้บริการแอปเดียวกันกับ SaaS มากขึ้นเรื่อยๆ

ประมาณ 18 เดือนที่ผ่านมา ฉันย้ายเซิร์ฟเวอร์ของเราจากผู้ให้บริการโฮสติ้งระดับพรีเมียมที่เน้นไปที่ตัวผลักแร็คแบร์โบนในศูนย์ข้อมูลระดับ IV (แท้จริงแล้วอยู่ฝั่งตรงข้ามถนน) ความคิดนี้ทำมากขึ้นด้วยตัวเราเอง เช่น การสร้างเครือข่าย การจัดเก็บ และการเฝ้าติดตาม

ในส่วนของการย้ายครั้งใหญ่ เพื่อแทนที่การจัดเก็บข้อมูลที่เชื่อมต่อโดยตรงแบบเช่าของเราจากบริษัทโฮสติ้ง ฉันได้สร้าง NAS แบบสองโหนดขนาด 9TB โดยใช้แชสซี SuperMicro, การ์ด RAID 3 แวร์, Ubuntu 10.04, ดิสก์ SATA สองโหล, DRBD และ . มันเป็นเอกสารทั้งหมดด้วยความรักในสามบล็อกโพสต์: สร้างขึ้นและการทดสอบใหม่ 9TB SATA RAID10 NFSv4 NAS: Part I , Part IIและPart III

นอกจากนี้เรายังติดตั้งระบบตรวจสอบ Cacit เมื่อเร็วๆ นี้ เราได้เพิ่มจุดข้อมูลมากขึ้นเรื่อยๆ เช่น ค่า SMART

ผมไม่ได้ทำทั้งหมดนี้ได้โดยไม่ต้องกลัว boffins ที่ ServerFault มันเป็นประสบการณ์ที่สนุกและให้ความรู้ เจ้านายของฉันมีความสุข(เราประหยัด $$$ มากมายในถัง)ลูกค้าของเรามีความสุข(ค่าใช้จ่ายในการจัดเก็บลดลง)ฉันมีความสุข(สนุก สนุก สนุก) .

จนเมื่อวาน.

การหยุดทำงานและการกู้คืน:

หลังจากรับประทานอาหารกลางวันไประยะหนึ่ง เราเริ่มได้รับรายงานประสิทธิภาพที่ซบเซาจากแอปพลิเคชันของเรา ซึ่งเป็น CMS สื่อการสตรีมแบบออนดีมานด์ ในเวลาเดียวกัน ระบบตรวจสอบ Cacti ของเราส่งอีเมลพายุหิมะ การแจ้งเตือนอีกอย่างหนึ่งคือกราฟของ iostat ที่รออยู่

ใส่คำอธิบายภาพที่นี่

ประสิทธิภาพลดลงจน Pingdom เริ่มส่งการแจ้งเตือน "เซิร์ฟเวอร์ล่ม" ปริมาณบรรทุกโดยรวมอยู่ในระดับปานกลาง ไม่มีการจราจรติดขัด

หลังจากเข้าสู่ระบบเซิร์ฟเวอร์แอปพลิเคชัน ไคลเอนต์ NFS ของ NAS ฉันยืนยันว่าเกือบทุกอย่างกำลังประสบกับเวลารอ IO ที่ไม่สม่ำเสมอและยาวนานอย่างเหลือเชื่อ และเมื่อฉันกระโดดเข้าสู่โหนด NAS หลักเอง ความล่าช้าแบบเดียวกันก็ปรากฏชัดเมื่อพยายามนำทางไปยังระบบไฟล์ของอาร์เรย์ที่มีปัญหา

หมดเวลาแล้ว ผ่านไปด้วยดี ภายใน 20 นาทีทุกอย่างได้รับการยืนยันแล้วว่าสามารถสำรองและทำงานได้อย่างสมบูรณ์

ชันสูตรพลิกศพ:

หลังจากความล้มเหลวของระบบใดๆ และทั้งหมด ฉันจะทำการชันสูตรพลิกศพเพื่อระบุสาเหตุของความล้มเหลว สิ่งแรกที่ฉันทำคือ ssh กลับเข้าไปในกล่องและเริ่มตรวจสอบบันทึก มันออฟไลน์อย่างสมบูรณ์ ได้เวลาเดินทางไปยังศูนย์ข้อมูล รีเซ็ตฮาร์ดแวร์ สำรองข้อมูล และทำงาน

ใน/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 Read Erros ของดิสก์ 8 มีความผันผวน

ใส่คำอธิบายภาพที่นี่

ไม่มีข้อความเกี่ยวกับดิสก์ 8 ใน syslog ที่น่าสนใจกว่าคือค่าที่ผันผวนของดิสก์ 8 มีความสัมพันธ์โดยตรงกับเวลารอ IO ที่สูง! การตีความของฉันคือ:

  • ดิสก์ 8 กำลังประสบกับข้อผิดพลาดของฮาร์ดแวร์ที่แปลกประหลาดซึ่งส่งผลให้เวลาดำเนินการนานเป็นช่วง ๆ
  • อย่างใดเงื่อนไขความผิดปกตินี้บนดิสก์กำลังล็อคอาร์เรย์ทั้งหมด

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

คำถาม)

  • ดิสก์เดียวในฮาร์ดแวร์อาร์เรย์ SATA RAID-10 จะทำให้อาร์เรย์ทั้งหมดหยุดชะงักได้อย่างไร
  • ฉันไร้เดียงสาที่จะคิดว่าการ์ด RAID ควรจัดการกับสิ่งนี้หรือไม่?
  • ฉันจะป้องกันดิสก์ที่ทำงานผิดปกติตัวเดียวไม่ให้ส่งผลกระทบต่ออาร์เรย์ทั้งหมดได้อย่างไร
  • ฉันพลาดอะไรไปรึเปล่า?
answer

ฉันเกลียดที่จะบอกว่า "อย่าใช้ SATA" ในสภาพแวดล้อมการผลิตที่สำคัญ แต่ฉันได้เห็นสถานการณ์นี้ค่อนข้างบ่อย โดยทั่วไปแล้ว ไดรฟ์ SATA ไม่ได้มีไว้สำหรับรอบการทำงานที่คุณอธิบาย แม้ว่าคุณจะใช้ไดรฟ์ข้อมูลจำเพาะที่ได้รับการจัดอันดับเป็นพิเศษสำหรับการทำงาน 24x7ในการตั้งค่าของคุณก็ตาม ประสบการณ์ของฉันคือไดรฟ์ SATA อาจล้มเหลวในลักษณะที่คาดเดาไม่ได้ บ่อยครั้งส่งผลกระทบต่ออาร์เรย์จัดเก็บข้อมูลทั้งหมด แม้กระทั่งเมื่อใช้ RAID 1+0 อย่างที่คุณทำ บางครั้งไดรฟ์ล้มเหลวในลักษณะที่สามารถขัดขวางทั้งรถบัส สิ่งหนึ่งที่ควรทราบคือคุณกำลังใช้ตัวขยาย SAS ในการตั้งค่าของคุณหรือไม่ ที่สามารถสร้างความแตกต่างในการที่ดิสก์ที่เหลือได้รับผลกระทบจากความล้มเหลวของไดรฟ์

แต่ควรใช้ไดรฟ์ SAS แบบ midline/nearline (7200 RPM)กับ SATA จะดีกว่า มีราคาสูงกว่า SATA เล็กน้อย แต่ไดรฟ์จะทำงาน/ล้มเหลวได้ดีกว่าที่คาดไว้ การแก้ไขข้อผิดพลาดและการรายงานในอินเทอร์เฟซ/โปรโตคอล SAS นั้นแข็งแกร่งกว่าชุด SATA ดังนั้นแม้ในไดรฟ์ที่มีกลไกเหมือนกัน ความแตกต่างของโปรโตคอล SAS อาจป้องกันความเจ็บปวดที่คุณพบระหว่างความล้มเหลวของไดรฟ์ได้

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

คุณไร้เดียงสาที่จะคิดว่ามันไม่ควรเกิดขึ้น? ไม่ ฉันไม่คิดอย่างนั้น การ์ดฮาร์ดแวร์ RAID แบบนั้นน่าจะจัดการกับปัญหาส่วนใหญ่ได้

จะป้องกันได้อย่างไร? คุณไม่สามารถคาดหวังกรณีขอบแปลก ๆ เช่นนี้ นี่เป็นส่วนหนึ่งของการเป็นผู้ดูแลระบบ...แต่คุณสามารถดำเนินการตามขั้นตอนการกู้คืนเพื่อป้องกันไม่ให้ส่งผลกระทบต่อธุรกิจของคุณ วิธีเดียวที่จะลองแก้ไขปัญหานี้ในตอนนี้คือลองใช้การ์ดฮาร์ดแวร์อื่น (อาจไม่ใช่สิ่งที่คุณต้องการทำ) หรือเปลี่ยนไดรฟ์ของคุณเป็นไดรฟ์ SAS แทน SATA เพื่อดูว่า SAS นั้นแข็งแกร่งกว่าหรือไม่ คุณยังสามารถติดต่อผู้จำหน่ายการ์ด RAID ของคุณและบอกพวกเขาว่าเกิดอะไรขึ้นและดูว่าพวกเขาพูดอะไร พวกเขาเป็น บริษัท ที่ควรจะเชี่ยวชาญในการรู้รายละเอียดเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ไดรฟ์ที่ว่องไว พวกเขาอาจมีคำแนะนำทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีการทำงานของไดรฟ์และความน่าเชื่อถือ...หากคุณสามารถพูดคุยกับคนที่เหมาะสมได้

คุณพลาดอะไรไปหรือเปล่า? หากคุณต้องการตรวจสอบว่าไดรฟ์มีกรณี edge-case ล้มเหลว ให้ดึงจากอาร์เรย์ อาร์เรย์จะถูกลดระดับลง แต่คุณไม่ควรมีการชะลอตัวและข้อผิดพลาดแปลก ๆ เพิ่มเติม (นอกเหนือจากสถานะอาร์เรย์ที่เสื่อมโทรม) คุณกำลังบอกว่าตอนนี้ดูเหมือนว่าจะทำงานได้ดี แต่ถ้ามีข้อผิดพลาดในการอ่านดิสก์ คุณควรเปลี่ยนไดรฟ์ในขณะที่ทำได้ ไดรฟ์ที่มีความจุสูงบางครั้งอาจมีข้อผิดพลาด URE (สาเหตุที่ดีที่สุดที่จะไม่เรียกใช้ RAID 5, หมายเหตุด้านข้าง) ที่ไม่ปรากฏขึ้นจนกว่าไดรฟ์อื่นจะล้มเหลว และหากคุณพบลักษณะการทำงานแบบ edge-case จากไดรฟ์นั้น คุณก็ไม่ต้องการให้ข้อมูลที่เสียหายถูกย้ายไปยังไดรฟ์อื่นในอาร์เรย์

ฉันไม่ใช่ผู้เชี่ยวชาญ แต่ฉันจะถ่ายภาพในความมืดโดยอาศัยประสบการณ์ของฉันกับตัวควบคุม RAID และอาร์เรย์จัดเก็บข้อมูล

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

หากดิสก์ล้มเหลวอย่างเห็นได้ชัด ซอฟต์แวร์ตัวควบคุม RAID ใด ๆ ควรตรวจพบการขาดการตอบสนองจากดิสก์ได้ดี นำดิสก์ออกจากพูลและเปิดการแจ้งเตือนใดๆ อย่างไรก็ตาม ฉันเดาว่าเกิดอะไรขึ้นที่นี่คือดิสก์กำลังประสบกับความล้มเหลวที่ผิดปกติซึ่งด้วยเหตุผลบางประการไม่ได้ทำให้เกิดความล้มเหลวในด้านตัวควบคุม ดังนั้นเมื่อคอนโทรลเลอร์ดำเนินการเขียนฟลัชหรืออ่านจากดิสก์ที่ได้รับผลกระทบ จะใช้เวลานานในการกลับมา และในทางกลับกัน IO จะทำงานทั้งหมดและอาร์เรย์จึงหยุดทำงาน ไม่ว่าจะด้วยเหตุผลใดก็ตาม สิ่งนี้ไม่เพียงพอสำหรับตัวควบคุม RAID ที่จะ "อ่า ดิสก์ที่ล้มเหลว" อาจเป็นเพราะข้อมูลกลับมาในที่สุด

คำแนะนำของฉันคือเปลี่ยนดิสก์ที่ล้มเหลวทันที หลังจากนั้น ฉันจะดูการกำหนดค่าสำหรับการ์ด RAID ของคุณ (เป็น 3ware ฉันคิดว่ามันค่อนข้างดี) และค้นหาสิ่งที่ถือว่าดิสก์ที่ล้มเหลวคืออะไร

PS ความคิดที่ดีในการนำเข้า SMART เข้าสู่ cacti

แค่คาดเดา: ฮาร์ดดิสก์ได้รับการกำหนดค่าให้ลองอ่านข้อผิดพลาดอีกครั้ง แทนที่จะรายงานข้อผิดพลาด แม้ว่าสิ่งนี้จะเป็นพฤติกรรมที่พึงประสงค์ในการตั้งค่าเดสก์ท็อป แต่ก็เป็นผลเสียใน RAID (ซึ่งคอนโทรลเลอร์ควรเขียนเซกเตอร์ใดๆ ใหม่ที่ไม่สามารถอ่านจากดิสก์อื่นได้ ดังนั้นไดรฟ์จึงสามารถทำการแมปใหม่ได้)

ช็อตของฉันในความมืด:

  • ไดรฟ์ 7 ล้มเหลว มีหน้าต่างความล้มเหลวบางอย่างที่ไม่พร้อมใช้งาน

  • ไดรฟ์ 8 มีข้อผิดพลาด 'เบากว่า' เช่นกัน แก้ไขโดยการลองใหม่อีกครั้ง

  • RAID10 มักจะเป็น "RAID0 ของ RAID1 หลายคู่" ไดรฟ์ 7 และ 8 สมาชิกของคู่เดียวกันหรือไม่

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

ฉันเดาว่าระหว่างความล้มเหลวของไดรฟ์ 7 ตัวควบคุมได้เปลี่ยนเส้นทางการอ่านทั้งหมดไปยังไดรฟ์ 8 ดังนั้นการลองใหม่ข้อผิดพลาดใด ๆ ทำให้เกิดความล่าช้าอย่างมากซึ่งทำให้เกิดงานหิมะถล่ม ทำให้ประสิทธิภาพการทำงานลดลงชั่วขณะหนึ่ง

คุณโชคดีที่ไดรฟ์ 8 ดูเหมือนจะยังไม่ตาย ดังนั้นคุณควรจะแก้ไขได้โดยไม่สูญเสียข้อมูล

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

คุณต้องการคุณสมบัติของอุปกรณ์จัดเก็บข้อมูลระดับองค์กร โดยเฉพาะอย่างยิ่ง ไดรฟ์ระดับองค์กร WD RE 4 มีคุณสมบัติสองประการที่จำเป็นในการป้องกันลักษณะการทำงานนี้ในอาร์เรย์ RAID เทคโนโลยีแรกในรายการด้านล่างป้องกันการสั่นสะเทือนฮาร์มอนิกแบบหมุนจากการทำให้เกิดการสึกหรอโดยไม่จำเป็นบนส่วนประกอบทางกลไกของฮาร์ดไดรฟ์ เทคโนโลยีที่สองคือสิ่งที่ทำให้เกิดปัญหาของคุณ โปรโตคอล SATA ไม่มีคุณสมบัตินี้ ในการรับคุณสมบัติเหล่านี้ คุณต้องใช้ SAS และหากคุณยืนยันบนไดรฟ์ SATA คุณสามารถซื้อการ์ด SAS เป็น SATA Interposer เช่น LSISS9252

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

การกู้คืนข้อผิดพลาดแบบจำกัดเวลาเฉพาะ RAID (TLER) ช่วยป้องกันไดรฟ์เสียที่เกิดจากกระบวนการกู้คืนข้อผิดพลาดของฮาร์ดไดรฟ์แบบขยายซึ่งพบได้ทั่วไปในไดรฟ์เดสก์ท็อป

http://en.wikipedia.org/wiki/Error_recovery_control#Overview

โปรดดูลิงค์ด้านล่าง:

http://en.wikipedia.org/wiki/Error_recovery_control#Raid_Controllers

โปรดดูที่: เอกสาร Western Digital TLER ที่อธิบายขั้นตอนการกู้คืนข้อผิดพลาดอย่างละเอียด Error Recovery Fallout Prevention ใน WD Caviar RAID Edition Serial ATA Hard Drives:

http://www.3dfxzone.it/public/files/2579-001098.pdf

การ์ด SATA Interposer เป็นอีกทางเลือกหนึ่ง

ฉันเพิ่งประสบชะตากรรมเดียวกันและพบกระทู้นี้ อายุโดยรวมคือโปรโตคอล SAS นั้นเหมาะสมกว่าสำหรับ RAID มากกว่า SATA เนื่องจาก SATA ขาดคุณสมบัติ นี่คือเหตุผลที่ไดรฟ์ทางกายภาพเดียวกันติดตั้งตัวควบคุม SAS แล้วขายเป็น Nearline SAS

ค้นหาเพิ่มเติมฉันพบว่า:

http://www.lsi.com/products/storagecomponents/Pages/LSISS9252.aspx

ฉันกำลังตรวจสอบการอัปเกรดที่เก็บข้อมูลของฉันด้วยชุดของสิ่งเหล่านี้ ตอนนี้ ราคาความแตกต่างระหว่าง 3 TB SATA กับ SAS อยู่ที่ 400% (ราคาวานิลลา ยี่ห้อเดียวกัน สเปค และร้านค้าในเยอรมนี) เห็นได้ชัดว่าฉันไม่สามารถบอกได้ว่ากลยุทธ์นี้ใช้ได้ผลดีหรือไม่ แต่ก็คุ้มค่าที่จะลอง

ความคิดเห็นยินดีต้อนรับมาก :-)

ฉันเคยเห็นดิสก์ SATA ที่มีอุปกรณ์อิเล็กทรอนิกส์เสียล็อคเฟิร์มแวร์เริ่มต้นของ Areca 12 อย่างแน่นหนา ไม่มีทางที่จะเข้าถึง BIOS ได้ นับประสาบูตเครื่องจากสื่อใด ๆ จนกว่าจะพบฮาร์ดไดรฟ์ที่มีปัญหาโดยการดึงดิสก์ออกเป็นไบนารี ค้นหาแฟชั่น