Administration des Disques
Date MaJ : 05/01/2011
Visualisation des espaces disque
| VISUALISATION | |
|---|---|
| CARACTÉRISTIQUE DES DISQUES | |
| Lister les disques | ioscan –fnC disk |
| Lister les disques (HP 11.31) | ioscan –m disk |
| Visualiser les informations concernant un disque | diskinfo -v /dev/rdsk/cXtXdX |
| Scan des disques lors de l’ajout ou du remplacement d’un disque | insf -e |
| CARACTERISTIQUE DES PV | |
| Lister les caractéristique | pvdisplay /dev/dsk/PV |
| CARACTERISTIQUE DES VG | |
| Informations du VG | vgdisplay –v VG |
| Scanner les VG/Disks | vgscan -v |
| CARACTERISTIQUE DES LV | |
| Informations du LV | lvdisplay /dev/VG/LV |
| CARACTERISTIQUE DES FS | |
| Lister un FS | df –kP /FS |
| Lister un FS | bdf /FS |
Création VG – LV – FS
| CRÉATION | |
|---|---|
| CRÉATION D'UN PV | |
| Créer un PV | pvcreate /dev/rdsk/Nom_Disk |
| Créer un PV avec destruction de la structure LVM précédente présente sur ce disque | pvcreate -f /dev/rdsk/Nom_Disk |
| CRÉATION D'UN VG | |
| Création fichier spécial. NN entre 00 et ff, doit être unique | mknod /dev/nomVG/group c 64 0xNN0000 |
| Création du VG nomVG sur le PV | vgcreate NomVG /dev/dsk/NomDisk |
| Options du vgcreate: -s : pe_size Size of a physical extent in MB (default 4) -e : max_pe Maximum number of physical extents per physical volume (default 1016) -l : max_lv Maximum number of logical volumes (default 255) -p : max_pv Maximum number of physical volumes (default 255) |
|
| CRÉATION D'UN LV | |
| Création du LV sur le VG | lvcreate -L TailleM -n NomLV NomVG |
| CRÉATION D'UN FS | |
| Création du FS associé au LV sur VG | mkfs -F vxfs /dev/NomVG/NomLV |
| Ajouter la ligne FS dans /etc/fstab | /dev/datavg/lv_www /data/www ext3 defaults,nodev 1 2 |
Redimensionnement des FS
| REDIMENSIONNEMENT | |
|---|---|
| AGRANDISSEMENT VG | |
| Augmenter le VG | vgextend NomVG /dev/rdsk/NomDisk |
| RÉDUCTION VG | |
| Réduction d'un VG | vgreduce NomVG /dev/disk/DiskX |
| AGRANDISSEMENT FS | |
| Pour augmenter un FS à chaud, il faut le pacquage "onlineJFS" | swlist | grep OnLineJFS |
| Augmenter le LV | lvextend -L TailleM /dev/NomVG/NomLV |
| Augmenter le FS à froid | extendfs /dev/NomVG/NomLV |
| Augmenter le FS à chaud | fsadm -F vxfs -b TailleM /FS |
| RÉDUCTION FS | |
| Réduction de FS | fsadm -b TailleM /dev/NomVG/NomLV |
| Réduction du LV | lvreduce -L TailleM /dev/NomVG/NomLV |
Supprimer PV – VG – FS
| SUPPRESSION | |
|---|---|
| Suppression PV - VG - FS | |
| Supprimer un VG | vgremove NomVG |
| Supprimer le PV | pvremove /dev/rdsk/NomDisk |
| Supprimer un FS | umount /FS lvremove /dev/Nom_VG/Nom_LV Supprimer la ligne correspondante dans /etc/fstab |
Renommage
| RENOMMER |
|---|
| Renommer un LV |
| Démontage du File System (si besoin) |
| mv /dev/vg01/rlv_old /dev/vg01/rlv_new |
| mv /dev/vg01/lv_old /dev/vg01/lv_new |
| Mise à jour du fichier /etc/fstab (si besoin) |
| Montage du File System (si besoin) |
Autres Gestion
| AUTRES GESTION | |
|---|---|
| ADMINISTRATION PV | |
| Relier le disque à la zone réservée de données d'amorçage de tous les PV du groupe. | lvlnboot -R |
| Restaurez la configuration sur le nouveau disque depuis la copie de sauvegarde | vgcfgrestore -n /dev/vg00 /dev/rdsk/c2t4d0 |
| ADMINISTRATION VG | |
| Mettre un VG en ONLINE | vgchange -a y /dev/vg_infra |
| Mettre un VG en OFFLINE | vgchange -a n /dev/vg_infra |
| Resynchronisez les copies miroirs du nouveau disque. | vgsync /dev/vg00 |
| VÉRIFICATION UTILISATION FS | |
| Vérifier si un FS est en cours d'utilisation | fuser -cu /FS |
| Pour killer les users présents sur le FS | fuser -k NomFS |
| fuser -kcxu NomFS | |
| Ajouter une copie (miroir) d'un LV sur un disque précis | lvextend -m 1 /dev/vg01/myvol /dev/disk/disk9 |
| Supprimer une copie (miroir) d'un LV sur un disque précis | lvreduce -m 0 /dev/vg01/myvol /dev/disk/disk9 |
| DÉFRAGMENTATION | |
| Défragmenter un FS | fsadm -d -e -D -E /mountpoint |
| GESTION FIBRE / BAIE | |
| Visualiser les différentes cartes fibres | ioscan -fnC fc |
| Vérifier les liens fibres d'une carte | fcmsutil /dev/fcd1 |
Identifier les 30 fichiers les plus gros sur le FS courant
- find . -xdev -type f | xargs ls -dils | awk '{print $7"\t"$11}' | sort -n | tail -30
Connaître les FS en Read-Only
- for fs in `df -P | awk '/^\/dev/ {print $6}'`;do touch $fs/toto; [ $? -eq 0 ] && rm -f $fs/toto || echo "FS $fs KO";done
Copie fiable du répertoire courant
- find . -depth|cpio -pcvdmu /exec/applis/13hmar/tmp
- find . -print | cpio -pdumv /home/isere/d21/user1
Supprimer des fichiers d’un certaine date
- for i in `ll | grep 2009 | awk '{print $9}'`; do rm -f $i; done
Trouver des liens symboliques en erreur
- find / -type l | perl -lne 'print if ! -e'
Cas précis
Si perte de disque (reconstruction du VGID du disk17)
- vgcfgrestore -n /dev/VG /dev/rdisk/disk17
-
vgchange -a y /dev/VG
- vgdisplay /dev/VG
Vérification MIRRORING des disques
- vgdisplay -v |grep "LV Status"
available/syncd
Migrer un VG de version
Le but est de migrer un VG de version 1.0 vers une version 2.1
Vérifier la version du VG
- vgdisplay vg01 | grep -i version
« Jouer » la migration (testée mais non appliquée)
- vgversion -r -v -V 2.1 vg01
On désactive le VG
- vgchange -a n vg01
On procède à la migration
- vgversion -v -V 2.1 vg01
On ré active le VG
- vgchange -a y vg01
On vérifié la version
- vgdisplay vg01 | grep -i version
Quelques scripts
Analyse VG
Ce script permet d’avoir l’architecture détaillée des VGs avec LV, Disques, PE etc
- LISTVG=$(vgdisplay |awk ' $0 ~ /VG Name/ { printf"%s ",$3 } ' )
- for vg in $LISTVG<
- do
- vgdisplay $vg | awk -v VG=$vg ' BEGIN { printf"\n\n VG : %s ",VG } \
- $0 ~ /PE Size \(Mbytes\)/ { printf" TaillePE=%d ",$4 ; PV=$4}\
- $0 ~ /Total PE/ { printf" NbPE=%d(%d Mo) ",$3 , $3 * PV }\
- $0 ~ /Free PE/ { printf" FreePE=%d (%d Mo)",$3, $3 * PV }\
- END { printf"\n" } '
- #
- vgdisplay -v $vg | awk -v VG=$vg ' BEGIN { TEST="Faux";LV="Faux"; }\
- { if ($0 ~ / Logical volumes / ) { LV="Vrai" } \
- if ($0 ~ /LV Name/ ) { printf"\n\t\tVolume Logique : %s ",$3 } \
- if ($0 ~ /Allocated PE/ && LV == "Vrai") { printf"(NbPE=%d)",$3 }\
- #
- if ($0 ~ / Physical volumes / ) { printf"\n" ;LV="Faux"; TEST="Vrai" } \
- if ($0 ~ /PV Name/ ) { printf"\n\tDisque : %s ",$3 } \
- if ($0 ~ /Total PE/ && TEST == "Vrai") { printf"(NbPE=%d",$3 }\
- if ($0 ~ /Free PE/ && TEST == "Vrai") { printf"-- FreePE=%d)",$3 }\
- }'
- echo
- done