Я не могу удалить «плохой» диск из пула zfs

Я не могу удалить «плохой» диск из пула zfs
  1. В пуле было 2 диска /dev/sde /dev/sdf

  2. Диск /dev/sde был поврежден, я исключил его из пула и заменил на новый диск. Рейд стал деградировать.

  3. После добавления нового диска /dev/sde в пул я получил следующую конфигурацию:

 zpool status
  pool: rpool
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: scrub repaired 0B in 0h25m with 0 errors on Wed Sep  2 18:32:39 2020
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            old     UNAVAIL      0     0     0
            sdf2    ONLINE       0     0     0
          sde2      ONLINE       0     0     0

Замена, офлайн, удаление "старого" всегда приводит к ошибке:

zpool replace rpool old

cannot open 'old': no such device in /dev

must be a full path or shorthand device name

В файле /etc/zfs/zpool.cache я вижу диск /dev/sde2/old

Как удалить старый диск, не перезапуская сервер и не удаляя массив (массив — /)?


root@v05:/# zpool replace rpool old sde2
invalid vdev specification
use '-f' to override the following errors:
/dev/sde2 is part of active pool 'rpool'

root@v05:/# zpool replace -f rpool old sde2
invalid vdev specification
the following errors must be manually repaired:
/dev/sde2 is part of active pool 'rpool'

sde уже является членом rpool.

Необходимо удалить старый диск (/dev/sde/old) из пула.

Ошибок при добавлении нового диска не возникло, все сделал точно как вы написали.

решение1

Задача решена.

здб

найдите идентификатор 15497986214547762579 для устройства /dev/sde/old и удалите:

zpool офлайн -f rpool 15497986214547762579

zpool отсоединить rpool 15497986214547762579

решение2

Вероятно, вы допустили ошибку при добавлении нового диска: вы выдали zpool add rpool <newdisk>, а нужно былозаменятьнеисправный диск. Другими словами, вам нужно было либо:

  • zpool replace rpool <olddisk> <newdisk>
  • zpool detach rpool <olddisk>; zpool attach rpool sdf( sdfявляясь другой зеркальной ногой).

Обратите внимание, как я написал attach, в то время как вы, вероятно, использовали addв своей команде zpool.

Как можно исправить эту проблему? С ZFS 0.7.x вам не повезло, так как никакие данные vdev нельзя удалить после добавления. СZFS 0.8.x можно удалитьИтак, если вы используете ZFS 0.7.x, вам нужно обновиться до 0.8.x в качестве первого шага. Затем вы должны выполнить указанную выше команду для замены неисправного диска.

решение3

Я сделал замену диска согласно документации Oracle. Теперь у меня следующий вывод команды:

root@v05:/# zpool заменить rpool старый sde2 неверная спецификация vdev используйте '-f' для переопределения следующих ошибок: /dev/sde2 является частью активного пула 'rpool'

root@v05:/# zpool replace -f rpool old sde2 неверная спецификация vdev следующие ошибки необходимо исправить вручную: /dev/sde2 является частью активного пула 'rpool'

Связанный контент