ZFSプールでオンラインディスクのIDを取得するにはどうすればよいですか?


1

ミラー化されたZFS zpool(ZoLを使用)の物理ディスクを出し入れして、オフサイトバックアップに使用します。プロセスを合理化するために、スワップされているドライブに応答するためにudevルールを使用しています。

現在、ドライブを挿入するときzfs attachに、プール内の既存のドライブの名前を必要とするを使用します。現時点では、オフサイトにならないディスクの1つにハードコードされています。

それでは、IDをハードコーディングするのではなく、ターゲットプールのオンラインディスクのIDを取得するにはどうすればよいですか?現在、私はそれをgrepすることをいじってzpool statusいますが、より良いオプションがあるかもしれないと思っていました。


それはとの増分スナップショットを使用する方が安全ではないでしょうzfs sendし、zfs recvオフサイトのバックアップを実現するために?
ダースアンドロイド

@DarthAndroidは確かですが、それはまったく別のトピックです。
STW

なぜzpool onlineandを使用しないのzpool offlineですか?それにはプール名とデバイス名が必要です。デバイス名は、udevによってシルバープラッター(駄洒落なし)で渡され、プール名は、プールがzdb <device> -l1つしかない場合はデバイスから簡単に抽出できます。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.