Блог ИТ склеротика.

Страницы

Расширенный поиск в статьях блога

20 февраля 2012 г.


Как установить Ubuntu 10.04 на RAID 5 (Software) c ипользованием GRUB2


RAID массив, страшно полезная в хозяйстве вещь, он положительно сказывается на производительности дисковой подсистемы и увеличивает ее отказоустойчивость. Что это такое и зачем он нужен, можно прочитать здесь. Вот только цены, на современные RAID контроллеры, не радуют своей демократичностью. Данное руководство рассказывает о том, как установить операционную систему Ubuntu 10.04 на software RAID 5.
Если вы решите использовать software RAID массив другого уровня, например- 0,1,6 или 10, то знайте, все шаги по настройке, примерно повторяют, то что написано ниже.



Немного теории: Software RAID базируется на возможностях операционной системы. В условиях, когда бюджет ограничен, а производительность и отказоустойчивость важны, это решение может стать настоящей находкой для молодого проекта или спасти от гибели файло-помойку etc. У данного решения есть свои достоинства и недостатки.
К достоинствам можно отнести: отсутствие привязки к железу, определенного производителя и стоимость владения данной системой. (тем кто пытался найти аналогичную замену, вы шедшему из строя RAID контроллеру, который, к томуже, еще и снят с производства, по личному опыту скажу вам-то еще удовольствие. Необходимо время чтобы его привезти, а это простой оборудования со всеми вытекающими…)
Недостатки: немного ниже производительность, по сравнению с аппаратными решениями, использование ресурсов центрального процессора ( для обработки алгоритмов чередования записи данных на диск, примерно 2-7% от общей производительности ЦПУ, а в случае выхода из строя одного из жестких дисков, то загрузка ЦПУ может увеличиться до 50-70%, но это только на время работы в режиме degraded и выполнения восстановления целостности массива.), выполнение восстановления массива в ручную ( в то время как аппаратный raid контроллер — вынул неисправный накопитель, установил на его место новый и умная железка все сделает сама) конечно и там бывают сбои, но тут, как говорится -если не повезет…

На заметку: Данное руководство не избавляет вас, от проведения регулярного резервного копирования на внешний ресурс хранения информации.
Вводная: У нас есть тестовая система, в которой установлено 4 жестких диска по 10Gb, остальные компоненты не важны.

1) Установка системы.

Для примера у нас будет 3 раздела:
Раздел /boot располагается на RAID 1 размером 512mb-на каждом диске
Раздел подкачки -512Mb-на каждом диске
Раздел / на RAID 5 можно отдать все оставшееся место.
(конфигурация приведена исключительно для ознакомления, разделов можно создать столько сколько необходимо)
И так поехали:
Размечаем диски, переходим к разметке в ручную



Создаем 3 раздела, на каждом накопителе и переходим к пункту: Настройки программного RAID



Нам предложат сохранить изменения на диск, отвечаем ДА



Создаем MD устройство



Выбираем уровень массива RAID1



В количестве активных разделов указываем 4



А в резервные добавляем 0



Отмечаем из списка все разделы под номером 1, это: sda1 sdb1 sdc1 sdd1 и нажимаем продолжить



Создаем второе устройство MD



Выбираем тип массива RAID 5



Число активных разделов 4 Резервных 0



выбираем из списка все логические диски под номером 6: sda6 sdb6 sdc6 sdd6



Заканчиваем настройку и сохраняем изменения



выбираем раздел на RAID1 под номером #1



В пункте использовать как выбираем ext4( ну или файловую систему на ваш выбор) если вы не знаете что выбрать ставьте ext4. Точкой монтирования выбираем /boot



на массиве RAID 5, тоже выбираем тип файловой системы ext4, но точку монтирования указываем /



Сохраняем изменения и запускаем установку, у нас спросят-включить функцию загрузки системы при отказе диска, отвечаем ДА 



Записываем изменения на диск, отвечаем ДА



Потом у нас спросят установить GRUB 2 в загрузочную область всех жестких дисков, отвечаем ДА
На этом все с настройкой системы после этого у нас в руках готовый к использованию сервера, на который можно навешать необходимые нам функции.
Что имеем в остатке: 4 диска каждый из которых является загрузочным, по этому, не важно с какого диска загружаться на RAID1 у нас находится раздел /boot после его загрузки операционная система находящаяся на RAID 5 загружается совершенно спокойно.

2) Что делать если жесткий диск умер


В случае отказа жесткого диска, наш массив переходит в режим degraded, но система остается работоспособной, правда с крайне низким быстродействием.
Если система используется для хранения часто меняющихся данный, например сервера баз данных, то торможение будет заметно очень сильно!
И так, что делать?!
Чтобы не разбираться в горячке, когда этот момент наступит, лучше заранее потренироваться. Смело выдергиваем кабель передачи данных из жесткого диска, немного подождем чтобы система поняла, что чего-то не хавает
заходим в терминал вводим
cat /proc/mdstat


нам выдаст нечто подобное:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
        md1 : active raid5 sda6[0] sdb6[1] sdc6[2]
        24087360 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]

        md0 : active raid1 sda1[0] sdb1[1] sdc1[2]
        1951680 blocks [4/3] [UUU_]


Из выдачи, становится понятно, что разделы находящиеся на диске sdd отсутствуют-значит но нас покинул.
Смело меняем жесткий диск устанавливаем и перезагружаем систему, при перезагрузке указываем любой, из 3х оставшихся жестких дисков в качестве загрузочного.

Заходим в систему как root
sudo su
fdisk-l


В ответ на это мы получаем:

Disk /dev/sda: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0004b95a
Device Boot Start End Blocks Id System
/dev/sda1 1 244 1951744 fd Linux raid autodetectPartition 1 does not end on cylinder boundary.
/dev/sda2 244 1306 8530945 5 Extended
/dev/sda5 244 306 500736 82 Linux swap / Solaris
/dev/sda6 306 1306 8029184 fd Linux raid autodetect
Disk /dev/sdb: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0008e1c9
Device Boot Start End Blocks Id System
/dev/sdb1 1 244 1951744 fd Linux raid autodetectPartition 1 does not end on cylinder boundary.
/dev/sdb2 244 1306 8530945 5 Extended
/dev/sdb5 244 306 500736 82 Linux swap / Solaris
/dev/sdb6 306 1306 8029184 fd Linux raid autodetect
Disk /dev/sdc: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00007915
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 244 1951744 fd Linux raid autodetectPartition 1 does not end on cylinder boundary.
/dev/sdc2 244 1306 8530945 5 Extended
/dev/sdc5 244 306 500736 82 Linux swap / Solaris
/dev/sdc6 306 1306 8029184 fd Linux raid autodetect
Disk /dev/sdd: 10.7 GB, 10737418240 bytes255 heads, 63 sectors/track, 1305 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000
Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/md0: 1998 MB, 1998520320 bytes
2 heads, 4 sectors/track, 487920 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1: 24.7 GB, 24665456640 bytes2 heads, 4 sectors/track, 6021840 cylindersUnits = cylinders of 8 * 512 = 4096 bytesSector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 65536 bytes / 196608 bytesDisk identifier: 0x00000000


Из выдачи стало видно что новый диск определился, но не содержит разделов скопируем разделы с исправного диска, например сsdb
sfdisk -d /dev/sdb | sfdisk /dev/sdd --force


Проконтролируем все ли правильно скопировалось:
fdisk -l


Должно выдать тооже самое что и в прошлый раз, но уже с указанием того что разделы md0 и md1 не содержат разделов-это наши RAID массивы
добавляем новый диск в массив RAID5 sdd6 чтобы восстановить быстродействие системы.

mdadm --add /dev/md1 /dev/sdd6

нам выдает:
mdadm: added /dev/sdd6


Чтобы посмотреть как идет восстановление, вводим
cat /proc/mdstat

Нам выдаст, нечто подобное:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sda6[0] sdb6[1] sdc6[2] sdd6[3]
24087360 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
[=>...................] recovery = 8.8% (713984/8029120) finish=1.1min speed=101997K/sec

Здесь будет указан процент восстановления, скорость ваполнения копирования и примерное время завершение операции.

теперь восстановим раздел md0
mdadm --add /dev/md0 /dev/sdd1


Должно выдать
mdadm: added /dev/sdd1


Важное дополнение: восстановление массива идет в порядке очереди, если добавить следующий диск в массив до завершения операций восстановления на предыдущем, то ничего не происходит.
Через некоторое время снова вводим
cat /proc/mdstat


Получаем:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md1 : active raid5 sda6[0] sdb6[1] sdc6[2] sdd6[3]
24087360 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]

md0 : active raid1 sda1[0] sdb1[1] sdc1[2] sdd1[3]
1951680 blocks [4/4] [UUUU]


Это значит что все разделы успешно восстановлены.
Теперь наша задача установить системный загрузчик GRUB2 в MBR нового диска, напомню это sdd

grub-install /dev/sdd


Теперь наша система в полном порядке и снова готова к работе, на основе этой схемы можно создать файловый сервер, илипочтовыйсервер печати, а также web сервер-в общем всё то, на что у вас может хватить фантазии и знаний.

.

Счетчик тИЦ и PR Яндекс.Метрика Msn bot last visit powered by MyPagerank.NetYahoo bot last visit powered by MyPagerank.Net ping fast  my blog, website, or RSS feed for Free