Инсталиране и конфигуриране на RAID 1 под Debian 4.0r3
Автор: Мартин Петров
Благодарности на: www.dhstudio.eu
В днешни времена редовно има случаи на повредени твърди дискове и дори да има скорошни архиви, последствията за сървърите могат да бъдат бедствени. RAID, Radundant Array of Independent Disks (Редундантед масив от независими дискове), е система, която разпределя или репликира данните върху няколко твърди диска. RAID не само помага да се предотврати загубата на данни, но намалява и неработното време на възникване на хардуерни проблеми (често до нула). В някои случаи може да повиши бързодействието. RAID системите обикновено се реализират хардуерно, но в Linux има всичко необходимо и за софтуерното им реализиране.
Основните функции на RAID са две. Първо, може да повиши бъроздействието, като “разслоява” данните към няколко устройства- т.е. две или повече устройства четат и записват отделни части от данните едновременно. Второ, може да дублира или да прави “огледални копия” на данните върху няколко устройства, което намалява много риска от повреди, свързан с използването на само един диск. Реализацията на RAID в GNU/Linux се различава по някои леки детайли от традиционните реализации, но все пак е разделен логически на няколко нива:
Линейният режим не предоставя редундантност на данните и повишаване на бързодействието. В него адресите на блоковете на отделните устройства просто се обединяват, давайки по този нчин един по- голям виртуален диск.
RAID ниво 0 се използва единствено за повишаване на бързодействието. Използват се две или повече устройства с еднакъв размер, зада се намалят времената за запис и достъп.
RAID ниво 1 е първото ниво, на което се предлага редундантност. Данните се дублират на две или повече устройства. В този режим данните се мултиплицират, но бързодействието се намалява, защото те трябва да се запишат повече от веднъж.
RAID ниво 4 е съперник (губещ) на RAID ниво 5. В него данните се разслояват, но има отделен диск за запис на информация за контрол по четност, което води до появата на изчакване за нейния запис. Ако нямате никаква основателна причина да се ползва RAID 4, използвйате RAID 5.
RAID ниво 5 е върхът на RAID. Чрез разслояване както на данните, така и на информацията за контрол по четност, се създава редундантна архитектура, като в същото време се намаляват времената на четене и запис. За RAID 5 са необходими поне три диска.
Софтуерният RAID е част от ядрото на GNU/Linux от версия 2.0, но първите реализации не бяха достатъчно стабилни и пълни. Препоръчва се избягване на реализации от преди ядро 2.4
Инсталиране и конфигуриране на RAID 1 под Debian 4.0r3
Преди да се инсталира и конфигурира RAID (в конкретния случай) са необходими два твърди диска (в конкретния случай по 20 GB) и реализиране на нова инсталация на Debian.
Главната схема ще бъде следната:
/boot 200 MB
swap 1024 MB
/root 19 GB
След започване на нова инсталация на Debian е необходима специална конфигурация на твърдите дискове. Създават се 1 дял за swap, 1 дял за /р 1 дял за /boot като и трите дяла са RAID и съответно на двата твърди диска. Трябва да изглежда по следния начин:
След създаване на подходящи дялове е необходимо създаване на MD устройствата- md0,md1,md2:
Тъй като системата в конкретния случай ще бъде RAID 1, се избира именно него:
Позволява по подразбиране 2 активни устройства:
По подразбиране има 0 неизползвани устройства:
Необходимо е да се маркират устройствата за създаване на RAID дяловете. Пример за създаване на първия RAID дял, като настройката на останалите два дяло се извършва по аналогичен начин:
След настройване на трите дяла крайния резултат е следния:
Следващата стъпка е промяна файловата система на трите софтуерни RAID устройства.
Пример:
Следващата стъпка е финализиране на инсталацията на Debian. След рестартиране нека разгледаме някои важни файлове и команди:
cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/md2 / ext3 defaults,errors=remount-ro 0 1
/dev/md0 /boot ext3 defaults 0 2
/dev/md1 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0] sdb3[1]
19775936 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
995904 blocks [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
192640 blocks [2/2] [UU]
unused devices: <none>
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 19G 430M 18G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 68K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/md0 183M 13M 161M 8% /boot
fdisk –l
Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/md2 doesn't contain a valid partition table
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 24 192748+ fd Linux raid autodetect
/dev/sda2 25 148 996030 fd Linux raid autodetect
/dev/sda3 149 2610 19776015 fd Linux raid autodetect
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 24 192748+ fd Linux raid autodetect
/dev/sdb2 25 148 996030 fd Linux raid autodetect
/dev/sdb3 149 2610 19776015 fd Linux raid autodetect
Disk /dev/md0: 197 MB, 197263360 bytes
2 heads, 4 sectors/track, 48160 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk /dev/md1: 1019 MB, 1019805696 bytes
2 heads, 4 sectors/track, 248976 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk /dev/md2: 20.2 GB, 20250558464 bytes
2 heads, 4 sectors/track, 4943984 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Често срещани грешки при изпълнение на команда : fdisk –l
Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/md2 doesn't contain a valid partition table
Грешките се отстраняват по следния метод:
Чрез fdisk се менажира дяла и след това се въвежда “w” (write) за запис на текущотото състояние на диска
fdisk /dev/md1 + zapis (w)
fdisk /dev/md2 + zapis (w)
Забележка: След влизане с fdisk СЕ НАТИСКА ЕДИНСТВЕНО “w” без да се правят каквито и да било промени
След ивършените по- горе действия се коригира проблема и изхода на fdisk –l e:
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 24 192748+ fd Linux raid autodetect
/dev/sda2 25 148 996030 fd Linux raid autodetect
/dev/sda3 149 2610 19776015 fd Linux raid autodetect
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 24 192748+ fd Linux raid autodetect
/dev/sdb2 25 148 996030 fd Linux raid autodetect
/dev/sdb3 149 2610 19776015 fd Linux raid autodetect
Disk /dev/md0: 197 MB, 197263360 bytes
2 heads, 4 sectors/track, 48160 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Device Boot Start End Blocks Id System
Disk /dev/md1: 1019 MB, 1019805696 bytes
2 heads, 4 sectors/track, 248976 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Device Boot Start End Blocks Id System
Disk /dev/md2: 20.2 GB, 20250558464 bytes
2 heads, 4 sectors/track, 4943984 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Device Boot Start End Blocks Id System
Следваща важна стъпка е реконфигуриране на GRUB menu.lst или /boot/grub/menu.lst
Преди:
title Debian GNU/Linux, kernel 2.6.18-6-686
root (hd0,0)
kernel /vmlinuz-2.6.18-6-686 root=/dev/md2 ro
initrd /initrd.img-2.6.18-6-686
savedefault
След промени:
title Debian GNU/Linux, kernel 2.6.18-6-686 Disk1
root (hd0,0)
kernel /vmlinuz-2.6.18-6-686 root=/dev/md2 ro
initrd /initrd.img-2.6.18-6-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-6-686 Disk2
root (hd1,0)
kernel /vmlinuz-2.6.18-6-686 root=/dev/md2 ro
initrd /initrd.img-2.6.18-6-686
savedefault
Следваща важна стъпка е инсталирането bootmanager на двата диска чрез “grub”. В GRUB шел промпт се въвеждат следните команди:
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Инсталирането и конфигурирането на RAID премина успешно. Ако е необходимо стъпките по- горе да бъдат описани като снимки то може да се разгледа следната папка: [ снимки ]