Ý nghĩ là nếu một đĩa không bị hỏng hoàn toàn và chỉ một phần của nó bị lỗi, tôi vẫn có thể truy cập dữ liệu?
Về lý thuyết, suy nghĩ này là chính xác. Miễn là bạn gặp lỗi trên một thiết bị của RAIDZ1 vdev, ZFS có thể và sẽ thông báo cho bạn và sửa lỗi, giả sử các thiết bị khác không có lỗi.
Những gì có thể khác nhau trong thực tế là một số điều:
- Lỗi có thể trải rộng trên các phân vùng và do đó hai hoặc nhiều thiết bị sẽ bị ảnh hưởng, điều này có thể dẫn đến lỗi không thể phục hồi hoặc thậm chí mất toàn bộ nhóm (tùy thuộc vào vị trí và số lượng lỗi). Bạn có thể sử dụng RAIDZ2 hoặc Z3 để giảm thiểu điều này, nhưng vấn đề luôn nằm ở đó.
- Trong khi khôi phục phân vùng, đĩa cần đọc (2 lần) và ghi (1 lần) vào cùng một đĩa đồng thời và ngẫu nhiên. Trừ khi bạn sử dụng Solaris 11.3 với khả năng phục hồi tuần tự, điều này sẽ rất rất chậm. Cho đến khi bạn kết thúc quá trình khôi phục, bạn dễ bị lỗi trên các phân vùng khác. Nếu thời gian phục hồi của bạn lâu hơn, cơ hội gặp phải một URE bổ sung sẽ tăng lên. Nó cũng đặt tải bổ sung trên ổ đĩa, làm tăng khả năng thất bại ổ đĩa hoàn toàn.
- Hãy tưởng tượng phân vùng thứ 3 của bạn (cái cuối cùng trên đĩa 1,5TB) hiển thị đủ lỗi để làm giảm nhóm và gọi thay thế. Nếu bạn không thể thêm đĩa khác, bạn không thể thay thế mà không tắt / xuất và thậm chí sau đó nó phức tạp hơn bình thường.
Dựa trên những điểm đó, tôi khuyên bạn không nên làm điều này nếu độ tin cậy là mục tiêu chính của bạn. Giả sử một tình huống phần cứng cố định, tôi sẽ làm một trong những điều sau đây:
- Sử dụng gương và mất 500GB, nhưng có được thiết lập đơn giản với khả năng mở rộng dễ dàng trong tương lai
- Sử dụng hai nhóm riêng biệt và
copies = 2
nếu bạn muốn một số khả năng phục hồi đối với các lỗi nhỏ hơn (toàn bộ lỗi đĩa sẽ chỉ giết 2/5 hoặc 3/5 dữ liệu của bạn so với thiết lập của bạn)
- Sử dụng các hệ thống tệp khác ngoài ZFS nếu bạn cũng muốn có bánh của mình và ăn nó