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 ~]
Vérifiez l'espace actuel du système de fichiers utilisé.
[root@localhost ~]
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 ~]
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 ~]
L'état des baies après la suppression des disques.
[root@localhost ~]
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 ~]
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 ~]
Après cela, nous attendons la synchronisation des tableaux.
[root@localhost ~]
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 ~]
L'état des baies après la suppression des disques.
[root@localhost ~]
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 ~]
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 ~]
Après cela, nous attendons la synchronisation des tableaux.
[root@localhost ~]
5. Installez GRUB sur de nouveaux disques
Pour CentOS:
grub2-install /dev/sdX
Pour Debian / Ubuntu:
grub-install /dev/sdX
où
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:
- Étendez la section 2 sur chaque lecteur,
- Étendez le tableau md127,
- Développez PV (volume physique),
- Étendre LV (volume logique) vg0-root,
- É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 ~]
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 ~]
Nous effectuons l'expansion du
volume physique . Avant l'extension, vérifiez l'état actuel de la PV.
[root@localhost ~]
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 ~]
Extension du
volume logique . Avant l'extension, vérifiez l'état actuel de LV (1).
[root@localhost ~]
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 ~]
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 ~]
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 ~]
Vérifiez la table de partition utilisée sur le lecteur
/dev/sda
.
[root@localhost ~]
Le lecteur
/dev/sdb
utilise une table de partition similaire. Vérifiez l'espace disque utilisé dans le système.
[root@localhost ~]
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 ~]
Sur le nouveau disque de 3 To, nous devrons créer 3 partitions:
bios_grub
pour la compatibilité GPT avec le BIOS,- La partition pour la matrice RAID à monter dans
/boot
. - 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 ~]
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 ~]
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 ~]
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 ~]
Partitionnement des disques après l'ajout de partitions à une baie.
[root@localhost ~]
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 ~]
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 ~]
Après avoir copié le balisage GPT sur un deuxième nouveau disque, le balisage ressemblera à ceci.
[root@localhost ~]
Ensuite, installez GRUB sur les nouveaux disques.
Installation pour CentOS:
grub2-install /dev/sdX
Installation pour Debian / Ubuntu:
grub-install /dev/sdX
où
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 ~]
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:
- Étendez le tableau md126,
- Développez PV (volume physique),
- Étendre LV (volume logique) vg0-root,
- É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 ~]
Augmenter le volume physique .Avant expansion, nous vérifions la valeur actuelle de l'espace occupé PV / dev/md126
. [root@localhost ~]
Développez PV avec la commande suivante. pvresize /dev/md126
Vérifiez l'action terminée. [root@localhost ~]
L' expansion classe volume logique vg0-racine .Après avoir étendu PV, nous vérifions l'espace occupé de VG. [root@localhost ~]
Vérifiez l'espace occupé par LV. [root@localhost ~]
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 ~]
Extension du système de fichiers (ext4).Vérifiez la taille actuelle du système de fichiers. [root@localhost ~]
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 ~]
La taille du système de fichiers est augmentée de tout le volume du volume.