RAID+LVM

Aus ConfigWiki
Wechseln zu: Navigation, Suche

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.

Fehlende Informationen in /etc/mdadm/mdadm.conf kann man mit

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

hinzufügen.

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
Meine Werkzeuge