Обычный сервер. Обычная задача. В сервере есть два диска (минимум два) и хочется облегчить жизнь, создав надежность на уровне зеркала системных разделов.
Обычно есть один диск, на который мы только что поставили систему. Пусть это будет /dev/dsk/c0t0d0. Второй диск пусть будет - /dev/dsk/c1t0d0. Я люблю разбивать системные диски так
- от 5 до 20 Гиг на корень - слайс 0. Это было выбрано опытом работы. Мне проще размещать все на одном разделе и при аварии и проще восстанавливать. Еслли планируется в системе большое количество логов то логи убираю на отдельные файловые системы.
- свап - слайс 1. Если у меня есть иксы то объем считаю как Оперативная память умножить на два. Если иксов нет то равняю по оперативной памяти.
- отдельный слайс с номером 7 объемом от 50 до 200 Мб я создаю для хранения базы данных
реплик. Объем считаю исходя из объема дисков которые нужно зеркалить. Обычно беру 100 Мб
- оставшееся пространство отдаю на слайс 6 - это будет потом файловая система для приложений
итак есть:
/dev/dsk/c0t0d0s0 - /
/dev/dsk/c0t0d0s1 - swap
/dev/dsk/c0t0d0s7 - metadb replica
/dev/dsk/c0t0d0s6 - public
что бы сделать такую же разметку на втором диске (обычно диски одинаковые, если это не так, то стоит сделать слайсы для создания зеркал по объему либо равным либо больше чем первое плечо зеркала) я делаю в том же инструменте format. Выбираю второй диск из списка, в меню partition выбираю тип диска (меню select) - из списка типов выбираю тип диска на который я ставил систему и получаю
копию слайсов на своем втором диске. Если же запускать команду формат смысла нет или не хочется,
можно сделать командами чтения метки с первого диска и через конвейер записать метку на второй. второй. Вот так prtvtoc /dev/rdsk/c0t0d0s2 | fmthard -s - /dev/rdsk/c1t0d0s2.
Это на любителя.
Итак тут у нас есть два диска с нужной разметкой.
Делаем базу реплик
#metadb -a -f -c 2 /dev/dsk/c0t0d0s7 /dev/dsk/c1t0d0s7
-а - добавить реплику
- - принудительно
-с 2 - количество копий реплик! Внимание! Очень тонкий момент. Если сделать одну копию реплики (-с 1) то в ситуации когда один из двух дисков выйдет из строя, процесс голосования и выбора будет в замешательстве Ж) потому как осталось одно устройсто (из двух дисков) и количество реплик (голосов) - также одно. Произойдет остановка при загрузке и переход в сингл моду для ручного выбора
устройства загрузки.
Посмотрим нашу базу данных
#metadb
Что бы не ждать дольше чем надо, сделаем размер блока пересылки при синхронизации зеркала равным ну например 2Мб. Для чего желательно сразу было бы добавить в файлик /etc/system строчку:
set md_mirror:md_resync_bufsz=2048
делаем мета-устройство типа страйп для первого плеча зеркала корня
#metainit -f d1 1 1 /dev/dsk/c0t0d0s0
делаем мета-устройство типа страйп второго плеча зеркала корня
#metainit d2 1 1 /dev/dsk/c1t0d0s0
делаем мета-устройство типа зеркало для корня
#metainit -f d0 -m d1
сообщаем солярису о том какое мета-устройство является основным для загрузки. Эта команда добавит также строчки в /etc/system и сделаем изменения имен устройств в строчке для корневого раздела в файле /etc/vfstab а именно заменит /dev/dsk/c0t0d0s0 на /dev/md/dsk/d0
#metaroot d0
делаем тоже самое для зеркала публичной файловой системы
#metainit d11 1 1 /dev/dsk/c0t0d0s6
#metainit d12 1 1 /dev/dsk/c1t0d0s6
#metainit d10 -m d11
включим второе плечо зеркала
#metattach d10 d12
посмотрим статистику
#metastat
можно перегрузить сервер что бы солярис загрузился с мета-устройтва. И осталось добавить второе плечо в зеркало корня
#metattach d0 d2
#metastat
проверяем статус синхронизации плеч зеркал.
не забыть в
/etc/vfstab добавить строчку про слайс свопа на втором диске....
И не забыть включить журналирование для файловых систем корня и публичной (в /etc/vfstab параметр logging в конец строк описания фаловых систем)
Комментариев нет:
Отправить комментарий