Примерно с неделю назад мне пришллось столкнуться с ситуацией - вылетел жёсткий диск на Sun'овском сервере, пришлось его заменить, приведу команды и последовательность действий, которые были предприняты в этой связи:
для начала мне надо было определить конфигурацию устройств хранения, тут пригодилась команда
**metastat**
я обнаружил что диски объединены в raid 0+1 - не самый эффективный рэйд на мой взгляд, но sun придерживается другого мнения, самое интересное, что Sun Volume Manager по какой-то причине написан таким образом, что stripe/concat массивы(мета-устройства) он создаёт только из физических устройств, а raid 1 создаётся только из stripe/concat метаустройств, кстати об этой особенности упоминается в Sun'овском курсе по SVM, и в man'е однако упоминание лишь вскользь...
вобщем-то практически сразу бросились девайсы, для которых maintenance needed, следующим шагом было задать команду:
**cfgadm -x unconfigure <device>**
что привело к загранию синего огонька на устройстве, ждём останоки шпинделя с диками и можно вынимать дисковод...
Дальше надо вставить замену - такой же по ёмкости аппарат, или более ёмкий, в моём случае это был Ultra SCSI 320 винчестер ёмкостью 76 гигабайт. Следующим шагом надо вписать в командной строке
**cfgadm -x configure /dev/rdsk/c??t??d??s??**
то есть сказать системе что у неё появилось новое устройство, мало того с ним уже можно работать(дать солярису официальное разрешение на задействование устройства SunOS и Sun'овские железки разрабатываются для вояк, поэтому всё так строго)
Шаг номер следующий - убедиться, что файлы устройств на месте и связаны со свежеобретённым устройством:
**devfsadm -C -v**
это для вытирания файлов устройств, не связанных с устройствами, и
**devfsadm -c disk**
для создания файлов устройств ассоциированных с нашим дисководом.
Следующим делом будет воспроизведение картины с имеющейся половинки рэйда,
это делается командой
**format**
она интерактивная и довольно простая, самое главное - новый диск нарезать на слайсы также, как нарезана рабочая половинка рэйда.
Удаляем несуществуещие реплики метабазы данных о массивах:
**metadb -d -f <device>**
где device - это это слайс на котором лежит удаляемая реплика базы.
Создаём, если нужно, на новом устройстве метабазу:
**metadb -a -c 3 -l <length> <device>**
где device - это это слайс на котором будет лежать создаваемая реплика базы.
length длина записи, должна совпадать с такими же репликами на др. разделах.
дальше надо убрать несуществующие рэйды из metadatabase - базы, где хранятся записи о массивах
для начала вынем несуществующие устройства из raid-1:
**metadetach -f <mirror> <submirror>**
тут миррор - это рэйд-1, а submirror - это один из компонентов зеркала (максимальное количество компонентов в зеркале - 3 или меньше, обычно 2-х хватает)
очищаем метабазу, удаляем сведения о несуществующих слайсах:
**metaclear <device>**
выполняем эту команду для каждого несуществующего слайса
далее на полученных слайсах я нарезал липовый рэйд-0
**metainit -f <device> 1 1**
и повтыкал получившиеся половинки зеркал в зеркала с имеющимися половиками и начался процесс автоматического восстановления данных
**metattach <miror> <submirror>**
конечно, я втыкал половинки зеркал по мере их синхронизации, чтобы не перегружать систему излищними конфузными ситуациями...
З.Ы. есть такой мануал у санок - 816-4520.pdf ака Solaris Volume Manager Administration Guide на него я и опирался.