ZFS 로그 장치를 추가하면 ZFS 어레이에 어떤 영향이 있는지 테스트하기 위해 zpool을 만들고 몇 가지 벤치마크를 수행한 다음 SSD를 연결하여 ZIL 역할을 하기로 결정했습니다.
불행하게도 zpool을 생성한 후 SSD를 연결하거나 풀을 생성한 후 SSD를 분리한 후(풀 생성 후 드라이브 문자 변경을 유발하는 모든 것) 재부팅할 때마다 풀의 성능이 저하됩니다. 실행하여 표시sudo zpool status
pool: zpool1
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: none requested
config:
NAME STATE READ WRITE CKSUM
zpool1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
sda ONLINE 0 0 0
1875547483567261808 UNAVAIL 0 0 0 was /dev/sdc1
문제는 다음과 같이 드라이브 문자를 사용하여 풀을 만들었다는 사실에서 비롯된 것 같습니다.
sudo zpool create -f zpool1 mirror /dev/sdb /dev/sdc
질문
운 좋게도 이것은 단지 테스트일 뿐이며 데이터 손실 위험이 없습니다. 그러나 실제 시나리오에서 이런 일이 발생한다면 이 문제를 복구하는 가장 좋은 방법은 무엇입니까? 분명히 드라이브는 여전히 존재하며 사용할 준비가 되어 있습니다.
/dev/sda
나중에 이 문제를 피하기 위해 드라이브 문자를 사용하지 않고 zpool을 만드는 더 좋은 방법이 있습니까 ? 나는 그것을 알아 차렸다우분투 문서에 따르면저와 같은 방법으로 zpool을 생성합니다.
추가 정보
- OS: 우분투 16.04 서버 4.10
zfsutils-linux
패키지 설치에서 zfs 설치
답변1
Dexter_Kane의 도움을 받은 후레벨 1 기술 포럼, 대답은 /dev/disk/by-id/...
풀을 생성할 때 대신 경로를 사용하는 것입니다.
예:
sudo zpool create zpool1 mirror \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 \
/dev/disk/by-id/ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H
기존 풀 변환 및 수정
좋은 소식은 기존 ZFS RAID 어레이를 이러한 레이블을 사용하도록 "변환"하여 향후 이런 일이 발생하는 것을 방지하고 이러한 상황이 이미 발생한 경우 성능이 저하된 어레이를 해결할 수도 있다는 것입니다.
sudo zpool export [pool name]
sudo zpool import -d /dev/disk/by-id [pool name]
풀 데이터 세트가 사용 중이 아닌지 확인하면 됩니다. 예를 들어 풀 내부에서는 명령을 실행하지 말고 NFS 등을 통해 공유되지 않는지 확인하세요.
변환을 수행한 후의 출력은 sudo zpool status
다음과 유사해야 합니다.
pool: zpool1
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zpool1 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N0PKS6S7 ONLINE 0 0 0
ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N7VXZF6H ONLINE 0 0 0
테스트 수행
나는 그것을 테스트했습니다:
- by-id 경로를 사용하면 문제가 발생하지 않습니다.
- 풀 성능이 저하된 상태에서 일부 데이터를 쓴 후에도 내보내기/가져오기를 수행한 후에도 모든 파일을 읽을 수 있었고
sudo zpool status
오류도 보고되지 않았습니다.