ZFS 풀에서 온라인 디스크의 ID를 어떻게 얻을 수 있습니까?


1

오프 사이트 백업에 사용하기 위해 미러 된 ZFS zpool (ZoL 사용) 내외부에서 물리 디스크를 회전시킵니다. udev 규칙을 사용하여 스왑되는 드라이브에 응답하는 프로세스를 간소화합니다.

현재 드라이브를 삽입 할 때 zfs attach풀 내에서 기존 드라이브의 이름 이 필요한를 사용 합니다. 지금은 오프 사이트로 절대 가지 않는 디스크 중 하나에 하드 코드되어 있습니다.

따라서 ID를 하드 코딩하는 대신 대상 풀의 온라인 디스크 ID를 어떻게 얻을 수 있습니까? 현재 나는 그것을 파지하면서 놀고 zpool status있지만 더 나은 옵션이 있기를 바랐습니다.


증분 스냅 샷을 사용 zfs send하고 zfs recv오프 사이트 백업을 달성 하는 것이 더 안전하지 않습니까?
Darth Android

@DarthAndroid는 확실하지만 완전히 다른 주제입니다.
STW

왜 사용하지 zpool onlinezpool offline? 풀과 장치 이름이 필요합니다. 장치 이름은 udev에 의해 은색 플래터 (장착 용이 아님)로 전달되어야하며 풀이 zdb <device> -l하나만있는 경우 풀 이름을 장치에서 쉽게 추출 하거나 하드 코딩 할 수 있습니다 . ZFS는 온라인 상태가되면 풀의 오래된 장치를 자동으로 다시 실버합니다.
CVn

답변:


0

지금 zfs-online-disks.sh은 온라인 디스크를 꺼내는 작은 스크립트를 작성 했습니다 zpool status.

#!/bin/bash

# Return a list of online disks for a storage pool

ONLINE=$(zpool status $1 | grep -Po "\S*(?=\s*ONLINE)")

while read -r line; do
  if ! [ -b "/dev/disk/by-id/$line" ]; then
    continue
  fi
  echo $line
done <<< "$ONLINE"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.