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

Solaris 10 x86 - попытка замены диска в zpool

У меня возникли проблемы с заменой диска в существующем zpool в системе под управлением Solaris 10 на процессоре x86. Изначально zpool был создан с двумя зеркальными слоями. Один из дисков вышел из строя, поэтому я физически заменил его на новый. Я запустил prvtoc и fmthard, чтобы скопировать метку с рабочего диска на новый:

prtvtoc /dev/rdsk/c1t0d0s2 >/tmp/c1t0d0s2.out
fmthard -s /tmp/c1t0d0s2.out >/dev/rdsk/c1t1d0s2

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

$ zpool online pool c1t1d0s6 
warning: device 'c1t1d0s6' onlined, but remains in faulted state

Результат zpool status -v:

NAME          STATE     READ WRITE CKSUM
pool          DEGRADED     0     0     0
mirror-0    DEGRADED     0     0     0
c1t0d0s6  ONLINE       0     0     0
c1t1d0s6  UNAVAIL      0     0     0  corrupted data

(c1t1d0 - замененный диск.)

Затем я снова отключил c1t1d0 и попытался запустить команду zpool replace, но это тоже не сработало:

$ zpool replace pool c1t1d0s6
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t1d0s6 overlaps with /dev/dsk/c1t1d0s2

Кто-нибудь знает, что происходит? Безопасно ли использовать флаг '-f'?

Редактировать: После запуска zpool replace -f я получаю:

pool: pool
state: DEGRADED
status: The pool is formatted using an older on-disk format.  The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: none requested
config:

    NAME                STATE     READ WRITE CKSUM
    pool                DEGRADED     0     0     0
      mirror-0          DEGRADED     0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     UNAVAIL      0     0     0  insufficient replicas
          c1t1d0s6/old  OFFLINE      0     0     0
          c1t1d0s6      UNAVAIL      0   342     0  experienced I/O failures

Я вижу ошибки на новом диске в выводе iostat -e. Думаю, новый диск тоже может быть плохим?

Редактировать 2: Я не знаю, что происходит. Я попробовал другой диск с той же процедурой. После запуска zpool replace -f пул zfs запустил очистку, но вывод состояния:

  pool: pool
 state: ONLINE
 status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
 action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
 scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool              ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

После отключения c1t1d0s6 вывод состояния zpool будет следующим:

  pool: pool
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
    still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
    pool will no longer be accessible on older software versions.
scrub: scrub completed after 12h56m with 0 errors on Wed Aug 29 06:49:16 2012
config:

    NAME                STATE     READ WRITE CKSUM
    pool                ONLINE       0     0     0
      mirror-0          ONLINE       0     0     0
        c1t0d0s6        ONLINE       0     0     0
        replacing-1     ONLINE   5.54M 19.9M     0
          c1t1d0s6/old  UNAVAIL      0     0     0  corrupted data
          c1t1d0s6      UNAVAIL      0     0     0  corrupted data

Я не понимаю. Разве система не может заменить c1t1d0s6 с помощью зеркала на c1t0d0s6?

Проверьте кабели или салазки привода и слот. Шумное соединение SATA приведет к ошибкам, и fmadm использует эту информацию для определения неисправности устройства. У меня были диски, которые я считал плохими, но ZFS просто замечала, что не получает надежных данных. Заметил защемленный кабель SATA, заменил и побежал zpool clear и zpool scrub, ошибок больше нет.

Вы удалили предупреждения в fmadm? И zpool clear... Можно безопасно запустить zpool replace с -f switch, но я думаю, что ваше утверждение неверно, если вы еще не удалили плохой диск.

http://docs.oracle.com/cd/E19253-01/819-5461/gbcet/index.html