Điểm:1

Tôi có thể xóa đĩa khỏi dải ZFS không?

lá cờ me

Tôi có một hồ bơi lớn trên một hệ thống. Hệ thống là một nút lưu trữ trong cụm Hadoop, do đó, một dải cũng được vì nếu chúng tôi mất nhóm cục bộ, chúng tôi có thể xây dựng lại dữ liệu ở cấp độ cụm.

Ổ đĩa đang bị hỏng: tôi có thể yêu cầu ZFS thử và di chuyển các khối lưu trữ ra khỏi thiết bị để tôi có thể gỡ bỏ nó hay tôi cần xóa toàn bộ nhóm và xây dựng lại? Lý tưởng nhất là tôi có thể rút đĩa ra và sau đó thêm một đĩa mới khi tôi trao đổi phần cứng bị lỗi.

Tôi cho rằng câu trả lời là "không" vì RAID truyền thống hoạt động ở cấp độ khối, nhưng có thể nhóm lưu trữ ZFS đủ thông minh để ít nhất cố gắng di chuyển dữ liệu tệp.

> sudo danh sách zpool
TÊN KÍCH THƯỚC PHÂN PHỐI CKPOINT MIỄN PHÍ MỞ RỘNGZ FRAG CAP DEDUP HEALTH ALTROOT
thùng 19,9T 8,09T 11,8T - - 15% 40% 1,00x XUỐNG -
> trạng thái sudo zpool
  hồ bơi: bể
 trạng thái: XUỐNG
trạng thái: Một hoặc nhiều thiết bị đã gặp lỗi dẫn đến dữ liệu
        tham nhũng. Các ứng dụng có thể bị ảnh hưởng.
hành động: Khôi phục tệp được đề cập nếu có thể. Nếu không thì khôi phục lại
        toàn bộ hồ bơi từ bản sao lưu.
   xem: http://zfsonlinux.org/msg/ZFS-8000-8A
  quét: chà đã sửa 0B trong 0 ngày 02:45:39 với 0 lỗi vào Chủ nhật ngày 9 tháng 1 03:09:41 2022
cấu hình:

        TÊN BANG ĐỌC VIẾT CKSUM
        bể ĐÃ XUỐNG 0 0 0
          ata-ST2000DM001-1ER164_Z4Z0xxxx TRỰC TUYẾN 0 0 0
          ata-ST2000DM001-1ER164_Z4Z0xxxx DEGRADED 96 0 0 quá nhiều lỗi
          scsi-35000cca22dc7xxxx TRỰC TUYẾN 0 0 0
          scsi-35000cca22dc7xxxx TRỰC TUYẾN 0 0 0
          scsi-35000cca22dc8xxxx TRỰC TUYẾN 0 0 0
          scsi-35000cca22dc8xxxx TRỰC TUYẾN 0 0 0
          scsi-35000cca22dc7xxxx TRỰC TUYẾN 0 0 0
          scsi-35000cca22dc7xxxx TRỰC TUYẾN 0 0 0
          scsi-35000cca22dc7xxxx TRỰC TUYẾN 0 0 0
          ata-ST2000DM001-1ER164_Z4Z3xxxx TRỰC TUYẾN 0 0 0
          ata-ST2000NM0011_Z1P3xxxx TRỰC TUYẾN 0 0 0

Tôi dự đoán câu trả lời là khi tôi sẵn sàng thay thế đĩa bị lỗi, trước tiên tôi sẽ muốn hủy nhóm, thay thế đĩa và xây dựng một nhóm mới.

Điểm:0
lá cờ ro

Trước hết, ZFS cần tất cả các vdev cấp cao nhất hoạt động để nhóm hoạt động. Nếu một vdev ngoại tuyến, bạn sẽ mất quyền truy cập vào tất cả dữ liệu trong nhóm. Bạn đang sử dụng các đĩa riêng lẻ làm vdev, vì vậy nếu đĩa đó bị lỗi (trái ngược với trạng thái "nhiều lỗi đọc" hiện tại), bạn sẽ phải tạo lại toàn bộ nhóm từ đầu.

Nếu bạn đang sử dụng Solaris hoặc nếu bạn đang sử dụng OpenZFS 0.8 trở lên, bạn sẽ có thể chạy:

tháo bể zpool ata-ST2000DM001-1ER164_Z4Z0xxxx

Điều này có thể không hoạt động! Và nếu đúng như vậy, nó có thể làm suy giảm hiệu suất vĩnh viễn cho nhóm.

Việc xóa vdev yêu cầu phải có đủ dung lượng trên các đĩa còn lại cho dữ liệu bị thay thế. Có vẻ như bạn có thể có đủ chỗ trong trường hợp này, nhưng tôi đang đề cập đến vấn đề cho đầy đủ.

Trên OpenZFS, ít nhất, có một số hạn chế về thời điểm bạn có thể xóa vdev. Bạn chỉ có thể xóa một vdev nếu nhóm của bạn chỉ bao gồm các vdev đĩa đơn và/hoặc các vdev được nhân đôi. Nhóm của bạn đủ điều kiện, bởi vì bạn đang sử dụng riêng vdev đĩa đơn. Nhưng nếu bạn có bất kỳ vdev đột kích, draid hoặc phân bổ đặc biệt nào trên OpenZFS, bạn sẽ không thể thực hiện việc này.

Cảnh báo cuối cùng là việc xóa vdev sẽ bị phạt hiệu suất vĩnh viễn trong OpenZFS. OpenZFS sẽ ghi một bảng nội bộ cho tất cả các khối trước đó đã có trên đĩa bị xóa. Miễn là các khối đó tồn tại trong nhóm từ thời điểm đó trở đi, tất cả quyền truy cập vào chúng sẽ yêu cầu tra cứu gián tiếp thông qua bảng ánh xạ lại. Điều này có thể làm chậm truy cập ngẫu nhiên một cách đáng kể. Tôi không biết đủ về nội bộ Solaris ZFS để có thể nói liệu nó có làm được điều gì tương tự hay không.

Và tất nhiên, ZFS sẽ cần đọc tất cả dữ liệu từ đĩa bị lỗi để xóa nó. Hoàn toàn có khả năng nó sẽ gặp đủ lỗi trong quá trình đó đến mức nó sẽ làm hỏng đĩa. Nếu điều đó xảy ra, như đã thảo luận trước đó, toàn bộ nhóm sẽ ngoại tuyến và có khả năng không thể khôi phục được.

Nếu bạn có sẵn một khe cắm để thêm đĩa, tốt hơn hết bạn nên đặt một đĩa dự phòng vào và sử dụng zpool thay thế để thay thế đĩa mới cho đĩa bị lỗi. Điều đó sẽ phát sinh cùng một tải đọc để sao chép dữ liệu (và sẽ chịu rủi ro tương tự về việc đĩa đơn bị lỗi trong quá trình này), nhưng nếu nó thành công, bạn sẽ không cần phải lo lắng về những hạn chế tiềm ẩn khi loại bỏ vdev.

Nói chung, ZFS có thể rất dễ hỏng khi được sử dụng như bạn—với các vdev đĩa đơn không dự phòng. Có một trò đùa cũ rằng số 0 trong RAID0 là mức độ bạn phải quan tâm đến dữ liệu của mình. Nhóm ZFS gồm các vdev đĩa đơn về cơ bản giống như RAID0 từ quan điểm bảo mật dữ liệu. Lỗi của bất kỳ đĩa đơn nào có thể sẽ khiến bạn mất tất cả dữ liệu của mình. Ngay cả khi bạn có đủ khả năng để thay thế dữ liệu, hãy đảm bảo rằng bạn đang tính đến thời gian cần thiết để thực hiện việc thay thế đó. Nếu bạn có đủ khả năng chịu một hình phạt về hiệu suất để đổi lấy bảo mật dữ liệu, hãy cân nhắc việc đưa các đĩa của nhóm tương lai của bạn vào các vdev của RAIDz2. Nếu bạn có đủ khả năng đánh đổi dung lượng đĩa có thể sử dụng để bảo mật dữ liệu (và có thể tăng hiệu suất đọc), hãy cân nhắc đưa các đĩa của nhóm tương lai của bạn vào máy nhân bản vdev.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.