LPS:Linux/Diskové nástroje

Z HelpDesk

Postupy na nejčastější operace s disky v linuxu.

Technologie

LVM

On-line migrace diskoveho oddílu

Máme oddíl /dev/mapper/fc-old a chceme jej dat na nový oddíl /dev/mapper/fc-new, který je větší. Napřed co máme k dispozici:

# pvscan
PV /dev/mapper/fc-old     VG vgvicepx   lvm2 [800.05 GiB / 0    free]

Inicializace nového diskového oddílu PV (Physical Volume) a přiřazení do VG (Volume Group):

# pvcreate /dev/mapper/fc-new
Writing physical volume data to disk "/dev/mapper/fc-new"
Physical volume "/dev/mapper/fc-new" successfully created

# vgextend vgvicepx /dev/mapper/fc-nex
Volume group "vgvicepx" successfully extended

# pvscan
PV /dev/mapper/fc-old   VG vgvicepx   lvm2 [800.05 GiB / 0    free]
PV /dev/mapper/fc-new   VG vgvicepx   lvm2 [1.00 TiB / 1.00 TiB free]
 

Nyní pustíme online přesun, nejlépe ve screen:

# pvmove /dev/mapper/fc-old /dev/mapper/fc-new
...progres s 10sec aktualizaci...

Po dokončení zkontrolujeme, odebereme disk ze skupiny (VG) a odstraníme informaci o LVM oddílu:

# pvscan
PV /dev/mapper/fc-old   VG vgvicepx   lvm2 [800.05 GiB / 800.05 GiB free]
PV /dev/mapper/fc-new   VG vgvicepx   lvm2 [1.00 TiB / 223.27 GiB free]

# vgreduce vgvicepx /dev/mapper/fc-old
Removed "/dev/mapper/fc-old" from volume group "vgvicepx"

# pvremove /dev/mapper/fc-old
Labels on physical volume "/dev/mapper/fc-old" successfully wiped

Zvětšení logického volumu (LV) o volné místo, napřed si vypíšeme info, zvětšíme a zkontrolujeme:

# lvscan  
ACTIVE            '/dev/vgvicepx/part1' [800.05 TiB] inherit

# lvextend -l +100%FREE /dev/vgvicepx/part1
Extending logical volume part1 to 1.00 TiB
Logical volume part1 successfully resized

# lvscan
ACTIVE            '/dev/vgvicepx/part1' [1.00 TiB] inherit

# pvsan
PV /dev/mapper/fc-new   VG vgvicepx   lvm2 [1.00 TiB / 0    free]

Dalším krokem je už jen zvětšení souborového systému, např. xfs_grow.

Snapshot

Vytvoření

Když potřebuji udělat snapshot jako backup, napred co chci zalohovat

# lvscan | grep virtual
ACTIVE            '/dev/vgxen/virtual.disk' [50.00 GiB] inherit

Zjistit, zda je dostatek mista na cílovém disku (vgxen):

# vgdisplay  vgxen-data
  --- Volume group ---
  VG Name               vgxen-data
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  52
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                14
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               10.00 TiB
  PE Size               4.00 MiB
  Total PE              2621439
  Alloc PE / Size       2606592 / 9.94 TiB
  Free  PE / Size       14847 / 58.00 GiB
  VG UUID               CE4KeQ-QenK-Cut0-TflA-dQ5b-J2f3-C8QyF5

V tomto případě je volno 58GB a my potřebujeme 50GB (snapshot v LVM vyžaduje stejnou velikost jako je original), napřed zrušíme aktivitu v případě cluster režimu:

for i in zen1 hippod polyxen xen1 xen2 xen3 xen4; do ssh root@$i "hostname ; lvchange -an /dev/vgxen/virtual.disk" ; done

A vytvoření snapshotu:

lvcreate --size 50G --snapshot --name virtual.disk.snap /dev/vgxen/virtual.disk

A aktivace lunu: for i in zen1 hippod polyxen xen1 xen2 xen3 xen4; do ssh root@$i "hostname ; lvscan > /dev/null ; lvchange -ay /dev/vgxen/virtual.disk" ; done

Restore

Zrušení

On-line zvětšení FibreChannel disků (resize bez rebootu)

Viz http://linuxweather.blogspot.cz/2011/06/dynamically-resize-multipath-scsi.html cast s dmsetup je možno přeskočit. Nutno návod zapracovat do našeho formátu.

SW RAID (mdadm)

multipath

Návody

Výměna disku

Scénář: v serveru vypadl disk v RAIDu, kolegové jej vyměnili, ale "nějak" to nefunguje, disk nelze připojit do raidu.

V první řadě je třeba z mdadm odebrat původní disk /dev/sda, ale to už nám odebral udev, bohužel mdadm i při odebírání trvá na existujícím zařízení. Proto je třeba zařízení ručně vytvořit, původní disk odebrat a pak zařízení zrušit

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] 
md1 : active raid1 sdb2[1] sda2[2](F)
      20482752 blocks [2/1] [_U]

# mdadm --manage /dev/md1 --remove /dev/sda2
mdadm: cannot find /dev/sda2: No such file or directory


# mkdir /dev/.static ; cd /dev/.static
# /dev/MAKEDEV sda

# mdadm --manage /dev/md1 --remove /dev/.static/sda2
mdadm: hot removed /dev/sda2

# cd / ; rm -rf /dev/.static

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] 
md1 : active raid1 sdb2[1]
      20482752 blocks [2/1] [_U]

Nyní rozdělíme nový disk /dev/sdc podle funkčního originálu /dev/sdb:

# sfdisk -d /dev/sdb | sfdisk /dev/sdc

Přiřazení disku do SW RAIDu ale zkolabuje na jeho použití jiným systémem:

# mdadm /dev/md0 --add /dev/sdc1
mdadm: Cannot open /dev/sdc1: Device or resource busy

Problém je, že na všechny neobsazené disky si automaticky sedne multipath, takže jej odebereme a přidáme do RAIDu:

# multipath -ll -d
SATA_WDC_WD5003ABYX-_WD-WMAYP0907635dm-0 ATA     ,WDC WD5003ABYX
[size=466G][features=0][hwhandler=0]
\_ round-robin 0 [prio=1][active]
 \_ 2:0:2:0 sdc 8:32  [active][ready]

# multipath -f SATA_WDC_WD5003ABYX-_WD-WMAYP0907635
libdevmapper: libdm-common.c(374): Removed /dev/mapper/SATA_WDC_WD5003ABYX-_WD-WMAYP0907635

# mdadm /dev/md0 --add /dev/sdc1
mdadm: added /dev/sdc1

Nyní stačí zavést grub do MBR nového disku, funkční originál si zatím ponecháme:

# grub-install /dev/sdc