замена диска в корневом пуле zfs nexenta
Применимость: Nexenta
Слова для поиска:
Задача:
Вышел из строя диск в коневом пуле
root@storage2:~# zpool status pool: syspool 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://www.sun.com/msg/ZFS-8000-4J scan: none requested config: NAME STATE READ WRITE CKSUM syspool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 UNAVAIL 0 247 0 corrupted data errors: No known data errorsКак его заменить чтобы была возможность загрузки системы с любого диска?
Решение:
Если отказ диска приводит к невозможности загрузки системы, загрузку перед заменой диска корневого пула придется выполнять с других носителей, например с компакт-диска или из сети.
- Подключите требуемые кабели к диску, подготовленному для замены.
- Убедитесь, что новый диск имеет метку SMI и подраздел 0.
См. информацию об изменении метки диска, предназначенного для корневого пула на следующей странице: http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
- Подключите новый диск к корневому пулу.
- Убедитесь, что система его видит
root@storage2:~# prtvtoc /dev/rdsk/c1t?d?s0 | grep partition | awk '{print $2}' /dev/rdsk/c1t0d0s0 /dev/rdsk/c1t1d0s0 /dev/rdsk/c1t2d0s0
- Неисправный диск нужно отправить его в офлайн, чтобы zfs не пыталась с него что-либо читать или записывать на него:
root@storage2:~# zpool offline syspool c1t1d0s0
- Проверяем состояние пула:
root@storage2:~# zpool status pool: syspool state: DEGRADED status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://www.sun.com/msg/ZFS-8000-9P scan: none requested config: NAME STATE READ WRITE CKSUM syspool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 OFFLINE 0 247 0 errors: No known data errors
- Чтобы новый диск мог быть добавлен в пул его надо подготовить - создать раздел нужного типа, установить метку SMI и подраздел 0.
fdisk /dev/rdsk/c1t2d0p0 Total disk size is 2088 cylinders Cylinder size is 16065 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Solaris2 1 2087 2087 100
- Добавляем в пул новый исправный диск c1t2d0s0
zpool attach syspool c1t0d0s0 c1t2d0s0
- Проверяем состояние пула
root@storage2:~# zpool status pool: syspool state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Wed Aug 1 08:04:31 2012 504M scanned out of 1.98G at 8.39M/s, 0h3m to go 503M resilvered, 24.85% done config: NAME STATE READ WRITE CKSUM syspool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t2d0s0 ONLINE 0 0 0 (resilvering) errors: No known data errors
- Теперь можно установить на диск загрузчик
installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t2d0s0 stage1 written to partition 0 sector 0 (abs 16065) stage2 written to partition 0, 274 sectors starting at 50 (abs 16115)
- Неисправный диск теперь можно удалить и проверить перезагрузку
zpool detach syspool c1t1d0s0
Настройка автоматической загрузки системы с нового диска выполняется либо командой eeprom, либо командой setenv из загрузочного ППЗУ SPARC, либо перенастройкой BIOS SETUP для аррхитектуры x86*.