« GESTION DISQUE » : différence entre les versions

De TwisterWiki
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 49 : Ligne 49 :
* resize2fs /dev/sda2
* resize2fs /dev/sda2


== LVM ==
=== LVM c'est quoi ? ===
* le LVM est une gestion des disques par des volumes logiques et modifiable à chaud
il y a trois termes à connaître


PV : Les disques durs, partitions de disques durs, volumes RAID ou unités logiques provenant d'un SAN forment des « volumes physiques » (physical volumes ou PV).


VG : On concatène les volumes physiques dans des « groupes de volumes » (volume groups ou VG). Ces VG sont équivalents à des pseudo-disques-durs.
Scan pour ajout de disque à chaud :


LV : Des « volumes logiques » (logical volumes ou LV) sont alors découpés dans les groupes de volumes, puis formatés et montés dans des systèmes de fichiers ou utilisés en tant que raw devices.
for i in /sys/class/scsi_host/host*/scan ; do echo '- - -' > $i ; done
Les LV sont équivalents à des pseudo-partitions.
Augmentation de la taille d'une partition :


* schema explicatif
for i in /sys/class/scsi_device/*/device/rescan; do echo 1 > $i;done
[[Fichier: LVM-Diagram.png]]


[[Fichier: LVM_exemple1.png]]


[[Fichier: LVM_exemple2.png]]


=== les commandes utiles ===
/sbin/parted ---pretend-input-tty /dev/${DEV}<<EOF
* vgscan : scan les partitions LVM
unit
root@debian:~# vgscan
%
  Reading all physical volumes.  This may take a while...
resizepart
  Found volume group "VG_home" using metadata type lvm2
${PART}
  Found volume group "VG_root" using metadata type lvm2
100
Quit
EOF


* vgchange -ay <monvolumeLVM> :  permet d'activer la partition LVM voulue


* lvs : affiche le nom logique de la partition LVM
root@debian:~# lvs
  LV  VG      Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home VG_home -wi-ao---- <2,96g                                                   
  root VG_root -wi-ao---- 11,17g


* vgdisplay:  affiche des informations sur les VG
/sbin/parted ---pretend-input-tty /dev/${DEV}<<EOF
root@debian:~# vgdisplay
unit
  --- Volume group ---
%
  VG Name              VG_home
resizepart
  System ID           
${PART}
  Format                lvm2
100
  Metadata Areas        2
Quit
  Metadata Sequence No  5
EOF
  VG Access            read/write
  VG Status            resizable
  MAX LV                0
  Cur LV                1
  Open LV              1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size              10,95 GiB
  PE Size              4,00 MiB
  Total PE              2804
  Alloc PE / Size      2804 / 10,95 GiB
  Free  PE / Size      0 / 0 
  VG UUID              1CWo34-pSCo-xm7c-3oDe-Bm1g-ssZv-lc6l3l
 
  --- Volume group ---
  VG Name              VG_root
  System ID           
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access            read/write
  VG Status            resizable
  MAX LV                0
  Cur LV                1
  Open LV              1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size              11,17 GiB
  PE Size              4,00 MiB
  Total PE              2860
  Alloc PE / Size      2860 / 11,17 GiB
  Free  PE / Size      0 / 0 
  VG UUID              0mBEyB-ulvn-uAlV-PLgX-Ukj0-Nyou-P75k1j


* lvdisplay : affiche des informations sur les LV
root@debian:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/lv_home/home
  LV Name                home
  VG Name                lv_home
  LV UUID                ksr3xP-1TMw-HmYl-i9bn-sbaV-D4xj-JEgQut
  LV Write Access        read/write
  LV Creation host, time debian, 2020-06-25 11:56:28 +0200
  LV Status              available
  # open                1
  LV Size                10,95 GiB
  Current LE            2804
  Segments              2
  Allocation            inherit
  Read ahead sectors    auto
  - currently set to    256
  Block device          254:1
 
  --- Logical volume ---
  LV Path                /dev/lv_root/root
  LV Name                root
  VG Name                lv_root
  LV UUID                ebhyTn-QKjr-RZoc-AJob-o7FM-CidW-UMNtsw
  LV Write Access        read/write
  LV Creation host, time debian, 2020-06-25 11:56:42 +0200
  LV Status              available
  # open                1
  LV Size                11,17 GiB
  Current LE            2860
  Segments              1
  Allocation            inherit
  Read ahead sectors    auto
  - currently set to    256
  Block device          254:0


=== ajouter de l'espace===
* comment ajouter de l'espace à un volume LVM
il faut en premier lieu augmenter la taille du disque
*exemple on ajoute une partition /dev/sda5
pvcreate /dev/sda5
* on agrandit le VG
vgextend monVolumeGroup /dev/sda5


* ajouter l'espace au volumeLogique
  lvresize --size +500G /dev/mapper/monVolumeGroup-monLogicalVolume


* extension du VolumeLogique sur la prtition ajoutée
/sbin/parted ---pretend-input-tty /dev/${DEV} unit % resizepart ${PART} Yes 100%
lvextend /dev/mapper/monVolumeGroup-monLogicalVolume /dev/sda5
 
* agrandissement du file system
resize2fs /dev/mapper/monVolumeGroup-monLogicalVolume
 
 
=== Exemple d'ajout d'espace ===
* nous avons un disque de 16Go avec 2 VG (VG_root et VG_home) et une swap
** /dev/sda1 : swap
** /dev/mapper/VG_root-root : 11,2 GiB (/dev/sda2)
** /dev/mapper/VG_home-home : 3 GiB (/dev/sda5)
root@debian:~# fdisk -l
Disque /dev/sda : 16 GiB, 17179869184 octets, 33554432 secteurs
Modèle de disque : VBOX HARDDISK 
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xd741f2c0
Périphérique Amorçage    Début      Fin Secteurs Taille Id Type
/dev/sda1    *            2048  3905535  3903488  1,9G 82 partition d'échange Linux / Solaris
/dev/sda2              3905536 27342847 23437312  11,2G 8e LVM Linux
/dev/sda3            27344894 33552383  6207490    3G  5 Étendue
/dev/sda5            27344896 33552383  6207488    3G 8e LVM Linux
Disque /dev/mapper/VG_root-root : 11,2 GiB, 11995709440 octets, 23429120 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 
Disque /dev/mapper/VG_home-home : 3 GiB, 3175088128 octets, 6201344 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
* Nous avons ajouter un second disque de 8Go pour étendre /home (sdb)
root@debian:~# fdisk -l
Disque /dev/sda : 16 GiB, 17179869184 octets, 33554432 secteurs
Modèle de disque : VBOX HARDDISK 
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xd741f2c0
Périphérique Amorçage    Début      Fin Secteurs Taille Id Type
/dev/sda1    *            2048  3905535  3903488  1,9G 82 partition d'échange Linux / Solaris
/dev/sda2              3905536 27342847 23437312  11,2G 8e LVM Linux
/dev/sda3            27344894 33552383  6207490    3G  5 Étendue
/dev/sda5            27344896 33552383  6207488    3G 8e LVM Linux
Disque /dev/sdb : 8 GiB, 8589934592 octets, 16777216 secteurs
Modèle de disque : VBOX HARDDISK 
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Disque /dev/mapper/VG_root-root : 11,2 GiB, 11995709440 octets, 23429120 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Disque /dev/mapper/VG_home-home : 3 GiB, 3175088128 octets, 6201344 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
 
==== Création de la partition sdb1 ====
* on créer une partition primaire classique avec l'outils fdisk ou cfdisk
* on crée un volume physique lvm avec la commande pvcreate
root@debian:~# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
root@debian:~# pvs
  PV        VG      Fmt  Attr PSize  PFree
  /dev/sda2  VG_root lvm2 a--  11,17g    0
  /dev/sda5  VG_home lvm2 a--  <2,96g    0
  /dev/sdb1          lvm2 ---  <8,00g <8,00g
 
* on ajoute la partition /dev/sdb1 au volume group lv_home
root@debian:~# vgextend VG_home /dev/sdb1
  Volume group "VG_home" successfully extended
 
* on agrandit la taille de /home
root@debian:~# lvresize --size +8G /dev/mapper/VG_home-home
  Insufficient free space: 2048 extents needed, but only 2047 available
root@debian:~# lvresize  --extents +2047 /dev/mapper/VG_home-home
  Size of logical volume VG_home/home changed from <2,96 GiB (757 extents) to 10,95 GiB (2804 extents).
  Logical volume VG_home/home successfully resized.
 
* on voit que le volume groupe à été augmenté de 8Go
root@debian:~# lvs
  LV  VG      Attr      LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home VG_home -wi-ao---- 10,95g                                                   
  root VG_root -wi-ao---- 11,17g
 
* dernière étape on augmente la taille du file_system sur le LV
root@debian:~# resize2fs /dev/mapper/VG_home-home
resize2fs 1.44.5 (15-Dec-2018)
Filesystem at /dev/mapper/VG_home-home is mounted on /home; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/VG_home-home is now 2871296 (4k) blocks long.
root@debian:~# df -h
Sys. de fichiers        Taille Utilisé Dispo Uti% Monté sur
udev                      983M      0  983M  0% /dev
tmpfs                      200M    3,0M  197M  2% /run
/dev/mapper/VG_root-root    11G    1,5G  9,0G  14% /
tmpfs                      998M      0  998M  0% /dev/shm
tmpfs                      5,0M      0  5,0M  0% /run/lock
tmpfs                      998M      0  998M  0% /sys/fs/cgroup
/dev/mapper/VG_home-home    11G    15M  11G  1% /home
tmpfs                      200M      0  200M  0% /run/user/0

Dernière version du 22 novembre 2022 à 16:26

Ajout d'un disque à chaud

  • La commande suivante va permettre de lancer un scan sur tous les channels SATA et donc de reconnaitre un nouveau disque
echo "- - -" >/sys/class/scsi_host/hostX/scan

Supprimer un disque à chaud

  • ATTENTION Il faut être certain du disque que l'on retire
echo "1" >/sys/class/scsi_host/hostX/device/target0:0:0/0:0:0:0/delete

Relire la table des partitions

partprobe qui fait parti du paquet parted sous debian

trouver le UUID d'une partition

ls -l /dev/disk/by-uuid/
vol_id -u /dev/hdc1
tune2fs -l /dev/hdc1 | grep UUID

Mulitpath

  • connaitre le wwid d'un volume
multipath -l

Dec 26 16:05:20 | multipath.conf line 33, invalid keyword: path_checker
db2instance (360001440000000102048d9256bfc8b28) dm-0 EMC,Invista
size=15G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 1:0:0:2 sdc 8:32  active ready running
  |- 3:0:0:2 sdi 8:128 active ready running
  |- 1:0:1:2 sdf 8:80  active ready running
  `- 3:0:1:2 sdl 8:176 active ready running
db2indextext (360001440000000102048d9256bfc8b1e) dm-1 EMC,Invista
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 1:0:0:0 sda 8:0   active ready running
  |- 3:0:0:0 sdg 8:96  active ready running
  |- 1:0:1:0 sdd 8:48  active ready running
  `- 3:0:1:0 sdj 8:144 active ready running
db2data (360001440000000102048d9256bfc8b23) dm-2 EMC,Invista
size=600G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 1:0:0:1 sdb 8:16  active ready running
  |- 3:0:0:1 sdh 8:112 active ready running
  |- 1:0:1:1 sde 8:64  active ready running
  `- 3:0:1:1 sdk 8:160 active ready running

Augmenter la taille d'un disque

  • parted /dev/sda resizepart 2
  • resize2fs /dev/sda2


Scan pour ajout de disque à chaud :

for i in /sys/class/scsi_host/host*/scan ; do echo '- - -' > $i ; done Augmentation de la taille d'une partition :

for i in /sys/class/scsi_device/*/device/rescan; do echo 1 > $i;done


/sbin/parted ---pretend-input-tty /dev/${DEV}<<EOF unit % resizepart ${PART} 100 Quit EOF


/sbin/parted ---pretend-input-tty /dev/${DEV}<<EOF unit % resizepart ${PART} 100 Quit EOF



/sbin/parted ---pretend-input-tty /dev/${DEV} unit % resizepart ${PART} Yes 100%