Tôi quen thuộc với những gì BBWC (Bộ nhớ cache ghi pin) dự định sẽ làm - và trước đây đã sử dụng chúng trong các máy chủ của tôi ngay cả với UPS tốt. Có những thất bại nặng nề nó không cung cấp bảo vệ cho. Tôi tò mò muốn hiểu liệu nó thực sự mang lại bất kỳ lợi ích thực tế nào trong thực tế.
(NB Tôi đặc biệt tìm kiếm phản hồi từ những người có BBWC và gặp sự cố / thất bại và liệu BBWC có giúp phục hồi hay không)
Cập nhật
Sau phản hồi ở đây, tôi ngày càng hoài nghi về việc liệu BBWC có bổ sung bất kỳ giá trị nào không.
Để có sự tự tin về tính toàn vẹn dữ liệu, hệ thống tập tin PHẢI biết khi nào dữ liệu được cam kết lưu trữ không bay hơi (không nhất thiết là đĩa - một điểm tôi sẽ quay lại). Điều đáng chú ý là rất nhiều đĩa nói dối khi dữ liệu đã được cam kết vào đĩa ( http://brad.livejournal.com/2116715.html ). Mặc dù có vẻ hợp lý khi cho rằng việc vô hiệu hóa bộ đệm trên đĩa có thể làm cho các đĩa trung thực hơn, nhưng vẫn không có gì đảm bảo rằng đây cũng là trường hợp.
Do bộ đệm lớn theo kiểu chữ trong BBWC, một rào cản có thể yêu cầu nhiều dữ liệu hơn được cam kết vào đĩa do đó gây ra sự chậm trễ khi ghi: lời khuyên chung là vô hiệu hóa các rào cản khi sử dụng bộ đệm ghi lại không dễ bay hơi (và vô hiệu hóa trên- bộ nhớ đệm). Tuy nhiên, điều này dường như làm suy yếu tính toàn vẹn của hoạt động ghi - chỉ vì nhiều dữ liệu được duy trì trong bộ lưu trữ không bay hơi không có nghĩa là nó sẽ phù hợp hơn. Thật vậy, được cho là không có ranh giới giữa các giao dịch hợp lý dường như có ít cơ hội để đảm bảo tính nhất quán hơn so với khác.
Nếu BBWC thừa nhận các rào cản tại thời điểm dữ liệu đi vào bộ lưu trữ không bay hơi (thay vì được cam kết với đĩa) thì có vẻ như nó sẽ đáp ứng yêu cầu về tính toàn vẹn dữ liệu mà không bị phạt hiệu năng - ngụ ý rằng các rào cản vẫn được bật. Tuy nhiên, vì các thiết bị này thường thể hiện hành vi phù hợp với việc xả dữ liệu vào thiết bị vật lý (chậm hơn đáng kể với các rào cản) và lời khuyên rộng rãi để vô hiệu hóa các rào cản, do đó chúng không thể hành xử theo cách này. TẠI SAO KHÔNG?
Nếu I / O trong HĐH được mô hình hóa thành một chuỗi các luồng thì có một số phạm vi để giảm thiểu hiệu ứng chặn của rào cản ghi khi bộ đệm ghi được quản lý bởi HĐH - vì ở cấp độ này chỉ có giao dịch logic (một luồng duy nhất ) cần phải được cam kết. Mặt khác, một BBWC không có kiến thức về các bit dữ liệu tạo nên giao dịch sẽ phải cam kết toàn bộ bộ đệm của nó vào đĩa. Liệu các nhân / hệ thống tập tin thực sự thực hiện điều này trong thực tế sẽ đòi hỏi nhiều nỗ lực hơn so với việc tôi sẵn sàng đầu tư vào lúc này.
Một sự kết hợp của các đĩa nói với các nhân tố về những gì đã được cam kết và mất điện đột ngột chắc chắn dẫn đến tham nhũng - và với một hệ thống tập tin có cấu trúc nhật ký hoặc nhật ký không thực hiện một fsck đầy đủ sau khi ngừng hoạt động, chắc chắn tham nhũng sẽ không được phát hiện. một nỗ lực được thực hiện để sửa chữa nó.
Về các chế độ của sự cố, theo kinh nghiệm của tôi, hầu hết các lần mất điện đột ngột xảy ra do mất nguồn điện lưới (dễ dàng giảm thiểu bằng một UPS và tắt máy được quản lý). Những người kéo cáp sai ra khỏi giá hàm ý hygene trung tâm dữ liệu kém (ghi nhãn và quản lý cáp). Có một số loại sự cố mất điện đột ngột không được ngăn chặn bởi UPS - sự cố trong PSU hoặc VRM, BBWC với các rào cản sẽ cung cấp tính toàn vẹn dữ liệu trong trường hợp xảy ra sự cố ở đây, tuy nhiên mức độ phổ biến như vậy là gì? Rất hiếm khi đánh giá bởi sự thiếu phản ứng ở đây.
Chắc chắn việc di chuyển khả năng chịu lỗi cao hơn trong ngăn xếp sẽ đắt hơn đáng kể so với BBWC - tuy nhiên việc triển khai một máy chủ như một cụm có rất nhiều lợi ích khác cho hiệu năng và tính khả dụng.
Một cách khác để giảm thiểu tác động của việc mất điện đột ngột là triển khai SAN - AoE biến điều này thành một đề xuất thiết thực (tôi không thực sự thấy điểm trong iSCSI) nhưng một lần nữa lại có chi phí cao hơn.