Как я могу получить идентификатор сетевого диска в пуле ZFS?

1006
STW

Я вращаю физические диски в зеркальном ZFS zpool (используя ZoL) и использую его для резервного копирования за пределы площадки; чтобы упростить процесс, я использовал правила udev для ответа на замену дисков.

В настоящее время, когда диск вставлен, я использую zfs attach, который требует имя существующего диска из пула. На данный момент он жестко запрограммирован на один из дисков, который никогда не отключается.

Итак, вместо того, чтобы жестко кодировать идентификатор, как я могу получить идентификатор сетевого диска для целевого пула? В настоящее время я играю с этим, zpool statusно надеялся, что найдется лучший вариант.

1
Не безопаснее ли использовать инкрементные снимки с `zfs send` и` zfs recv` для создания резервных копий за пределами сайта? Darth Android 9 лет назад 0
@DarthAndroid конечно, но это совсем другая тема. STW 9 лет назад 0
Почему бы не использовать `zpool online` и` zpool offline`? Для этого потребуются имена пула и устройства; имя устройства должно быть передано вам на серебряном блюде (без каламбура) udev, а имя пула может быть легко извлечено из устройства с помощью `zdb-l` или, возможно, жестко запрограммирован, если задействован только один пул. ZFS автоматически переустанавливает устаревшее устройство в пуле при его подключении к сети. a CVn 9 лет назад 0

1 ответ на вопрос

0
STW

For now I put together a little script, zfs-online-disks.sh that pulls the online disks out of 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" 

Похожие вопросы