ZFS는 ID로 디스크를 교체합니다.

ZFS는 ID로 디스크를 교체합니다.

우연히 /dev/sda등을 사용하여 zpool을 만들었습니다. 나는 이것이 나쁜 생각이라는 것을 알고 있습니다. 단지 내 설정을 테스트하고 싶습니다. 알고 보니 너무 잘 작동해서 장치 이름을 잊어버리고 zpool을 NAS로 사용하기 시작했는데 여전히 sda, sdb및 을 사용하고 있습니다. 내 OS는 에서 실행됩니다. 따라서 내 zpool은 이미 정확히 약 16TB의 일부 데이터로 채워져 있습니다. 그렇다면 이름 대신 ID로 디스크를 사용하도록 기존 풀을 수정하는 것이 가능한지 궁금합니다.sdcsddsdesdX

내 NAS는 약 1년 동안 계속 실행되어 왔으며 한 번도 재부팅된 적이 없습니다. 지금 재부팅하고 일부 디스크 이름이 변경되면 zpool이 손상됩니까? (예: 나중에 새 디스크를 추가했기 때문에)

zpool export 및 를 사용할 수 있다고 읽었습니다 zpool import -d /dev/disk/by-id. 이로 인해 일부 재동기화가 시작됩니까? 아니면 내보내고 가져올 때 정확히 무슨 일이 발생합니까? 데이터의 양이 엄청나기 때문에 데이터를 복사할 필요가 없었으면 좋겠습니다. 너무 많아서 며칠이 걸렸습니다. 내 zpool은 raidz2 구성에서 실행 중이고 운영 체제는 Debian입니다.


이것이 내가 얻는 것입니다 zfs list all:

root@pve:~# zfs get all
NAME                                           PROPERTY                VALUE                    SOURCE
tank                                          type                    filesystem               -
tank                                          creation                Sat May 12 15:22 2018    -
tank                                          used                    1.00T                    -
tank                                          available               4.26T                    -
tank                                          referenced              981G                     -
tank                                          compressratio           1.02x                    -
tank                                          mounted                 no                       -
tank                                          quota                   none                     default
tank                                          reservation             none                     default
tank                                          recordsize              128K                     default
tank                                          mountpoint              /tank                    default
tank                                          sharenfs                off                      default
tank                                          checksum                on                       default
tank                                          compression             lz4                      local
tank                                          atime                   off                      local
tank                                          devices                 on                       default
tank                                          exec                    on                       default
tank                                          setuid                  on                       default
tank                                          readonly                off                      default
tank                                          zoned                   off                      default
tank                                          snapdir                 hidden                   default
tank                                          aclinherit              restricted               default
tank                                          createtxg               1                        -
tank                                          canmount                on                       default
tank                                          xattr                   on                       default
tank                                          copies                  1                        default
tank                                          version                 5                        -
tank                                          utf8only                off                      -
tank                                          normalization           none                     -
tank                                          casesensitivity         sensitive                -
tank                                          vscan                   off                      default
tank                                          nbmand                  off                      default
tank                                          sharesmb                off                      default
tank                                          refquota                none                     default
tank                                          refreservation          none                     default
tank                                          guid                    18018951160716445859     -
tank                                          primarycache            all                      default
tank                                          secondarycache          all                      default
tank                                          usedbysnapshots         100M                     -
tank                                          usedbydataset           981G                     -
tank                                          usedbychildren          47.5G                    -
tank                                          usedbyrefreservation    0B                       -
tank                                          logbias                 latency                  default
tank                                          dedup                   off                      default
tank                                          mlslabel                none                     default
tank                                          sync                    standard                 default
tank                                          dnodesize               legacy                   default
tank                                          refcompressratio        1.02x                    -
tank                                          written                 0                        -
tank                                          logicalused             1004G                    -
tank                                          logicalreferenced       997G                     -
tank                                          volmode                 default                  default
tank                                          filesystem_limit        none                     default
tank                                          snapshot_limit          none                     default
tank                                          filesystem_count        none                     default
tank                                          snapshot_count          none                     default
tank                                          snapdev                 hidden                   default
tank                                          acltype                 off                      default
tank                                          context                 none                     default
tank                                          fscontext               none                     default
tank                                          defcontext              none                     default
tank                                          rootcontext             none                     default
tank                                          relatime                off                      default
tank                                          redundant_metadata      all                      default
tank                                          overlay                 off                      default
tank@zfs-auto-snap_monthly-2019-05-13-1847    type                    snapshot                 -
tank@zfs-auto-snap_monthly-2019-05-13-1847    creation                Mon May 13 20:47 2019    -
tank@zfs-auto-snap_monthly-2019-05-13-1847    used                    0B                       -
tank@zfs-auto-snap_monthly-2019-05-13-1847    referenced              953G                     -
tank@zfs-auto-snap_monthly-2019-05-13-1847    compressratio           1.01x                    -
tank@zfs-auto-snap_monthly-2019-05-13-1847    devices                 on                       default
tank@zfs-auto-snap_monthly-2019-05-13-1847    exec                    on                       default
tank@zfs-auto-snap_monthly-2019-05-13-1847    setuid                  on                       default
tank@zfs-auto-snap_monthly-2019-05-13-1847    createtxg               6244379                  -
tank@zfs-auto-snap_monthly-2019-05-13-1847    xattr                   on                       default
tank@zfs-auto-snap_monthly-2019-05-13-1847    version                 5                        -

를 사용하여 마운트하려고 시도했지만 zfs mount -a디렉토리가 /tank비어 있지 않아 실패했습니다. 다른 ZFS 데이터 세트가 그 안에 있습니다...

root@pve:~# zpool list -v
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
tank   5.44T   987G  4.47T         -     1%    17%  1.00x  ONLINE  -
  ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M1KZNLPE  1.81T   326G  1.49T         -     1%    17%
  ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M1YV1ADT  1.81T   329G  1.49T         -     1%    17%
  ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M2CE10DJ  1.81T   332G  1.49T         -     1%    17%

답변1

디스크 이름이 변경되어도 zpool은 삭제되지 않습니다. 풀은 자동으로 가져오지 않을 가능성이 높지만 데이터가 손상되어서는 안 됩니다. 블록 장치 및 경로에 대해 하드 코딩과 같은 작업을 수행 /dev/sda하고 런타임 시 온전성 검사 없이 수행하는 스크립트나 메커니즘이 없다면 말이죠 . 그러나 일반적으로 귀하의 데이터는 안전합니다.

가져오기 풀 zpool import -d /dev/disk/by-id <pool-name>도 드물게 사용할 수 있습니다. 내가 아는 한 재동기화할 필요가 없습니다./etc/zfs/zpool.cache파일은 새 경로 및 디스크 메타데이터로도 업데이트됩니다.

관련 정보