드라이브를 연결하면 Zpool의 성능이 저하됩니다.

드라이브를 연결하면 Zpool의 성능이 저하됩니다.

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오류도 보고되지 않았습니다.

관련 정보