Εγκατάσταση Bootable Software RAID 1

Δημοσίευση από admin στις 5 Απριλίου 2002

Για τις ανάγκες του συστήματος στο οποίο εργαζόμαστε προέκυψε η ανάγκη στησίματος του RAID. Η αλήθεια είναι ότι ήταν ένα πολύ δύσκολο εγχείρημα με δεδομένη και την απειρία μας στο λειτουργικό. Χρειάσθηκε να επιστρατεύσουμε 15 χρόνια επαγγελματικής εμπειρίας στον προγραμματισμό, γνώση της μηχανής σε βάθος, να φρεσκάρουμε τα όσα γνωρίζουμε για τους σκληρούς δίσκους και να θυμηθούμε και πάλι την assembly των X86 αλλά τελικά το αποτέλεσμα (μετά από άπειρες ώρες) μας άρεσε. Προτιμήσαμε το SuSe επειδή αυτό είχαμε. ;-) Ελπίζουμε τα παρακάτω να βοηθήσουν τους τολμηρούς και θα χαρούμε να επικοινωνήσετε μαζί μας στην περίπτωση που το επιτύχετε και σε διαφορετικές συνθέσεις.

Υλικά
SuSe linux 7.3
2 Hard disks 20 Gb

Πρώτα δηλώστε στο Bios τους σκληρούς δίσκους σας. Εφόσον είναι IDE θα πρέπει να είναι σε ξεχωριστούς controllers, primary και secondary masters. Στην περίπτωση μας Heads 16 Sectors 63 Cylinders 16383. Kάντε μια πλήρη εγκατάσταση στον πρώτο σκληρό δίσκο (hda). (Θεωρούμε δεδομένο ότι δεν επιλέξατε διαφορετικό partisioning από αυτό που προτείνει το SuSe. Δηλαδή reiserfs για το / και ext2 για το boot. Ενώ υπάρχει και swap). Φροντίστε να εγκαταστήσετε και τα Sources του Kernel από την επιλογή μεμονωμένων πακέτων. Ελέγξτε αν είναι εγκατεστημένα και τα Ncurses-devel (χρειάζονται στο make menuconfig). Ρυθμίστε το σύστημα ώστε όλα να δουλεύουν σωστά (Network, Internet, Xwindows κ.τ.λ.).

Ανοίξτε μια κονσόλα και δώστε:
su
και στην προτροπή το password του root.

Μετά δώστε:
cd /usr/src/linux-2.4.10.SuSe (η ίδια διαδικασία πιθανότατα θα δουλέψει με επιτυχία και με μεταγενέστερες εκδόσεις του SuSe ή ακόμη και σε άλλες διανομές, αν την εφαρμόσετε θα παρακαλούσαμε να μας ενημερώσετε για να κάνουμε πιο γενικές αυτές τις οδηγίες).

Γράψτε:
make menuconfig (ή αν είσαστε σε γραφικό περιβάλλον make xconfig, χρήσιμο θα ήταν να δείτε και το σχετικό HowTo για το compile του Kernel).

Φροντίστε να επιλέξετε να φορτώνονται από την επιλογή "File Systems" το "Reiserfs support" (Προσοχή όχι σαν module!)
Και από το "Multi-device support (RAID and LVM)" το "RAID-1 (mirroring) mode" (και πάλι προσοχή όχι σαν module!).

Μόλις τελειώσετε δώστε διαδοχικά:

make dep
make install
make modules
make modules_install

Η διαδικασία ίσως χρειαστεί λίγο χρόνο δείξτε την πρέπουσα υπομονή.

Στην δικιά μας περίπτωση το lilo δεν εργάζεται σωστά παρά μόνο αναφέροντας επακριβώς τα στοιχεία του δίσκου στο lilo αν αυτό συμβεί και σε εσάς κάντε edit το /etc/lilo.conf.

και φτιάξτε το ως εξής:

disk = /dev/hda
bios=0x80
sectors=63
heads=16
cylinders=16383
partition=/dev/hda5
start=126 # ο πρώτος κύλινδρος του boot partition
boot=/dev/hda
map = /boot/map
install = /boot/boot.b
vga=791
read-only
menu-scheme = Wg:kw:Wg:Wg
prompt
timeout = 80
message = /boot/message

image = /boot/vmlinuz
label=linux
root=/dev/hda7
initrd=/boot/initrd
append = "enablepic vga=0x0317"

image = /boot/vmlinuz.suse
label=failsafe
root=/dev/hda7
initrd=/boot/initrd.suse
append = "disablepic ide=nodma apm=off"
optional

Δώστε από την κονσόλα:

lilo -v (Φτιάξτε επίσης και μια δισκέτα boot ίσως σας χρειαστεί αν κάτι δεν πάει καλά, αλλάξτε την γραμμή που λέει boot=/dev/hda σε boot=/dev/fd0 και δώστε lilo -v)

Κάντε επανεκκίνηση (reboot) στο μηχάνημα και μετά βεβαιωθείτε ότι όλα λειτουργούν σωστά.

Δημιουργήστε στον δεύτερο σκληρό (hdc) τα ίδια partition με τoν πρώτο (hda) (με το Yast2 ) με την διαφορά ότι τα μαρκάρετε ως Raid (0xFD).

Στο δικό μας configuration το partitioner δείχνει τα παρακάτω:

/deb/hda      19.1 GB    IC35L020AVER07-0          0       38869
/dev/hda1 19.1 GB Extended 0 38869
/dev/hda5 12.3 MB Linux native /boot 0 24
/dev/hda6 971.5 MB Linux swap swap 25 1998
/dev/hda7 18.2 GB Linux native / 1999 38869
/deb/hdc 19.1 GB IC35L020AVER07-0 0 38869
/dev/hdc1 19.1 GB Win95 Ext'd (LBA) 0 38869 δες *
/dev/hdc5 12.3 MB Linux Raid 0 24
/dev/hdc6 971.5 MB Linux swap swap 25 1998
/dev/hdc7 18.2 GB Linux Raid 1999 38869

* Δεν έχουμε καταλάβει γιατί το χαρακτηρίζει ως Win95 ωστόσο όμως δεν επηρεάζει την λειτουργία.

Φτιάξτε μέσα στο /etc ένα αρχείο με το όνομα raidtab, που να περιέχει τα εξής (το παράδειγμα αφορά την δικιά μας διαμόρφωση):

#root
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hdc7
raid-disk 0
device /dev/hda7
failed-disk 1

#boot
raiddev /dev/md1
raid-level 1
nr-raid-disks 2
chunk-size 32
nr-spare-disks 0
persistent-superblock 1
device /dev/hdc5
raid-disk 0
device /dev/hda5
failed-disk 1

Δώστε μετά από κονσόλα ως root (su):

mkraid /dev/md0
mkraid /dev/md1

(πιθανότατα να χρειαστεί να χρησιμοποιήσετε και τον διακόπτη -really-force αν σας αρνηθεί)

Κατόπιν φορμάρετε με:

mkraiserfs /dev/md0
mke2fs /dev/md1

Μετά προσαρτήστε το raid:

mount /dev/md0 /mnt
mkdir /mnt/boot
mount /dev/md1 /mnt/boot

Τώρα θα πρέπει να κάνετε copy τα περιεχόμενα του /dev/hda στο καινούριο σας raid.
Προσοχή δεν πρέπει να αντιγράψουμε τα /proc /mnt.

cp -a /boot /mnt
cp -a /bin /mnt
cp -a /dev /mnt
cp -a /etc /mnt
κ.λ.π
Κατόπιν κάνουμε edit το /mnt/etc/fstab.
Θα πρέπει να μοιάζει ως εξής:

/dev/md0    /              reiserfs       defaults               1 1
/dev/md1 /boot ext2 defaults 1 1
none /dev/pts devpts defaults 0 0
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/fd0 /media/floppy auto noauto,user,sync 0 0
usbdevfs /proc/bus/usb usbdevfs defaults,noauto 0 0
none /proc proc defaults 0 0
/dev/hda6 swap swap pri=42 0 0
/dev/hdc6 swap swap pri=42 0 0

Βασικά μόνο οι πρώτες δύο γραμμές μας ενδιαφέρουν.
Κοιτάμε επίσης αν τα swap έχουν το ίδιο priority (pri).

Αλλάξτε το /etc/lilo.conf ώστε να δείχνει στο raid που δημιουργήσατε.

disk = /dev/md0
bios=0x80
sectors=63
heads=16
cylinders=16383
partition=/dev/md1
start=126
boot=/dev/hda
map = /boot/map
install = /boot/boot.b
vga=791
read-only
menu-scheme = Wg:kw:Wg:Wg
prompt
timeout = 80
message = /boot/message

image = /boot/vmlinuz
label=linux
root=/dev/md0
initrd=/boot/initrd
append = "enablepic vga=0x0317"

image = /boot/vmlinuz.suse
label=failsafe
root=/dev/md0
initrd=/boot/initrd.suse
append = "disablepic ide=nodma apm=off"
optional

Και δώστε από την κονσόλα (ως root όπως πάντα )
lilo -v
(Για να μπορεί να εκκινήσει και από τον δεύτερο σκληρό σε περίπτωση σφάλματος του πρώτου αλλάξτε την γραμμή που λέει boot=/dev/hda σε boot=/dev/hdc και δώστε ξανά lilo -v.
Σημείωση: αυτό ισχύει για σχεδόν όλα τα σύγχρονα BIOS)

Κάντε reboot και θα ξεκινήσετε με το καινούριο σας Raid.

Βεβαιωθείτε ότι όλα λειτουργούν σωστά και αφού το επιβεβαιώσετε πλήρως, ανοίξτε το partitioner του Yast2 και κάντε με το edit την αλλαγή στα hda5 kai hda7 ώστε να είναι Linux Raid (0xFD).

Κάντε edit το /etc/raidtab και αλλάξτε τα failed-disk σε raid-disk (και στο root "'md0" και στο boot "md1").
Κατόπιν ανοίξτε μια κονσόλα και ως root δώστε:

raidhotadd /dev/md1 /dev/hda5
raidhotadd /dev/md0 /dev/hda7

Μετά από αρκετή ώρα θα έχουν συγχρονιστεί οι δίσκοι.
Μπορείτε να παρακολουθείτε την εξέλιξη δίνοντας:

cat /proc/mdstat σε τακτά χρονικά διαστήματα

Αυτό ήταν, με γεια το καινούριο σας Raid. :-)


Χρήσιμα Links

http://www.linuxdoc.org/HOWTO/Boot+Root+Raid+LILO-4.html
http://www.ibiblio.org/mdw/HOWTO/Software-RAID-HOWTO-4.html#ss4.4
http://www.linuxdoc.org/HOWTO/Root-RAID-HOWTO.html#toc3
http://www.preggers.easynet.be/lilo.html
http://www.tu-chemnitz.de/linux/Dokumentation/lilo/user/
http://www.netsys.com/library/suse/howto/en/Software-RAID-HOWTO.txt
http://www.geocrawler.com/archives/3/57/2000/

Οι συγγραφείς

Το άρθρο αυτό το έγραψαν οι Παναγιώτης Σκαρβέλης (etsoft at daem.gr) και Παύλος Καλλίας (kallias at cityofathens.gr). Τους ευχαριστούμε θερμά για αυτήν την συνεισφορά!

All trademarks, copyrights and articles on this page are owned by their respective owners. The rest are © copyleft by HELLUG.
Xplosion Website engine code is © copyright by Thanos Kyritsis. Xplosion is a free software released under the GNU/GPL.


Valid Xhtml 1.1 Valid CSS RSS Syndication Powered by Php Powered by MySQL Graphics made with Gimp