Инсталиране и конфигуриране на RAID 1 под Debian 4.0r3


Автор: Мартин Петров

Благодарности на: www.dhstudio.eu



В днешни времена редовно има случаи на повредени твърди дискове и дори да има скорошни архиви, последствията за сървърите могат да бъдат бедствени. RAID, Radundant Array of Independent Disks (Редундантед масив от независими дискове), е система, която разпределя или репликира данните върху няколко твърди диска. RAID не само помага да се предотврати загубата на данни, но намалява и неработното време на възникване на хардуерни проблеми (често до нула). В някои случаи може да повиши бързодействието. RAID системите обикновено се реализират хардуерно, но в Linux има всичко необходимо и за софтуерното им реализиране.

Основните функции на RAID са две. Първо, може да повиши бъроздействието, като “разслоява” данните към няколко устройства- т.е. две или повече устройства четат и записват отделни части от данните едновременно. Второ, може да дублира или да прави “огледални копия” на данните върху няколко устройства, което намалява много риска от повреди, свързан с използването на само един диск. Реализацията на RAID в GNU/Linux се различава по някои леки детайли от традиционните реализации, но все пак е разделен логически на няколко нива:

Софтуерният 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


Често срещани грешки при изпълнение на команда : fdiskl


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без да се правят каквито и да било промени

След ивършените по- горе действия се коригира проблема и изхода на fdiskl 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 премина успешно. Ако е необходимо стъпките по- горе да бъдат описани като снимки то може да се разгледа следната папка: [ снимки ]