Como posso obter o ID de um disco on-line em um pool do ZFS?

1

Giro os discos físicos para dentro e para fora do zpool zFS espelhado (usando ZoL) para usar em backups externos; para ajudar a simplificar o processo Eu tenho usado as regras do udev para responder às unidades que estão sendo trocadas.

Atualmente, quando uma unidade é inserida, uso um zfs attach , que exige o nome de uma unidade existente no pool. Por enquanto, é codificado para um dos discos que nunca sai do site.

Então, em vez de codificar um id, como posso obter o ID de um disco on-line para o pool de destino? Atualmente, estou brincando com o grepping de zpool status , mas esperava que houvesse uma opção melhor.

    
por STW 01.04.2015 / 17:53

1 resposta

0

Por enquanto, eu montei um pequeno script, zfs-online-disks.sh , que remove os discos on-line de 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"
    
por 02.04.2015 / 17:13