У меня есть пул, который содержит диск только с несколькими ошибками. Я хотел убрать те ошибки и видеть, возвратились ли они, прежде чем я купил новый диск:
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.
Как я возвращаю этот диск онлайн?
Со справкой от этого вопроса и его ответов я смог получить эту работу (в настоящее время повторно серебрящий). Любым разработчикам 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
, но я не попробовал это.