Nói chung, để trả lời trực tiếp cho câu hỏi của bạn, tôi không biết về bất kỳ thương hiệu lớn nào của ổ đĩa SATA mà chính ổ đĩa đó đã có lỗi liên quan đến hoạt động đúng với chức năng ghi bộ đệm được kích hoạt. Đó là, chỉ từ góc độ ổ đĩa, ổ đĩa thực hiện những gì nó phải làm từ góc độ bộ đệm. Tôi cũng xin lưu ý rằng ngay cả khi ghi bộ nhớ đệm được kích hoạt, mà sự chậm trễ từ một ghi đĩa trên cáp SATA với giới truyền thông xoay vật lý được cập nhật vẫn là rất ngắn (~ 50 đến 100ms thường). Không giống như dữ liệu bộ nhớ cache bẩn sẽ chỉ ngồi đó vài giây một lần ..... ổ đĩa liên tục cố gắng lấy dữ liệu bẩn từ bộ đệmlên các phương tiện truyền thông vật lý ngay khi nó có thể. Đây không chỉ là một câu hỏi về an toàn dữ liệu, mà là một trong những sẵn sàng chấp nhận viết trong tương lai mà không có bất kỳ sự chậm trễ nào (ví dụ: viết bài).
Vấn đề phát sinh khi kích hoạt bộ nhớ đệm là thứ tự ghi vào ổ đĩa qua cáp SATA và thứ tự ghi vào phương tiện quay không giống nhau. Điều này không bao giờ có thể gây ra sự cố KHÔNG GIỚI HẠN bạn bị mất điện hoặc sự cố hệ thống trước khi tất cả nội dung của bộ đệm được đưa vào đĩa. Tại sao? ->
Vấn đề có thể phát sinh ở đây liên quan đến độ mạnh giao dịch của hệ thống tệp và / hoặc nội dung tệp cơ sở dữ liệu đối với các lỗi bị mất theo thứ tự. Trên thực tế, những người có khả năng bị mất trật tự ghi có thể về mặt lý thuyết có thể làm hỏng tính toàn vẹn của logic giao dịch mà nếu không thì đã được bảo đảm bằng cách ghi đĩa xảy ra theo một thứ tự rất cụ thể đối với phương tiện truyền thông.
Bây giờ, tất nhiên, các nhà thiết kế hệ thống tệp, cơ sở dữ liệu, bộ điều khiển RAID, v.v ... đều biết (hoặc chắc chắn nên biết) về hiện tượng này liên quan đến việc ghi bộ đệm. Bộ nhớ đệm ghi là cực kỳ mong muốn từ quan điểm hiệu suất trong hầu hết các kịch bản I / O loại truy cập ngẫu nhiên. Trong thực tế, việc có sẵn bộ đệm ghi là một yếu tố quan trọng để có thể có bất kỳ lợi ích thực sự nào đối với Hàng đợi Lệnh gốc tiên tiến hơn ( NCQ) được hỗ trợ trên SATA mới hơn và một vài thế hệ triển khai PATA mới nhất. Vì vậy, để đảm bảo trật tự cho phương tiện vật lý vào những thời điểm quan trọng nhất định, hệ thống tệp và / hoặc ứng dụng, v.v. có thể yêu cầu cụ thể một bộ đệm ghi vào phương tiện truyền thông. Khi hoàn thành yêu cầu đồng bộ hóa này - mọi thứ đang chờ xử lý từ bộ đệm tệp (có khả năng), bộ đệm đĩa hệ điều hành, bộ đệm đĩa vật lý, v.v ... thực sự đã xuất hiện trên phương tiện theo thiết kế hệ thống giao dịch theo đúng các hoạt động quan trọng. Đó là, điều này xảy ra một cách chính xác nếu các lập trình viên thực hiện cuộc gọi đúng ở phía trên VÀ mọi phần tử của chuỗi phần mềm và phần cứng này đã thực hiện đúng công việc của họ. tức là: Không có lỗi về vấn đề này trong ổ đĩa, bộ điều khiển RAID, trình điều khiển đĩa, bộ đệm hệ điều hành, hệ thống tệp, công cụ cơ sở dữ liệu, v.v. Đây là rất nhiều phần mềm mà tất cả phải hoạt động chính xác. Ngoài ra, việc xác minh tính chính xác trong vấn đề này là rất khó vì trong hầu hết mọi tình huống, thông thường, thứ tự ghi không có vấn đề gì cả .... và sự cố mất điện và các tình huống sự cố là những thử nghiệm khó thực hiện. Vì vậy, cuối cùng "tắt ghi bộ nhớ đệm" tại một hoặc nhiều lớp và / hoặc ý nghĩa khác nhau của thuật ngữ này .... có tiếng là "sửa chữa" một số loại vấn đề. Trên thực tế, việc tắt các hành vi ghi bộ đệm của bộ điều khiển RAID hoặc Bộ đệm đĩa hệ điều hành, hoặc Ổ đĩa, v.v ... là tránh một hoặc nhiều lỗi trong hệ thống ..... và nguồn gốc của truyền thuyết đó. và sự cố mất điện và các tình huống sự cố là những thử nghiệm khó khăn để xây dựng. Vì vậy, cuối cùng "tắt ghi bộ nhớ đệm" tại một hoặc nhiều lớp và / hoặc ý nghĩa khác nhau của thuật ngữ này .... có tiếng là "sửa chữa" một số loại vấn đề. Trên thực tế, việc tắt các hành vi ghi bộ đệm của bộ điều khiển RAID hoặc Bộ đệm đĩa hệ điều hành, hoặc Ổ đĩa, v.v ... là tránh một hoặc nhiều lỗi trong hệ thống ..... và nguồn gốc của truyền thuyết đó. và sự cố mất điện và các tình huống sự cố là những thử nghiệm khó khăn để xây dựng. Vì vậy, cuối cùng "tắt ghi bộ nhớ đệm" tại một hoặc nhiều lớp và / hoặc ý nghĩa khác nhau của thuật ngữ này .... có tiếng là "sửa chữa" một số loại vấn đề. Trên thực tế, việc tắt các hành vi ghi bộ đệm của bộ điều khiển RAID hoặc Bộ đệm đĩa hệ điều hành, hoặc Ổ đĩa, v.v ... là tránh một hoặc nhiều lỗi trong hệ thống ..... và nguồn gốc của truyền thuyết đó.
Dù sao, quay trở lại cốt lõi của câu hỏi: Trong SATA, việc xử lý cụ thể tất cả các lệnh đọc / ghi đĩa và các lệnh bộ đệm bộ đệm được xác định rõ bởi các thông số kỹ thuật của SATA . Ngoài ra, các nhà sản xuất ổ đĩa nên có tài liệu chi tiết cho từng kiểu ổ đĩa hoặc họ ổ đĩa mô tả việc thực hiện và tuân thủ các quy tắc này như ví dụ này cho các ổ đĩa Seagate Barracuda . Cụ thể, xem chi tiết về TÍNH NĂNG THIẾT LẬP SATAlệnh điều khiển chế độ hoạt động của ổ đĩa và tùy chọn cụ thể 82h có thể được sử dụng để vô hiệu hóa bộ nhớ đệm đĩa ở cấp ổ đĩa vì mặc định chắc chắn là ghi bộ đệm được kích hoạt trên tất cả các ổ đĩa mà tôi biết. Nếu bạn thực sự muốn tắt bộ đệm, lệnh này phải được thực hiện khi bắt đầu mỗi lần thiết lập lại ổ đĩa hoặc bật nguồn và thường nằm dưới sự kiểm soát của trình điều khiển đĩa cho hệ điều hành của bạn. Bạn có thể khuyến khích trình điều khiển hệ điều hành của mình thiết lập chế độ này thông qua điều loại IOCTL và / hoặc Cài đặt đăng ký, nhưng điều này rất khác nhau.