Linux > Software >
The Chain of Trust >
Linux software raid.
Deprecated. As I understand, mdadm is what’s used these days.
—
- 2006-09-03 – (version not recorded) on PCLinuxOS .92
-
I had experimented with it previously.
2006-09-03 – (version not recorded) ∞
So I got raidtools working again. It gave me flashbacks from my experimentation with it back in its alpha days, when I was using Slackware.
As it turns out, my backup script is adaptable to these drives, except that it’s not smart enough to fsck the source drives.
With PCLinuxOS .92, I installed this with:
\apt-get install raidtools
Creating a RAID-1 array (mirroring):
First, set up /dev/raidtab like so:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc1
raid-disk 0
device /dev/sdd1
raid-disk 1
Then run mdadm:
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1
Spoiler
raidstop /dev/md0 raidstart /dev/md0 mkdir mnt # Creating a file on the array: mount /dev/md0 mnt echo test>mnt/test_file umount mnt raidstop /dev/md0 # Proof that the file exists on the first drive: mount /dev/sdc1 mnt ls mnt umount mnt # Proof that the file was also mirrored over to the other drive: mount /dev/sdd1 mnt ls mnt umount mnt # Cleaning up raidstart /dev/md0 mount /dev/md0 mnt rm -f mnt/test_file umount mnt raidstop /dev/md0
My setup ∞
raidtab ∞
/dev/raidtab
Spoiler
raiddev /dev/md1
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc1
raid-disk 0
device /dev/sdd1
raid-disk 1
raiddev /dev/md2
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc2
raid-disk 0
device /dev/sdd2
raid-disk 1
raiddev /dev/md3
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc3
raid-disk 0
device /dev/sdd3
raid-disk 1
raiddev /dev/md5
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc5
raid-disk 0
device /dev/sdd5
raid-disk 1
raiddev /dev/md6
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc6
raid-disk 0
device /dev/sdd6
raid-disk 1
raiddev /dev/md7
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc7
raid-disk 0
device /dev/sdd7
raid-disk 1
raiddev /dev/md8
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc8
raid-disk 0
device /dev/sdd8
raid-disk 1
raiddev /dev/md9
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sdc9
raid-disk 0
device /dev/sdd9
raid-disk 1
fstab ∞
(fstab)
fstab with raidtools ∞
Spoiler
This includes settings for raidtools.
# This file is edited by fstab-sync - see 'man fstab-sync' for details ## Livecd-install Automatically added by livecd-install none /proc proc defaults 0 0 none /dev/pts devpts mode=0620 0 0 none /proc/bus/usb usbfs defaults 0 0 # /dev/hda1, size=16002, type=130: Linux swap (primary) #/dev/hda1 swap swap defaults 0 0 # /dev/hda2, size=1959930, type=130: Linux swap (primary) #/dev/hda2 swap swap defaults 0 0 # could be: #/dev/hda2 swap swap sw 0 0 # /dev/hda3, size=19535040, type=131: Journalised FS: ext3 (primary) #/dev/hda3 / ext3 defaults 0 0 /dev/hda3 / ext3 errors=remount-ro,noatime 0 1 # /dev/hda5, size=19534977, type=131: Journalised FS: ext3 (extended) #/dev/hda5 /home ext3 defaults 0 2 #/dev/hda5 /home ext3 rw,suid,dev,exec,auto,nouser,async,noatime 0 2 # /dev/hda6, size=3903732, type=131: Journalised FS: ext3 (extended) #/dev/hda6 /var ext3 defaults 0 2 /dev/hda6 /var ext3 nosuid,noexec,noatime 0 2 # /dev/hda7, size=3903732, type=131: Journalised FS: ext3 (extended) #/dev/hda7 /tmp ext3 defaults 0 3 /dev/hda7 /tmp ext3 rw,suid,dev,exec,auto,nouser,async,noatime 0 3 # /dev/hda8, size=439538337, type=131: Journalised FS: ext3 (extended) #/dev/hda8 /mnt/hda8 ext3 user,exec,rw,noauto 0 5 /dev/hda8 /mnt/hda8 ext3 rw,suid,dev,exec,auto,nouser,async,noatime 0 5 # /dev/hdb1, size=16002, type=130: Linux swap (primary) /dev/hdb1 swap swap defaults 0 0 /dev/md1 swap swap defaults 0 0 # /dev/hdb2, size=1959930, type=130: Linux swap (primary) /dev/hdb2 swap swap defaults 0 0 /dev/md2 swap swap defaults 0 0 # /dev/hdb3, size=19535040, type=131: Journalised FS: ext3 (primary) /dev/hdb3 /mnt/hdb3 ext3 user,exec,rw,noauto 0 0 /dev/md3 /mnt/md3 ext3 user,exec,rw,noauto 0 0 # /dev/hdb5, size=19534977, type=131: Journalised FS: ext3 (extended) /dev/hdb5 /mnt/hdb5 ext3 user,exec,rw,noauto 0 0 /dev/md5 /mnt/md5 ext3 user,exec,rw,noauto 0 0 # /dev/hdb6, size=3903732, type=131: Journalised FS: ext3 (extended) /dev/hdb6 /mnt/hdb6 ext3 user,exec,rw,noauto 0 0 /dev/md6 /mnt/md6 ext3 user,exec,rw,noauto 0 0 # /dev/hdb7, size=3903732, type=131: Journalised FS: ext3 (extended) /dev/hdb7 /mnt/hdb7 ext3 user,exec,rw,noauto 0 0 /dev/md7 /mnt/md7 ext3 user,exec,rw,noauto 0 0 # /dev/hdb8, size=439538337, type=131: Journalised FS: ext3 (extended) /dev/hdb8 /mnt/hdb8 ext3 user,exec,rw,noauto 0 0 /dev/md8 /mnt/md8 ext3 user,exec,rw,noauto 0 0 /dev/md9 /mnt/md9 ext3 user,exec,rw,noauto 0 0 # cdrom: LITE-ON LTR-52246S /dev/hdc /mnt/cdrom auto user,exec,ro,noauto,iocharset=iso8859-1,codepage=850,umask=0 0 0 # cdrom: HL-DT-STDVD-ROM GDR8163B /dev/hdd /mnt/cdrom2 auto user,exec,ro,noauto,iocharset=iso8859-1,codepage=850,umask=0 0 0
/dev/fstab
Spoiler
mknod /dev/md1 b 9 1 mknod /dev/md2 b 9 2 mknod /dev/md3 b 9 3 mknod /dev/md5 b 9 5 mknod /dev/md6 b 9 6 mknod /dev/md7 b 9 7 mknod /dev/md8 b 9 8 mknod /dev/md9 b 9 9 mkraid /dev/md1 mkraid /dev/md2 mkraid /dev/md3 mkraid /dev/md5 mkraid /dev/md6 mkraid /dev/md7 mkraid /dev/md8 mkraid /dev/md9 reboot
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1 mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdc2 /dev/sdd2 mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sdc3 /dev/sdd3 mdadm --create /dev/md5 --level=1 --raid-devices=2 /dev/sdc5 /dev/sdd5 mdadm --create /dev/md6 --level=1 --raid-devices=2 /dev/sdc6 /dev/sdd6 mdadm --create /dev/md7 --level=1 --raid-devices=2 /dev/sdc7 /dev/sdd7 mdadm --create /dev/md8 --level=1 --raid-devices=2 /dev/sdc8 /dev/sdd8 mdadm --create /dev/md9 --level=1 --raid-devices=2 /dev/sdc9 /dev/sdd9
fstab without raidtools ∞
here for reference
Spoiler
# This file is edited by fstab-sync - see 'man fstab-sync' for details ## Livecd-install Automatically added by livecd-install none /proc proc defaults 0 0 none /dev/pts devpts mode=0620 0 0 none /proc/bus/usb usbfs defaults 0 0 # /dev/hda1, size=16002, type=130: Linux swap (primary) #/dev/hda1 swap swap defaults 0 0 # /dev/hda2, size=1959930, type=130: Linux swap (primary) #/dev/hda2 swap swap defaults 0 0 # could be: #/dev/hda2 swap swap sw 0 0 # /dev/hda3, size=19535040, type=131: Journalised FS: ext3 (primary) #/dev/hda3 / ext3 defaults 0 0 /dev/hda3 / ext3 errors=remount-ro,noatime 0 1 # /dev/hda5, size=19534977, type=131: Journalised FS: ext3 (extended) #/dev/hda5 /home ext3 defaults 0 2 /dev/hda5 /home ext3 rw,suid,dev,exec,auto,nouser,async,noatime 0 2 # /dev/hda6, size=3903732, type=131: Journalised FS: ext3 (extended) #/dev/hda6 /var ext3 defaults 0 2 /dev/hda6 /var ext3 nosuid,noexec,noatime 0 2 # /dev/hda7, size=3903732, type=131: Journalised FS: ext3 (extended) #/dev/hda7 /tmp ext3 defaults 0 3 /dev/hda7 /tmp ext3 rw,suid,dev,exec,auto,nouser,async,noatime 0 3 # /dev/hda8, size=439538337, type=131: Journalised FS: ext3 (extended) #/dev/hda8 /mnt/hda8 ext3 user,exec,rw,noauto 0 5 /dev/hda8 /mnt/hda8 ext3 rw,suid,dev,exec,auto,nouser,async,noatime 0 5 # /dev/hdb1, size=16002, type=130: Linux swap (primary) /dev/hdb1 swap swap defaults 0 0 # /dev/hdb2, size=1959930, type=130: Linux swap (primary) /dev/hdb2 swap swap defaults 0 0 # /dev/hdb3, size=19535040, type=131: Journalised FS: ext3 (primary) /dev/hdb3 /mnt/hdb3 ext3 user,exec,rw,noauto 0 0 # /dev/hdb5, size=19534977, type=131: Journalised FS: ext3 (extended) /dev/hdb5 /mnt/hdb5 ext3 user,exec,rw,noauto 0 0 # /dev/hdb6, size=3903732, type=131: Journalised FS: ext3 (extended) /dev/hdb6 /mnt/hdb6 ext3 user,exec,rw,noauto 0 0 # /dev/hdb7, size=3903732, type=131: Journalised FS: ext3 (extended) /dev/hdb7 /mnt/hdb7 ext3 user,exec,rw,noauto 0 0 # /dev/hdb8, size=439538337, type=131: Journalised FS: ext3 (extended) /dev/hdb8 /mnt/hdb8 ext3 user,exec,rw,noauto 0 0 # cdrom: LITE-ON LTR-52246S /dev/hdc /mnt/cdrom auto user,exec,ro,noauto,iocharset=iso8859-1,codepage=850,umask=0 0 0 # cdrom: HL-DT-STDVD-ROM GDR8163B /dev/hdd /mnt/cdrom2 auto user,exec,ro,noauto,iocharset=iso8859-1,codepage=850,umask=0 0 0
raidtools troubleshooting ∞
mdadm: SET_ARRAY_INFO failed for /dev/md0: Invalid argument ∞
Example:
mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdc2 /dev/sdd2
mdadm: /dev/sdc2 appears to be part of a raid array:
level=1 devices=2 ctime=Sun Sep 3 20:24:44 2006
mdadm: /dev/sdd2 appears to be part of a raid array:
level=1 devices=2 ctime=Sun Sep 3 20:24:44 2006
Continue creating array? y
mdadm: SET_ARRAY_INFO failed for /dev/md2: Invalid argument
Solutions:
- You’ve probably already run this command.
-
Maybe you just ran
mknodand you still need toreboot.
/dev/md0: Invalid argument ∞
Example:
raidstart --all
/dev/md0: Invalid argument
Solution:
Something which participates in /dev/md0 might already be mounted in the traditional way. Unmount the device and then you can raidstart the md device.
fsck gives: Either the superblock or the partition table is likely to be corrupt! ∞
fsck /dev/md0
fsck 1.39 (29-May-2006) e2fsck 1.39 (29-May-2006) The filesystem size (according to the superblock) is 17101184 blocks The physical size of the device is 17101168 blocks Either the superblock or the partition table is likely to be corrupt! Abort<y>?
Don’t fsck an md device. Use it on the original source drives which combine into the md device.

added notes for stab without raidtools