Назад | Перейти на главную страницу

zpool vdevs ранее зеркалировались, теперь не зеркалируются, не могут повторно зеркалировать

На FreeBSD 10.2-RELEASE до вчерашнего дня у меня была следующая установка в среде разработки (к счастью):

    NAME                          STATE     READ WRITE CKSUM
    bigpool                       ONLINE       0     0     0
      mirror-0                    ONLINE       0     0     0
        multipath/faba_lun0       ONLINE       0     0     0
        multipath/fabb_lun0       ONLINE       0     0     0
      mirror-1                    ONLINE       0     0     0
        multipath/faba_lun1       ONLINE       0     0     0
        multipath/fabb_lun1       ONLINE       0     0     0
      mirror-2                    ONLINE       0     0     0
        multipath/faba_lun2       ONLINE       0     0     0
        multipath/fabb_lun2       ONLINE       0     0     0
      mirror-3                    ONLINE       0     0     0
        multipath/faba_lun3       ONLINE       0     0     0
        multipath/fabb_lun3       ONLINE       0     0     0

Тогда я подумал, что было бы неплохо попробовать «отключить» 4-е зеркало (mirror-3) в качестве некоего рудиментарного теста HA.

zpool detach bigpool multipath/faba_lun3

Затем, подумав, что это плохая идея, я снова добавил диск:

zpool add bigpool multipath/faba_lun3

Теперь у меня есть такая настройка:

    NAME                          STATE     READ WRITE CKSUM
    bigpool                       ONLINE       0     0     0
      mirror-0                    ONLINE       0     0     0
        multipath/faba_lun0       ONLINE       0     0     0
        multipath/fabb_lun0       ONLINE       0     0     0
      mirror-1                    ONLINE       0     0     0
        multipath/faba_lun1       ONLINE       0     0     0
        multipath/fabb_lun1       ONLINE       0     0     0
      mirror-2                    ONLINE       0     0     0
        multipath/faba_lun2       ONLINE       0     0     0
        multipath/fabb_lun2       ONLINE       0     0     0
      multipath/faba_lun3         ONLINE       0     0     0
      multipath/fabb_lun3         ONLINE       0     0     0

Я не могу повторно прикрепить два lun3 к зеркалу-3:

root# zpool attach bigpool multipath/faba_lun3 multipath/fabb_lun3
invalid vdev specification
use '-f' to override the following errors:
/dev/multipath/fabb_lun3 is part of active pool 'bigpool'

Кажется, что находится в уловке-22 - Невозможно отразить, потому что оба vdev уже являются частью пула (поэтому присоединение не имеет смысла), и не могут удалить vdev, потому что они не регистрируются, не являются резервными и т. Д. .

Кто-нибудь знает способ «повторно включить» это зеркало с существующими vdev пула? Думаю, это похоже на онлайн-ретрансляцию.

Спасибо

sc.

Мне кажется, у вас был пролет из 4-х зеркал, теперь после некоторых манипуляций у вас есть размах из 3-х зеркал и двух одинарных приводов. Мне неясно, какие именно манипуляции к этому привели, но я сомневаюсь, что это были detaches, потому что detach обычно дает вам отдельный диск, который не помечен как часть какого-либо пула.

В то же время это нормально, что ты не можешь attach друг другу двое vdevs которые уже являются частью активного пула. А так как они являются промежутками, их невозможно извлечь, это известный недостаток zfs.

Я могу только предположить, что можно добавить два пустых диска для зеркалирования каждого из них, но я не уверен, что это выполнимо, хотя вы можете попробовать это при одном условии: избегать -f флаг при этом.