WWN 처리

WWN 처리

Ubuntu 16.04 Xenial에 번들로 제공되는 OpenZFS를 사용하고 있습니다.

/dev/disk/by-id/풀을 생성할 때 복원력을 위해 항상 일련 번호 (또는 /dev/disk/gptFreeBSD) 로 드라이브를 참조합니다 . 컴퓨터가 다시 시작되면 드라이브의 순서가 항상 동일하지는 않으며 /dev컴퓨터에 다른 드라이브가 있는 경우 풀이 올바르게 탑재되지 않을 수 있습니다.

예를 들어 zpool status14.04 시스템에서 실행하면 다음과 같은 결과가 나타납니다.

NAME                                  STATE     READ WRITE CKSUM
tank                                  ONLINE       0     0     0
  raidz1-0                            ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HUA722020ALA330_[..]  ONLINE       0     0     0

하지만 16.04에 다음(약어)을 사용하여 새 풀을 만들면:

zpool create pool raidz \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
    /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]

나는 이것을 얻습니다 zpool status:

NAME        STATE     READ WRITE CKSUM
tank        ONLINE       0     0     0
  raidz1-0  ONLINE       0     0     0
    sdf     ONLINE       0     0     0
    sde     ONLINE       0     0     0
    sdd     ONLINE       0     0     0
    sda     ONLINE       0     0     0

zpool은 심볼릭 링크를 참조하는 대신 심볼릭 링크를 따르는 것 같습니다.

풀을 생성할 때 16.04에서 zpool이 내 드라이브 참조를 따르도록 강제하는 방법이 있습니까? 아니면 그것이 여기서 무엇을 하고 있는지 의심하는 것이 잘못된 걸까요?

업데이트: 해결 방법

단서를 찾았다Github의 zfsonlinux가 해결 방법을 제안했습니다. 먼저 장치로 zpool을 만든 /dev/sdX후 다음을 수행하십시오.

$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN

zpool create가능하다면 초기 버전에서도 이 작업을 수행하고 싶습니다.

답변1

이 게시물이 약간 오래되었다는 것을 알고 있지만 답변이 있습니다. 가져온 후에는 캐시 파일을 업데이트해야 합니다. 이 예에서는 캐시 파일의 기본 위치를 보여줍니다.

$> sudo zpool export POOL
$> sudo zpool import -d /dev/disk/by-id POOL
$> sudo zpool import -c /etc/zfs/zpool.cache
$> sudo zpool status POOL
NAME                                  STATE     READ WRITE CKSUM
POOL                                  ONLINE       0     0     0
  raidz1-0                            ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HDS722020ALA330_[..]  ONLINE       0     0     0
    ata-Hitachi_HUA722020ALA330_[..]  ONLINE       0     0     0

답변2

WWN 처리

$ cd /dev/disk/by-id/
$ ls -l
… ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M5ZUJ4XE -> ../../sde
… ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M5ZUJ4XE-part1 -> ../../sde1
… ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M5ZUJ4XE-part9 -> ../../sde9
… wwn-0x50014ee2628c2228 -> ../../sde
… wwn-0x50014ee2628c2228-part1 -> ../../sde1
… wwn-0x50014ee2628c2228-part9 -> ../../sde9

드라이브 또는 드라이브 파티션은 by-id브랜드, 모델 이름 및 일련 번호를 기반으로 한 ID 외에도 이제 ID를 가질 수 있습니다 wwn-. 이것은 독특하다WWN(월드와이드 이름)드라이브 하우징에도 인쇄되어 있습니다.

두 가지 유형의 ID 모두 ZFS에서 제대로 작동하지만 WWN 정보는 덜 명확합니다. 이러한 WWN ID가아니요프로덕션 시스템(아직 내보내지 않은 루트 파티션 또는 ZFS 등)에서 참조하는 이러한 항목은 를 사용하여 간단히 삭제할 수 있습니다 sudo rm wwn-*. 저를 믿으세요. 제가 해냈습니다. 아무것도 잘못될 수 없어ZFS가 내보낸 상태인 경우그렇게 하기 전에.

결국 WWN ID는 sd드라이브 감지 중에 생성된 장치에 대한 심볼릭 링크일 뿐입니다. 시스템이 다시 시작되면 자동으로 다시 나타납니다. 내부적으로 Linux는 항상 sd장치를 참조합니다.

$ sudo zpool export pool0
$ sudo rm wwn-*
$ sudo zpool import -d /dev/disk/by-id/ pool0

여기에서 찾아보세요더 많은 ZFS가 풍부합니다!

답변3

가끔 사용해봤는데 zpool import -d /dev/disk/by-id별 효과가 없었어요.

나는 하나 이상의 설정에서 이것을 발견했습니다. 몇 가지 마법 논리를 수행하고 물리적으로 연결된 ZFS 장치를 표시하는 것 외에도 기본적으로 다음을 수행하는 가져오기 스크립트가 있습니다.

zpool import -d /dev/disk/by-id POOL
zpool export POOL
zpool import POOL

두 번째에는 스위치가 없어도 -d처음에 명시적인 명령을 사용하지 않았더라도 장치 ID로 가져옵니다.

이는 더 이상 필요하지 않은 몇 주 또는 몇 달(1~2년 전)의 ZFS 버그로 인한 것일 수 있습니다. 버그 보고서를 제출해야 할 것 같지만 이 문제를 해결하는 것은 간단합니다.

관련 정보