среда, 11 июня 2008 г.

Solaris. SVM. Raid 10

Задался я целью сделать под Solaris Raid 1+0. С ходу сделать этого нельзя как оказалось. Metainit в качестве устройств для создания зеркала принимает только мета-устройство. Но создав к примеру два зеркала, я не могу сделать из них страйп. Но вот что забавно...
Имеем T5220 с 8-мью дисками. Два под систему в зеркало. Оставшиеся шесть собираем по схеме Raid 0+1. То есть делаем :
#metainit d20 1 3 /dev/dsk/c1t2d0s6 /dev/dsk/c1t3d0s6 /dev/dsk/c1t4d0s6
#metainit d21 1 3 /dev/dsk/c1t5d0s6 /dev/dsk/c1t6d0s6 /dev/dsk/c1t7d0s6

Далее делаем зеркало:
#metainit d30 -m d20
#metattach d30 d21
#metastat

Казалось бы мы собрали Raid 0+1. А на поверку получается не совсем так.
Берем к примеру и вытаскиваем диск t7. Смотрим metastat d30. Ну все как должно быть - статус maintenance у c1t7d0s6 в метаустройстве d21. Вытаскиваем теперь t2 и t3. Смотрим metastat d30. Ну все как должно быть - у трех дисков теперь состояние maintenance. Файловая система доступна - отлично. А теперь вернем диск t7 на место:
#metareplace -e d30 /dev/dsk/c1t7d0s6
#metastat
И что характерно начинается процесс синхронизации.... Да не всего зеркала а пары дисков...
В моем случае активно работают на синхронизацию диски t4 и t7. То есть два плеча зеркала:). А я зеркала то не строил из этих двух дисков! После завершения синхронизации производим установку диска t2 на место даем команду metareplace -e d30 /dev/dsk/c1t2d0s6 и наблюдаем активность дисков t2 и t5. Когда вернем диск t3, то синхронизация затронет пару t3 и t6. И так что же получается? А получился Raid 1+0...
То есть при синтаксическом создании Raid 0+1 SVM автоматически создает Raid 1+0 при условии что страйпы у нас одинаковы и диски используются одинаковые. Ура SUN! Спасибо!

Комментариев нет: