RAID+LVM
RAID
mdadm
mdadm wird zum verwalten von RAID-Arrays verwendet. Es beinhaltet u.a. auch einen Cronjob, der standardmäßig 1x monatlich durchgeführt wird. Für Server ist der Abstand meist etwas zu groß gewählt. Daher sollte der Zeitraum entsprechend geändert werden:
/etc/cron.d/mdadm:
# im Original hier um 1:17 Uhr am 17. jeden Monats 17 1 17 * * root [ -x /usr/share/mdadm/checkarray ] && /usr/share/mdadm/checkarray --cron --all --quiet # ändern in wöchentlich (jeden Montag): 17 1 * * 1 root [ -x /usr/share/mdadm/checkarray ] && /usr/share/mdadm/checkarray --cron --all --quiet # oder täglich: 17 1 * * * root [ -x /usr/share/mdadm/checkarray ] && /usr/share/mdadm/checkarray --cron --all --quiet
Der vorgegeben Zeitpunkt kann je nach ursprünglich installierter Version abweichen.
Im Fehlerfall wird daraufhin eine Mail an root bzw. die im System definierte Weiterleitung versandt. Danach sollte ein Festplattenaustausch (RAID) durchgeführt werden.
Einrichtung von LVM auf RAID-Devices
- Problem
- Im Rescuesystem von Server4you läßt sich LVM nicht auf ein RAID-Device konfigurieren.
1. Fehlermeldung:
~# pvcreate /dev/md1 Device /dev/md1 not found (or ignored by filtering).
/etc/lvm/lvm.conf:
dir = "/dev" scan = [ "/dev" ] filter = [ "a/.*/" ]
besagt, daß alle Blockdevices akzeptiert werden.
~#vgscan -vvvv 2>&1 | grep filter | grep md #filters/filter-sysfs.c:255 /dev/md0: Skipping (sysfs) #filters/filter-sysfs.c:255 /dev/md1: Skipping (sysfs)
Hier scheint sysfs das Problem zu sein.
/etc/lvm/lvm.conf:
# If sysfs is mounted (2.6 kernels) restrict device scanning to # the block devices it believes are valid. # 1 enables; 0 disables. sysfs_scan = 1
Muß demzufolge hier auf 0 gesetzt und danach vgscan ausgeführt werden,
damit pvcreate funktioniert:
~# pvcreate /dev/md1 Physical volume "/dev/md1" successfully created ~# vgcreate bkup01_vg0 /dev/md1 Volume group "bkup01_vg0" successfully created ~# lvcreate -n bkup01_root -L 1G bkup01_vg0 Logical volume "bkup01_root" created ~# lvcreate -n bkup01_usr -L 2G bkup01_vg0 Logical volume "bkup01_usr" created ~# lvcreate -n bkup01_tmp -L 2G bkup01_vg0 Logical volume "bkup01_tmp" created ~# lvcreate -n bkup01_var -L 2G bkup01_vg0 Logical volume "bkup01_var" created ~# lvcreate -n bkup01_home -L 1G bkup01_vg0 Logical volume "bkup01_home" created ~# lvcreate -n bkup01_swap -L 12G bkup01_vg0 Logical volume "bkup01_swap" created ~# lvcreate -n bkup01_srv -L 1300G bkup01_vg0 Logical volume "bkup01_srv" created
Soweit lief erstmal alles glatt. Das Ergebnis kann man mit vgdisplay und lvdisplay begutachten.
Die Formatierung:
~# mkswap -L bkup01_swap /dev/mapper/bkup01_vg0-bkup01_swap ~# mke2fs -j -T ext4 -L bkup01_root /dev/mapper/bkup01_vg0-bkup01_root
usw. mit allen oben angelegten Partitionen
Mit -L wird ein Label für die Partition vergeben, welches später zum mounten statt des Devices oder der UUID verwendet wird.
Wichtig ist -T, da -t zu folgender Fehlermeldung führt:
mke2fs: invalid blocks count - /dev/mapper/bkup01_vg0-bkup01_root