Опрос

Что вы думаете по поводу веб-кастов, выложеных на сайте?
 

Последнии комментарии

MDAdm. Работа с RAID на Ubuntu PDF Печать E-mail
Рейтинг пользователей: / 6
ХудшийЛучший 
Автор: yakim   
05.06.2013 19:29

Рано или поздно при настройке серверов приходится столкнуться с такой вещью как RAID.

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

Если вам лень с таким разбираться - администрирование серверов явно не ваше дело.

Вам тогда нужна аренда сервера где-то в датацентре, при чем уже с поддержкой.

  

Построение RAID

Построим на сервере RAID1.

Сначала создадим одинаковые разделы на дисках sdb и sdc

  

#fdisk /dev/sdb

command (m for help): n

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

Select (default p): p

Partition number (1-4, default 1): 1

First sector (2048-16777215, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215): +5G

Command (m for help): t

Hex code (type L to list codes): 83

Changed system type of partition 1 to 83

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

  

Аналогично сделаем и для диска sdc

  

Установим утилиту работы с RAID

# apt-get install mdadm

  

Теперь соберем RAID 1

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

  

После сборки состояние RAID можно просмотреть при помощи команды

# cat /proc/mdstat

  

В результате мы должны получить вывод что-то похожее на

personalities : [raid1]

md0 : active raid1 sdc1[1] sdb1[0]

5238720 blocks super 1.2 [2/2] [UU]

unused devices: <none>

  

Теперь можно на созданном RAID-разделе создавать файловую систему и подключать ее к системе.

# mkfs.ext4 /dev/md0

# mkdir /mnt/raid

# mount /dev/md0 /mnt/raid

  

Так же для дальнейшей проверки корректности работы рейда создадим на RAID-разделе файл:

# touch /mnt/raid/test.txt

  

  

Ошибка при работе с RAID

После того, как мы создали RAID он у нас определяется как устройство /dev/md0, однако после перезагрузки такого устройства в системе не будет, а вместо него появится /dev/md127. Тут можно или в дальнейшем использовать именно такое имя устройства, или, что обычно удобнее, насильно объяснить системе, что наш RAID-раздел именно /dev/md0 и ни как иначе. Для этого выполним команду:

# mdadm -Db /dev/md0 > /etc/mdadm/mdadm.conf

  

В результате выполнения этой команды в файле /etc/mdadm/mdadm.conf будет строка

ARRAY /dev/md0 metadata=1.2 name=ub-4:0 UUID=7da67e34:3d29e3a1:bdf36edd:6be26e60

  

После этого необходимо обновить образ initramfs:

# update-initramfs -u

  

Теперь после перезагрузки наш RAID-раздел будет определяться как /dev/md0.

  

  

Деградация и восстановление RAID

Посмотрим как можно провести деградацию рейда. Естественно, в реальной системе диск обычно вылетает сам и нет необходимости специально объявлять его сбойным, но мы воспользуемся возможности утилиты mdadm и объявим часть RAID — /dev/sdb1 сбойным.

# mdadm /dev/md0 --fail /dev/sdb1

  

Посмотрим теперь на состояние RAID

# cat /proc/mdstat

  

Мы должны увидеть, что /dev/sdb1 имеет некие проблемы и рейд деградирован:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md0 : active raid1 sdb1[2](F) sdc1[1]

5238720 blocks super 1.2 [2/1] [_U]

unused devices: <none>

  

Теперь с помощью fdisk создадим на устройстве /dev/sdd раздел такого же размера, как и /dev/sdс1. После этого удалим /dev/sdb1 из RAID

# mdadm /dev/md0 --remove /dev/sdb1

И добавим новый раздел /dev/sdd1

# mdadm /dev/md0 --add /dev/sdd1

  

Если мы сразу же посмотрим на состояние RAID

# cat /proc/mdstat

  

То мы увидим, что RAID у нас опять состоит из двух нормальных дисков и в данный момент происходит его синхронизация:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

md0 : active raid1 sdd1[2] sdc1[1]

5238720 blocks super 1.2 [2/1] [_U]

[=>...................] recovery = 6.2% (329984/5238720) finish=1.2min speed=65996K/sec

unused devices: <none>

  

Если мы теперь примонтируем наш RAID

# mount /dev/md0 /mnt/raid/

  

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

# ls /mnt/raid/

lost+found test.txt


Обновлено 05.06.2013 19:40
 

Комментарии 

 
0 #1 starper 15.06.2013 19:04
Спасибо за очень любопытный материал. Сам я райд не строил и не собираюсь (пока), но ознакомиться не лишне.
Хочу, кстати, заметить, что при наличии 2 -3 и более дисков в системе (обычных, не объединенных в райд) пакет dmraid, идущий зачем-то по дефолту во многих дистрах, может сильно затруднить даже установку дистра или последующую работу grub. Возможно, это свойство присуще только некоторым биосам, но у меня дело обстоит именно так. Partman не может корректно распознать диски и разделы, пока не удалишь прямо в LiveCD этот самый dmraid.
 

Добавить комментарий

Защитный код
Обновить

 
3.png

Дружественные сайты

Linux для всех

 

Видеоуроки

 

 

Ubuntu в Сумах

 

Мои Счетчики