นี่เป็นหนึ่งในพื้นที่เหล่านั้นที่ SATA ไม่ดีพอ ปัญหาอยู่ที่ระดับอุปกรณ์เชื่อมต่อระหว่างกันและไม่เกี่ยวข้องกับซอฟต์แวร์ที่คุณใช้ การใช้เครื่องถ่ายเอกสารไฟล์อื่นหรือระบบปฏิบัติการอื่นจะไม่ทำให้สิ่งต่าง ๆ ดีขึ้นอย่างน่าอัศจรรย์ยกเว้นว่ามันอาจพยายามตั้งค่าการหมดเวลาที่แตกต่างกันเพื่อลดผลกระทบของปัญหา (ซึ่งอาจเป็นไปได้หรือไม่อาจเป็นไปได้ขึ้นอยู่กับฮาร์ดแวร์และเฟิร์มแวร์ )
มีจุดสำคัญไม่กี่ที่นี่:
- ด้วย SATA ถ้าไดรฟ์หยุดตอบสนองสิ่งนี้สามารถผูกระบบการจัดเก็บข้อมูลทั้งหมดไม่ใช่แค่ไดรฟ์ตัวเดียวที่มีปัญหา แน่นอนว่ามันมีศักยภาพที่จะเชื่อมโยงคอนโทรลเลอร์ทั้งหมดและเนื่องจากระบบผู้บริโภคส่วนใหญ่มีเพียงคอนโทรลเลอร์ดิสก์เดียว (อันที่รวมอยู่ในเมนบอร์ด) นั่นหมายถึงที่เก็บข้อมูลทั้งหมด มันยิ่งแย่ลงถ้าไดรฟ์ล้มเหลวในบางรูปแบบที่ไม่ได้มาตรฐานและ / หรือไม่คาดคิดซึ่งอาจเกิดขึ้นได้อย่างแน่นอนหากไดรฟ์นั้นมีขนาดเล็ก คุณอาจสนใจดิสก์ตัวเดียวในอาร์เรย์ SATA RAID-10 ของฮาร์ดแวร์จะนำมาซึ่งทั้งอาร์เรย์เพื่อหยุดการร้องเสียงกรี๊ดได้อย่างไร บน Server Fault
- ไดรฟ์ SATA สำหรับผู้บริโภคส่วนใหญ่มีระยะเวลาการหมดเวลาเริ่มต้นที่ยาวนาน (ตามลำดับนาที) และไดรฟ์ SATA สำหรับผู้บริโภคจำนวนมากขาดการควบคุมการกู้คืนข้อผิดพลาดที่สามารถกำหนดค่าได้ ไดรฟ์ที่เรียกว่า "NAS" มักจะมี ERC ที่สามารถกำหนดค่าได้และไดรฟ์ระดับไฮเอนด์จะทำเช่นนั้นเสมอ ไดรฟ์ดังกล่าวอาจมีการหมดเวลาเริ่มต้นที่สั้นลง (7 วินาทีเป็นค่าทั่วไป) ระยะเวลาการหมดเวลานานจะเป็นประโยชน์ถ้าไดรฟ์เก็บสำเนาของข้อมูลเท่านั้นซึ่งเป็นเรื่องปกติในระบบของผู้บริโภค พวกเขาเป็นข้อเสียในการกำหนดค่าซ้ำซ้อนหรือที่คุณเพียงต้องการที่จะได้รับมากที่สุดเท่าที่เป็นไปได้จากไดรฟ์ก่อนที่จะเสื่อมสภาพต่อไป
- ไดรฟ์จะพยายามอ่านเซกเตอร์ที่ไม่ดีจนกว่าจะถึงขีด จำกัด การหมดเวลาหรือจนกว่าจะมีการส่งสัญญาณยกเลิกโดยโฮสต์ เนื่องจากบัส SATA สามารถเชื่อมโยงได้ด้วยการรอให้การอ่านเสร็จสิ้นจึงอาจเป็นไปไม่ได้ที่ระบบปฏิบัติการจะส่งสัญญาณยกเลิกคำสั่งระดับหน่วยเก็บข้อมูลและในกรณีที่สุดขั้วไดรฟ์อาจไม่ตอบสนองดีต่อการรีเซ็ตบัส SATA ในสถานการณ์เช่นนี้
Point # 1 เป็นหนึ่งในจุดขายหลักสำหรับSASบนเซิร์ฟเวอร์ SAS มีข้อผิดพลาดการจัดการที่ดีกว่า SATA อย่างมีนัยสำคัญ จุดที่ # 2 เป็นข้อ จำกัด ของเฟิร์มแวร์ของไดรฟ์และ # 3 กลายเป็นปัญหาอย่างแท้จริงเพียงเพราะ # 2
ดังนั้นสิ่งที่เกิดขึ้นก็คือระบบปฏิบัติการจะออกคำสั่ง "อ่านเซกเตอร์" ไปยังดิสก์และเซกเตอร์เฉพาะนั้นเสียหายอย่างใด ดังนั้นดิสก์จะเข้าสู่โหมดลองใหม่เพื่อพยายามดึงข้อมูลออกจากจานลองอ่านอีกครั้งและอีกครั้งจนกว่าจะได้รับข้อมูลที่ดีพอที่การแก้ไขข้อผิดพลาดของดิสก์ ( FEC ) สามารถแก้ไขข้อผิดพลาดที่เหลืออยู่ได้ หากคุณโชคไม่ดีอาจเป็นไปไม่ได้ แต่ไดรฟ์จะพยายามต่อไปเป็นระยะเวลานานพอสมควรก่อนที่จะตัดสินใจว่าการอ่านนี้จะไม่ประสบความสำเร็จ
เนื่องจากระบบปฏิบัติการกำลังรอการอ่านสิ่งนี้จะทำให้กระบวนการคัดลอกช้าลงอย่างช้าที่สุดอย่างช้าที่สุดและขึ้นอยู่กับสถาปัตยกรรมระบบปฏิบัติการที่แน่นอนสามารถทำให้ระบบปฏิบัติการกระตุกหรือหยุดนิ่งได้ ขณะนี้ดิสก์กำลังยุ่งอยู่กับการอ่านดั้งเดิมและจะไม่ตอบสนองต่อคำสั่งการอ่านเพิ่มเติมจนกว่าคำสั่งที่กำลังดำเนินการจะสิ้นสุดลง (สำเร็จหรือไม่สำเร็จ) และโดยทั่วไปซอฟต์แวร์อื่น ๆ จะไม่ทำได้ดีกว่าระบบปฏิบัติการที่มันใช้ กำลังทำงาน
ดังนั้นสิ่งที่ก่อให้เกิดการอ่านที่อื่น ๆ ( นึกคิดเพียงบนไดรฟ์ที่เสียหาย) เป็นไปได้ที่จะรอในบรรทัดจนไดรฟ์เสียหายทั้งประสบความสำเร็จในภาคอ่านในคำถามหรือกำหนดว่ามันไม่สามารถอ่านได้ เนื่องจาก SATA มีการจัดการไดรฟ์ที่ไม่ตอบสนองน้อยที่สุดซึ่งหมายความว่าไม่เพียง แต่ไดรฟ์ที่คุณกำลังคัดลอกจะทำให้ I / O ของมันล่าช้า สิ่งนี้สามารถทำให้ซอฟต์แวร์อื่นช้าลงหรือไม่ตอบสนองได้ง่ายเช่นกันเนื่องจากซอฟต์แวร์นั้นรอคำขอ I / O อื่นให้เสร็จสิ้นแม้ว่าระบบปฏิบัติการจะสามารถรับมือได้
สิ่งสำคัญคือให้สังเกตที่นี่ว่าดิสก์ I / O สามารถเกิดขึ้นได้แม้ว่าคุณจะไม่ได้เข้าถึงไฟล์ใด ๆ บนดิสก์อย่างชัดเจน สาเหตุหลักสองประการนี้คือโค้ดที่สามารถเรียกใช้โหลดได้ตามต้องการและการสลับ เนื่องจากบางครั้งใช้ swap แม้ว่าระบบจะไม่ได้อยู่ภายใต้ความกดดันของหน่วยความจำและรหัสปฏิบัติการที่โหลดได้ตามต้องการนั้นเป็นเรื่องปกติในระบบที่ทันสมัยและด้วยรูปแบบไฟล์ที่ปฏิบัติการได้ที่ทันสมัยกิจกรรมการอ่านดิสก์ที่ไม่ได้ตั้งใจ
ดังที่ระบุไว้ในความคิดเห็นของคำถามโดยMatteo Italiaหนึ่งในกลยุทธ์บรรเทาผลกระทบคือการใช้การเชื่อมต่อที่เก็บข้อมูลที่แตกต่างกันซึ่งเป็นวิธีที่ซับซ้อนในการพูดว่า "วางดิสก์ไว้ในกล่อง USB" ด้วยการสรุปผ่านโปรโตคอลที่เก็บข้อมูล USBสิ่งนี้แยกส่วน SATA ที่มีปัญหาออกจากส่วนที่เหลือของระบบซึ่งหมายความว่าในทางทฤษฎีแล้วมีเพียง I / O บนดิสก์นั้นเท่านั้นที่ควรได้รับผลกระทบจากปัญหา I / O บนดิสก์นั้น
นี่เป็นเหตุผลว่าทำไม SATA (โดยเฉพาะอย่างยิ่ง SATA ที่ไม่มีระดับไดรฟ์ ERC) มักจะถูกกีดกันสำหรับ RAID (โดยเฉพาะอย่างยิ่งระดับ RAID ที่มีความซ้ำซ้อนซึ่งในบรรดามาตรฐานทั้งหมดยกเว้นRAID 0 ) รอบระยะเวลาการหมดเวลานานและการจัดการข้อผิดพลาดที่ไม่ดีสามารถทำให้อุปกรณ์ทั้งหมดถูกโยนออกจากอาร์เรย์สำหรับเซกเตอร์เสียเดียวซึ่งคอนโทรลเลอร์ RAID สามารถจัดการได้ดีถ้ามีความซ้ำซ้อนอยู่และตัวควบคุมที่เก็บข้อมูลรู้ว่านี่เป็นปัญหา SAS ถูกออกแบบมาสำหรับการจัดเก็บข้อมูลที่มีขนาดใหญ่และทำให้มีการคาดการณ์ว่าจะมีปัญหาในไดรฟ์ต่าง ๆ เป็นครั้งคราวซึ่งนำไปสู่การออกแบบมาเพื่อจัดการกับกรณีของไดรฟ์ที่มีปัญหาเดียวหรือ I / O คำขอได้อย่างสง่างามแม้ว่าไดรฟ์ไม่ได้ ดิสก์ที่มีปัญหานั้นไม่ค่อยพบในระบบผู้บริโภคเพียงเพราะดิสก์เหล่านั้นมักจะไม่มีดิสก์จำนวนมากที่ติดตั้งและดิสก์ที่ติดตั้งจะไม่มีความซ้ำซ้อน เนื่องจาก SATA มีวัตถุประสงค์เพื่อแทนที่ PATA / IDE ไม่ใช่ SCSI (ซึ่งภายหลังเป็นช่องโหว่ของ SAS มุ่ง) มันอาจเป็นไปได้ว่าข้อผิดพลาดในการจัดการคุณสมบัติและความต้องการ (หรือการรับประกัน) นั้นถือว่าเพียงพอสำหรับกรณีการใช้งานที่ตั้งใจไว้