Tôi gặp sự cố lặp lại với nhóm zfs trong đó zfs ngừng nhận dạng các thiết bị vật lý của chính nó, được gắn nhãn thích hợp (hoặc vì vậy nó xuất hiện).

Ubuntu 20.04.2 LTS
5.11.0-44-generic #48~20.04.2-Ubuntu SMP Tue Dec 14 15:36:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
libzfs2linux/now 0.8.3-1ubuntu12.11 amd64 [installed,upgradable to: 0.8.3-1ubuntu12.13]
zfs-zed/now 0.8.3-1ubuntu12.11 amd64 [installed,upgradable to: 0.8.3-1ubuntu12.13]
zfsutils-linux/now 0.8.3-1ubuntu12.11 amd64 [installed,upgradable to: 0.8.3-1ubuntu12.13]

Các ví dụ mẫu.

  1. Tôi có thể tạo một nhóm, kết nối đĩa hoàn toàn không liên quan (ví dụ: USB, bên ngoài) và khi khởi động lại (với đĩa USB trong) zfs báo cáo một trong các đĩa từ nhóm của nó bị thiếu.
  2. Điều tương tự cũng xảy ra với sự thay đổi bộ điều khiển cho một (hoặc có thể nhiều hơn) ổ đĩa. Tất cả các đĩa vật lý ở đó, tất cả các nhãn / uuids dường như ở đó, những gì thay đổi là việc gán ký tự thiết bị.

Thật khó tin rằng zfs tập hợp nhóm dựa trên thứ tự gán thiết bị hệ thống mà bỏ qua nhãn / uuids của nó nhưng đây là cách nó đơn giản trông giống như vậy.

    [email protected]:~$ zpool status
          pool: mmdata
         state: DEGRADED
        status: One or more devices could not be used because the label is missing or
            invalid.  Sufficient replicas exist for the pool to continue
            functioning in a degraded state.
        action: Replace the device using 'zpool replace'.
           see: http://zfsonlinux.org/msg/ZFS-8000-4J
          scan: scrub in progress since Sun Jan  9 13:03:23 2022
            650G scanned at 1.58G/s, 188G issued at 468M/s, 22.7T total
            0B repaired, 0.81% done, 0 days 14:00:27 to go
        config:

        NAME                                          STATE     READ WRITE CKSUM
        mmdata                                        DEGRADED     0     0     0
          raidz1-0                                    DEGRADED     0     0     0
            ata-HGST_HDN726040ALE614_K7HJG8HL         ONLINE       0     0     0
            6348126275544519230                       FAULTED      0     0     0  was /dev/sdb1
            ata-HGST_HDN726040ALE614_K3H14ZAL         ONLINE       0     0     0
            ata-HGST_HDN726040ALE614_K4K721RB         ONLINE       0     0     0
            ata-WDC_WD40EZAZ-00SF3B0_WD-WX12D514858P  ONLINE       0     0     0
            ata-ST4000DM004-2CV104_ZTT24X5R           ONLINE       0     0     0
            ata-WDC_WD40EZAZ-00SF3B0_WD-WX62D711SHF4  ONLINE       0     0     0
            sdi                                       ONLINE       0     0     0
    
    errors: No known data errors

[email protected]:~$ blkid 
/dev/sda1: UUID="E0FD-8D4F" TYPE="vfat" PARTUUID="7600a192-967b-417f-b726-7f5524be71a5"
/dev/sda2: UUID="9d8774ec-051f-4c60-aaa7-82f37dbaa4a4" TYPE="ext4" PARTUUID="425f31b2-f289-496a-911b-a2f8a9bb5c25"
/dev/sda3: UUID="e0b8852d-f781-4891-8e77-d8651f39a55b" TYPE="ext4" PARTUUID="a750bae3-c6ea-40a0-bdfa-0523e358018b"
/dev/sdb1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="13253481390530831214" TYPE="zfs_member" PARTLABEL="zfs-5360ecc220877e69" PARTUUID="57fe2215-aa69-2f46-b626-0f2057a2e4a7"
/dev/sdd1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="17929921080902463088" TYPE="zfs_member" PARTLABEL="zfs-f6ef14df86c7a6e1" PARTUUID="31a074a3-300d-db45-b9e2-3495f49c4bee"
/dev/sde1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="505855664557329830" TYPE="zfs_member" PARTLABEL="zfs-6326993c142e4a03" PARTUUID="37f4954d-67fd-8945-82e6-d0db1f2af12e"
/dev/sdg1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="1905592300789522892" TYPE="zfs_member" PARTLABEL="zfs-9d379d5bfd432a2b" PARTUUID="185eff00-196a-a642-9360-0d4532d54ec0"
/dev/sdi1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="15862525770363300383" TYPE="zfs_member" PARTLABEL="zfs-3c99aa22a45c59bf" PARTUUID="89f1600a-b58e-c74c-8d5e-6fdd186a6db0"
/dev/sdh1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="15292769945216849639" TYPE="zfs_member" PARTLABEL="zfs-ee9e1c9a5bde878c" PARTUUID="2e70d63b-00ba-f842-b82d-4dba33314dd5"
/dev/sdf1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="5773484836304595337" TYPE="zfs_member" PARTLABEL="zfs-ee40cf2140012e24" PARTUUID="e5cc3e2a-f7c9-d54e-96de-e62a723a9c3f"
/dev/sdc1: LABEL="mmdata" UUID="16683979255455566941" UUID_SUB="6348126275544519230" TYPE="zfs_member" PARTLABEL="zfs-0d28f0d2715eaff8" PARTUUID="a328981a-7569-294a-bbf6-9d26660e2aad"`

Đối với nhóm ở trên, điều gì đã xảy ra, một trong những thiết bị trước đó bị lỗi. Tôi kết nối một đĩa thay thế với bộ điều khiển thứ hai và thực hiện thay thế. Nó đã thành công. Các hồ bơi đã được ok. Tiếp theo, thiết bị bị lỗi được xóa khỏi nhóm và được thay thế vật lý bằng đĩa thay thế (thay đổi bộ điều khiển). Sau khi khởi động lại, tôi nhận được nó ở trạng thái xuống cấp với một trong các thiết bị được báo cáo là bị thiếu. Quá trình chà được kích hoạt bởi lệnh zpool clear.

Vì vậy, như nó cho thấy từ blkid, có 8 đĩa, tất cả đều được phân vùng và dán nhãn (tôi nghĩ) đúng cách, nhưng một trong những thiết bị không được công nhận là một phần của pool. Làm gì trong những tình huống như vậy? Thật là khó chịu vô cùng. Việc phục hồi hồ bơi mất nhiều ngày.

answer

Nếu bạn thêm bất kỳ thiết bị nào vào pool bằng /dev/sdXđường dẫn, nó có thể thay đổi, vì nhân Linux không đảm bảo bất kỳ thứ tự nào cho các mục ổ đĩa đó.

Trong đầu ra của bạn, bạn có /dev/sdivới tư cách là một thành viên của nhóm. Điều này có thể thay đổi bất cứ lúc nào.

Bạn nên thử zpool export mmdatađặt mảng ở chế độ ngoại tuyến, sau đó zpool import mmdata -d /dev/disk/by-idnhập lại bằng các ID liên tục cho các ổ đĩa.