ZFS на Linux “никакое такое устройство в пуле”

У меня есть пул, который содержит диск только с несколькими ошибками. Я хотел убрать те ошибки и видеть, возвратились ли они, прежде чем я купил новый диск:

me@server:/$ sudo zpool status tank
  pool: tank
 state: DEGRADED
status: One or more devices are faulted in response to persistent errors.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Replace the faulted device, or use 'zpool clear' to mark the device
        repaired.
  scan: scrub repaired 0 in 7h1m with 0 errors on Sat May 24 20:44:13 2014
config:

        NAME                                            STATE     READ WRITE CKSUM
        tank                                            DEGRADED     0     0     0
          raidz2-0                                      DEGRADED     0     0     0
            ata-ST3000DM001-1CH166_Z1F1HTEW             ONLINE       0     0     0
            ata-ST3000DM001-1CH166_Z1F1HDXJ             ONLINE       0     0     0
            ata-ST3000DM001-1CH166_Z1F1J33Y             FAULTED      9     1     0  too many errors
            ata-ST3000DM001-1CH166_Z1F1HM7F             ONLINE       0     0     0
            ata-ST3000DM001-1CH166_Z1F1HE23             ONLINE       0     0     0
            ata-ST3000DM001-1CH166_Z1F175HQ             ONLINE       0     0     0
            ata-ST3000DM001-1CH166_Z1F1K3TV             ONLINE       0     0     0
            ata-ST3000DM001-1CH166_Z1F1D1XR             ONLINE       0     0     0
        logs
          ata-SSD2SC120GS4DH08B-T_PNY10130000139160634  ONLINE       0     0     0
        cache
          ata-SSD2SC120GS4DH08B-T_PNY10130000139160672  ONLINE       0     0     0

errors: No known data errors

Я offlined диск рассматриваемое использование guid полученный из zdb команда:

zpool offline tank 12956315685006632708

Я очистил ошибки:

zpool clear tank 12956315685006632708

Затем я попробовал к онлайн диску, но был встречен следующим:

zpool online tank 12956315685006632708
cannot online 12956315685006632708: no such device in pool

Я попытался заменить GUID с ata-ST3000DM001-1CH166_Z1F1J33Y и с /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F1J33Y но я получаю те же результаты.

Я также пытался использовать replace команда со всеми вышеупомянутыми идентификаторами без удачи.

Я читал о a cfgadm управляйте, чтобы я, возможно, должен был работать для "ненастраивания/реконфигурированного" диска, но это, кажется, не доступно Ubuntu.

Как я возвращаю этот диск онлайн?

0
задан 6 March 2015 в 23:28

1 ответ

Со справкой от этого вопроса и его ответов я смог получить эту работу (в настоящее время повторно серебрящий). Любым разработчикам ZFS, читающим это, операция замены диска должна быть сделана намного более легкой/полной (и дурак) доказательство. После начальной настройки и на достаточно длинной временной шкале единственная операция, которую должен будет в конечном счете сделать каждый пользователь ZFS, заменить диск. Но я отступаю.

В моем случае я не хотел заменять свой диск, я только хотел очистить его отказы и получить его назад отказ онлайн, свободный, таким образом, я мог определить, должен ли диск на самом деле был быть заменен. Мое обоснование для желания сделать это равнялось 1.) система шла в течение почти года без перезагрузки, таким образом, разрядная гниль является возможностью 2.) количество ошибок было довольно небольшим.

Прием, которым это казалось для меня, должен был удалить разделы из рассматриваемого диска. Сначала я должен был определить который устройство воздействовать на. Вы могли определить это через процесс использования устранения zdb, но я использовал lshw для получения всей информации, мне было нужно сразу. В основном я хотел коррелировать устройство zpool status говорил мне, перестал работать к a /dev/sdX устройство (если Вы не знакомы с less просто используйте/вниз ключи для показа больше/меньше и q ключ к завершенному).

root@server:/# lshw|less
...
              *-disk:2
                   description: ATA Disk
                   product: ST3000DM001-1CH1
                   vendor: Seagate
                   physical id: 0.2.0
                   bus info: scsi@0:0.2.0
                   logical name: /dev/sdd
                   version: CC24
                   serial: Z1F1J33Y
                   size: 2794GiB (3TB)
                   capacity: 2794GiB (3TB)
                   capabilities: 15000rpm gpt-1.00 partitioned partitioned:gpt
                   configuration: ansiversion=6 guid=52d25a12-120a-1c40-92a1-0be436c2d642 sectorsize=4096
                 *-volume:0
                      description: OS X ZFS partition or Solaris /usr partition
                      vendor: Solaris
                      physical id: 1
                      bus info: scsi@0:0.2.0,1
                      logical name: /dev/sdd1
                      serial: f25724a4-dd55-764c-af34-9479521854b9
                      capacity: 2794GiB
                      configuration: name=zfs
                 *-volume:1
                      description: reserved partition
                      vendor: Solaris
                      physical id: 9
                      bus info: scsi@0:0.2.0,9
                      logical name: /dev/sdd9
                      serial: 89eeeedb-e3a0-4940-8a50-d3d7506ad603
                      capacity: 8191KiB
...

Здесь я вижу это /dev/sdd диск, который я хотел. Я затем удалил разделы из того диска:

root@server:/# fdisk -l /dev/sdd

Затем просто следуйте за экранными подсказками для удаления раздела. Вот хорошее руководство. После этого следующая команда наконец работала:

root@server:/# zpool replace tank 12956315685006632708 /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F1J33Y

guid (что длинное количество), был получен с помощью zdb команда. Я думаю в конце, который я, возможно, смог использовать online команда вместо replace, но я не попробовал это.

1
ответ дан 3 August 2019 в 13:36

Другие вопросы по тегам:

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