Tóm tắt
Từ 29 tháng 10 đến 1 tháng 11 năm 2024, bốn mươi mốt ổ NVMe doanh nghiệp tại bốn điểm dữ liệu ngừng chấp nhận lệnh ở một mốc giờ bật nguồn cố định, một lỗi firmware trong một lô sản xuất. Phản chiếu đã hấp thụ ba mươi chín trong số các lỗi đó mà không ảnh hưởng đến khách hàng. Một nút ở Warsaw mất cả hai nửa của một phản chiếu trong vòng bốn mươi phút, vì cả hai ổ đều từ cùng một lô và được gắn vào cùng một ngày. Hai phiên bản trên nút đó đã mất dữ liệu. Phần thứ hai đó là lỗi của chúng tôi, không phải của nhà cung cấp.
Dòng thời gian
Tất cả thời gian theo UTC.
| Thời gian | Sự kiện |
|---|---|
| 29 tháng 10, 03:11 | Ổ đĩa rơi khỏi bus trên một nút Warsaw. Phản chiếu suy giảm, ổ dự phòng nóng bắt đầu xây dựng lại. Thường lệ, không có cảnh báo. |
| 29 tháng 10, 03:49 | Ổ đĩa thứ hai trong cùng phản chiếu rơi. Nút mất pool gốc và dừng. |
| 29 tháng 10, 03:52 | Cảnh báo được kích hoạt. Người trực tuyến lúc 03:55. |
| 29 tháng 10, 04:20 | Nút được tuyên bố không thể khôi phục tại chỗ. Việc xây dựng lại từ ổ dự phòng nóng là không thể; ổ dự phòng đang giữa quá trình xây dựng lại từ một nguồn không còn phản hồi. |
| 29 tháng 10, 05:40 | Kỹ sư xem xét nhật ký ổ đĩa nhận thấy hai lỗi cách nhau mười tám giờ bật nguồn, không phải mười tám tháng. Nghi ngờ chuyển từ xui xẻo sang một nhóm. |
| 29 tháng 10, 06:15 | Truy vấn toàn bộ hạ tầng theo mã lô và giờ bật nguồn. Hai trăm lẻ sáu ổ đĩa nằm trong lô bị ảnh hưởng. Ba mươi mốt ổ đã vượt qua mốc và hỏng; số còn lại cách mốc từ bốn mươi đến chín trăm giờ. |
| 29 tháng 10, 07:30 | Liên hệ nhà cung cấp. Lỗi được xác nhận trong vòng bốn giờ: một bộ đếm trong từ xa đo lường cân bằng mài mòn tràn ở mốc 1.536 giờ bật nguồn và làm kẹt bộ điều khiển. Một bản sửa firmware đã được phát hành, lặng lẽ, sáu tuần trước đó. |
| 29 tháng 10, 09:00 | Bắt đầu cập nhật firmware cuốn chiếu, ưu tiên theo số giờ còn lại. |
| 30 tháng 10, 22:40 | Ổ đĩa cuối cùng trong lô được cập nhật hoặc thay thế. |
| 1 tháng 11, 14:00 | Các phiên bản khách hàng bị ảnh hưởng được khôi phục hoặc hoàn tiền. |
Nguyên nhân gốc
Hai nguyên nhân, và chỉ một trong số đó thuộc về nhà sản xuất ổ đĩa.
Của họ: một bộ đếm từ xa đo lường tràn ở mốc giờ bật nguồn cố định và treo bộ điều khiển. Ổ đĩa sống sót qua chu kỳ nguồn, quay lại và treo lần nữa trong vòng vài phút. Dữ liệu trên đĩa còn nguyên vẹn và không thể truy cập, đó là sự kết hợp tồi tệ nhất cho bất kỳ ai cố gắng chẩn đoán lúc bốn giờ sáng.
Của chúng tôi: chúng tôi xây dựng các phản chiếu từ các ổ đĩa đến trong cùng một lô giao hàng. Một phản chiếu được thiết kế để là hai miền lỗi độc lập, và hai ổ đĩa từ một lô, được gắn cùng một buổi chiều, bật nguồn trong cùng một giờ, không độc lập theo bất kỳ nghĩa nào quan trọng. Mười một phản chiếu trên toàn hạ tầng được xây dựng theo cách này. Mười cái may mắn khi ổ dự phòng nóng hoàn thành việc xây dựng lại trước. Một cái thì không.
Chúng tôi đã biết điều này về nguyên tắc trong nhiều năm. Không ai viết nó vào quy trình xây dựng, và quy trình xây dựng là thứ mà mọi người tuân theo lúc hai giờ sáng dưới áp lực thời hạn giao hàng.
Tác động
- Ba mươi chín lỗi được hấp thụ bởi các phản chiếu mà không có ảnh hưởng rõ ràng đến khách hàng.
- Một nút ngoại tuyến trong chín giờ mười tám phút.
- Mười bốn phiên bản trên nút đó được khôi phục từ bản sao lưu ngoài nút, mất tối đa mười một phút ghi dữ liệu.
- Hai phiên bản không có bản sao lưu nào. Cả hai mất toàn bộ dữ liệu trên nút.
Những gì chúng tôi đã thay đổi
- Tách lô mua hàng. Không hai ổ đĩa từ cùng một lô có thể tạo thành một phản chiếu, và ổ dự phòng nóng bảo vệ một cặp phải đến từ một lô thứ ba. Được thực thi bởi công cụ xây dựng, không phải bởi tài liệu. Xong ngày 4 tháng 11.
- Cảnh báo nhóm theo giờ bật nguồn. Chúng tôi hiện cảnh báo khi có hơn bốn ổ đĩa chia sẻ một mã lô nằm trong vòng một trăm giờ của nhau và tiến gần đến bất kỳ số tròn nào của giờ. Đó là một phép đo thô và nó sẽ phát hiện ra lỗi này mười chín ngày trước.
- Kiểm tra firmware trước khi sản xuất. Một dòng ổ đĩa mới chạy hai nghìn giờ bật nguồn trên giá kiểm tra trước khi mang dữ liệu khách hàng. Lỗi này sẽ xuất hiện ở mốc 1.536.
- Chúng tôi hiện đọc ghi chú phát hành firmware của nhà cung cấp theo lịch trình. Bản sửa lỗi đã tồn tại sáu tuần trước khi chúng tôi cần. Không ai được giao nhiệm vụ xem, vì vậy không ai xem.
Những gì chúng tôi không thay đổi, và tại sao
Chúng tôi không thay đổi dòng ổ đĩa hoặc nhà cung cấp. Lỗi là có thật và việc tiết lộ kém, nhưng mất mát của chúng tôi đến từ việc gộp chung lô, mà chúng tôi sẽ tái tạo với bất kỳ nhà sản xuất nào. Chuyển đổi có vẻ quyết đoán nhưng không sửa được gì.
Bản sao lưu ngoài nút vẫn là tùy chọn thêm với giá chín euro cho năm trăm gigabyte. Làm cho nó phổ biến có nghĩa là tính phí mọi khách hàng cho một dịch vụ mà hầu hết họ tự nhân bản, và chúng tôi sẽ không tính tiền mọi người cho sự xuất hiện của an toàn. Điều đã thay đổi là mẫu đơn đặt hàng, hiện nêu rõ rằng lưu trữ phiên bản được phản chiếu và phản chiếu không phải là bản sao lưu, và bước xác nhận không còn cho phép câu đó bị bỏ qua một cách im lặng.
Chúng tôi không chuyển sang phản chiếu ba chiều. Nó tốn thêm một phần ba mỗi gigabyte và không giải quyết lỗi tương quan, mà là cơ chế thực tế ở đây. Hai miền độc lập đánh bại ba miền phụ thuộc.
Hai khách hàng
Cả hai đều được hoàn tiền đầy đủ cho kỳ hạn bị ảnh hưởng, bằng tài sản họ đã trả, mà không cần yêu cầu họ biện minh bất cứ điều gì. Một người rời đi. Người kia ở lại và bây giờ mua gói sao lưu thêm, đã đọc cùng câu trên mẫu đơn đặt hàng đã tồn tại ở dạng yếu hơn trước đây.
Không một kết quả nào trong số đó nằm trong khả năng của chúng tôi. Điều duy nhất nằm trong khả năng của chúng tôi là xây dựng phản chiếu đúng cách, và chúng tôi đã không làm.