Hilfe bei LVM / Raid

Started by dieres, 2012/07/09, 13:09:54

Previous topic - Next topic

dieres

moin,

bei mir laufen zwei 2TB Platten (dev/sdb1 + /dev/sdc1 ) im Raid1 (/dev/md0 )

Dann hab ich mit LVM ein PV /dev/md0 eingerichtet und in diesem
2 LVs

root@debian-server:/home/dens# pvdisplay
 --- Physical volume ---
 PV Name               /dev/md0
 VG Name               fileserver
 PV Size               1,82 TiB / not usable 2,95 MiB
 Allocatable           yes
 PE Size               4,00 MiB
 Total PE              476931
 Free PE               16131
 Allocated PE          460800
 PV UUID               PF0dja-mTxb-P9Dn-x1ry-cLVc-6Wts-GIqZ1j


root@debian-server:/home/dens# lvdisplay
 --- Logical volume ---
 LV Name                /dev/fileserver/sambashare
 VG Name                fileserver
 LV UUID                lTbSj9-q0J3-LTvb-dp7H-NcZr-vRml-DKtiBd
 LV Write Access        read/write
 LV Status              available
 # open                 1
 LV Size                900,00 GiB
 Current LE             230400
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:0
 
 --- Logical volume ---
 LV Name                /dev/fileserver/data
 VG Name                fileserver
 LV UUID                Vw3n3d-GJFA-eBTz-8EGy-nTNL-NvXG-UrpyLg
 LV Write Access        read/write
 LV Status              available
 # open                 1
 LV Size                900,00 GiB
 Current LE             230400
 Segments               1
 Allocation             inherit
 Read ahead sectors     auto
 - currently set to     256
 Block device           253:1


Ich möchte jetzt wissen,
a) wie ich eine defekte Festplatte ersetzen kann.
b) wie ich quasi im laufendem Betrieb nacheinander
  auf 2 größere Platten wechseln kann.

Kann mir jemand sagen wie das funktioniert ?

Hätte man auch ohne Software Raid, direkt mit LVM ein "Raid1"
realisieren können ?

bluelupo

Hi dieres,
zu mdadm kann ich dir leider nicht viel erzählen aber zum LVM, denn der kann RAID1 (Spiegelung) auch ohne mdadm. Dazu kreierst du beim Erstellen des LVs mit dem Kommando lvcreate ein LogicalVolume das gleich eine Kopie hat (geht auch nachträglich). Spiegeln macht natürlich nur Sinn wenn das LV über zwei physikalischen Disks geht.

Im Beispiel wird ein LV mit 50GB namens "mirrorlv" in der VG VGsystem angelegt und mit einem Spiegel angelegt (-m1). Original ist auf sda1 und der Spiegel auf sdb1.

# lvcreate -L 50G -m1 -n mirrorlv VGsystem /dev/sda1 /dev/sdb1


Eine hervorragende Doku gibt's dazu bei RedHat

EDIT:
Hier noch drei Links zum Plattentausch in einem RAID (mdadm):

http://wiki.hetzner.de/index.php/Festplattenaustausch_im_Software-RAID
http://www.armin-gerhardts.de/2011/05/30/defekte-festplatte-tauschen-linux-sw-raid1/
https://systemausfall.org/wikis/howto/SoftwareRaidminiHowTo

dieres

ersteinmal vielen Dank für die Info, die Links.
habe ich ordentlich zu lesen.
Bevor ich das mit dem Ausfall einer Platte nicht erfolgreich geprobt habe, werde ich solch einer vl keine Daten anvertrauen.

LVM ist aber auf jeden Fall sehr spannend. Insbesondere die snapshots interessieren mich dann auch noch. Gut zu wissen, das hier jemand gibt der einem weiterhelfen kann.  :P

agaida

@dieres: Einfach mal einen Ausfall simulieren auf einem Testsystem. Mit schicken kleinen Platten, wenn Du noch welche hast :twisted:

Meine letzte Aktion in dieser Richtung war zwar erfolgreich, aber hat nicht wirklich Spass gemacht. Die doch recht schnellen 1,5 T die ich verbaut hatte haben für die Grundsync erst mal 6 Stunden gebraucht.

Ansonsten würde ich die Themen getrennt betrachten. Fang an, womit Du willst, es ist immer richtig. Ich hab mit mdadm angefangen und mich erst an LVM gemacht, als ich mit mdadm halbwegs sattelfest war. Ich denke immer noch, dass der Part mdadm der aufwendigere ist.

Ansonsten bei Problemen einfach fragen, mittlerweise kann ich mit mdadm halbwegs umgehen ;)
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

bluelupo

Hi dieres,
LVM-Snapshots sind geniale Sache und vorallem bei der Sicherung seines Systems eine wertvolle Hilfe. Ich stehe gerne Rede und Antwort wenn du rund um dem LVM Hilfe benötigst. Ich nutze den LVM auf meinen Linuxsystemen seit mehr als 10 Jahren und kann nur positives dazu berichten.

dieres

hi bluelupo, vielen Dank, ich werde Dich beim Wort nehmen.
Nach agaidas Hinweis werde ich erstmal 2 niedliche kleine Platten recyclen um Zeit beim ausprobieren zu sparen.
Danach steht dann die Entscheidung an ob die Spiegelung per LVM2 oder mdadm realisiert werden soll. Mdadm hab ich schon einige Erfahrung, nur nicht in Kombination mit LVM, so das ich da z.Zt. noch unentschieden bin. Ich sehe auch nicht den wirklichen Unterschied. Gibt es einen in Sachen Performance oder Sicherheit?

bluelupo

Hi dieres,
wenn du ein "echtes" HW-Raid (Controller) nutzt, dann sind die Unterschiede signifikant. Da du aber ein Software-RAID hast und der LVM auch in Software implementiert ist gibt's da keine großen Unterschiede bei der Performance.

Wenn es dir nur um Ausfallsicherheit deiner Daten geht sind beide Arten geeignet. Ich würde den LVM bei einer Spiegelung vorziehen, weil der im Zusammenspiel mit Grub nach einem Ausfall einer Disk vermutlich weniger Zicken macht um den PC wieder bootbar zu bekommen. Desweiteren hat der LVM auch noch andere gute Eigenschaften die ich sehr schätze (Snapshot, Online-Erweiterbarkeit der FS usw.).

Du kannst natürlich beide im Zusammenspiel nutzen, da spricht nichts dagegen.

dieres

So habe jetzt mal mit 3 Platten 2x250GB 1x300GB
etwas installiert.
ein raid5 mit /dev/sdb1 /dev/sda1 und /dev/sdc1
sdb ist die Größere Platte und enthällt noch lvboot und lvroot


root@debianserver:/home/didi# fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes
81 heads, 63 sectors/track, 95707 cylinders, total 488397168 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: 0xde8fa5af

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   488397167   244197560   fd  Linux raid autodetect

Disk /dev/sdb: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 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: 0x00050fe6

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   488396799   244197376   fd  Linux raid autodetect
/dev/sdb2       488396800   489445375      524288   83  Linux
/dev/sdb3       489445376   625142447    67848536   83  Linux

Disk /dev/sdc: 250.1 GB, 250059350016 bytes
81 heads, 63 sectors/track, 95707 cylinders, total 488397168 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: 0xfe745549

  Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048   488397167   244197560   fd  Linux raid autodetect

Disk /dev/md0: 500.1 GB, 500113080320 bytes
2 heads, 4 sectors/track, 122097920 cylinders, total 976783360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/md0 doesn't contain a valid partition table

Disk /dev/mapper/debianserver-LVroot: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders, total 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/debianserver-LVroot doesn't contain a valid partition table

Disk /dev/mapper/debianserver-LVboot: 524 MB, 524288000 bytes
255 heads, 63 sectors/track, 63 cylinders, total 1024000 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/mapper/debianserver-LVboot doesn't contain a valid partition table

Disk /dev/mapper/debianserver-LVdata: 322.1 GB, 322122547200 bytes
255 heads, 63 sectors/track, 39162 cylinders, total 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/debianserver-LVdata doesn't contain a valid partition table

Disk /dev/mapper/debianserver-LVhome: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/debianserver-LVhome doesn't contain a valid partition table

Disk /dev/mapper/debianserver-LVswap: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/debianserver-LVswap doesn't contain a valid partition table


pvdisplay:
root@debianserver:/home/didi# pvdisplay
 --- Physical volume ---
 PV Name               /dev/md0
 VG Name               debianserver
 PV Size               465,77 GiB / not usable 0  
 Allocatable           yes
 PE Size               4,00 MiB
 Total PE              119236
 Free PE               25028
 Allocated PE          94208
 PV UUID               UJltWf-HIcs-MYBs-A9CJ-tPr8-yIOH-gJYjvh
 
 --- Physical volume ---
 PV Name               /dev/sdb2
 VG Name               debianserver
 PV Size               512,00 MiB / not usable 4,00 MiB
 Allocatable           yes
 PE Size               4,00 MiB
 Total PE              127
 Free PE               2
 Allocated PE          125
 PV UUID               60jK08-3JCt-dfMS-o8pv-A4Lk-h0gU-s3iX24
 
 --- Physical volume ---
 PV Name               /dev/sdb3
 VG Name               debianserver
 PV Size               64,71 GiB / not usable 2,34 MiB
 Allocatable           yes
 PE Size               4,00 MiB
 Total PE              16564
 Free PE               16564
 Allocated PE          0
 PV UUID               1ibuL9-m5AR-bdZO-MLMy-MOUT-jjWW-d3x7Et


mount:
udev on /dev type devtmpfs (rw,relatime,size=3930060k,nr_inodes=982515,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=794008k,mode=755)
/dev/mapper/debianserver-LVroot on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,stripe=256,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=1588012k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,relatime,size=1588012k)
/dev/mapper/debianserver-LVboot on /boot type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
/dev/mapper/debianserver-LVhome on /home type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,stripe=256,data=ordered)
/dev/mapper/debianserver-LVdata on /srv type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,stripe=256,data=ordered)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)


dann hab ich /dev/sdb1 aus dem raid5 fail gesetzt und entfernt.

root@debianserver:/home/didi# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdc1[1] sda1[3]
     488391680 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
     
unused devices: <none>


wenn ich versuche /dev/sdb1 wieder reinzubauen kommt diese Fehlermeldung:

root@debianserver:/home/didi# mdadm /dev/md0 -a /dev/sdb1
mdadm: /dev/sdb1 reports being an active member for /dev/md0, but a --re-add fails.
mdadm: not performing --add as that would convert /dev/sdb1 in to a spare.
mdadm: To make this a spare, use "mdadm --zero-superblock /dev/sdb1" first.


wenn ich nun kein spare sondern ein reguläres 3.raidmember
mit /dev/sdb1 haben will, wie mache ich das?