Информация
На главную Главная

Мой t-cards.ru
Войти Войти
Зарегистрироваться Регистрация

Разное
Форум Форум
Вернуться Форумы на t-cards.ru> Hard"n"Soft
Логин
Пароль
Регистрация Участники Поиск >> FAQ


Сообщения в теме: "Програмные массивы на линукс..."
21.09.2007 12:33
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

Итак я решил всётаки позаботиться о сохранности своих данных и перенести их на райд массивы.
Что для этого нужно ?
1. настроить ядро
Device Drivers --->
Multi-device support (RAID and LVM) --->
RAID support
Linear (append) mode
RAID-4/RAID-5/RAID-6 mode
[*] Support adding drives to a raid-5 array
Faulty test module for MD

2. ПОставить утилиты управления
emerge mdadm
ну и необходимо сделать modprobe raid5 (или raid456 на разных ядрах по разному)


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

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

Вот этой командой мы создадим 5-тый райд на трех дисках причем мы будем пользовать весь диск а не какие нибудь его разделы
если мы хотим создовать райд на разделах то соответсвенно сначала создадим разделы а потом райд с указанием /dev/sda1 и т.д.

Райд уже можно использовать но он пока делает bild или sync в разных источниках это называют по разному, можно по смотреть за этим процесом выполнив команду
cat /proc/mdstat
или понаблюдать watch -n1 cat /proc/mdstat
не перегружайте компьютер пока райд не устаканиться, ничего страшного, но после перезагрузки он начнет все с начала

Теперь о вечном, чтобы массив не про...ся после перезагрузки его надо прописать в конфиги

mdadm --detail --scan

эта команда нам покажет строку которую надо прописать в /etc/mdadm.conf
можно по тупому mdadm --detail --scan >> /etc/mdadm.conf
пример строки
ARRAY /dev/md2 level=raid5 num-devices=7 UUID=94993d80:17f92185:21ab658e:7cc96071

всё можно создавать файловую систему на /dev/md0 и монтировать онную
разделы на райде уже не создашь, да оно и не надо
21.09.2007 12:55
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

Как собрать 5 райд на 2-х дисков для миграции чтобы потом добавить 3-тий

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb missing

Всё можно создавать фаловую сисстему и монтировать
и писать туда

когда появиться третий диск просто
mdadm --manage --add /dev/md0 /dev/sdс
и наблюдаем за ресинком
21.09.2007 13:01
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

ну а теперь про рост массивов
допустим есть массив md0 райд 5 из трех дисков файловая система reiserfs
sda sdb sdc
хотим добавить sdd чтобы массив стал из 4-х дисков

mdadm --manage --add /dev/md0 /dev/sdd

mdadm --grow /dev/md0 --raid-disks=4

всё наблюдаем за решайпингом в /proc/mdstat

когда решейпинг завершитсься раздел автоматически станет больше

я делал это при размонтированном диске в первом случае и смотнированном(с активной записью на массив) во втором

теперь нам надо изменить размер файловой системы на массиве
обязательно надо отмонтировать umount /dev/md0
после этого сделать следующие
resize_reiserfs /dev/md0
всё можно монтировать и наслаждаться жизнью нового массива



НО НЕ забыть поправить строчку в /etc/mdadm.conf и указать новое количество дисков в массиве теперь то их у нас 4-ре, а то он самым наглым образом пошет нас лесом при перезагрузке
21.09.2007 13:07
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

Любопытные наблюдения:
1. массивы живут и позволяют писать и читать с себя даже после смерти одного из дисков
2. массивы полностью работоспособны при различных операциях востановления и изменения
3. Массиву похрену куда вотнуты диски главное чтобы они все или без одного были, т.е. при отключенном компе мы можем их перетусовывать как хотим, в другие контролеры и т.д. (массив сам ищет свои диски по заголовку на винте)
4. даже если отвалиться два диска(но хотябы один живой) то массив можно востановить, потом расскажу как
5.Скорость чтения с таких массивов здорово возрастает, про надежность даже говорить не стоит

всё делал по статье
http://gentoo-wiki.com/HOWTO_Gentoo_Install_on_Software_RAID
22.09.2007 11:44
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюПрограмные массивы на линукс

Собрал массив raid5 на 3-х дисках, все отлична!

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb missing

(единственное, болт какой возник - у меня /dev/sda1 был подмонтирован, я его отмонтировал, удалил раздел через fdisk, но mdadm все равно говорил, что "Device or resource /dev/sda is busy", пришлось ребутнуться, стало все ок)

mdadm --detail --scan >> /etc/mdadm.conf
(ARRAY /dev/md0 level=raid5 num-devices=3 UUID=13b00f58cd5faeb:b4523e1e:9274e4ea)

потом освободил диск и его подключил туда
mdadm --manage --add /dev/md0 /dev/sdс
В /etc/mdadm.conf удалил последнюю строку и заново записало туда новой инфой:

mdadm --detail --scan >> /etc/mdadm.conf

(ARRAY /dev/md0 level=raid5 num-devices=3 spares=1 UUID=13b00f58cd5faeb:b4523e1e:9274e4ea)
(добавился параметр spares=1, массив стал защищенным)

Массив пошел восстаналиваться:


Every 1,0s: cat /proc/mdstat Sat Sep 22 12:37:09 2007

Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc[3] sdb[1] sda[0]
586072192 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 4.4% (13151884/293036096) finish=157.7min speed=29563K/sec


Ядро 2.6.18, модуль называется raid456

Возможно, придется расширять скоро массив, посмотрим как получится.

Вот пришел момент расширять.. Сделал все по инструкции, добавил диск, наблюдаю за решейпингом:

Every 1,0s: cat /proc/mdstat Tue Sep 25 23:58:27 2007

Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[3] sdb[0] sdc[2] sda[1]
586072192 blocks super 0.91 level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
[>....................] reshape = 4.4% (13041664/293036096) finish=621.1min speed=7510K/sec

unused devices:


mdadm --detail --scan >> /etc/mdadm.conf
Выдает
ARRAY /dev/md0 level=raid5 num-devices=4 UUID=13b00f58cd5faeb:b4523e1e:9274e4ea
Пропал параметр spares=1

Долго решейпился, когда закончил, расширил reiserfs, все ок, итого имеем при raid5 на 4-х дисках по 300Гб места 834Гб, неплохо!
22.09.2007 18:02
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюПрограмные массивы на линукс

Еще проблема возникла: у меня есть встроенный сата-контроллер на мамке (sil3112, 2 порта) и внешний (sil3114, 4 порта). Было включено 2 винта во встроенный контроллер. Подключил третий винт на горячую во внешний - все ок.
А вот при перезагрузке он мне болты выкатил и завис после определения массива на встроенном контроллере... Как только он видит хотя б ы один винт на внешнем - не загружается собако.
Стал искать как выключить встроенный контроллер.. Биос еще 2003 года, там не выключается, потом в мануале нашел, что джампером
Теперь все ок, все винты во внешнем контроллере.
30.09.2007 22:33
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюПрограмные массивы на линукс

Я чуть поэкспериментировал... Выбил один диск из массива.. Позаписывал на массив данных почуть, потом ребутнулся для верности.
В лог он мне написал:

md: kicking non-fresh sda from array!
md: unbind(sda)
md: export_rdev(sda)
raid5: allocated 4196kB for md0
raid5: raid level 5 set md0 active with 3 out of 4 devices, algorithm 2
RAID5 conf printout:
--- rd:4 wd:3 fd:1
disk 0, o:1, dev:sdd
disk 1, o:1, dev:sdc
disk 2, o:1, dev:sdb


Ну я потом ему сделал
mdadm /dev/md0 --re-add /dev/sda

Он написал в лог

md: bind(sda)
RAID5 conf printout:
--- rd:4 wd:3 fd:1
disk 0, o:1, dev:sdd
disk 1, o:1, dev:sdc
disk 2, o:1, dev:sdb
disk 3, o:1, dev:sda
md: syncing RAID array md0
md: minimum _guaranteed_ reconstruction speed: 1000 KB/sec/disc.


И теперь наблюдаю за рекавери:

Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sda[4] sdd[0] sdb[2] sdc[1]
879108288 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
[=>...................] recovery = 9.6% (28187552/293036096) finish=189.1min speed=23335K/sec

unused devices:

Все очень просто!!!
21.10.2007 12:45
Admin

Регистрация: 05.10.2005
Проживание: Москва
Сообщения: 284
По умолчаниюПрограмные массивы на линукс

И еще несколько слов о том, как определить, какой жесткий диск выпал из массива... Если это произошло при работе системе, то он напишет
md: kicking non-fresh sda from array!
и можно понять, что выпал именно sda, пробежаться по контроллерам и по шлейфикам и выявить.
Но если например это произошло при пропадании питания, произошла перезагрузка и после этого он просто не увиделся, буквы дисков сместились? Вот я так приемлемого способа не нашел кроме как по производителю идентифицировать (канеш, если диски разные)
hdparm -I /dev/sdb

/dev/sdb:

ATA device, with non-removable media
Model Number: Maxtor 7V300F0
Serial Number: V608FJXG
Firmware Revision: VA111630

и иже с ними, все живые диски просмотрел таким образом и нашел отсутствующий.

Но если есть возможность подключить монитор, тогда конечно можно при загрузке посмотреть, в каком слоте отсутствует диск.
15.01.2008 07:40
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

mdadm --assemble --force /dev/md0
заставляет приподнять упавший массив
17.07.2008 10:43
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

Найти все массивы в системе если потерялся файл /etc/mdadm.conf
mdadm --examine --scan
06.10.2008 12:11
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

Как установить Генту на программный массив описано здесь

http://virtnet.net/howto/man/install_to_raid/install_to_raid.html

От себя хотелось бы добавить, следующие вещи:
1. Должен стоять пакет mdadm
2. Драйвера чипсета, драйвера массивов и файловая система должны быть вкомпилены в ядро
3. немного пояснений по строке загрузки у меня она например выглядит так kernel /boot/bzImage root=/dev/md2 md=2,/dev/hda2,/dev/sdb2
т.е. можно использовать и сата и иде диски одновременно
md=2 это как массив будет в последствии называться
дальше надо пересилить диски входящие в массив

19.11.2010 14:39
Admin

Регистрация: 01.12.2005
Проживание: Москва
Сообщения: 69
По умолчаниюПрограмные массивы на линукс

Небольшое уточнение если сейчас по дефолту делать raid1 под систему то grub не видит такой раздел, поэтому под /boot раздел или под /root раздел в котором будет boot массив нужно создавать сделующей командой
mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 --metadata=0.9 /dev/sda2 /dev/sdb2