orm@doc-tcpip.org | Erstellt: April 2000 - Letzte Modifikation: März 2008 |
Wie sehe ich alle Volume Groups?:
lsvg Zeigt alle VGs, die dem System bekannt sind (also importiert sind). lsvg -o Zeigt die VGs, die gerade aktiv sind, also vom System varyon genommen sind. lsvg -l datavg1 Zeigt allgemeine Parameter der VG: Pro VG: Name, Typ, #LP, #PP, #PV, State, Mount point. lsvg -o |lsvg -il zeigt das pro aktiver VG (-i liest von STDIN). lsvg datavg1 Info zur VG xxxx (#LV, #PV, VGID, PP Size, #PP in VG). lsvg -o |lsvg -i zeigt das pro aktiver VG (-i liest von STDIN). lsvg -n hdisk17 Wie oben, nur von einer Platte und nicht aktuell
Welche Platten (Physical Volume, PV) gehören zu meiner Volume Group?:
lsvg -p datavg1 Zeigt alle PV einer VG mit State, #PP, #FreePP, Verteilung der PP:
Wie verteilen sich die LV der VG auf die PV der VG?
lsvg -M datavg1|more Zeigt alle PP eines PV, das zur VG gehört. Gibt pro PP das LV, die # der LP und den Copycount an (also ob es die erste, zweite oder dritte Kopie eines LP ist. lslv publv Zeigt Daten des angegebenen LVs an (LVID, State VG, #Copies, #LP, Poliy, Mountpoint, VG, State LV, PP Size): lslv -l publv Zeigt die Verteilung des LV auf die PVs an (Anzahl der Kopien, % richtig angelegter PP, Verteilung auf der Platte). lslv -p hdisk17 mein_lv Zeigt alle PP eines PV (mit Lage auf Disk) an und welche PP dem angegebenen LV gehören. lslv -p hdisk17 Zeigt Status der PP auf PV an: Ordnet den LP eines LV direkt PP und Platte aller Kopien zu: lslv -m publv|more Zeigt jede Platte (PV) des Systemes, die PVID und die VG, zu der das PV gehört: lspv Zeigt Info über ein PV (PVID, State, PP Size, #PP, Verteilung der PP, VG, VGID): lspv hdisk17 Hochzählen der PPs eines PV und direkte Zuordnung zu den LP der entsprechenden LVs: lspv -M hdisk17 Zeigt alle LVs, die auf einem PV liegen mit #LP, #PP, Verteilung und Mountpoint: lspv -l hdisk17 Zeigt die Benutzung der PPs eines PV (PP Nummer, Status, Ort auf der Platte, zugeordnetes LV, Typ, Mountpoint): lspv -p hdisk17|more
Welche Filesysteme sind auf meiner Maschine?
lsfs lsfs -q
Welche Filesysteme gehören zu meiner VG?
lsvgfs lsvgfs meine_VG
Eine Platte in eine VG aufnehmen:
extendvg -f vg name hdiskX
Die Größe eines Filesystems ändern:
Angabe in 512K Blöcken, Megabyte oder Gigabyte. Entweder als Zielgröße, oder die gewünschte Änderung: chfs -a size=+100M Mein_Filesystem ==> Filesystem wird um 100 MB vergrößert. chfs -a size=-10G Mein_Filesystem ==> Filesystem wird um 10 GB verkleinert. Früher in 512 KB Einheiten chfs -a size='Anzahl 512k Blocks' Filesystem Wegen der blöden Umrechnerei eine Tabelle: MB Byte Blocks (512) 32 32768000 64000 64 65536000 128000 128 131072000 256000 256 262144000 512000 300 307200000 600000 400 409600000 800000 500 512000000 1000000 1000 1024000000 2000000 1000*1024 ==> 1MB 500*1024000 ==> 500MB 512000000 ==> in Byte 512000000/512 ==> in 512Byte Blocks 1000000
Wie ist ein LV auf den Platten verteilt?:
lslv -m LV_NAME Beispiel: lvPHR01:/exports/sapmnt/PHR LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0119 vpath20 0002 0105 vpath7 0003 0120 vpath20 0004 0106 vpath7 Kein Spiegel (von 3 möglichen), insgesamt 4 PP, die auf 2 PV verteilt sind.
Anlegen einer Kopie, eines Spiegels:
* Die Spiegelplatten der VG zuordnen (extendvg) extendvg VG_NAME vpath27 vpath37 * Den Spiegel auf diesen Platten anlegen: mklvcopy -e x lvPHR01 2 vpath27 vpath37 Das LV auf den angegebenen Platten/vpath gleichmäßig verteilen. Anzahl der Kopien Platten/vpath Man kann mit Strict/Superstrict dafür sorgen, daß Original und Kopie immer auf unterschiedlichen PV liegen. Das Ergebnis: 0:root@dbkphr1:/var/db/work # lsvg -l sapPPA0vg1 sapPPA0vg1: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT lvPHR01 jfs2 150 300 4 open/stale /oracle/PPA/sapdata1 Also: Jeder logsichen Partition entspricht jetzt zwei physikalische Partiotionen, die Anzahl der PVs hat sich verdoppelt. Das FS ist gemountet, aber nicht syncronisiert (daher der Status "stale"). Vorher sah es so aus: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT lvPHR01 jfs2 150 150 2 open/syncd /oracle/PPA/sapdata1 * Syncronisieren des angelegten Spiegels: Das kann je nach Größe ziemlich lange dauern... Man kann auf der Ebene der VG, des LV und des PV syncronisieren: syncvg -p hdisk0 hdisk1 hdisk2 Synchronisaton der logischen syncvg -l (lv) Partitionen. Auf der Ebene des syncvg -v (vg) PVs, des LVs und der VG. Man kann angeben, wie viele LPs parallel bearbeitet werden sollen (1 - 32). Dazu gibt man -P #LP_parallel an: syncvg -P 16 -v seppel_vg (die Zahl der para. LPs hängt von der Maschine ab...) Oft lohnt es sich, eine VG mit -n (ohne Sync) online zu nehmen. * Danach taucht der Spiegel in der Ausgabe der LVM Kommandos auf: lslv -m LV_NAME lvPHR01:/oracle/PPA/sapdata1 LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0119 vpath12 0018 vpath27 0002 0105 vpath14 0976 vpath37 ....
Wie kann ich jetzt einzelne PP meines LV verschieben?:
migratelp LV_NAME/LP_NUMMER/KOPIE_NUMMER NEUE_PLATTE Damit kann man ein einzelnes PP von einer Platte auf eine andere schieben. Die LP Nummer kommt aus lslv -m (ohne Nullen). Die Nummer der Kopie ist der Spiegel, zu dem die PP gehört: migratelp mein_lv/2/1 hdisk9 ==> verschiebt die 2. LP der ersten Kopie des LV auf die hdisk9. Man kann auf dem Ziel-PV auch die PP bestimmen, wenn diese PP noch frei ist: migratelp LV_NAME/LP_NUMMER/KOPIE_NUMMER NEUE_PLATTE/PP_NUMMER Es wird direkt kopiert, also UPPER BOUND und besondere Setzungen werden nicht beachtet. Beispiel: # lslv -m mein_lv mein_lv:/applications/zeug LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0123 hdisk8 0166 hdisk14 0002 0132 hdisk18 0182 hdisk16 0003 0134 hdisk12 0184 hdisk17 0004 0144 hdisk9 0191 hdisk15 Die erste Kopie der LP 2 liegt auf hdisk18, und diese Platte liegt in einem anderen RZ als die hdisks 8, 12, 9. Daher soll diese Partition noch auf hdisk9: # migratelp mein_lv/2/1 hdisk9 migratelp: Mirror copy 1 of logical partition 2 of logical volume mein_lv migrated to physical partition 1 of hdisk9. # lslv -m mein_lv mein_lv:/applications/zeug LP PP1 PV1 PP2 PV2 PP3 PV3 0001 0123 hdisk8 0166 hdisk14 0002 0001 hdisk9 0182 hdisk16 0003 0134 hdisk12 0184 hdisk17 0004 0144 hdisk9 0191 hdisk15
Welche Platten/vpath gehören zu einer VG, und wie sind die Daten darauf verteilt?:
lsvg -psapPPA0vg1: PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION vpath21 active 512 316 103..00..08..102..103 vpath14 active 512 316 103..00..08..102..103 vpath43 active 512 318 103..102..102..02..09 vpath35 active 512 318 103..102..102..03..08 Zur VG gehören insgesamt 4 Platten/vpath. Jede der Platten hat 512 PP, von denen 316 bzw. 318 frei sind. Die VG ist gespiegelt: Original liegen die Daten auf vpath21 und 14 liegen, die Kopie auf vpath43 und 35. Das ganze ist nicht so geschickt gemacht worden, denn das Original liegt in günstigeren Plattensektoren. Bei der Kopie wurde keine Rücksicht genommen.
Ein FS/LV löschen und neu anlegen:
* Mit lslv -m prüfen, auf welchen Platten es liegt (falls das wichtig ist). lslv -m mein_lv * Umount auf das FS (mit fuser prüfen, wer drinsteht, falls es nicht geht). umount /mein/file/system * Löschen des FS (damit fliegt auch gleich das entsprechende LV weg). rmfs /mein/file/system * Neuanlegen des LV: mklv -y 'mein_lv' -c '1' -t 'jfs2' -b 'n' -x 646 -e x meine_VG 645 vpath4 vpath5 vpath8 vpath9 Copy-Count: Es wird eine Kopie, also ein "Original" angelegt. Welcher FS Typ Maximale Größe in LP Es soll auf alle Platten gleichmäßig verteitl werden Es gehört zu dieser VG Auf diese Platten soll es Das sieht dann so aus: lsvg -l meine_VG meine_VG: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT mein_log jfs2log 4 4 4 open/syncd N/A mein_lv jfs2 645 645 4 closed/syncd N/A * Anlegen des FS in meinem LV: crfs -v jfs2 -m /mein/file/system -u mein_Label -A n -d mein_lv Art des FS Mountpoint des FS Ein Label, der in der /etc/filesystems steht (man kann dann einen Gruppen-Mount mount -t mein_Label machen). Automount Nein, wenn man nicht will, das es beim Booten angezogen wird. JFS2 ==> -d ==> FS so groß wie LV. Name des LV Man kann auch mit -a size=123456 die Größe in 512 KB Blocks angeben. Das FS muß nicht so groß wie das LV sein. Jetzt ist man fertig und es sieht so aus: lsvg -l meine_VG meine_VG: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT mein_log jfs2log 4 4 4 open/syncd N/A mein_lv jfs2 645 645 4 open/syncd /mein/file/system
Den VGDA auslesen:
readvgda ==> Parameter finden und: dd if=/dev/hdisk0 of=/tmp/hdisk0.vgda count=2*vgda_len+2*vgsa_len Beispiel: vgid: 003b4f6c00004c000000010832840d55 lvmarea_len: 17074 vgda_len: 8242 vgda_psn[0]: 384 vgda_psn[1]: 8960 reloc_psn: 134179455 pv_num: 2 pp_size: 27 vgsa_len: 256 vgsa_psn[0]: 128 vgsa_psn[1]: 8704 version: 9 vg_type: 0 ltg_shift: 1(256K) dd if=/dev/hdisk2 of=/tmp/vgda_hdisk2 count=16996 Wird auch so angegeben, ist aber weniger Daten: dd if=/dev/hdisk2 of=/tmp/hdisk2_out bs=1024 count=8196 Oder auch so: # dd if=/dev/hdiskpower300 count=4096 bs=1024 of=/tmp/dd.hdiskpower300
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL