06. ความสำเร็จที่เงียบงัน — ความล้มเหลวที่รายงานว่าทุกอย่างเรียบร้อยดี
ภาพลวงตาของความแน่นอนในการปฏิบัติงาน
ความล้มเหลวที่อันตรายที่สุดไม่ใช่เครื่องหยุดทำงาน แต่คือข้อมูลเสียหายที่ถูกส่งกลับมาเงียบๆ ในคราบของความสำเร็จที่ถูกต้อง สแต็กจัดเก็บข้อมูลยืนยันว่าเขียนแล้ว แอปพลิเคชันจึงถือว่าข้อมูลถูกบันทึกไว้ปลอดภัย แต่คำยืนยันนั้นมักซ่อนความไม่เสถียรทางกายภาพที่อยู่ข้างใต้เอาไว้ นักวิจัยที่ NetApp และ University of Wisconsin ศึกษาฮาร์ดไดรฟ์ 1.53 ล้านตัวเป็นเวลา 32 เดือน และพบว่าไดรฟ์ SATA แบบ nearline 9.5% เกิดข้อผิดพลาดในเซกเตอร์แบบแฝงอย่างน้อยหนึ่งครั้งต่อปี อัตราที่สูงขนาดนี้บอกว่าชิ้นส่วนทางกายภาพเสื่อมสภาพอยู่บ่อยครั้งโดยไม่ไปกระตุ้นกลไกรายงานข้อผิดพลาดที่วิศวกรใช้ดูแลความสมบูรณ์ของระบบและความถูกต้องของข้อมูล ความล้มเหลวแบบนี้จึงซ่อนตัวพ้นชั้นตรวจสอบ เพราะฮาร์ดแวร์เองไม่ส่งสัญญาณใดเลยว่าบิตที่เก็บอยู่ข้างล่างเบี่ยงไปจากอินพุตต้นฉบับแล้ว
ขนาดของฮาร์ดแวร์ที่ไม่แน่นอน
ความสมบูรณ์ของข้อมูลเป็นสิ่งที่อนุมานเอาที่ชั้นจุดเชื่อมต่อไม่ได้ เพราะเมื่อระบบทำงานในระดับกลุ่มเครื่องขนาดใหญ่อย่างทุกวันนี้ ความเสียหายเกิดขึ้นในอัตราที่สูงพอจะมีความหมายในเชิงพื้นฐาน การศึกษาคู่ขนานบนประชากรไดรฟ์กลุ่มเดียวกันเป็นเวลา 41 เดือน พบ checksum ไม่ตรงกันแบบเงียบมากกว่า 400,000 ครั้ง นี่คือหลักฐานว่าการรายงานตามมาตรฐานมักจับความเสียหายที่มีนัยสำคัญไม่ได้ ที่ Meta วิศวกรรายงานว่า CPU cores ราว 1-in-1,000 มีข้อบกพร่องที่ทำให้ข้อมูลเสียหายแบบเงียบได้ ปรากฏการณ์นี้บีบให้ต้องประเมินความน่าเชื่อถือกันใหม่ในระดับคำสั่ง การศึกษา "Cores that don't count" ของ Google ไปในทางเดียวกัน และบัญญัติคำว่า "mercurial cores" ให้โปรเซสเซอร์ที่คำนวณผลผิดแบบเงียบ ขณะยังรายงานสถานะปกติไปยังเคอร์เนล ข้อค้นพบเหล่านี้ชี้ว่าการไม่มีคำเตือนไม่ใช่หลักฐานว่าระบบสมบูรณ์ ชั้นฮาร์ดแวร์อาจกำลังผลิตข้อผิดพลาดอยู่ ในขณะที่อ้างว่าตัวเองทำงานได้ไม่มีที่ติ
ความจำเป็นแบบต้นทางถึงปลายทาง
การตรวจสอบความสมบูรณ์ต้องอยู่ที่จุดสิ้นสุดของระบบ Saltzer, Reed และ Clark โต้แย้งไว้เช่นนั้นในปี 1984 เพราะชั้นกลางเชื่อใจให้รายงานความล้มเหลวภายในของตัวเองไม่ได้ ข้อโต้แย้งแบบต้นทางถึงปลายทางนี้ยังเป็นมาตรฐานของการออกแบบที่แข็งแกร่ง มันเลี่ยงความเข้าใจผิดที่ว่าส่วนประกอบแต่ละชิ้นจะระบุและรายงานสถานะความเสียหายภายในได้ครบทุกแบบ ไม่มีฉันทามติใดปฏิเสธข้อโต้แย้งหลักนี้ สิ่งที่มันก่อให้เกิดคือวรรณกรรมปรับปรุงต่อยอดยาวกว่า 40 ปี ว่าด้วยตำแหน่งที่ควรวาง checksum ในสแต็กเครือข่ายที่เปลี่ยนไปเรื่อยๆ
ตัวอย่าง: ภาพถ่ายดิจิทัลที่มาถึงโดยมีพิกเซลเสียหนึ่งพิกเซลคือความสำเร็จของระบบ และมันปิดบังความล้มเหลวของสื่อจัดเก็บข้อมูลที่อยู่เบื้องล่าง
คำตัดสิน. ความน่าเชื่อถือเป็นคุณสมบัติของจุดเชื่อมต่อ ความปลอดภัยจึงต้องจัดการด้วยการตรวจสอบแบบต้นทางถึงปลายทาง ไม่ใช่พึ่งสถานะที่ส่วนประกอบภายในรายงานมา
จะพลิกคำตัดสินได้เมื่อ: มีการศึกษาเชิงยาวที่ครอบคลุมแสดงว่าฮาร์ดแวร์จัดเก็บข้อมูลและประมวลผลสมัยใหม่มีอัตราข้อผิดพลาดเป็นศูนย์ จน checksum แบบต้นทางถึงปลายทางกลายเป็นของซ้ำซ้อนและไม่จำเป็นในเชิงการคำนวณ
แหล่งอ้างอิง. 2007 · L. N. Bairavasundaram, G. R. Goodson, S. Pasupathy, J. Schindler, "An Analysis of Latent Sector Errors in Disk Drives" — ACM DL · 2008 · L. N. Bairavasundaram, G. R. Goodson, B. Schroeder, A. C. Arpaci-Dusseau, R. H. Arpaci-Dusseau, "An Analysis of Data Corruption in the Storage Stack" — USENIX PDF
บทถัดไป · 7 / 1207. เงื่อนไขแฝง — อุบัติเหตุที่ดำรงอยู่ก่อนแล้ว