Remplacement de disques de plus petite capacité par des disques de plus grande capacité sous Linux

Bonjour Ă  tous. Avant le lancement d'un nouveau groupe de cours « Administrateur Linux » nous publions un matĂ©riel utile, Ă©crit par notre Ă©tudiant et Ă©galement par un mentor des cours, expert en support technique des produits d'entreprise REG.RU — Roman Travine.

Dans cet article, nous examinerons deux cas de remplacement de disques et de transfert d'informations sur de nouveaux disques de plus grande capacité, avec une extension ultérieure du tableau et du systÚme de fichiers. Le premier cas concernera le remplacement de disques avec une partition identique MBR/MBR ou GPT/GPT, le deuxiÚme cas concerne le remplacement de disques avec la partition MBR par des disques de plus de 2 To, sur lesquels il sera nécessaire d'installer la partition GPT avec une section biosboot. Dans les deux cas, les disques sur lesquels nous transférons les données sont déjà installés serveur. Le systÚme de fichiers utilisé pour la partition racine est ext4.

Cas 1 : Remplacement de disques de moindre capacité par des disques de plus grande capacité (jusqu'à 2 To)

ProblÚme : Remplacer les disques actuels par des disques de plus grande capacité (jusqu'à 2 To) avec transfert d'informations. Dans ce cas, nous avons des disques 2 x 240 Go SSD (RAID-1) avec le systÚme installé et des disques 2 x 1 To SATA, sur lesquels il faut transférer le systÚme.

Examinons la disposition actuelle des disques.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sda2           8:2    0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0 931,5G  0 disk  
sdd              8:48   0 931,5G  0 disk  

Vérifions l'espace utilisé du systÚme de fichiers à ce jour.

[root@localhost ~]# df -h
SystÚme de fichiers     Taille Utilisé  Restant Utilisé% Monté sur
devtmpfs                32G            0   32G            0% /dev
tmpfs                   32G            0   32G            0% /dev/shm
tmpfs                   32G         9,6M   32G            1% /run
tmpfs                   32G            0   32G            0% /sys/fs/cgroup
/dev/mapper/vg0-root   204G         1,3G  192G            1% /
/dev/md126            1007M         120M  837M           13% /boot
tmpfs                  6,3G            0  6,3G            0% /run/user/0

La taille du systÚme de fichiers avant le remplacement des disques est de 204 Go, 2 ensembles RAID logiciels md126 sont utilisés, qui sont montés dans /boot et md127, qui est utilisé comme volume physique pour le groupe VG vg0.

1. Suppression des partitions de disque des ensembles

Vérifions l'état de l'ensemble

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sda1[0] sdb1[1]
      1047552 blocs super 1.2 [2/2] [UU]
      bitmap : 0/1 pages [0O], 65536KO chunk

md127 : raid1 actif sda2[0] sdb2[1]
      233206784 blocs super 1.2 [2/2] [UU]
      bitmap : 0/2 pages [0O], 65536KO chunk

périphériques non utilisés :

Le systùme utilise 2 ensembles : md126 (point de montage /boot) — se compose de la partition /dev/sda1 et /dev/sdb1, md127 (LVM pour swap et la racine du systùme de fichiers) — se compose de /dev/sda2 et /dev/sdb2.

Nous marquons les partitions du premier disque qui sont utilisées dans chaque ensemble comme échouées.

mdadm /dev/md126 --fail /dev/sda1

mdadm /dev/md127 --fail /dev/sda2

Nous supprimons les partitions de l'appareil bloc /dev/sda des ensembles.

mdadm /dev/md126 --remove /dev/sda1

mdadm /dev/md127 --remove /dev/sda2

AprÚs avoir retiré le disque de l'ensemble, les informations sur les périphériques blocs s'afficheront comme suit.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   TAILLE RO TYPE  POINT_DE_MONTAGE
sda              8:0    0 223,6G  0 disque  
├─sda1           8:1    0     1G  0 partition  
└─sda2           8:2    0 222,5G  0 partition  
sdb              8:16   0 223,6G  0 disque  
├─sdb1           8:17   0     1G  0 partition  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 partition  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0 931,5G  0 disque  
sdd              8:48   0 931,5G  0 disque  

État des ensembles aprùs la suppression des disques.

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sdb1[1]
      1047552 blocs super 1.2 [2/1] [_U]
      bitmap : 0/1 pages [0O], 65536KO chunk

md127 : raid1 actif sdb2[1]
      233206784 blocs super 1.2 [2/1] [_U]
      bitmap : 1/2 pages [4KO], 65536KO chunk

périphériques non utilisés :

2. Copie de la table de partitions sur un nouveau disque

On peut vérifier la table de partitions utilisée sur le disque avec la commande suivante.

fdisk -l /dev/sdb | grep 'Type de label de disque'

La sortie pour MBR sera :

Type de label de disque : dos

pour GPT :

Type de label de disque : gpt

Copie de la table de partition pour MBR :

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

Dans cette commande premier le disque est spĂ©cifiĂ© avec dont la partition est copiĂ©e, le second — oĂč copier.

ATTENTION: Pour GPT premier le disque est spécifié sur lequel copier la partition, deuxiÚme le disque est spécifié comme le disque depuis lequel la partition est copiée. Si les disques sont confondus, la partition initialement correcte sera écrasée et détruite.

Copie de la table de partition pour GPT :

sgdisk -R /dev/sdc /dev/sdb

Ensuite, nous attribuons au disque un UUID aléatoire (pour GPT).


sgdisk -G /dev/sdc

AprÚs l'exécution de la commande, les partitions doivent apparaßtre sur le disque /dev/sdc.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
└─sdc2           8:34   0 222,5G  0 part  
sdd              8:48   0 931,5G  0 disk  

Si, aprÚs l'opération effectuée, les partitions sur le disque ne sont pas déterminées, /dev/sdc alors exécutez la commande pour relire la table des partitions.

sfdisk -R /dev/sdc

Si la table MBR est utilisĂ©e sur les disques actuels et que les informations doivent ĂȘtre transfĂ©rĂ©es vers des disques de plus de 2 To, il sera nĂ©cessaire de crĂ©er manuellement une mise en page GPT sur les nouveaux disques en utilisant la partition biosboot. Ce cas sera abordĂ© dans la deuxiĂšme partie de cet article.

3. Ajout des partitions du nouveau disque dans le tableau

Ajoutons les partitions du disque dans les tableaux correspondants.

mdadm /dev/md126 --add /dev/sdc1

mdadm /dev/md127 --add /dev/sdc2

Vérifions que les partitions ont été ajoutées.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disk  

AprĂšs cela, nous attendons la synchronisation des tableaux.

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md126 : active raid1 sdc1[2] sdb1[1]
      1047552 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdc2[2] sdb2[1]
      233206784 blocks super 1.2 [2/1] [_U]
      [==>..................]  recovery = 10.6% (24859136/233206784) finish=29.3min speed=118119K/sec
      bitmap: 2/2 pages [8KB], 65536KB chunk

unused devices:

Vous pouvez surveiller en continu le processus de synchronisation Ă  l'aide de l'outil regarder.

watch -n 2 cat /proc/mdstat

ParamÚtre -n qui indique à quel intervalle en secondes il est nécessaire d'exécuter la commande pour vérifier les progrÚs.

Répétez les points 1 à 3 pour le prochain disque à remplacer.

Marquez les partitions de la deuxiÚme disque, qui sont utilisées dans chaque tableau, comme défaillantes.

mdadm /dev/md126 --fail /dev/sdb1

mdadm /dev/md127 --fail /dev/sdb2

Supprimez les partitions de l'appareil de bloc /dev/sdb des tableaux.

mdadm /dev/md126 --remove /dev/sdb1

mdadm /dev/md127 --remove /dev/sdb2

AprÚs avoir retiré le disque de l'ensemble, les informations sur les périphériques blocs s'afficheront comme suit.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
└─sdb2           8:18   0 222,5G  0 part  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disk  

État des ensembles aprùs la suppression des disques.

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sdc1[2]
      1047552 blocs super 1.2 [2/1] [U_]
      bitmap : 0/1 pages [0KO], 65536KO chunk

md127 : raid1 actif sdc2[2]
      233206784 blocs super 1.2 [2/1] [U_]
      bitmap : 1/2 pages [4KO], 65536KO chunk

périphériques inutilisés :

Copie de la table de partition MBR d'un disque /dev/sdс vers le disque /dev/sdd.

sfdisk -d /dev/sdc | sfdisk /dev/sdd

AprÚs l'exécution de la commande, les partitions doivent apparaßtre sur le disque /dev/sdd.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
└─sdb2           8:18   0 222,5G  0 part  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disk  
├─sdd1           8:49   0     1G  0 part  
└─sdd2           8:50   0 222,5G  0 part  

Ajout des partitions du disque aux tableaux.

mdadm /dev/md126 --add /dev/sdd1

mdadm /dev/md127 --add /dev/sdd2

Vérifions que les partitions ont été ajoutées.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
└─sdb2           8:18   0 222,5G  0 part  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disk  
├─sdd1           8:49   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd2           8:50   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

AprĂšs cela, nous attendons la synchronisation des tableaux.

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sdd1[3] sdc1[2]
      1047552 blocs super 1.2 [2/2] [UU]
      bitmap : 0/1 pages [0KO], 65536KO chunk

md127 : raid1 actif sdd2[3] sdc2[2]
      233206784 blocs super 1.2 [2/1] [U_]
      [>....................]  récupération =  0.5% (1200000/233206784) temps=35.4min vitesse=109090K/sec
      bitmap : 2/2 pages [8KO], 65536KO chunk

périphériques inutilisés :

5. Installation de GRUB sur de nouveaux disques

Pour CentOS :

grub2-install /dev/sdX

Pour Debian/Ubuntu :

grub-install /dev/sdX

oĂč X — lettre du pĂ©riphĂ©rique de bloc. Dans ce cas, il est nĂ©cessaire d’installer GRUB sur /dev/sdc et /dev/sdd.

6. Extension du systĂšme de fichiers (ext4) de la partition racine

Sur les nouveaux disques /dev/sdc et /dev/sdd disponibles 931.5 Go. En raison du fait que la table des partitions a été copiée à partir de disques de plus petite capacité, sur les partitions /dev/sdc2 et /dev/sdd2 disponibles 222.5 Go.

sdc              8:32   0 931,5G  0 disque  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disque  
├─sdd1           8:49   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd2           8:50   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Nécessaire :

  1. Étendre la partition 2 sur chaque disque,
  2. Étendre le tableau md127,
  3. Étendre le PV (volume physique),
  4. Étendre le LV (volume logique) vg0-root,
  5. Étendre le systùme de fichiers.

En utilisant l'utilitaire parted nous allons étendre la partition /dev/sdc2 à sa taille maximale. Exécutez la commande parted /dev/sdc (1) et visualisez la table des partitions actuelle avec la commande p (2).

Remplacement de disques de plus petite capacité par des disques de plus grande capacité sous Linux

Comme on peut le voir, la fin de la partition 2 se termine Ă  240 Go. ProcĂ©dons Ă  l'extension de la partition avec la commande resizepart 2, oĂč 2 est le numĂ©ro de la partition (3). Indiquez la valeur au format numĂ©rique, par exemple 1000 Go, ou utilisez la fraction du disque — 100 %. VĂ©rifiez Ă  nouveau que la partition a une nouvelle taille (4).

Répétez les étapes ci-dessus pour le disque /dev/sdd. AprÚs avoir étendu les partitions /dev/sdc2 et /dev/sdd2 elles sont devenues égales à 930.5 Go.

[root@localhost ~]# lsblk                                                 
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disque  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disque  
├─sdb1           8:17   0     1G  0 part  
└─sdb2           8:18   0 222,5G  0 part  
sdc              8:32   0 931,5G  0 disque  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 930,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disque  
├─sdd1           8:49   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd2           8:50   0 930,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

AprÚs cela, nous procédons à l'extension du tableau md127 à sa taille maximale.

mdadm --grow /dev/md127 --size=max

Vérifiez que le tableau a été étendu. Sa taille est maintenant de 930.4 Go.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
└─sdb2           8:18   0 222,5G  0 part  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 930,5G  0 part  
  └─md127        9:127  0 930,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disk  
├─sdd1           8:49   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd2           8:50   0 930,5G  0 part  
  └─md127        9:127  0 930,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Nous allons procéder à l'extension. volume physique. Avant de procéder à l'extension, vérifions l'état actuel du PV.

[root@localhost ~]# pvscan
  PV /dev/md127   VG vg0             lvm2 [222,40 GiB / 0    free]
  Total: 1 [222,40 GiB] / in use: 1 [222,40 GiB] / in no VG: 0 [0   ]

Comme on peut le voir, le PV /dev/md127 utilise 222,4 Go d'espace.

Nous allons étendre le PV avec la commande suivante.

pvresize /dev/md127

Vérifions le résultat de l'extension du PV.

[

root@localhost ~]# pvscan
  PV /dev/md127   VG vg0             lvm2 [930,38 GiB / 707,98 GiB free]
  Total: 1 [930,38 GiB] / in use: 1 [930,38 GiB] / in no VG: 0 [0   ]

Nous étendons le volume logique. Avant d'agrandir, vérifions l'état actuel du LV (1).

[root@localhost ~]# lvscan
  ACTIVE            '/dev/vg0/swap' [<16,00 GiB] inherit
  ACTIVE            '/dev/vg0/root' [<206,41 GiB] inherit

Le LV /dev/vg0/root utilise 206,41 Go.

Nous allons étendre le LV avec la commande suivante (2).

lvextend -l +100%FREE /dev/mapper/vg0-root

Vérifions l'action réalisée (3).

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/vg0/swap' [<16,00 GiB] inherit
  ACTIVE            '/dev/vg0/root' [<914,39 GiB] inherit

Comme nous le voyons, aprÚs l'extension, la capacité occupée par le disque est devenue 914,39 Go.

Remplacement de disques de plus petite capacité par des disques de plus grande capacité sous Linux

La taille du LV a été augmentée (4), mais le systÚme de fichiers occupe toujours 204 Go (5).

1. Procédons à l'extension du systÚme de fichiers.

resize2fs /dev/mapper/vg0-root

Vérifions la taille du systÚme de fichiers aprÚs la commande exécutée.

[root@localhost ~]# df -h
SystÚme de fichiers     Taille Utilisé  Dispo Utilisé% Monté sur
devtmpfs                32G            0   32G            0% /dev
tmpfs                   32G            0   32G            0% /dev/shm
tmpfs                   32G         9,5M   32G            1% /run
tmpfs                   32G            0   32G            0% /sys/fs/cgroup
/dev/mapper/vg0-root   900G         1,3G  860G            1% /
/dev/md126            1007M         120M  837M           13% /boot
tmpfs                  6,3G            0  6,3G            0% /run/user/0

La taille du systĂšme de fichiers racine augmentera Ă  900 Go. AprĂšs ces actions, il est possible de retirer les anciens disques.

Cas 2 : Remplacer des disques de plus petite taille par des disques de plus grande taille (plus de 2 To)

TĂąche : Remplacer les disques actuels par des disques de capacitĂ© supĂ©rieure (2 x 3 To) tout en conservant les donnĂ©es. Dans ce cas, nous avons des disques de 2 x 240 Go SSD (RAID-1) avec le systĂšme installĂ© et des disques de 2 x 3 To SATA, sur lesquels il faut transfĂ©rer le systĂšme. Les disques actuels utilisent un schĂ©ma de partition MBR. Étant donnĂ© que les nouveaux disques ont une capacitĂ© supĂ©rieure Ă  2 To, un schĂ©ma GPT devra ĂȘtre utilisĂ©, car MBR ne peut pas fonctionner avec des disques de plus de 2 To.

Examinons la disposition actuelle des disques.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sda2           8:2    0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0   2,7T  0 disk  
sdd              8:48   0   2,7T  0 disk  

Vérifions le type de schéma de partition utilisé sur le disque /dev/sda.

[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos

Sur le disque /dev/sdb un schéma de partition similaire est utilisé. Vérifions l'espace disque utilisé dans le systÚme.

[root@localhost ~]# df -h
SystÚme de fichiers      Taille Utilisé  Disponibilité Utilisé% Monté sur
devtmpfs                16G          0   16G            0% /dev
tmpfs                   16G          0   16G            0% /dev/shm
tmpfs                   16G       9,5M   16G            1% /run
tmpfs                   16G          0   16G            0% /sys/fs/cgroup
/dev/mapper/vg0-root   204G       1,3G  192G            1% /
/dev/md126            1007M       120M  837M           13% /boot
tmpfs                  3,2G          0  3,2G            0% /run/user/0

Comme on peut le voir, la racine du systÚme de fichiers utilise 204 Go. Vérifions l'état actuel du tableau RAID logiciel.

1. Installation de la table de partitions GPT et partitionnement du disque

Vérifions le partitionnement des disques par secteurs.

[root@localhost ~]# parted /dev/sda print
ModĂšle: ATA KINGSTON SVP200S (scsi)
Disque /dev/sda: 240Go
Taille de secteur (logique/physique): 512B/512B
Table de partitions: msdos
Disk Flags: 

Numéro  Début  Fin   Taille  Type      SystÚme de fichiers  Flags
 1     1049kB  1076MB  1075MB  primaire                    amorçable, raid
 2     1076MB  240GB   239GB   primaire                    raid

Sur le nouveau disque de 3 To, nous devrons créer 3 partitions :

  1. Section bios_grub d'une taille de 2 MiB pour compatibilité GPT avec BIOS,
  2. Une partition pour le tableau RAID, qui sera montée sur /boot.
  3. Une partition pour le tableau RAID, sur laquelle sera LV root et LV swap.

Installons l'utilitaire parted la commande yum install -y parted (pour CentOS), apt install -y parted (pour Debian/Ubuntu).

En utilisant parted Nous allons exécuter les commandes suivantes pour partitionner le disque.

Execute the command parted /dev/sdc et nous passons en mode d'édition de la partition.

Créons une table de partitions GPT.

(parted) mktable gpt

Créons la premiÚre partition bios_grub et définissons un drapeau pour celle-ci.

(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on  

Créons la deuxiÚme partition et définissons un drapeau pour celle-ci. Cette partition sera utilisée comme bloc pour le tableau RAID et elle sera montée dans /boot.

(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on

Créons la troisiÚme partition, qui sera également utilisée comme bloc de tableau, dans lequel se trouvera LVM.

(parted) mkpart primary 1028MiB 100% 

Dans ce cas, il n'est pas nĂ©cessaire de dĂ©finir un drapeau, mais si nĂ©cessaire, il peut ĂȘtre dĂ©fini avec la commande suivante.

(parted) set 3 raid on

Vérifions la table de partitions créée.

(parted) p                                                                
ModĂšle : ATA TOSHIBA DT01ACA3 (scsi)
Disque /dev/sdc: 3001GB
Taille de secteur (logique/physique) : 512B/4096B
Table de partition : gpt
Drapeaux disque : 

Numéro  Début  Fin   Taille  SystÚme de fichiers  Nom      Drapeaux
 1     1049kB  3146kB  2097kB                    primary  bios_grub
 2     3146kB  1077MB  1074MB                    primary  boot
 3     1077MB  3001GB  3000GB                    primary

Assignons un nouveau GUID aléatoire au disque.

sgdisk -G /dev/sdd

2. Suppression des partitions du premier disque des tableaux

Vérifions l'état de l'ensemble

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sda1[0] sdb1[1]
      1047552 blocs super 1.2 [2/2] [UU]
      bitmap : 0/1 pages [0O], 65536KO chunk

md127 : raid1 actif sda2[0] sdb2[1]
      233206784 blocs super 1.2 [2/2] [UU]
      bitmap : 0/2 pages [0O], 65536KO chunk

périphériques non utilisés :

Le systùme utilise 2 tableaux : md126 (point de montage /boot) — consiste en /dev/sda1 et /dev/sdb1, md127 (LVM pour swap et la racine du systùme de fichiers) — se compose de /dev/sda2 et /dev/sdb2.

Nous marquons les partitions du premier disque qui sont utilisées dans chaque ensemble comme échouées.

mdadm /dev/md126 --fail /dev/sda1

mdadm /dev/md127 --fail /dev/sda2

Supprimez les partitions de l'appareil de bloc /dev/sda des tableaux.

mdadm /dev/md126 --remove /dev/sda1

mdadm /dev/md127 --remove /dev/sda2

Vérifions l'état du tableau aprÚs la suppression du disque.

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sdb1[1]
      1047552 blocs super 1.2 [2/1] [_U]
      bitmap : 0/1 pages [0KB], 65536KB chunk

md127 : raid1 actif sdb2[1]
      233206784 blocs super 1.2 [2/1] [_U]
      bitmap : 2/2 pages [8KB], 65536KB chunk

périphériques inutilisés : <aucun>

3. Ajout des partitions du nouveau disque dans le tableau

L'étape suivante consiste à ajouter les partitions du nouveau disque aux tableaux pour la synchronisation. Vérifions l'état actuel des partitions des disques.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0   2,7T  0 disk  
├─sdc1           8:33   0     2M  0 part  
├─sdc2           8:34   0     1G  0 part  
└─sdc3           8:35   0   2,7T  0 part  
sdd              8:48   0   2,7T  0 disk  

Section /dev/sdc1 est bios_grub la partition et n'est pas impliquée dans la création des tableaux. Seules /dev/sdc2 et /dev/sdc3. Ajoutons ces partitions aux tableaux correspondants.

mdadm /dev/md126 --add /dev/sdc2

mdadm /dev/md127 --add /dev/sdc3

AprĂšs cela, attendons la synchronisation du tableau.

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sdc2[2] sdb1[1]
      1047552 blocs super 1.2 [2/2] [UU]
      bitmap : 0/1 pages [0Ko], 65536Ko chunk

md127 : raid1 actif sdc3[2] sdb2[1]
      233206784 blocs super 1.2 [2/1] [_U]
      [>....................]  récupération =  0,2% (619904/233206784) terminé dans 31,2min vitesse=123980Ko/sec
      bitmap : 2/2 pages [8Ko], 65536Ko chunk
périphériques inutilisés :

Disposition des disques aprĂšs l'ajout des partitions au tableau.

[root@localhost ~]# lsblk
NOM           MAJ:MIN RM   TAILLE RO TYPE  POINT_MONTAGE
sda              8:0    0 223,6G  0 disque  
├─sda1           8:1    0     1G  0 partie  
└─sda2           8:2    0 222,5G  0 partie  
sdb              8:16   0 223,6G  0 disque  
├─sdb1           8:17   0     1G  0 partie  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 partie  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdc              8:32   0   2,7T  0 disque  
├─sdc1           8:33   0     2M  0 partie  
├─sdc2           8:34   0     1G  0 partie  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 partie  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0   2,7T  0 disque  

4. Suppression des partitions du second disque des tableaux

Marquez les partitions de la deuxiÚme disque, qui sont utilisées dans chaque tableau, comme défaillantes.

mdadm /dev/md126 --fail /dev/sdb1

mdadm /dev/md127 --fail /dev/sdb2

Supprimez les partitions de l'appareil de bloc /dev/sda des tableaux.

mdadm /dev/md126 --remove /dev/sdb1

mdadm /dev/md127 --remove /dev/sdb2

5. Nous copions le tableau de partitionnement GPT et synchronisons le tableau

Pour copier le tableau de partitionnement GPT, nous utilisons l'outil sgdisk, qui fait partie de la suite d'outils pour travailler avec les partitions et le tableau GPT — gdisk.

Installation gdisk pour CentOS :

yum install -y gdisk

Installation gdisk pour Debian/Ubuntu :

apt install -y gdisk

ATTENTION: Pour GPT premier le disque est spécifié sur lequel nous copions le partitionnement, deuxiÚme le disque est spécifié comme le disque depuis lequel ils copient le partitionnement. Si vous confondez les disques, le partitionnement initialement correct sera écrasé et détruit.

Nous copions le tableau de partitionnement GPT.

sgdisk -R /dev/sdd /dev/sdc

Disposition des disques aprĂšs le transfert du tableau sur le disque /dev/sdd.

[root@localhost ~]# lsblk
NOM           MAJ:MIN RM   TAILLE RO TYPE  POINT_MONTAGE
sda              8:0    0 223,6G  0 disque  
├─sda1           8:1    0     1G  0 partie  
└─sda2           8:2    0 222,5G  0 partie  
sdb              8:16   0 223,6G  0 disque  
├─sdb1           8:17   0     1G  0 partie  
└─sdb2           8:18   0 222,5G  0 partie  
sdc              8:32   0   2,7T  0 disque  
├─sdc1           8:33   0     2M  0 partie  
├─sdc2           8:34   0     1G  0 partie  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 partie  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0   2,7T  0 disque  
├─sdd1           8:49   0     2M  0 partie  
├─sdd2           8:50   0     1G  0 partie  
└─sdd3           8:51   0   2,7T  0 partie  

Ensuite, nous ajoutons chacune des partitions participant aux tableaux RAID logiciels.

mdadm /dev/md126 --add /dev/sdd2

mdadm /dev/md127 --add /dev/sdd3

Nous attendons la synchronisation du tableau.

[root@localhost ~]# cat /proc/mdstat 
Personnalités : [raid1] 
md126 : raid1 actif sdd2[3] sdc2[2]
      1047552 blocs super 1.2 [2/2] [UU]
      bitmap : 1/1 pages [4Ko], 65536Ko morceau

md127 : raid1 actif sdd3[3] sdc3[2]
      233206784 blocs super 1.2 [2/1] [U_]
      [>....................]  récupération =  0.0% (148224/233206784) fin=26.2min vitesse=148224K/sec
      bitmap : 2/2 pages [8Ko], 65536Ko morceau
périphériques inutilisés :

AprÚs avoir copié la disposition GPT sur le deuxiÚme nouveau disque, la disposition sera la suivante.

[root@localhost ~]# lsblk
NOM           MAJ:MIN RM   TAILLE RO TYPE  POINT_DE_MONTAGE
sda              8:0    0 223,6G  0 disque  
├─sda1           8:1    0     1G  0 part  
└─sda2           8:2    0 222,5G  0 part  
sdb              8:16   0 223,6G  0 disque  
├─sdb1           8:17   0     1G  0 part  
└─sdb2           8:18   0 222,5G  0 part  
sdc              8:32   0   2,7T  0 disque  
├─sdc1           8:33   0     2M  0 part  
├─sdc2           8:34   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   \
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0   2,7T  0 disque  
├─sdd1           8:49   0     2M  0 part  
├─sdd2           8:50   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd3           8:51   0   2,7T  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   \
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Nous allons maintenant installer GRUB sur les nouveaux disques.

Installation pour CentOS :

grub2-install /dev/sdX

Installation pour Debian/Ubuntu :

grub-install /dev/sdX

oĂč X — lettre du disque, dans notre cas les disques /dev/sdc et /dev/sdd.

Mettre Ă  jour les informations sur le tableau.

Pour CentOS :

mdadm --detail --scan --verbose > /etc/mdadm.conf

Pour Debian/Ubuntu :

echo "DEVICE partitions" > /etc/mdadm/mdadm.conf

mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

Mettre Ă  jour l'image initrd:
Pour CentOS :

dracut -f -v --regenerate-all

Pour Debian/Ubuntu :

update-initramfs -u -k all

Mettre Ă  jour la configuration de GRUB.

Pour CentOS :

grub2-mkconfig -o /boot/grub2/grub.cfg

Pour Debian/Ubuntu :

update-grub

AprĂšs avoir effectuĂ© ces actions, les anciens disques peuvent ĂȘtre retirĂ©s.

6. Extension du systĂšme de fichiers (ext4) de la partition racine

Disposition des disques avant l'extension du systĂšme de fichiers aprĂšs le transfert du systĂšme sur des disques 2 x 3To (RAID-1).

[root@localhost ~]# lsblk
NOM           MAJ:MIN RM   TAILLE RO TYPE  POINT_DE_MONTAGE
sda              8:0    0 223,6G  0 disque  
sdb              8:16   0 223,6G  0 disque  
sdc              8:32   0   2,7T  0 disque  
├─sdc1           8:33   0     2M  0 part  
├─sdc2           8:34   0     1G  0 part  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 part  
  └─md126        9:126  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   \
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0   2,7T  0 disque  
├─sdd1           8:49   0     2M  0 part  
├─sdd2           8:50   0     1G  0 part  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdd3           8:51   0   2,7T  0 part  
  └─md126        9:126  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   \
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Actuellement, les partitions /dev/sdc3 et /dev/sdd3 occupent 2,7 To. Comme nous avons créé un nouveau schéma de disques avec une table GPT, les tailles des 3 partitions ont été initialement définies au maximum possible de l'espace disque, aucune extension de partition n'est donc nécessaire dans ce cas.

Nécessaire :

  1. Étendre le tableau md126,
  2. Étendre le PV (volume physique),
  3. Étendre le LV (volume logique) vg0-root,
  4. Étendre le systùme de fichiers.

1. Nous étendons le tableau md126 à sa taille maximale.

mdadm --grow /dev/md126 --size=max

AprÚs l'extension du tableau md126 la taille de l'espace occupé a augmenté à 2,7 To.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
sdb              8:16   0 223,6G  0 disk  
sdc              8:32   0   2,7T  0 disk  
├─sdc1           8:33   0     2M  0 part  
├─sdc2           8:34   0     1G  0 part  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 part  
  └─md126        9:126  0   2,7T  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0   2,7T  0 disk  
├─sdd1           8:49   0     2M  0 part  
├─sdd2           8:50   0     1G  0 part  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdd3           8:51   0   2,7T  0 part  
  └─md126        9:126  0   2,7T  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Nous étendons volume physique.

Avant l'extension, vérifions la valeur actuelle de l'espace occupé PV /dev/md126.

[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize   PFree
  /dev/md126 vg0 lvm2 a--  222,40g    0 

Nous étendons le PV avec la commande suivante.

pvresize /dev/md126

Vérifions l'action effectuée.

[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize  PFree
  /dev/md126 vg0 lvm2 a--  <2,73t 2,51t

Nous étendons volume logique vg0-root.

AprÚs l'extension du PV, vérifions l'espace occupé VG.

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize  VFree
  vg0   1   2   0 wz--n- <2,73t 2,51t

Vérifions l'espace occupé par LV.

[root@localhost ~]# lvs
  LV   VG  Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0 -wi-ao---- <206,41g                                                    
  swap vg0 -wi-ao---- <16,00g            

Le volume vg0-root occupe 206,41 Go.

Nous étendons le LV au maximum de l'espace disque.

lvextend -l +100%FREE /dev/mapper/vg0-root 

Vérifions l'espace LV aprÚs l'extension.

[root@localhost ~]# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0 -wi-ao----   2,71t                                                    
  swap vg0 -wi-ao---- <16,00g

Nous étendons le systÚme de fichiers (ext4).

Vérifions la taille actuelle du systÚme de fichiers.

[root@localhost ~]# df -h
SystÚme de fichiers     Taille Utilisé  Restant Utilisé% Monté sur
devtmpfs                16G            0   16G            0% /dev
tmpfs                   16G            0   16G            0% /dev/shm
tmpfs                   16G         9,6M   16G            1% /run
tmpfs                   16G            0   16G            0% /sys/fs/cgroup
/dev/mapper/vg0-root   204G         1,4G  192G            1% /
/dev/md127            1007M         141M  816M           15% /boot
tmpfs                  3,2G            0  3,2G            0% /run/user/0

Le volume /dev/mapper/vg0-root occupe 204 Go aprĂšs l'extension LV.

Nous étendons le systÚme de fichiers.

resize2fs /dev/mapper/vg0-root 

Vérifions la taille du systÚme de fichiers aprÚs son extension.

[root@localhost ~]# df -h
SystÚme de fichiers   Taille Utilisé  Disp Utilisé% Monté sur
devtmpfs              16G      0   16G      0% /dev
tmpfs                 16G      0   16G      0% /dev/shm
tmpfs                 16G   9,6M   16G      1% /run
tmpfs                 16G      0   16G      0% /sys/fs/cgroup
/dev/mapper/vg0-root  2,7T   1,4G  2,6T      1% /
/dev/md127           1007M   141M  816M     15% /boot
tmpfs                3,2G      0  3,2G      0% /run/user/0

La taille du systÚme de fichiers a été augmentée à l'intégralité du volume.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster