Trả lời nhanh: RAID 5 chia dải dữ liệu kèm một khối kiểm tra, dùng được toàn bộ dung lượng trừ đúng một ổ, và chịu được một ổ hỏng. Với ổ dung lượng vừa thì vẫn hợp lý. Với ổ rất lớn thì thời gian dựng lại kéo dài nhiều ngày, trong khi nhóm không còn khả năng chịu lỗi, nên cấp 6 hoặc cấp 10 an toàn hơn.
Đây là cấu hình phổ biến nhất trong doanh nghiệp Việt Nam vì nó tiết kiệm dung lượng nhất trong nhóm chịu lỗi. Nhưng dung lượng ổ đã tăng hàng chục lần trong khi tốc độ đọc ghi không tăng tương ứng, và điều đó làm thay đổi bài toán rủi ro theo cách nhiều người chưa để ý.
Cách nó hoạt động
Dữ liệu được cắt thành các mảnh và ghi luân phiên lên các ổ, giống cách chia dải thông thường. Điểm khác là với mỗi hàng mảnh dữ liệu, hệ thống tính thêm một khối kiểm tra và ghi lên một ổ nữa, luân phiên đổi ổ giữa các hàng.
Khi một ổ chết, mọi mảnh nằm trên ổ đó được dựng lại bằng cách kết hợp các mảnh còn sống với khối kiểm tra. Đây là lý do bạn chỉ mất dung lượng của một ổ mà vẫn chịu được một ổ hỏng.
Về hiệu năng, đọc nhanh vì nhiều ổ cùng làm việc. Ghi chậm hơn vì mỗi lần ghi một mảnh, hệ thống phải đọc dữ liệu cũ, đọc khối kiểm tra cũ, tính khối mới, rồi ghi cả hai. Đây gọi là chi phí ghi và nó rõ nhất với các thao tác ghi nhỏ ngẫu nhiên như cơ sở dữ liệu.
Vì sao rủi ro tăng theo dung lượng ổ
Đây là phần cốt lõi của bài, và nó là bài toán số học đơn giản.
Khi thay ổ hỏng, hệ thống phải đọc toàn bộ dữ liệu trên tất cả các ổ còn lại để tính ra nội dung của ổ mới. Thời gian đọc tỉ lệ thuận với dung lượng.
Với ổ dung lượng vừa, việc này mất vài giờ. Với ổ rất lớn, nó kéo dài nhiều ngày, nhất là khi hệ thống vẫn phải phục vụ người dùng cùng lúc.
Trong suốt khoảng thời gian đó, ba điều bất lợi xảy ra đồng thời.
- Nhóm không còn khả năng chịu lỗi. Mất thêm một ổ nữa là mất sạch dữ liệu.
- Các ổ còn lại phải đọc toàn bộ bề mặt, tức là làm việc nặng nhất trong đời chúng, đúng lúc chúng đã cùng tuổi với ổ vừa chết.
- Nếu cả lô ổ mua cùng đợt sản xuất, khả năng ổ thứ hai hỏng trong giai đoạn này không hề nhỏ.
Còn một rủi ro nữa ít được nhắc: lỗi đọc không khôi phục được. Mọi ổ đều có xác suất gặp một khối không đọc nổi trên mỗi lượng dữ liệu nhất định. Khi phải đọc toàn bộ dàn ổ dung lượng lớn để dựng lại, xác suất gặp phải một khối như vậy trở nên đáng kể, và với cấp 5 thì điều đó có thể làm hỏng cả quá trình dựng lại.
Khi nào vẫn dùng được
Không phải cứ nghe rủi ro là bỏ hẳn. Bốn trường hợp cấp 5 vẫn hợp lý.
- Ổ dung lượng vừa, nơi thời gian dựng lại tính bằng giờ chứ không phải ngày.
- Nhóm ít ổ, ba tới năm ổ. Càng nhiều ổ trong một nhóm thì càng nhiều dữ liệu phải đọc khi dựng lại.
- Dữ liệu đã có bản sao lưu tốt và đã thử phục hồi. Lúc đó mất cả nhóm là phiền chứ không phải thảm họa.
- Ổ SSD, nơi tốc độ đọc cao làm thời gian dựng lại ngắn hơn nhiều lần so với ổ cơ cùng dung lượng.
Ngược lại, hãy tránh cấp 5 khi dùng ổ cơ dung lượng rất lớn, khi nhóm có nhiều ổ, hoặc khi dữ liệu không có bản sao lưu độc lập.
Các cấp thay thế
Cấp 6. Thêm một khối kiểm tra thứ hai, chịu được hai ổ hỏng cùng lúc. Mất dung lượng của hai ổ và ghi chậm hơn cấp 5. Đây là lựa chọn thay thế trực tiếp và phổ biến nhất cho kho lưu trữ dung lượng lớn.
Cấp 10. Soi gương rồi chia dải. Mất nửa dung lượng, nhưng hiệu năng ghi tốt và thời gian dựng lại ngắn nhất vì chỉ cần chép từ ổ đôi của nó thay vì tính toán từ toàn bộ nhóm. Đây là lựa chọn cho kho chứa máy ảo và cơ sở dữ liệu.
Hệ thống file có chịu lỗi tích hợp. Các hệ thống file hiện đại có cấu hình tương đương cấp 5 và cấp 6 nhưng thêm kiểm tra toàn vẹn dữ liệu, và chỉ dựng lại phần dữ liệu thật sự có chứ không dựng lại cả ổ trống. Điều này rút ngắn thời gian dựng lại rất nhiều khi ổ chưa đầy.
Nếu bạn đang chạy cấp 5 với ổ lớn
Bốn việc nên làm, theo thứ tự.
- Kiểm tra bản sao lưu ngay. Có bản gần đây không, đã thử phục hồi chưa. Đây là việc quan trọng hơn mọi thứ khác trong danh sách.
- Bật cảnh báo tình trạng ổ qua thư nếu chưa có. Phát hiện sớm một ổ đang yếu cho bạn thời gian chuẩn bị.
- Chuẩn bị sẵn một ổ dự phòng cùng model, lắp sẵn trong máy nếu có khay trống để hệ thống tự dựng lại ngay khi cần.
- Lên kế hoạch chuyển sang cấp 6 hoặc cấp 10 vào lần nâng cấp phần cứng tới. Việc đổi cấp thường phải tạo lại nhóm ổ, tức là phải chép dữ liệu đi rồi chép về.
Vận hành nhóm cấp 6
Bốn thói quen nên có.
- Vẫn để một ổ dự phòng lắp sẵn. Cấp 6 cho bạn thêm biên an toàn chứ không thay thế việc dựng lại sớm. Ổ dự phòng giúp quá trình bắt đầu ngay khi có ổ chết.
- Bật cảnh báo qua thư. Bắt buộc. Một nhóm cấp 6 đang thiếu hai ổ mà không ai biết là tình huống nguy hiểm nhất có thể.
- Quét toàn bộ dữ liệu hằng tháng để phát hiện các khối lỗi âm thầm trước khi bạn cần tới chúng.
- Đặt giới hạn tốc độ dựng lại để cân bằng giữa thời gian hoàn thành và độ chậm mà người dùng cảm nhận trong giờ làm việc.
Và nhắc lại điều luôn đúng: cấp 6 vẫn không phải là bản sao lưu. Nó chống hỏng ổ, không chống xóa nhầm, mã độc, cháy hay mất trộm.
Nó khác cấp 5 ở đâu
Cả hai đều chia dải dữ liệu và ghi kèm thông tin kiểm tra. Khác biệt duy nhất mà quan trọng là số lượng khối kiểm tra.
Cấp 5 ghi một khối kiểm tra cho mỗi hàng dữ liệu. Mất một ổ thì dựng lại được. Mất hai ổ thì không.
Cấp 6 ghi hai khối kiểm tra được tính bằng hai công thức khác nhau. Nhờ hai giá trị độc lập, hệ thống dựng lại được nội dung của hai ổ bất kỳ cùng lúc.
Cái giá là dung lượng của thêm một ổ nữa và tốc độ ghi thấp hơn. Với nhóm bốn ổ, bạn chỉ dùng được một nửa dung lượng, tức là ngang với soi gương mà lại chậm hơn. Vì vậy cấp 6 chỉ thực sự có ý nghĩa khi nhóm có từ sáu ổ trở lên.
Nếu bạn đang chạy cấu hình chỉ chịu được một ổ hỏng với ổ lớn
| Việc | Mức ưu tiên | Ghi chú |
|---|---|---|
| Kiểm tra bản sao lưu có khôi phục được không | Làm ngay tuần này | Đây là lớp bảo vệ thật, quan trọng hơn mọi cấu hình đĩa |
| Chuẩn bị sẵn một ổ dự phòng cùng loại | Làm trong tháng | Rút ngắn thời gian nhóm ổ ở trạng thái không được bảo vệ |
| Bật cảnh báo qua email khi có ổ lỗi | Làm ngay | Không có nó thì bạn biết lúc đã muộn |
| Lên kế hoạch chuyển sang cấu hình chịu hai ổ hỏng | Trong quý | Cần thời gian ngừng dịch vụ hoặc chép dữ liệu, phải có kế hoạch |
Không cần hoảng và làm gấp trong đêm. Nhưng cũng đừng để nguyên và quên đi, vì rủi ro tăng dần theo tuổi thọ của các ổ.
Vận hành nhóm ổ chịu được hai ổ hỏng
# Cai gia phai tra: cham hon khi ghi, va mat dung luong cua hai o # Cai duoc: chiu duoc hai o hong cung luc, va quan trong hon,# van con mot lop bao ve trong suot qua trinh dung lai o thu nhat # Viec dinh ky, moi thang: # 1. Kiem trang thai nhomcat /proc/mdstat # RAID phan mem tren Linux # 2. Kiem suc khoe tung osmartctl -a /dev/sda | grep -E "Reallocated_Sector|Current_Pending"# Hai chi so nay tang len la dau hieu o sap chet, thay truoc khi no chet han # 3. Chay kiem tra toan ven du lieuecho check > /sys/block/md0/md/sync_action # Quan trong: khi mot o hong, hay THAY NGAY.# Chay tiep o trang thai thieu o la tu bo mot lop bao ve# ma ban da tra tien de co.Ba lựa chọn thay thế
- Cấu hình kết hợp gương và chia dải: ghi nhanh hơn nhiều, dựng lại nhanh hơn nhiều, đổi lại chỉ dùng được một nửa dung lượng.
- Hệ thống tệp có kiểm tra toàn vẹn dữ liệu: phát hiện được cả lỗi dữ liệu bị đổi âm thầm mà lớp RAID thông thường không thấy.
- Chia thành nhiều nhóm nhỏ thay vì một nhóm rất lớn: thời gian dựng lại ngắn hơn và phạm vi thiệt hại khi có sự cố cũng nhỏ hơn.
Câu hỏi thường gặp
Dựng lại một nhóm cấp 5 mất bao lâu
Phụ thuộc dung lượng ổ, tốc độ ổ và mức tải hệ thống trong lúc đó. Với ổ cơ dung lượng lớn có thể tính bằng ngày. Nhiều hệ thống cho phép đặt mức ưu tiên cho việc dựng lại, đánh đổi giữa tốc độ hoàn thành và độ chậm mà người dùng cảm nhận.
Có nên tắt hệ thống trong lúc dựng lại không
Không cần và thường không nên, vì tắt rồi bật lại có thể làm quá trình bắt đầu lại. Nếu có thể, hãy giảm tải bằng cách hoãn các tác vụ nặng như sao lưu toàn phần cho tới khi dựng lại xong.
Cấp 5 với ổ SSD có an toàn hơn không
An toàn hơn đáng kể vì thời gian dựng lại ngắn hơn nhiều lần, tức là cửa sổ rủi ro hẹp hơn. Nhưng lưu ý ổ SSD chịu thêm lượng ghi từ việc tính khối kiểm tra, nên với ổ SSD nhiều nơi vẫn ưu tiên cấp 10.
Nhóm cấp 5 mấy ổ là hợp lý
Ba tới năm ổ là khoảng hợp lý. Nhóm càng nhiều ổ thì càng nhiều dữ liệu phải đọc khi dựng lại và xác suất gặp lỗi đọc càng cao. Cần nhiều dung lượng hơn thì tạo thêm nhóm mới thay vì nhồi thêm ổ vào một nhóm.
Nhóm cấp 6 tối đa bao nhiêu ổ
Về kỹ thuật thì nhiều, nhưng thực tế nên giới hạn khoảng mười tới mười sáu ổ mỗi nhóm. Nhóm quá lớn làm thời gian dựng lại kéo dài và tăng lượng dữ liệu phải đọc. Cần nhiều dung lượng hơn thì tạo thêm nhóm rồi gộp lại ở tầng trên.
Hai ổ hỏng cùng lúc thật sự có xảy ra không
Có, và thường không phải cùng lúc theo nghĩa đen mà là ổ thứ hai hỏng trong lúc đang dựng lại ổ thứ nhất. Đó chính là kịch bản mà cấp 6 sinh ra để xử lý, và nó phổ biến hơn nhiều so với hai ổ chết đồng thời.
Hệ thống file có chịu lỗi tích hợp thì sao
Các hệ thống file hiện đại có cấu hình tương đương cấp 6 và có lợi thế lớn: chúng chỉ dựng lại phần dữ liệu thật sự có chứ không dựng lại cả ổ trống, đồng thời kiểm tra được toàn vẹn dữ liệu. Nếu đang cân nhắc dựng kho mới thì đây là hướng đáng xem trước tiên.
