Ubuntu 16.04 Xenial에서 번들로 제공되는 OpenZFS를 사용 해보고 있습니다.
풀을 만들 때 항상 복원력을 위해 드라이브를 직렬 /dev/disk/by-id/
(또는 /dev/disk/gpt
FreeBSD)로 참조합니다 . /dev
머신이 재부팅 될 때 드라이브가 항상 같은 순서로 정렬되는 것은 아니며 머신에 다른 드라이브가있는 경우 풀이 올바르게 마운트되지 않을 수 있습니다.
예를 들어 zpool status
14.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를 들어. /dev/sdX
먼저 장치를 사용 하여 zpool을 만든 후 다음을 수행하십시오.
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
나는 zpool create
가능하다면 초기에 이것을 할 수 있기를 여전히 선호한다 .
zfs send
데이터를 새 풀로 복사 하는 데 사용 합니다. 실제로, raid-z는 한 번에 6 개 또는 8 개의 트랜스 코딩 작업을 실행하지 않는 한 성능이 중요하지 않은 mythtv 상자에 적합합니다. 내 /home
디렉토리가 있는 풀에서 미러 쌍으로 변경하면 매우 눈에 .니다.
zfs export
및zfs import -d
작동합니다. BTW, 당신이 정말로 모든 바이트 공간을 필요로 하지 않는 한 , raidz보다는 2 개의 미러링 된 쌍을 사용하십시오. raidz의 성능은 raid-5보다 우수하지만 raid-10 또는 zfs 미러 쌍보다 훨씬 나쁩니다. 미러 쌍으로 구성된 풀을 확장하는 것이 더 쉽고 한 번에 두 개의 디스크 만 추가하면됩니다. raidz를 사용하면 각 드라이브를 더 큰 드라이브로 교체해야합니다. 모든 드라이브를 교체 한 경우에만 수영장에 더 많은 공간이 있습니다.