Ngoài những gì đã nói, tôi muốn thêm xu của mình, nhưng đây là điều quan trọng cần cân nhắc.
Gì một ổ đĩa không khi khu vực là chậm để đọc?
Các ổ đĩa được cho là được thiết kế để hoạt động một mình, e. g. ổ đĩa "máy tính để bàn" thông thường, cho rằng không có cách nào khác để truy xuất dữ liệu được lưu trữ trong khu vực xấu đó. Họ sẽ cố gắng truy xuất dữ liệu bằng mọi giá, lặp đi lặp lại nhiều lần trong một khoảng thời gian dài. Tất nhiên, họ cũng sẽ đánh dấu khu vực đó là không thành công, vì vậy họ sẽ ánh xạ lại khu vực đó vào lần tới khi bạn viết thư cho nó, nhưng bạn phải viết cho điều đó. Cho đến khi bạn viết lại nó, họ sẽ nghẹt thở mỗi khi bạn đọc từ chỗ đó. Trong cài đặt RAID, điều này có nghĩa là đối với RAID, ổ đĩa vẫn hoạt động và không có lý do gì để loại bỏ nó, nhưng đối với ứng dụng, mảng sẽ chậm lại khi thu thập dữ liệu.
Mặt khác, các ổ đĩa "doanh nghiệp", đặc biệt là ổ đĩa "có thương hiệu", thường cho rằng chúng luôn được sử dụng trong cài đặt RAID. Bộ điều khiển "thương hiệu", nhìn thấy ổ đĩa "có thương hiệu", thậm chí có thể thông báo phần sụn của họ về sự hiện diện của RAID. Vì vậy, ổ đĩa sẽ ngừng hoạt động sớm và báo cáo lỗi I/O, ngay cả khi có thể thực hiện thêm vài lần nữa và đọc khu vực này. Sau đó, bộ điều khiển có cơ hội trả lời nhanh hơn, phản chiếu hướng dẫn đọc tới ổ đĩa anh chị em (và loại bỏ ổ đĩa xấu ra khỏi mảng). Khi bạn rút ra và khám phá/kiểm tra kỹ lưỡng ổ đĩa đã kích hoạt đó, bạn sẽ thấy không có vấn đề rõ ràng nào — chỉ bị chậm lại trong giây lát và điều đó đủ để ngừng sử dụng nó, theo logic của bộ điều khiển.
Tôi suy đoán đây có thể là duy nhất sự khác biệt giữa ổ đĩa "máy tính để bàn" và ổ đĩa NL-SAS và SATA "có thương hiệu"/"doanh nghiệp". Đây có lẽ là lý do tại sao bạn phải trả gấp ba lần khi mua ổ đĩa "HPE" do Toshiba thực sự sản xuất, so với việc mua ổ đĩa mang nhãn hiệu "Toshiba".
Tuy nhiên, một số ổ đĩa hỗ trợ một số điều khiển chung về điều này. Nó được gọi là SCT ERC mà shands cho Kiểm soát khôi phục lỗi vận chuyển lệnh SMART. Đây là cách nó nhìn vào thông minh
:
không được hỗ trợ
# smartctl --all /dev/sda
=== BẮT ĐẦU ĐỌC PHẦN DỮ LIỆU THÔNG MINH ===
Khả năng SCT: (0x3037) Hỗ trợ trạng thái SCT.
Hỗ trợ kiểm soát tính năng SCT.
Bảng dữ liệu SCT được hỗ trợ.
hỗ trợ
=== BẮT ĐẦU ĐỌC PHẦN DỮ LIỆU THÔNG MINH ===
...
Khả năng SCT: (0x003d) Hỗ trợ trạng thái SCT.
Hỗ trợ kiểm soát khôi phục lỗi SCT.
Hỗ trợ kiểm soát tính năng SCT.
Bảng dữ liệu SCT được hỗ trợ.
Nếu may mắn, bạn có thể điều khiển tính năng này bằng thông minh
. Bạn có thể truy xuất hoặc đặt hai thời gian chờ, thời gian cố gắng đọc lại và thời gian cố gắng viết lại:
# smartctl -l scterc /dev/sda
Kiểm soát khôi phục lỗi SCT:
Đọc: 70 (7,0 giây)
Viết: 70 (7,0 giây)
# smartctl -l scterc /dev/sde
Kiểm soát khôi phục lỗi SCT:
Đọc: Vô hiệu hóa
Viết: Vô hiệu hóa
# smartctl -l scterc /dev/sdd
Cảnh báo: thiết bị không hỗ trợ lệnh SCT Error Recovery Control
smartctl -l scterc,120,60 /dev/sde
Có nghĩa là: 120 phần mười giây để thử đọc lại; 60 phần mười giây để thử viết lại. Số không có nghĩa là "thử lại cho đến khi bạn chết". Các ổ đĩa khác nhau có cài đặt mặc định khác nhau cho việc này.
Vì vậy, nếu bạn chỉ sử dụng ổ đĩa "phiên bản RAID", tốt hơn hết hãy đặt thời gian chờ ERC thành 0, nếu không bạn có thể mất dữ liệu. Mặt khác, nếu bạn sử dụng ổ đĩa trong RAID, tốt hơn nên đặt một số cài đặt khác không thấp hợp lý.
Nguồn bởi amarao @ Habrahabr, bằng tiếng Nga.
Tái bút Và một lưu ý về SAS. Sử dụng sdparm
, nó hỗ trợ nhiều điều khiển hơn về điều này.