Remplacement de disques plus petits par des disques plus grands sous Linux

Bonjour à tous. En prévision du début d'un nouveau groupe de cours Administrateur Linux, nous publions du matériel utile rédigé par notre étudiant, ainsi que par le mentor du cours, Roman Travin, spécialiste du support technique des produits d'entreprise REG.RU.

Dans cet article, nous considérerons 2 cas de remplacement de disques et de transfert d'informations vers de nouveaux disques d'un volume plus important avec une expansion supplémentaire de la baie et du système de fichiers. Le premier cas concernera le remplacement de disques avec le même balisage MBR / MBR ou GPT / GPT, le deuxième cas concernera le remplacement de disques avec marquage MBR sur des disques d'une capacité supérieure à 2 To, sur lesquels un balisage GPT avec la partition de démarrage biologique sera requis. Dans les deux cas, les disques vers lesquels nous transférons les données sont déjà installés sur le serveur. Le système de fichiers utilisé pour la partition racine est ext4.



Cas 1: remplacement de disques plus petits par des disques plus grands (jusqu'à 2 To)


Tâche: remplacer les disques actuels par des disques plus gros (jusqu'à 2 To) par transfert d'informations. Dans ce cas, nous avons 2 disques SSD (RAID-1) de 240 Go avec le système installé et 2 disques SATA de 1 To sur lesquels vous devez transférer le système.

Tenez compte de la disposition actuelle du disque.

[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érifiez l'espace actuel du système de fichiers utilisé.

 [root@localhost ~]# df -h      % C  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 de remplacer les disques est de 204 Go, 2 baies logicielles md126 sont utilisées, qui est montée dans /boot et md127 , qui est utilisé comme volume physique pour le groupe VG vg0 .

1. Suppression de partitions de disque des baies


Vérifiez l'état de la baie

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sda1[0] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sda2[0] sdb2[1] 233206784 blocks super 1.2 [2/2] [UU] bitmap: 0/2 pages [0KB], 65536KB chunk unused devices: <none> 

Le système utilise 2 tableaux: md126 (point de montage /boot ) - se compose des md127 /dev/sda1 et /dev/sdb1 , md127 (LVM pour l' échange 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 baie, comme mauvaises.

 mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2 

Nous supprimons des sections du bloc périphérique / dev / sda des tableaux.

 mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2 

Après avoir supprimé le disque de la baie, les informations sur les périphériques de bloc ressembleront à ceci.

 [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 sdd 8:48 0 931,5G 0 disk 

L'état des baies après la suppression des disques.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdb1[1] 1047552 blocks super 1.2 [2/1] [_U] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] bitmap: 1/2 pages [4KB], 65536KB chunk unused devices: <none> 

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


Vous pouvez vérifier la table de partition utilisée sur le disque avec la commande suivante.

 fdisk -l /dev/sdb | grep 'Disk label type' 

La sortie pour le MBR sera:

 Disk label type: dos 

pour GPT:

 Disk label type: gpt 

Copier la table de balisage pour MBR:

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

Dans cette commande, le premier est le lecteur à partir duquel le balisage est copié, le second est l'endroit où copier.

ATTENTION : Pour GPT, le lecteur sur lequel copier le balisage est le premier à être indiqué, le lecteur sur lequel copier le balisage à partir du deuxième lecteur. Si vous mélangez les disques, le balisage initialement sain sera écrasé et détruit.

Copie de la table de balisage pour le GPT:

 sgdisk -R /dev/sd /dev/sdb 

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

 sgdisk -G /dev/sdc 

Une fois la commande exécutée, 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'action effectuée, les partitions du système sur le disque /dev/sdc ne sont pas définies, nous exécutons la commande pour relire la table des partitions.

 sfdisk -R /dev/sdc 

Si les disques actuels utilisent la table MBR et que les informations doivent être transférées vers des disques d'une capacité supérieure à 2 To, les nouveaux disques devront créer manuellement un balisage GPT à l'aide de la section de démarrage biologique. Ce cas sera examiné dans la partie 2 de cet article.

3. Ajout de partitions du nouveau disque à la baie


Ajoutez des partitions de disque aux tableaux correspondants.

 mdadm /dev/md126 --add /dev/sdc1 mdadm /dev/md127 --add /dev/sdc2 

Vérifiez que des sections 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: <none> 

Vous pouvez surveiller en continu le processus de synchronisation à l'aide de l'utilitaire de watch .

 watch -n 2 cat /proc/mdstat 

L' -n spécifie à quels intervalles en secondes la commande doit être exécutée pour vérifier la progression.

Répétez les étapes 1 à 3 pour le lecteur de remplacement suivant.

Nous marquons les partitions du deuxième disque, qui sont utilisées dans chaque baie, comme mauvaises.

 mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2 

Nous supprimons des sections du bloc périphérique /dev/sdb des tableaux.

 mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2 

Après avoir supprimé le disque de la baie, les informations sur les périphériques de bloc ressembleront à ceci.

 [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 

L'état des baies après la suppression des disques.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdc1[2] 1047552 blocks super 1.2 [2/1] [U_] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdc2[2] 233206784 blocks super 1.2 [2/1] [U_] bitmap: 1/2 pages [4KB], 65536KB chunk unused devices: <none> 

Copiez la table de balisage MBR du lecteur /dev/sd vers le lecteur /dev/sdd .

 sfdisk -d /dev/sd | sfdisk /dev/sdd 

Une fois la commande exécutée, les partitions doivent apparaître sur le lecteur /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 

Ajoutez des partitions de disque aux tableaux.

 mdadm /dev/md126 --add /dev/sdd1 mdadm /dev/md127 --add /dev/sdd2 

Vérifiez que des sections 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 Personalities : [raid1] md126 : active raid1 sdd1[3] sdc1[2] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdd2[3] sdc2[2] 233206784 blocks super 1.2 [2/1] [U_] [>....................] recovery = 0.5% (1200000/233206784) finish=35.4min speed=109090K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

5. Installez GRUB sur de nouveaux disques


Pour CentOS:

 grub2-install /dev/sdX 

Pour Debian / Ubuntu:

 grub-install /dev/sdX 

X est la lettre du périphérique de bloc. Dans ce cas, installez GRUB sur /dev/sdc et /dev/sdd .

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


931,5 Go sont disponibles sur les nouveaux /dev/sdc et /dev/sdd . Étant donné que la table de partition est copiée à partir de disques plus petits, 222,5 Go sont disponibles sur les /dev/sdc2 et /dev/sdd2 .

 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] 

Il faut:

  1. Étendez la section 2 sur chaque lecteur,
  2. Étendez le tableau md127,
  3. Développez PV (volume physique),
  4. Étendre LV (volume logique) vg0-root,
  5. Étendez le système de fichiers.

À l'aide de l'utilitaire parted, développez la /dev/sdc2 à la valeur maximale. parted /dev/sdc commande parted /dev/sdc (1) et visualisons la table de partition actuelle avec la commande p (2).



Comme vous pouvez le voir, la fin de la section 2 se termine avec 240 Go. Développons la section avec la commande resizepart 2 , où 2 est le numéro de section (3). Nous indiquons la valeur au format numérique, par exemple 1000 Go, ou nous utilisons l'indication du partage de disque - 100%. Encore une fois, nous vérifions que la section a une nouvelle taille (4).

Répétez les étapes ci-dessus pour le lecteur /dev/sdd . Après avoir étendu les partitions, /dev/sdc2 et /dev/sdd2 devenus égaux à 930,5 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 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 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 développons le tableau md127 au maximum.

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

Vérifiez que le tableau s'est étendu. Maintenant, sa taille est devenue 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 effectuons l'expansion du volume physique . Avant l'extension, vérifiez l'état actuel de la 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 vous pouvez le voir, PV /dev/md127 utilise /dev/md127 Go d'espace.

Développez PV avec la commande suivante.

 pvresize /dev/md127 

Vérifiez le résultat de l'extension 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 ] 

Extension du volume logique . Avant l'extension, vérifiez l'état actuel de LV (1).

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

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

Nous développons LV avec la commande suivante (2).

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


Vérifiez l'action effectuée (3).

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

Comme vous pouvez le voir, après l'extension LV, le volume d'espace disque occupé est devenu 914,39 Go.



Le volume LV a augmenté (4), mais le système de fichiers occupe toujours 204 Go (5).

1. Effectuez l'extension du système de fichiers.

 resize2fs /dev/mapper/vg0-root 

Nous vérifions après la commande exécutée la taille du système de fichiers.

 [root@localhost ~]# df -h      % C  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 passera à 900 Go. Après avoir terminé les étapes, vous pouvez retirer les anciens disques.

Cas 2: remplacement de disques plus petits par des disques plus grands (plus de 2 To)


Tâche: remplacer les disques actuels par des disques plus gros (2 x 3 To) avec des informations d'enregistrement. Dans ce cas, nous avons 2 disques SSD (RAID-1) de 240 Go avec le système installé et 2 disques SATA de 3 To sur lesquels vous devez transférer le système. Les lecteurs actuels utilisent la table de partition MBR. Étant donné que les nouveaux disques ont une capacité supérieure à 2 To, ils devront utiliser la table GPT, car MBR ne peut pas fonctionner avec des disques supérieurs à 2 To.

Affichez la disposition actuelle du disque.

 [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érifiez la table de partition utilisée sur le lecteur /dev/sda .

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

Le lecteur /dev/sdb utilise une table de partition similaire. Vérifiez l'espace disque utilisé dans le système.

 [root@localhost ~]# df -h      % C  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 vous pouvez le voir, la racine du système de fichiers est de 204 Go. Vérifiez l'état actuel du RAID logiciel.

1. Installer la table de partition GPT et le partitionnement de disque


Vérifiez la disposition du disque par secteur.

 [root@localhost ~]# parted /dev/sda print : ATA KINGSTON SVP200S (scsi)  /dev/sda: 240GB   (./.): 512B/512B  : msdos Disk Flags:         1 1049kB 1076MB 1075MB primary , raid 2 1076MB 240GB 239GB primary raid 

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

  1. bios_grub pour la compatibilité GPT avec le BIOS,
  2. La partition pour la matrice RAID à monter dans /boot .
  3. La partition de la matrice RAID sur laquelle seront la racine LV et le swap LV .

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

En utilisant parted, exécutez les commandes suivantes pour partitionner le disque.

parted /dev/sdc commande parted /dev/sdc au mode d'édition de la disposition du disque.

Créez une table de partition GPT.

 (parted) mktable gpt 

Créez une section bios_grub et définissez un indicateur pour celle-ci.

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

Créez une section 2 et définissez un indicateur pour celle-ci. La partition utilisera comme bloc pour la matrice RAID et la montera dans /boot .

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

Créez une section 3, qui sera également utilisée comme bloc de tableau dans lequel se trouvera LVM.

 (parted) mkpart primary 1028MiB 100% 

Dans ce cas, la définition de l'indicateur n'est pas nécessaire, mais si nécessaire, il est possible de le définir avec la commande suivante.

 (parted) set 3 raid on 

Vérifiez la table créée.

 (parted) p : ATA TOSHIBA DT01ACA3 (scsi)  /dev/sdc: 3001GB   (./.): 512B/4096B  : gpt Disk Flags:         1 1049kB 3146kB 2097kB primary bios_grub 2 3146kB 1077MB 1074MB primary  3 1077MB 3001GB 3000GB primary 

Attribuez au lecteur un nouveau GUID aléatoire.

 sgdisk -G /dev/sdd 

2. Suppression des partitions du premier disque des baies


Vérifiez l'état de la baie

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sda1[0] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sda2[0] sdb2[1] 233206784 blocks super 1.2 [2/2] [UU] bitmap: 0/2 pages [0KB], 65536KB chunk unused devices: <none> 

Le système utilise 2 tableaux: md126 (point de montage / démarrage) - se compose de /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 baie, comme mauvaises.

 mdadm /dev/md126 --fail /dev/sda1 mdadm /dev/md127 --fail /dev/sda2 

Nous supprimons des sections du bloc périphérique /dev/sda des tableaux.

 mdadm /dev/md126 --remove /dev/sda1 mdadm /dev/md127 --remove /dev/sda2 

Vérifiez l'état de la baie après avoir retiré le disque.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdb1[1] 1047552 blocks super 1.2 [2/1] [_U] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

3. Ajout de partitions du nouveau disque à la baie


L'étape suivante consiste à ajouter les partitions du nouveau disque aux baies pour la synchronisation. Nous regardons l'état actuel de la disposition du disque.

 [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 

La /dev/sdc1 est une partition bios_grub et n'est pas impliquée dans la création de tableaux. /dev/sdc2 utiliseront uniquement /dev/sdc2 et /dev/sdc3 . Ajoutez ces sections aux tableaux correspondants.

 mdadm /dev/md126 --add /dev/sdc2 mdadm /dev/md127 --add /dev/sdc3 

Ensuite, nous attendons la synchronisation du tableau.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdc2[2] sdb1[1] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdc3[2] sdb2[1] 233206784 blocks super 1.2 [2/1] [_U] [>....................] recovery = 0.2% (619904/233206784) finish=31.2min speed=123980K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

Partitionnement des disques après l'ajout de partitions à une baie.

 [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 │ └─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 disk 

4. Suppression de partitions du deuxième disque des baies


Nous marquons les partitions du deuxième disque, qui sont utilisées dans chaque baie, comme mauvaises.

 mdadm /dev/md126 --fail /dev/sdb1 mdadm /dev/md127 --fail /dev/sdb2 

Nous supprimons des sections du bloc périphérique /dev/sda des tableaux.

 mdadm /dev/md126 --remove /dev/sdb1 mdadm /dev/md127 --remove /dev/sdb2 

5. Copiez la table de balisage GPT et synchronisez le tableau


Pour copier la table de balisage GPT, nous utilisons l'utilitaire sgdisk , qui est inclus dans le package pour travailler avec les partitions de disque et la table GPT - gdisk .

Installez gdisk pour CentOS:

 yum install -y gdisk 

Installez gdisk pour Debian / Ubuntu:

 apt install -y gdisk 

ATTENTION : pour GPT, le disque sur lequel le balisage est copié est indiqué en premier , le deuxième disque est le disque à partir duquel le balisage est copié. Si vous mélangez les disques, le balisage initialement sain sera écrasé et détruit.

Copiez la table de balisage GPT.

 sgdisk -R /dev/sdd /dev/sdc 

Partitionnement des disques après le transfert d'une table vers le lecteur /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 2,7T 0 disk ├─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 disk ├─sdd1 8:49 0 2M 0 part ├─sdd2 8:50 0 1G 0 part └─sdd3 8:51 0 2,7T 0 part 

Ensuite, nous ajoutons chacune des partitions participant aux matrices RAID logicielles.

 mdadm /dev/md126 --add /dev/sdd2 mdadm /dev/md127 --add /dev/sdd3 

Nous attendons la synchronisation du tableau.

 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdd2[3] sdc2[2] 1047552 blocks super 1.2 [2/2] [UU] bitmap: 1/1 pages [4KB], 65536KB chunk md127 : active raid1 sdd3[3] sdc3[2] 233206784 blocks super 1.2 [2/1] [U_] [>....................] recovery = 0.0% (148224/233206784) finish=26.2min speed=148224K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none> 

Après avoir copié le balisage GPT sur un deuxième nouveau disque, le balisage ressemblera à ceci.

 [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 2,7T 0 disk ├─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 disk ├─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] 

Ensuite, installez GRUB sur les nouveaux disques.

Installation pour CentOS:

 grub2-install /dev/sdX 

Installation pour Debian / Ubuntu:

 grub-install /dev/sdX 

X est la lettre de lecteur, dans notre cas, les lecteurs /dev/sdc et /dev/sdd .

Mise à jour des informations sur la baie.

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 

Mise à jour de l'image initrd :
Pour CentOS:

 dracut -f -v --regenerate-all 

Pour Debian / Ubuntu:

 update-initramfs -u -k all 

Mise à jour de la configuration GRUB.

Pour CentOS:

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

Pour Debian / Ubuntu:

 update-grub 

Une fois les étapes terminées, les anciens disques peuvent être retirés.

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


Partitionner les disques avant d'étendre le système de fichiers après avoir déplacé le système vers des disques 2 x 3 To (RAID-1).

 [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 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 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 222,4G 0 raid1 ├─vg0-root 253:0 0 206,4G 0 lvm / └─vg0-swap 253:1 0 16G 0 lvm [SWAP] 

Les /dev/sdc3 et /dev/sdd3 occupent /dev/sdd3 2,7 To. Comme nous avons créé un nouveau partitionnement des disques avec une table GPT, la taille des 3 partitions a été immédiatement définie sur l'espace disque maximal possible, dans ce cas, l'extension de la partition n'est pas nécessaire.

Il faut:

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

1. md126 tableau md126 au maximum.

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

Après avoir étendu la matrice md126 taille de l'espace occupé est passée à 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] 

Augmenter le volume physique .

Avant expansion, nous 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 

Développez PV avec la commande suivante.

 pvresize /dev/md126 

Vérifiez l'action terminée.

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

L' expansion classe volume logique vg0-racine .

Après avoir étendu PV, nous vérifions l'espace occupé de VG.

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

Vérifiez 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 racine vg0 occupe 206,41 Go.

Développez LV à l'espace disque maximal.

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

Vérification de l'espace BT après expansion.

 [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 

Extension du système de fichiers (ext4).

Vérifiez la taille actuelle du système de fichiers.

 [root@localhost ~]# df -h      % C  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.

Extension du système de fichiers.

 resize2fs /dev/mapper/vg0-root 

Vérifiez la taille du système de fichiers après son expansion.

 [root@localhost ~]# df -h      % C  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 est augmentée de tout le volume du volume.

Source: https://habr.com/ru/post/fr486084/


All Articles