P1.1 mit qemu:
P1.3 mit loopdevices raid3 on lvm auf vm aufbauen
P1.3.1 # partitionstypen von loopdevs fd und md0 8e vergessen! Geht das?
P1.2 Wie mehr loopdevices? boot: max_loop=11 ; dynamisch? modprobe mit switch?
P1.5  beim hochfahren automatisch mounten
P1.6 system säubern von lvm-raid
P1.7 ein physikalisches Laufwerk hinzufügen zu raid5 Verbund
P1.8 lv auf lvm2-raid5 verkleinert
P1.9 redundantes device aus lvm2-raid5 entfernen: (ging nicht!)


P1.1 mit qemu:
modprobe kqemu
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu # k
mount -t tmpfs -o size=144m none /dev/shm

P1.2 virtuelle Maschine mit Netzwerkstarten
(vorher images anlegen!)
cd /sda2/itpslix/
qemu distritest2 -net nic,macaddr=52:54:00:12:34:57 -net tap & # 23
qemu distritest -net nic -net tap  -no-kqemu& #
#sleep 30
ifconfig tap0 down
ifconfig tap1 down
brctl addbr br0 #according to http://kidsquid.com/cgi-bin/moin.cgi/bridge
ifconfig br0 192.168.180.1 netmask 255.255.255.0 up
ifconfig tap0 0.0.0.0 promisc up
ifconfig tap1 0.0.0.0 promisc up
brctl addif br0 tap0
brctl addif br0 tap1
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.180.0/24 -j MASQUERADE
#einloggen

P1.3 mit loopdevices raid3 on lvm auf vm aufbauen
# mit loopdevices raid on lvm auf vm aufbauen
apt-get install mdadm
time for ((i=0;i<8;i++)); do dd if=/dev/zero of=dev$i bs=1M count=70;done;
time for ((i=0;i<8;i++)); do losetup /dev/loop$i dev$i; done; # 5m41.203s#
yes|mdadm -C /dev/md0 -l5 -n6 /dev/loop{0,1,2,3,4,5}
mdadm --detail --scan > /etc/mdadm/mdadm.conf
echo "DEVICE /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4 /dev/loop5">> /etc/mdadm/mdadm.conf
#/sbin/mdadm --detail /dev/md0 # k
## lvm
pvcreate /dev/md0
vgcreate lvm-raid /dev/md0 # -s 16M, max. volume mit pe ausrechnen
vgdisplay lvm-raid # Free  PE / Size       87 / 348,00 MB
lvcreate -l 30 lvm-raid -n lvm0
lvcreate -l 20 lvm-raid -n lvm1
lvcreate -l 5 lvm-raid -n lvm2
time for ((i=0;i<3;i++)); do mkfs.ext3 -m0 -F /dev/lvm-raid/lvm$i; done
mkdir dir{0,1,2}
time for ((i=0;i<3;i++)); do mount /dev/lvm-raid/lvm$i dir$i; done
time for ((i=0;i<3;i++)); do echo hello$i>dir$i/test$i; done
mount
P1.3.1 # partitionstypen von loopdevs fd und md0 8e vergessen! Geht das?

P1.5  beim hochfahren automatisch mounten
## beim hochfahren automatisch gemountet
echo -e "/dev/lvm-raid/lvm1   /root/dir1     ext3       rw,noatime    0 0\n\
/dev/lvm-raid/lvm2   /root/dir2     ext3        rw,noatime    0 0\n\
/dev/lvm-raid/lvm0   /root/dir0     ext3   rw,noatime    0 0">> /etc/fstab

echo "time for ((i=0;i<8;i++)); do losetup /dev/loop$i /root/dev$i; done;"> /etc/rcS.d/S24myloop.sh
chmod 777 /etc/rcS.d/S24myloop.sh #k

# was machen die?
#/etc/init.d/mdadm-raid:stop) mdadm --stop --scan; start) --assemble --scan --auto=yes --symlink=no# array assemblieren, stoppen
#/etc/init.d/lvm: modprobe lvm lvm-mod dm-mod ,  mknod --mode=600 dm,lvm ;start)vgscan vgchange -a y; stop) /sbin/vgchange -a n # volume group available yes no


P1.6 system säubern von lvm-raid
## system säubern von lvm-raid
for i in `mount |grep lvm|cut -d" " -f1`; do umount $i; done; # unmounten
#lv,vg, pvremove
for i in /dev/lvm-raid/*; do lvremove -vf $i; done
vgremove lvm-raid
pvremove /dev/md0
mdadm -S /dev/md0 # Raid verbund gestoppt
for i in /dev/loop[0-7]; do losetup -d $i; done
rm dev* dir* /etc/mdadm/mdadm.conf;
sed -e "/lvm-raid/d" -i /etc/fstab;

P1.7 ein physikalisches Laufwerk hinzufügen zu raid5 Verbund
## ein physikalisches Laufwerk hinzufügen zu raid5 Verbund
mdadm -a /dev/md0 /dev/loop6
mdadm --detail /dev/md0|grep loop0 # neues Device ist spare
mdadm --grow /dev/md0 --raid-disks=7
watch cat /proc/mdstat #Minutenn warten
pvresize /dev/md0 #
pvdisplay |grep Tota #Total PE 104 oder auch pvscan
lvcreate -l 5 lvm-raid -n lvm3 # lv hinzufügen 5le=pe

umount /dev/lvm-raid/lvm2 # 
#vgdisplay #lvm2 [416,00 MB / 176,00 MB free], 44,
lvresize -L +20M /dev/lvm-raid/lvm2 # -l le

e2fsck -f /dev/lvm-raid/lvm2 # fs-größe aufstocken
tune2fs -O ^has_journal /dev/lvm-raid/lvm2 #  ext3->ext2
resize2fs -p /dev/  # -S 16 -S RAID-stride strite=schritt schritt*n=pe, soll performanter sein, unbeachtet
tune2fs -O has_journal /dev/lvm-raid/lvm2 # ext2->ext3
mount /dev/lvm-raid/lvm2 /root/dir2/; df

P1.8 lv auf lvm2-raid5 verkleinert
# verkleinern was? fs-> lv lv-table -> pv > disk aus Raid befreien, kompliziert:
#1. lv schrumpfen: fs schrumpf zu sehr, lv schrumpf, fs vergrößer
#2  device remove, ...?
#  cat /proc/mdstat # übersicht 430M, 7 Devs, a ca 70M
# vgdisplay
  VG Size               416,00 MB
  PE Size               4,00 MB
  Total PE              104
  Alloc PE / Size       65 / 260,00 MB
  Free  PE / Size       39 / 156,00 MB
 root@debian2:~# lvscan
  ACTIVE            '/dev/lvm-raid/lvm0' [120,00 MB] inherit
  ACTIVE            '/dev/lvm-raid/lvm1' [80,00 MB] inherit
  ACTIVE            '/dev/lvm-raid/lvm2' [40,00 MB] inherit
  ACTIVE            '/dev/lvm-raid/lvm3' [20,00 MB] inherit
# befreie 3 Devices 416-180 = 236 PV Size;
#  alloziertes logisches Volumen: 260M - (lvm0 -70M) =190M
##
umount /dev/lvm-raid/lvm0
tune2fs -O ^has_journal /dev/lvm-raid/lvm0
e2fsck -f /dev/lvm-raid/lvm0
resize2fs /dev/lvm-raid/lvm0 45M # Dreischritt
yes|lvreduce -L -70M /dev/lvm-raid/lvm0
resize2fs /dev/lvm-raid/lvm0 # k
# lvscan

P1.9 redundantes device aus lvm2-raid5 ersetzen:
#unmounten!
## ein überflüssiges raid device entfernen:
 mdadm -f /dev/md0 /dev/loop0 # -f/--fail?
 mdadm -r /dev/md0 /dev/loop0
 mdadm --misc /dev/md0 --zero-superblock /dev/loop0 # richtig löschen
 #mdadm --manage --add /dev/md0 /dev/loop0 # nach Ersetzen, wieder hinzufügen?

# hochfahren
 mdadm -s /dev/md0  /dev/loop1 /dev/loop2 /dev/loop3 /dev/loop4 /dev/loop5 /dev/loop6 #
P1.9.1 reduce number of data disks?
 mdadm: /dev/md0 has been started with 6 drives (out of 7). # das krieg ich nicht weg!
# mdadm --grow /dev/md0 --raid-disks=6
# mdadm: /dev/md0: Cannot reduce number of data disks (yet). # geht auch nicht
# beim nächsten add wird der platz wieder ausgefüllt

P1.10 Wie gehen spare devices?
mdadm --manage --add /dev/md0 /dev/loop0 # eine mehr als das Array groß ist: spare
mdadm --manage /dev/md0 -f /dev/loop7 # faulty spare, spare rebuilding, k
# mdadm --detail /dev/md0

lvm2 on raid5 mit qemu skript von Thomas, hinzufügen und entfernen (zuletzt geändert am 2008-05-19 12:42:48 durch ThomasWaldmann)