Um ein RAID einzurichten benutzen wir in dieser Beschreibung das Programm 'mdadm'.
Diese Anleitung wurde speziell auf eisfair Systeme abgestimmt, auf deren
Besonderheiten zu gegebenen Zeit hingewiesen wird.
Es werden alle Arten von Festplatten (IDE, SATA, SCSI) unterstützt. Die
Festplattenbezeichnung (hd[a-f] oder sd[a-f]) muss jeweils den eigenen
Gegebenheiten angepasst werden, unabängig davon welche Werte in dieser
Anleitung verwendet wurden.
| eisfair -1 | |
| Das Program 'mdadm' ist ab der base 1.8.0 im Basissystem enthalten und muss deshalb nicht explizit installiert werden. | |
| Die notwendigen Kernelmodule sind im Kernel integriert und müssen nicht zusätzlich geladen werden. | |
| Wenn das bisherige System auf einer IDE-Festplatte installiert ist, müssen für SATA-Festplatten noch die entsprechenden Kernelmodule geladen werden. | |
| Durch Ausführen des Befehls 'modprobe $modul' wird das Modul geladen. | |
| ($modul muss in diesem Fall durch den zu ladenden Modulnamen ersetzt werden, z.B. 'modprobe ahci') |
|
eis # modprobe ahci
eis #
|
| Sollte der zu ladenden Treiber nicht bekannt sein, dann nutzt man den Befehl | |
| lspci -v | |
| um diesen zu ermitteln. |
| eisfair -2 | |
| Das Program 'mdadm' ist bereits im Basissystem enthalten und muss deshalb nicht explizit installiert werden. | |
| Die RAID-Kernelmodule müssen geladen werden, wenn bisher noch kein RAID-System installiert worden ist. |
|
eis # modprobe raid1
eis #
|
Ein eisfair System wurde bereits auf einer IDE-Festplatte installiert und soll um zwei zusätzliche SATA II-Festplatten in einem RAID 1-Verbund ergänzt werden. Damit ergibt sich beispielsweise folgendes Bild:
|
eis # fdisk -l
Disk /dev/hda: 2111 MB, 2111864832 bytes
16 heads, 63 sectors/track, 4092 cylinders, total 4124736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcec8ed6a
Device Boot Start End Blocks Id System
/dev/hda1 * 63 98783 49360+ 83 Linux
/dev/hda2 98784 361871 131544 82 Linux swap / Solaris
/dev/hda3 361872 4124735 1881432 83 Linux
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sda doesn't contain a valid partition table
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4136b680
Device Boot Start End Blocks Id System
/dev/sdb1 * 64 112454 56195+ 83 Linux
/dev/sdb2 112456 385559 136552 82 Linux swap / Solaris
/dev/sdb3 385560 4482134 2048287+ 83 Linux
/dev/sdb4 4482136 1953520064 974518964+ 83 Linux
eis #
|
Das Basissystem liegt in diesem Beispiel auf der Festplatte /dev/hda.
Die zu einem Software-RAID zusammen zu fassenden Festplatten sind
| /dev/sda | hat bisher keine Formatierung und ist also neu | |
| /dev/sdb | wurde schon einmal benutzt und muss nun für | |
| den Einsatz fit gemacht werden. Erreicht wird dies | ||
| durch das Löschen der vorhandenen Datenstruktur: |
|
eis # dd if=/dev/zero of=/dev/sdb bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000447 s, 1.1 MB/s
eis #
|
Beim Ausführen des Befehls 'fdisk -l' ergibt sich somit folgendes Bild:
|
eis # fdisk -l
Disk /dev/hda: 2111 MB, 2111864832 bytes
16 heads, 63 sectors/track, 4092 cylinders, total 4124736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcec8ed6a
Device Boot Start End Blocks Id System
/dev/hda1 * 63 98783 49360+ 83 Linux
/dev/hda2 98784 361871 131544 82 Linux swap / Solaris
/dev/hda3 361872 4124735 1881432 83 Linux
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sda doesn't contain a valid partition table
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
eis #
|
Auf der ersten Festplatte wird eine Partition angelegt und deren Typ festgelegt. Mittels des fdisk-Befehls werden folgende Schritte ausgeführt:
| - | Partition anlegen (hier wird eine primäre Partition angelegt | |
| welche die ganze Grösse der Festplatte einnimmt) | ||
| - | Typ der Partition auf 'Linux raid auto' ändern | |
| - | Partitionstabelle schreiben |
|
eis # fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xd7bfe3c2.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): p
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd7bfe3c2
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4, default 1): 1
First sector (63-1953525167, default 63): <Return>
Using default value 2048
Last sector, +sectors or +size{K,M,G} (63-1953525167, default 1953525167): <Return>
Using default value 1953525167
Command (m for help): p
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd7bfe3c2
Device Boot Start End Blocks Id System
/dev/sda1 63 1953525167 976761560 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help) p
Device Boot Start End Blocks Id System
/dev/sda1 63 1953525167 976761560 fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
eis #
|
Wenn die verwendeten Festplatten 4k-Sektorgrößen unterstützen, sollten diese auch verwendet werden. Dafür ist eine Verschiebung des Startpunktes der Daten, auf einen durch acht teilbaren Wert, notwendig. Dies wird ebenfalls mit Hilfe des fdisk-Befehls durch ausführen folgender Schritte erreicht:
| - | Expertenmodus aktivieren | |
| - | Beginn der Daten in der Partition auf durch 8 teilbaren Wert | |
| setzen (hier vom Default-Wert 63 auf 64) | ||
| - | Partitionstabelle schreiben |
|
eis # fdisk /dev/sda1
The number of cylinders for this disk is set to 243201.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): p
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1361d2f0
Device Boot Start End Blocks Id System
/dev/sda1 1 243201 1953512001 fd Linux raid autodetect
Command (m for help): x
Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
i change the disk identifier
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit
Expert command (m for help): b
Partition number (1-4): 1
New beginning of data (63-3907024064, default 63): 64
Expert command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
eis #
|
Für die die es kurz mögen, die vorherigen Schritte als Einzeiler:
Die '0' lässt sich auch durch einen durch 8 teilbaren Wert ersetzen
z.B. '64'
|
eis # echo '0,,fd' | sfdisk -q -D -uM --no-reread /dev/sda
eis #
|
Nachdem die erste Festplatte komplett eingerichtet wurde, übertrage man deren Master Boot Record auf die zweite Festplatte und begutachte das Ergebnis.
|
eis # sfdisk -d /dev/sda | sfdisk -f /dev/sdb
eis #
eis # fdisk -l
Disk /dev/hda: 2111 MB, 2111864832 bytes
16 heads, 63 sectors/track, 4092 cylinders, total 4124736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcec8ed6a
Device Boot Start End Blocks Id System
/dev/hda1 * 63 98783 49360+ 83 Linux
/dev/hda2 98784 361871 131544 82 Linux swap / Solaris
/dev/hda3 361872 4124735 1881432 83 Linux
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
81 heads, 63 sectors/track, 382818 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd7bfe3c2
Device Boot Start End Blocks Id System
/dev/sda1 64 1953525167 976761560 fd Linux raid autodetect
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 64 1953525167 976761560 fd Linux raid autodetect
eis #
|
Falls die Festplatten bereits einmal in einem RAID-Verbund verwendet wurden, muss sichergestellt werden, dass keine 'Reste' der alten RAID-Konfiguration vorhanden sind. Hierzu wird einfach der alte Superblock gelöscht.
|
eis # mdadm --zero-superblock /dev/sda1
mdadm: Unrecognised md component device - /dev/sda1
eis # mdadm --zero-superblock /dev/sdb1
mdadm: Unrecognised md component device - /dev/sdb1
eis #
|
Falls keine Reste eines früheren RAID-Verbundes gefunden werden, wird die oben zu sehende Meldung ausgegeben. Dies ist an dieser Stelle kein Problem und bei neuen Festplatten absolut normal.
Die Festplatten sind nun soweit vorbereitet um sie zu einem RAID-Verbund zusammenzuführen. Der RAID-Verbund wird im nächsten Schritt mit Hilfe des mdadm-Befehls angelegt:
|
eis # mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 /dev/sdb1
mdadm: array /dev/md0 started.
eis #
|
Jetzt beginnt die Synchronisation der RAID-Festplatten, welche man unbedingt bis zum Ende abwarten sollte. Dieser Vorgang kann, abhängig von der Größe der Festplatten, mehrere Stunden dauern. Den aktuellen Status der Synchronisation kann man sich wie folgt anzeigen lassen:
|
eis # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc[1] sdb[0]
1953514496 blocks [2/2] [UU]
[>....................] resync = 0.0% (491072/1953514496) finish=397.6min
speed=81845K/sec
unused devices: <none>
eis #
|
Beim Aufruf des Befehls 'watch cat /proc/mdstat' erhält man eine alle zwei Sekunden aktualisierten Statusausgabe und kann den Synchronisationsprozess so nebenher im Auge behalten. Zurück auf die Konsole gelangt man mit 'Strg+C'.
|
eis # watch cat /proc/mdstat
Every 2.0s: cat /proc/mdstat Thu Sep 8 17:44:42 2011
Personalities : [raid1]
md0 : active raid1 sdc[1] sdb[0]
1953514496 blocks [2/2] [UU]
[>....................] resync = 0.0% (491072/1953514496) finish=397.6min
speed=81845K/sec
unused devices: <none>
eis #
|
Nach Abschluss der Synchronisation legt man das Dateisystem an, was
üblicherweise einige Minuten dauert. Das Standarddateisystem vieler
Linux-Systeme ist auch heute noch 'ext3 - mkfs.ext3', auch wenn es
diverse Alternativen gibt. 'Wer die Wahl hat hat die Qual' ;-)
| eisfair -1 | |
| Neu für eisfair hinzugekommene Dateisysteme sind 'ext4 - mkfs.ext4' und 'xfs - mkfs.xfs'. Zum Einrichten eines 'xfs'-Dateisystems müssen zusätzlich die 'xfs-tools' von Pack-Eis installiert werden. |
|
eis # mkfs.etx4 /dev/md0
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
2336 inodes, 9344 blocks
467 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=9699328
2 block groups
8192 blocks per group, 8192 fragments per group
1168 inodes per group
Superblock backups stored on blocks:
8193
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
eis #
|
Der RAID-Verbund ist nun eingerichtet und kann gemountet werden. Im Beispiel wird als Mountpoint das Verzeichnis /data/backup verwendet:
|
eis # mkdir -p /data/backup
eis # ls -l /data/
total 8
drwxr-xr-x 2 root root 4096 Aug 28 16:45 backup
drwxr-xr-x 2 root root 4096 Jun 14 15:22 packages
eis # mount -t ext4 /dev/md0 /data/backup
eis #
|
Die neue Partition im RAID-Verbund ist dem System nun bis zum nächsten Reboot bekannt:
|
eis # mount
/dev/hda3 on / type ext3 (rw,errors=remount-ro,acl,user_xattr)
/dev/hda1 on /boot type ext3 (rw,errors=remount-ro)
devpts on /dev/pts type devpts (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/sys on /sys type sysfs (rw)
/dev/md0 on /data/backup type ext4 (rw,acl,user_xattr)
eis #
|
Um den RAID-Verbund nun dauerhaft zu aktivieren, sodass er auch einen
Systemstart übersteht, sind folgende Schritte durchzuführen:
Mit Hilfe des Editors 'joe' öffnet man die Datei /etc/fstab und
fügt eine zusätzliche Zeile, beginnend mit /dev/md0, hinzu. Bitte
eine Leerzeile am Dateiende nicht vergessen.
| joe /etc/fstab |
Um eventuell fehlende Kernelmodule und das Starten des RAID-Verbundes in die initrd zu bekommen, empfiehlt es sich an dieser Stelle ein Kernelupdate durchzuführen. Auch wenn der Kernel bereits auf dem aktuellen Stand sein sollte, wird durch ein Kernelupdate sicher gestellt, dass auch eine korrekte initrd-Datei erzeugt wird.
Natürlich ist es auch möglich die initrd manuell zu bearbeiten und die notwendigen Angaben in das 'linuxrc' Skript einzufügen. Hierzu verwendet man wieder den Editor 'joe':
|
eis # mkdir -p /tmp/initrd/init
eis # cd /tmp/initrd
eis # cp -a /boot/initrd.gz .
eis # gzip -d initrd.gz
eis # modprobe loop
eis # mount -o loop initrd init
eis #
|
| joe init/linuxrc |
und dann am Dateiende die folgende Zeile hinzufügen. (Leerzeile am Ende nicht vergessen)
/sbin/raidautorun /dev/md0
Nun die initrd wieder zusammenpacken und zurückkopieren
|
eis # umount init
eis # gzip -9 initrd
eis # cp initrd.gz /boot
eis # reboot
eis #
|
Nach dem Neustart des Servers prüfen wir noch einmal, ob die neue Partition im RAID-Verbund korrekt eingebunden wurde.
|
Welcome to eisfair!
base : 1.7.6
eiskernel: 2.0.13 (2.6.32-eisfair-1)
eis #
eis # mount
/dev/hda3 on / type ext3 (rw,errors=remount-ro,acl,user_xattr)
/dev/hda1 on /boot type ext3 (rw,errors=remount-ro)
devpts on /dev/pts type devpts (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/sys on /sys type sysfs (rw)
/dev/md0 on /data/backup type ext4 (rw,acl,user_xattr)
eis #
|
An dieser Stelle ist die Konfiguration des RAID-Verbundes und dessen
dauerhafte Einbindung in das eisfair System abgeschlossen.
Zunächst muss die mdadm-Konfigurationsdatei aktualisiert werden:
|
eis # mdadm --examine --scan >> /etc/mdadm/mdadm.conf
mdadm: excess address on MAIL line: mdadm/mail_to - ignored
mdadm: excess address on MAIL line: doesnt exist - ignored
eis #
|
Die Konfiguration sollte nun in etwa wie folgt aussehen:
|
eis # cat /etc/mdadm/mdadm.conf # mdadm.conf # # Please refer to mdadm.conf(5) for information about this file. # # by default, scan all partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions # auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes # automatically tag new arrays as belonging to the local system HOMEHOST
|
Nachdem die Array-Zeile eingefügt wurde, müssen noch die folgenden Anpassungen in der mdadm.config-Datei vorgenommen werden:
1. Eintragen der zu verwendenden Festplatten unter DEVICE:
| Eintrag alt: |
| DEVICE partitions |
| Eintrag neu: |
| DEVICE /dev/sdb[0-9] /dev/sdc[0-9] |
2. Erweitern der ARRAY-Zeile um die metadata-Angabe nach folgendem Schema:
| Eintrag alt: |
| ARRAY /dev/md0 level=raid1 num-devices=2 UUID=8f00... |
| Eintrag neu: |
| ARRAY /dev/md0 level=raid1 num-devices=2 metadata=00.90 UUID=8f00... |
3. Prüfen der eingetragenen UUID und gegebenenfalls deren Korrektur. In der Ausgabe von 'blkid' ist die UUID der beiden Festplatten im RAID-Verbund zu sehen. Diese ist für beide Festplatten identisch und muss sich ebenfalls in der mdadm.config-Datei befinden. Achtung, die Schreibweise unterscheidet sich geringfügig. Bei der Ausgabe von blkid werden die UUIDs mit '-' getrennt, in der mdadm.config-Datei mit ':' und noch dazu an anderer Stelle angezeigt. Hier ein korrektes Beispiel:
|
eis # blkid
...
/dev/sdb1: UUID="f728db1b-06e6-0380-36b8-364fac71c0cc" TYPE="linux_raid_member"
/dev/sdc1: UUID="f728db1b-06e6-0380-36b8-364fac71c0cc" TYPE="linux_raid_member"
...
eis # grep ARRAY /etc/mdadm/mdadm.conf}
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=00.90
UUID=f728db1b:06e60380:36b8364f:ac71c0cc
eis #
|
Nun muss der RAID-Verbund noch in die fstab-Datei eingetragen werden. Bei einer Standardinstallation von eisfair -2 ohne separate Datenpartition sieht die fstab beispielsweise wie folgt aus:
/etc/fstab #(Ausgabe fuer das HowTo formatiert) proc /proc proc defaults 0 0 UUID=41b0... / ext3 defaults,errors=remount-ro,acl,user_xattr 0 1 UUID=c99e... /boot ext3 defaults,errors=remount-ro,acl,user_xattr 0 1 UUID=a101... none swap sw 0 0 /dev/cdrom /media/cdrom udf,iso9660 user,noauto,exec,utf8 0 0 /dev/fd0 /media/floppy auto rw,user,noauto,exec,utf8 0 0
Um nun den RAID-Verbund in die fstab einzutragen, wird die UUID benötigt. Diese wird entweder wieder mit 'blkid' oder mit 'vol_id' wie folgt ermittelt:
|
eis # vol_id /dev/md0
d2dcb1cd-2ba4-4f89-8bee-8c44213b2848
eis #
|
Mit dieser UUID wir nun der entsprechende Eintrag in die fstab-Datei, nach folgendem Schema, vorgenommen (Leerzeile am Zeilenende nicht vergessen):
| vi /etc/fstab |
UUID=<hier-UUID-eintragen> /data/backup ext3 defaults,errors=remount-ro,acl,user_xattr 0 2
Im letzten Schritt muss in der Grub-Konfiguration das Laden der RAID-Module aktiviert werden. Dazu wird die Datei /boot/grub/menu.lst im Editor geöffnet:
| vi /boot/grub/menu.lst |
und die Kernel-Zeile um die Angabe 'raid=1' ergänzt werden:
| Eintrag alt: |
| kernel /boot/vmlinux root=UUID=41b0... ro quiet console=tty7 kmapger |
| Eintrag neu: |
| kernel /boot/vmlinux root=UUID=41b0... ro quiet console=tty7 kmapger raid=1 |
An dieser Stelle ist die Konfiguration des RAID-Verbundes und dessen dauerhafte Einbindung in das eisfair System abgeschlossen. Dies sollte noch durch einen Neustart des Servers überprüft werden:
|
eis # reboot
eis #
eis # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 35G 408M 33G 2% /
varrun 1010M 32K 1010M 1% /var/run
udev 1010M 48K 1010M 1% /dev
devshm 1010M 0 1010M 0% /dev/shm
/dev/sda1 69M 14M 51M 22% /boot
/dev/md0 1.9T 196M 1.8T 1% /data/backup
eis #
|
An dieser Stelle ist die Konfiguration des RAID-Verbundes und dessen
dauerhafte Einbindung in das eisfair System abgeschlossen.
Ein eisfair System wurde bereits mit 4 Partitionen auf einer Festplatte
installiert, d.h. es wurde eine zusätzliche /data-Partition angelegt,
welches nun komplett auf einen RAID 1-Verbund umziehen soll. Damit ergibt
sich beispielsweise folgendes Bild:
| /dev/sda | ⇒ | Erste Festplatte mit dem vorhandenen eisfair System | |
| /dew/sda1 | ⇒ | /boot | |
| /dev/sda2 | ⇒ | swap-Partition | |
| /dev/sda3 | ⇒ | / | |
| /dev/sda4 | ⇒ | /data | |
| /dev/sdb | ⇒ | Zweite 'leere' Festplatte |
|
eis # fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2fa4f6c3
Device Boot Start End Blocks Id System
/dev/sda1 * 63 112454 56196 83 Linux
/dev/sda2 112455 385559 136552+ 82 Linux swap / Solaris
/dev/sda3 385560 21366449 10490445 83 Linux
/dev/sda4 21366450 312576704 145605127+ 83 Linux
Disk /dev/sdb: 160.0 GB, 160040803840 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312579695 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
eis #
|
Auf der ersten Festplatte ändert man nun die Partitions-Id aller vorhandenen Partitionen nach 'fd' 'Linux raid autodetect'.
|
eis # sfdisk --change-id /dev/sda 1 fd
Done
eis # sfdisk --change-id /dev/sda 2 fd
Done
eis # sfdisk --change-id /dev/sda 3 fd
Done
eis # sfdisk --change-id /dev/sda 4 fd
Done
eis #
|
Für die die es kurz mögen, gibt es diese Befehle noch einmal als Einzeiler.
|
eis # for i in 1 2 3 4; do sfdisk --change-id /dev/sda $i fd ; done
Done
Done
Done
Done
eis #
|
Die Partitionen stellen sich nun wie folgt dar:
|
eis # fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2fa4f6c3
Device Boot Start End Blocks Id System
/dev/sda1 * 63 112454 56196 fd Linux raid autodetect
/dev/sda2 112455 385559 136552+ fd Linux raid autodetect
/dev/sda3 385560 21366449 10490445 fd Linux raid autodetect
/dev/sda4 21366450 312576704 145605127+ fd Linux raid autodetect
Disk /dev/sdb: 160.0 GB, 160040803840 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312579695 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
eis #
|
Nachdem die erste Festplatte komplett eingerichtet wurde, überträgt man deren Master Boot Record auf die zweite Festplatte und begutachte das Ergebnis:
|
eis # sfdisk -d /dev/sda | sfdisk -f /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 19457 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 112454 112392 fd Linux raid autodetect
/dev/sdb2 112455 385559 273105 fd Linux raid autodetect
/dev/sdb3 385560 21366449 20980890 fd Linux raid autodetect
/dev/sdb4 21366450 312576704 291210255 fd Linux raid autodetect
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
eis #
|
|
eis # sfdisk -luS
Disk /dev/sda: 19457 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sda1 * 63 112454 112392 fd Linux raid autodetect
/dev/sda2 112455 385559 273105 fd Linux raid autodetect
/dev/sda3 385560 21366449 20980890 fd Linux raid autodetect
/dev/sda4 21366450 312576704 291210255 fd Linux raid autodetect
Disk /dev/sdb: 19457 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 112454 112392 fd Linux raid autodetect
/dev/sdb2 112455 385559 273105 fd Linux raid autodetect
/dev/sdb3 385560 21366449 20980890 fd Linux raid autodetect
/dev/sdb4 21366450 312576704 291210255 fd Linux raid autodetect
eis #
|
Falls die Festplatten bereits einmal in einem RAID-Verbund verwendet wurden, muss sichergestellt werden, dass keine 'Reste' der alten RAID-Konfiguration vorhanden sind. Hierzu wird einfach der alte Superblock gelöscht.
|
eis # mdadm --zero-superblock /dev/sdb1
mdadm: Unrecognised md component device - /dev/sdb1
eis # mdadm --zero-superblock /dev/sdb2
mdadm: Unrecognised md component device - /dev/sdb2
eis # mdadm --zero-superblock /dev/sdb3
mdadm: Unrecognised md component device - /dev/sdb3
eis # mdadm --zero-superblock /dev/sdb4
mdadm: Unrecognised md component device - /dev/sdb4
eis #
|
Falls keine Reste eines früheren RAID-Verbundes gefunden werden, wird die oben zu sehende Meldung ausgegeben. Dies ist an dieser Stelle kein Problem und bei neuen Festplatten absolut normal.
Die Festplatten sind nun soweit vorbereitet dass ein RAID-Verbund
angelegt werden kann. Hierzu verwendet man den mdadm-Befehl. Zur
besseren Orientierung wird empfohlen die Bezeichnungen der 'md'-Devices
an die der vorherigen Partitionen anzulehnen.
| /dev/sda1 | ⇒ | /dev/md1 | |
| /dev/sda2 | ⇒ | /dev/md2 | |
| /dev/sda3 | ⇒ | /dev/md3 | |
| /dev/sda4 | ⇒ | /dev/md4 | |
Da die erste Festplatte die zu kopierenden Daten enthält wird sie beim Anlegen des RAID-Verbundes als 'missing' deklariert.
|
eis # mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm: /dev/sdb1 appears to contain an ext2fs file system
size=56128K mtime=Tue Sep 20 20:13:39 2011
Continue creating array? y
mdadm: array /dev/md1 started.
eis #
eis # mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm: array /dev/md2 started.
eis #
eis # mdadm --create /dev/md3 --level=1 --raid-disks=2 missing /dev/sdb3
mdadm: /dev/sdb3 appears to contain an ext2fs file system
size=1052160K mtime=Thu Sep 8 11:39:23 2011
Continue creating array? y
mdadm: array /dev/md3 started.
eis #
eis # mdadm --create /dev/md4 --level=1 --raid-disks=2 missing /dev/sdb4
mdadm: array /dev/md4 started.
eis #
|
Das Ergebnis lässt man sich zur Kontrolle anzeigen:
|
eis # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md4 : active raid1 sdb4[1]
145605056 blocks [2/1] [_U]
md3 : active raid1 sdb3[1]
10490368 blocks [2/1] [_U]
md2 : active raid1 sdb2[1]
136448 blocks [2/1] [_U]
md1 : active raid1 sdb1[1]
56128 blocks [2/1] [_U]
unused devices:
|
Nun legt man das Dateisystem an, was üblicherweise einige Minuten
dauert. Das Standarddateisystem vieler Linux-Systeme ist auch heute
noch 'ext3 - mkfs.ext3', auch wenn es diverse Alternativen gibt.
'Wer die Wahl hat hat die Qual' ;-)
| eisfair -1 | |
| Neu für eisfair hinzugekommene Dateisysteme sind 'ext4 - mkfs.ext4' und 'xfs - mkfs.xfs'. Zum Einrichten eines 'xfs'-Dateisystems müssen zusätzlich die 'xfs-tools' von Pack-Eis installiert werden. | |
| mkfs.ext4 | /dev/md1 | |
| mkfs.ext4 | /dev/md3 | |
| mkfs.ext4 | /dev/md4 | |
| mkswap | /dev/md2 |
|
eis # mkfs.etx4 /dev/md1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
14056 inodes, 56128 blocks
2806 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=57671680
7 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
eis #
eis # mkfs.etx4 /dev/md3
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622592 blocks
131129 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
eis #
eis # mkfs.etx4 /dev/md4
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
9101312 inodes, 36401264 blocks
1820063 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1111 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
eis #
eis # mkswap /dev/md2
mkswap: /dev/md2: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 136444 KiB
no label, UUID=0d01a7f7-ae3a-4d99-834e-a5805bb10231
eis #
|
Wenn das komplette RAID Setup über eine Secure Shell durchgeführt
wird, sollte man vor dem ersten Reboot die Überprüfung des Root
Filesystems unterbinden. Dazu ist in der Datei /etc/init.d/boot die
Zeile '/sbin/fsck -A -p 2>/dev/null' auszukommentieren und dann zu
speichern.
| joe /etc/init.d/boot |
Das Root Device (/dev/md3) mountet man nach /mnt und legt dort dann ein neues boot-Verzeichnis an. Dieses boot-Verzeichnis verwendet man nun als mount-Point für das Boot Device (/dev/md1).
|
eis # mount -t ext4 /dev/md3 /mnt
eis # mkdir -p /mnt/boot
eis # mount -t ext4 /dev/md1 /mnt/boot
eis #
|
Die Partitionen mit dem Root-Verzeichnis sowie dem Boot-Verzeichnis werden auf die neu erstellten Multiple-Devices kopiert.
Da der Kopiervorgang selbst einige Minuten andauern kann, wartet man solange bis der Eingabe-Prompt wieder erscheint.
|
eis # cd /
eis # find . -xdev | cpio -pmv /mnt
eis #
eis # cd /boot
eis # find . -xdev | cpio -pmv /mnt/boot
eis #
|
Mit Hilfe des Editors 'joe' öffnet man die Datei /mnt/etc/fstab und
passt sie an die neuen Multiple-Device Namen an. Bitte eine Leerzeile
am Dateiende nicht vergessen.
| joe /mnt/etc/fstab |
Jetzt kann die aktuelle /boot Partition ausgehängt und stattdessen /dev/sda1 nach /mnt/boot eingehängt werden. Dies ist notwendig um die korrekte Installation des Bootloaders Lilo zu gewährleisten.
|
eis # cd /
eis # umount /boot
eis # mount /dev/sda1 /mnt/boot
eis #
|
Im nächsten Schritt wird die Datei /mnt/etc/lilo.conf so modifiziert,
daß das Boot Device immer noch ein herkömmliches Laufwerk /dev/sda
bleibt, das Root Dateisystem sich jedoch bereits auf einem Multiple
Device befindet.
| joe /mnt/etc/lilo.conf |
Wenn das zukünftige RAID auf SATA Festplatten installiert wird, muß die initrd geöffnet und die notwendigen Angaben in das 'linuxrc' Skript eingefügt werden. Bei IDE Festplatten ist dieser Schritt nicht erforderlich. Hierzu verwendet man wieder den Editor 'joe':
|
eis # mkdir -p /tmp/initrd/init
eis # cd /tmp/initrd
eis # cp -a /mnt/boot/initrd.gz .
eis # gzip -d initrd.gz
eis # modprobe loop
eis # mount -o loop initrd init
eis #
|
| joe init/linuxrc |
und dann am Dateiende die folgende Zeile hinzufügen.
(Leerzeile am Ende nicht vergessen)
/sbin/raidautorun /dev/md1
Nun die initrd wieder zusammenpacken und zurückkopieren
|
eis # umount init
eis # gzip -9 initrd
eis # cp initrd.gz /mnt/boot
eis #
|
Um die Voraussetzung für einen fehlerfreien Neustart des Servers zu
schaffen, ist es notwendig die zuvor genannten Anpassungen an der Datei
/mnt/etc/lilo.conf vorzunehmen. Danach kann der lilo-Befehl auf dem
Verzeichnis /mnt ausgeführt werden.
|
eis # cd /
eis # lilo -r /mnt
Added eis *
eis #
|
Abschließend sind noch folgende Schritte auszuführen um einer
Kernelpanik beim Systemstart vorzubeugen. Die Partition /dev/sda1
ist noch nach /mnt/boot eingehängt und muss nun wieder nach /boot
eingehängt werden. Anschließend erfolgt der reboot und das System
wird neu gestartet.
|
eis # umount /dev/sda1
eis # mount /dev/sda1 /boot
eis #
eis # cp -a /boot/initrd.gz /mnt/boot
eis #
eis # reboot
eis #
|
Wenn alle bisherigen Schritte ohne Probleme durchgeführt wurden läuft der RAID-Verbund zwar bereits, jedoch ohne aktive Redundanz, da die Festplatte /dev/sda noch nicht Teil des RAID-Verbundes ist.
|
eis # mount
/dev/md3 on / type ext4 (rw,errors=remount-ro,acl,user_xattr)
/dev/md1 on /boot type ext4 (rw,errors=remount-ro)
/dev/md4 on /data type ext4 (rw,acl,user_xattr)
devpts on /dev/pts type devpts (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/sys on /sys type sysfs (rw)
eis #
|
Die Festplatte /dev/sda wird nun in den RAID-Verbund integriert.
|
eis # mdadm /dev/md1 --add /dev/sda1
mdadm: added /dev/sda1
eis # mdadm /dev/md2 --add /dev/sda2
mdadm: added /dev/sda2
eis # mdadm /dev/md3 --add /dev/sda3
mdadm: added /dev/sda3
eis # mdadm /dev/md4 --add /dev/sda4
mdadm: added /dev/sda4
eis #
|
Jetzt beginnt die Synchronisation der RAID-Festplatten, welche man
unbedingt bis zum Ende abwarten sollte. Dieser Vorgang kann, abhängig
von der Größe der Festplatten, mehrere Stunden dauern. Den aktuellen
Status der Synchronisation kann man sich wie folgt anzeigen lassen:
|
eis # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md2 : active raid1 sda2[0] sdb2[1]
136448 blocks [2/2] [UU]
md3 : active raid1 sda3[2] sdb3[1]
10490368 blocks [2/1] [_U]
[=========>...........] recovery = 48.0% (5042688/10490368) finish=1.8min speed=48404K/sec
md4 : active raid1 sda4[2] sdb4[1]
145605056 blocks [2/1] [_U]
resync=DELAYED
md1 : active raid1 sda1[0] sdb1[1]
56128 blocks [2/2] [UU]
unused devices: <none>
eis #
|
Beim Aufruf des Befehls 'watch cat /proc/mdstat' erhält man eine alle zwei
Sekunden aktualisierten Statusausgabe und kann den Synchronisationsprozess
so nebenher im Auge behalten. Zurück auf die Konsole gelangt man mit 'Strg+C'.
|
eis # watch cat /proc/mdstat
Every 2.0s: cat /proc/mdstat Thu Sep 8 17:44:42 2011
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md2 : active raid1 sda2[0] sdb2[1]
136448 blocks [2/2] [UU]
md3 : active raid1 sda3[2] sdb3[1]
10490368 blocks [2/1] [_U]
[=========>...........] recovery = 48.0% (5042688/10490368) finish=1.8min speed=48404K/sec
md4 : active raid1 sda4[2] sdb4[1]
145605056 blocks [2/1] [_U]
resync=DELAYED
md1 : active raid1 sda1[0] sdb1[1]
56128 blocks [2/2] [UU]
unused devices: <none>
eis #
|
Damit bei jedem Systemstart eine Überprüfung des Dateisystems
angestoßen wird, muss die in einem vorherigen Schritt auskommentierte
Zeile '#/sbin/fsck -A -p 2>/dev/null' wieder aktiviert werden.
| joe /etc/init.d/boot |
Auch die lilo-Konfiguration muss nun noch an die veränderten
Rahmenbedingungen angepasst werden, um den Start von allen
Laufwerken des RAID-Verbundes zu ermöglichen.
| joe /etc/lilo.conf |
Zum Abschluss wird noch einmal der lilo-Befehl ausgeführt und dass eisfair System neu gestartet.
|
eis # lilo
Added eis *
The boot record of /dev/md1 has been updated.
The boot record of /dev/sda has been updated.
Warning: /dev/sdb is not on the first disk
The boot record of /dev/sdb has been updated.
One warning was issued.
eis #
eis # reboot
eis #
|
An dieser Stelle ist die Konfiguration des RAID-Verbundes und dessen
dauerhafte Einbindung in das eisfair System abgeschlossen. Dies
sollte noch durch einen Neustart des Servers überprüft werden:
|
eis # Welcome to eisfair!
base : 1.7.6
eiskernel: 2.0.12 (2.6.32-eisfair-1)
eis # mount
/dev/md3 on / type ext4 (rw,errors=remount-ro,acl,user_xattr)
/dev/md1 on /boot type ext4 (rw,errors=remount-ro)
/dev/md4 on /data type ext4 (rw,acl,user_xattr)
devpts on /dev/pts type devpts (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/sys on /sys type sysfs (rw)
eis #
|
Weitere Tests lassen sich realisieren, indem man einzelne Festplatten nacheinander hardwareseitig abklemmt. Es ist darauf zu achten, daß immer die Syncronisation vollständig erfolgt ist. Ist alles korrekt konfiguriert, muss das System von jedem Laufwerk ohne Fehlermeldungen hochfahren.
Beim Ausfall einer Festplatte in einem Software RAID Verbund, sind im wesentlichen die gleiche Schritte wie bei dem Hinzufügen der 2. Festplatte, weiter vorne beschrieben, auszuführen.
|
eis # hdparm -i /dev/hdb
/dev/hdb:
Model=WDC WD3200AAJB-00J3A0, FwRev=01.03E01, SerialNo=WD-WCAV2AV04526
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=16
CurCHS=65535/1/63, CurSects=4128705, LBA=yes, LBAsects=625142448
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=no WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
* signifies the current active mode
eis #
|
|
eis # mdadm /dev/md1 --fail /dev/hdb1
mdadm: set /dev/hdb1 faulty in /dev/md1
eis # mdadm /dev/md2 --fail /dev/hdb2
mdadm: set /dev/hdb2 faulty in /dev/md2
eis # mdadm /dev/md3 --fail /dev/hdb3
mdadm: set /dev/hdb3 faulty in /dev/md3
eis # mdadm /dev/md4 --fail /dev/hdb4
mdadm: set /dev/hdb4 faulty in /dev/md4
eis #
|
|
eis # mdadm /dev/md1 --remove /dev/hdb1
mdadm: hot removed /dev/hdb1
eis # mdadm /dev/md2 --remove /dev/hdb2
mdadm: hot removed /dev/hdb2
eis # mdadm /dev/md3 --remove /dev/hdb3
mdadm: hot removed /dev/hdb3
eis # mdadm /dev/md4 --remove /dev/hdb4
mdadm: hot removed /dev/hdb4
eis #
|
|
eis # sfdisk -d /dev/sda | sfdisk -f /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 19457 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 112454 112392 fd Linux raid autodetect
/dev/sdb2 112455 385559 273105 fd Linux raid autodetect
/dev/sdb3 385560 21366449 20980890 fd Linux raid autodetect
/dev/sdb4 21366450 312576704 291210255 fd Linux raid autodetect
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
eis #
|
|
eis # sfdisk -luS
Disk /dev/sda: 19457 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sda1 * 63 112454 112392 fd Linux raid autodetect
/dev/sda2 112455 385559 273105 fd Linux raid autodetect
/dev/sda3 385560 21366449 20980890 fd Linux raid autodetect
/dev/sda4 21366450 312576704 291210255 fd Linux raid autodetect
Disk /dev/sdb: 19457 cylinders, 255 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 112454 112392 fd Linux raid autodetect
/dev/sdb2 112455 385559 273105 fd Linux raid autodetect
/dev/sdb3 385560 21366449 20980890 fd Linux raid autodetect
/dev/sdb4 21366450 312576704 291210255 fd Linux raid autodetect
eis #
|
|
eis # mdadm /dev/md1 --add /dev/sda1
mdadm: added /dev/sda1
eis # mdadm /dev/md2 --add /dev/sda2
mdadm: added /dev/sda2
eis # mdadm /dev/md3 --add /dev/sda3
mdadm: added /dev/sda3
eis # mdadm /dev/md4 --add /dev/sda4
mdadm: added /dev/sda4
eis #
|
Nach der Synchronisation ist der RAID-Verbund wieder vollständig.
Es ist unbedingt zu beachten, daß ein RAID-Verbund kein Backup ersetzt.
Aus diesem Grund wird empfohlen eine verlässliche Sicherungsstrategie
zu erstellen.
Darüberhinaus sollte vor der Überführung eines bestehenden eisfair
Systems in einen RAID-Verbund, wie vor allen großen Änderungen an der
Hardware, eine Datensicherung auf einen externen Datenträger
durchgeführt werden.
Für die Erstellung dieser Anleitung wurde u.a. auf die auf
eisfair.org
abgelegten
Anleitungen von Yves Schumann, Jürgen Witt und Manfred Reiland
zurückgegriffen.
Yves Schumann 2011-11-27