от Lucifer

slackware_logoИ така … отново съм се заел да си nerd-вам сериозно. Както сигурно знаете обичам сам да си хоствам глупостите. Една от причините за това, е че уча нови неща. В последно време обаче, hardware-а ми започна да сдава багажа. И най-вече хардовете. За това реших най-накрая да направя нещо качествено и другия месец смятам да седна най-накрая да направя един RAID 1 на сървъра … проблема е, разбира се, че това е продуктова машина, която е настроена и подготвена да работи … и никак, ама никак не ми се иска да започвам от начало. It is a pain in the ass … (а и честно не съм сигурен точно какви неща съм ръчкал по тази система).

Значи трябва да се заема с миграция към RAID … не изглежда толкова сложно … особено следвайки прекрасния наръчник, който може да се намери в инсталационния диск … За това и седнах и направих една виртуалка с 15 GB хард, после си я напълних и използвах … и после реших да пробвам да я прехвърля към RAID 1 … Ето и как става. Предполага … не – сигурен съм, че така ще стане и за нормалната работеща система …

Първо:

Закачате си дисковете и ги инициализирате в системата … при мен бяха /dev/sdb и /dev/sdc. Не е такъв проблем. Просто си знайте буквичките, че ще ви трябват. Подсигурете се, че дисковете на са закачени. Вече трябва да знаете как ще си нацепите диска … лично аз за тестовата инсталация предпочетох един голям дял информация и един малък за SWAP. В случая с RAID, се замислям дори да не правя RAID на SWAP-а … но това ще се реши в движение.

Второ:

Разделяме единия диск … аз лично използвам cfdisk, но и fdisk става … единственото важно нещо е да зададете файловата система на дисковете като RAID autodetect (fd в cfdisk). На много места ще срещнете препоръка да оставите едни 100MB в края на диска свободни и не присвоени към partition. Тъй като RAID има нужда от еднаква геометрия на диска, а няма двама производители, които да правят еднакви дисковете си. В някои случаи разминаването на цилиндрите и блоковете може да достигне до 50 – 80 MB.

При мен /dev/sdb се получи така:

/dev/sdb1 -> 14 GB
/dev/sdb2 -> 900 MB

След като сме нацепили първия диск, мигрираме разделението и на втория (можете да се опитате да го направите и на ръка, отново с (c)fdisk):

sfdisk -d /dev/sdb | sfdisk --Linux /dev/sdc

До тук сме подготвили дисковете и дяловете им. Перфектно. Време е да създадем и инициализираме RAID масива. Тъй като използваме software-н RAID, ще използваме mdadm.

mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/sdb1 /dev/sdc1 --metadata=0.90

Тази команда създава /dev/md0 RAID 1 масив. Тъй като ще boot-ваме от този дял, а bootloader-ите не се оправят както трябва с metadata по-голяма от 0.9, заставяме масива да е с metadata 0.90. Разбира се, винаги можем да направим отделен дял за /boot (което си мисля и че е за препоръчване). Самата команда е лесна – mdadm създай устройство /dev/md0 с RAID тип 1, включи две устройства, а именно /dev/sdb1 и /dev/sdc1 и ги направи с metadata версия 0.90.

Следващата стъпка е да направим RAID масив и за SWAP дисковете.

mdadm --create /dev/md1 --name=1 --level 1 --raid-devices 2 /dev/sda2 /dev/sdb2

И до тук със създаването и инициализацията на RAID масива.

Едно бързо създаване на файлова система:

mkfs.ext4 /dev/md0

След като изпълните горните стъпки, можете спокойно да закачите /dev/md0 към някоя директория и да направите rsync или cp -a. Избора си е ваш. Аз лично използвам /mnt/tmp

След като прехвърлите цялата информация от текущата система идва момента в който започва трудното …

Първото, което трябва да направим е да създадем mdadm.conf за да може mdadm да се обръща правилно към масива.

mdadm -Es > /mnt/tmp/etc/mdadm.conf

Резултата при мен изглежда нещо такова:

RRAY /dev/md0 UUID=1f7a054f:1c17cae7:fd8de854:8fa111ee
ARRAY /dev/md/1 metadata=1.2 UUID=5161bf3e:62446f38:666200f7:1ad9ff7f name=vr:1

Сега идва ред да си поиграем с bootloader-а. В моя случай е LILO (това е този по подразбиране в Slackware). Предполагам за GRUB нещата ще са на същия принцип. Та … отваряме /etc/lilo.conf с любимия си редактор и в началото (аз лично преди boot опциата):

raid-extra-boot = mbr-only

Променяме boot опцията от boot = нещо си, на:

boot = /dev/md0

После слизаме по долу, там където започва дефиницията на самия Linux и променяме root

root = /dev/md0

Записваме. Правим един

chroot = /mnt/tmp

после

lilo

И това е. Можете да спрете машината и да заредите от RAID масива. Целта на този материал, не е да е изчерпателен или да замести ръководствата и четенията. Просто да ви помогне да направите правилните неща … разбира се тук не покривам друг вид RAID, а само 1. Макар, че в README_RAID.txt е показано как да направите и тези видове RAID. Също така, тук допускам, че използвате huge kernel. Защото аз го ползвам. Ако не използвате huge, то ще се наложи да си направите initrd. Ако има желаещи, може да седна да разгледам и тези варианти.

Ваш,

Lucifer

Пост 54 от 60

Вашият коментар

This site uses Akismet to reduce spam. Learn how your comment data is processed.