Salut tout le monde. A la veille du début d'un nouveau groupe de cours
Cet article examinera 2 cas de remplacement de disques et de transfert d'informations vers de nouveaux disques de plus grande capacité avec une extension supplémentaire de la baie et du système de fichiers. Le premier cas concernera le remplacement des disques avec le même partitionnement MBR/MBR ou GPT/GPT, le deuxième cas concerne le remplacement des disques avec le même partitionnement MBR par des disques d'une capacité supérieure à 2 To, sur lesquels il faudra installer une partition GPT avec une partition biosboot. Dans les deux cas, les disques sur 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 Remplacez les disques actuels par des disques plus grands (jusqu'à 2 To) avec transfert d'informations. Dans ce cas, nous avons 2 disques SSD (RAID-240) de 1 Go avec le système installé et 2 disques SATA de 1 To sur lesquels le système doit être transféré.
Regardons 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érifions l'espace du système de fichiers actuellement 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 remplacement des disques est de 204 Go, 2 baies logicielles md126 sont utilisées, qui sont montées dans /boot
и md127
, qui est utilisé comme volume physique pour le groupe VG vg0.
1. Suppression des partitions de disque des baies
Vérification de l'état du tableau
[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 d'une section /dev/sda1
и /dev/sdb1
, md127
(LVM pour échange et la racine du système de fichiers) - se compose de /dev/sda2
и /dev/sdb2
.
Nous marquons les partitions du premier disque utilisées dans chaque baie comme étant défectueuses.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Nous supprimons les partitions de périphériques de bloc /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 le périphérique 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
État des baies après retrait 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. Copiez 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'
Le résultat pour MBR serait :
Disk label type: dos
pour les tags Google Tag :
Disk label type: gpt
Copie de la table de partition pour MBR :
sfdisk -d /dev/sdb | sfdisk /dev/sdc
Dans cette commande première le disque est indiqué с qui le balisage est copié, deuxième - où copie.
ATTENTION: Pour les tags GPT première le disque est indiqué sur lequel copier le balisage seconde disque indique le disque à partir duquel copier le balisage. Si vous mélangez les disques, la partition initialement bonne sera écrasée et détruite.
Copie de la table de disposition pour 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 devraient 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'exécution de l'action, les partitions du système sur le disque /dev/sdc
indécis, puis on exécute la commande pour relire la table de partition.
sfdisk -R /dev/sdc
Si les disques actuels utilisent la table MBR et que les informations doivent être transférées vers des disques de plus de 2 To, alors sur les nouveaux disques, vous devrez créer manuellement une partition GPT à l'aide de la partition biosboot. Ce cas sera abordé dans la deuxième partie de cet article.
3. Ajout de partitions du nouveau disque à la matrice
Ajoutons des partitions de disque aux tableaux correspondants.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Nous vérifions que les 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 que les tableaux se synchronisent.
[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 permanence le processus de synchronisation à l'aide de l'utilitaire watch
.
watch -n 2 cat /proc/mdstat
Paramètre -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 prochain disque de remplacement.
Nous marquons comme défectueuses les partitions du deuxième disque utilisées dans chaque baie.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Suppression des partitions de périphérique bloc /dev/sdb
à partir de 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 le périphérique 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
État des baies après retrait 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>
Copie de la table de partition MBR depuis le disque /dev/sdс
sur le disque /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Une fois la commande exécutée, les partitions devraient 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 de partitions de disque aux baies.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Nous vérifions que les 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 que les tableaux se synchronisent.
[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. Installation de GRUB sur de nouveaux disques
Pour CentOS :
grub2-install /dev/sdX
Pour Debian/Ubuntu :
grub-install /dev/sdX
où X
— lettre du dispositif de blocage. Dans ce cas, vous devez installer GRUB sur /dev/sdc
и /dev/sdd
.
6. Extension du système de fichiers (ext4) de la partition racine
Sur les nouveaux disques /dev/sdc
и /dev/sdd
931.5 Go disponibles. Étant donné que la table de partition a été copiée à partir de disques plus petits, les partitions /dev/sdc2
и /dev/sdd2
222.5 Go disponibles.
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 est nécessaire:
- Étendre la partition 2 sur chacun des disques,
- Développez le tableau md127,
- Développer PV (volume physique),
- Développez la racine vg0 du LV (volume logique),
- Développez le système de fichiers.
Utilisation de l'utilitaire séparé élargissons la section /dev/sdc2
à la valeur maximale. Exécutez la commande parted /dev/sdc
(1) et affichez la table de partition actuelle avec la commande p
(2).
Comme vous pouvez le constater, la fin de la partition 2 se termine à 240 Go. Agrandissons la partition 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 utilisons l'indication du partage de disque - 100 %. On vérifie à nouveau que la partition a la nouvelle taille (4).
Répétez les étapes ci-dessus pour le disque /dev/sdd
. Après avoir étendu les partitions /dev/sdc2
и /dev/sdd2
est devenu égal à 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 élargissons le tableau md127 jusqu'au maximum.
mdadm --grow /dev/md127 --size=max
On vérifie que le tableau s'est élargi. Sa taille est désormais 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]
Extension de l'extension volume physique. Avant de développer, 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 constater, PV /dev/md127
utilise 222.4 Go d'espace.
Nous développons PV avec la commande suivante.
pvresize /dev/md127
Vérification du résultat de l'expansion 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 ]
Expansion volume logique. Avant de développer, vérifions 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
Nous vérifions l'action terminé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 constater, après l'extension de LV, la quantité d'espace disque occupé est devenue 914.39 Go.
Le volume LV a augmenté (4), mais le système de fichiers occupe toujours 204 Go (5).
1. Développons le système de fichiers.
resize2fs /dev/mapper/vg0-root
Une fois la commande exécutée, nous vérifions 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 supprimer les anciens disques.
Cas 2 : remplacement de disques plus petits par des disques plus grands (plus de 2 To)
Tâche: Remplacez les disques actuels par des disques plus gros (2 x 3 To) tout en préservant les informations. Dans ce cas, nous avons 2 disques SSD (RAID-240) de 1 Go avec le système installé et 2 disques SATA de 3 To sur lesquels le système doit être transféré. Les disques actuels utilisent la table de partition MBR. Étant donné que les nouveaux disques ont une capacité supérieure à 2 To, ils devront utiliser une table GPT, car le MBR ne peut pas fonctionner avec des disques de plus de 2 To.
Regardons 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érifions la table de partition utilisée sur le disque /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Sur disque /dev/sdb
une table de partition similaire est utilisée. Vérifions l'espace disque utilisé sur 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 constater, la racine du système de fichiers occupe 204 Go. Vérifions l'état actuel de la matrice RAID logicielle.
1. Installation d'une table de partition GPT et d'un partitionnement de disque
Vérifions 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 :
- Section
bios_grub
Taille de 2 Mo pour la compatibilité du BIOS GPT, - La partition de la matrice RAID qui sera montée dans
/boot
. - La partition de la matrice RAID sur laquelle il y aura Racine BT и échange BT.
Installation de l'utilitaire séparé l'équipe yum install -y parted
(pour CentOS), apt install -y parted
(pour Debian/Ubuntu).
Utilisation séparé Exécutons les commandes suivantes pour partitionner le disque.
Exécutez la commande parted /dev/sdc
et accédez au mode d'édition de la disposition du disque.
Créez une table de partition GPT.
(parted) mktable gpt
Créer 1 rubrique bios_grub
section et définissez un indicateur pour celle-ci.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Créez la partition 2 et définissez un indicateur pour celle-ci. La partition sera utilisée comme bloc pour une matrice RAID et montée dans /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Nous créons la partition 3, qui servira également de 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 le drapeau, mais si nécessaire, il peut être défini avec la commande suivante.
(parted) set 3 raid on
Nous vérifions 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
Nous attribuons un nouveau GUID aléatoire au disque.
sgdisk -G /dev/sdd
2. Suppression des partitions du premier disque des baies
Vérification de l'état du tableau
[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 de /dev/sda1
и /dev/sdb1
, md127
(LVM pour swap
et la racine du système de fichiers) - se compose de /dev/sda2
и /dev/sdb2
.
Nous marquons les partitions du premier disque utilisées dans chaque baie comme étant défectueuses.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Suppression des partitions de périphérique bloc /dev/sda
à partir de tableaux.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Vérification de 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 matrice
L'étape suivante consiste à ajouter des partitions du nouveau disque aux baies pour la synchronisation. Examinons 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
Section /dev/sdc1
il est bios_grub
section et n’est pas impliqué dans la création de tableaux. Les tableaux n'utiliseront que /dev/sdc2
и /dev/sdc3
. Nous ajoutons ces sections aux tableaux correspondants.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Ensuite, nous attendons que le tableau se synchronise.
[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 du disque après l'ajout de partitions à la 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 des partitions du deuxième disque des baies
Nous marquons comme défectueuses les partitions du deuxième disque utilisées dans chaque baie.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Suppression des partitions de périphérique bloc /dev/sda
à partir de tableaux.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Copiez la table de disposition GPT et synchronisez la baie
Pour copier la table de balisage GPT, nous utiliserons l'utilitaire sgdisk
, qui est inclus dans le package pour travailler avec des partitions de disque et une table GPT - gdisk
.
Installation gdisk
pour CentOS :
yum install -y gdisk
Installation gdisk
pour Debian/Ubuntu :
apt install -y gdisk
ATTENTION: Pour les tags GPT première le disque est indiqué sur lequel copiez le balisage, seconde disque indique le disque à partir duquel copiez le balisage. Si vous mélangez les disques, la partition initialement bonne sera écrasée et détruite.
Copiez la table de balisage GPT.
sgdisk -R /dev/sdd /dev/sdc
Partitionnement du disque après transfert d'une table 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 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 que le tableau se synchronise.
[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é la partition GPT sur le deuxième nouveau disque, la partition 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
où X
— lettre de lecteur, dans notre cas, lecteurs /dev/sdc
и /dev/sdd
.
Nous mettons à 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
Mise à jour de l'image initrd
:
Pour CentOS :
dracut -f -v --regenerate-all
Pour Debian/Ubuntu :
update-initramfs -u -k all
Nous mettons à jour 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 supprimés.
6. Extension du système de fichiers (ext4) de la partition racine
Partitionnement du disque avant l'expansion du système de fichiers après la migration du système vers 2 disques de 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]
Maintenant les sections /dev/sdc3
и /dev/sdd3
occupent 2.7 To. Puisque nous avons créé une nouvelle disposition de disque avec une table GPT, la taille de la partition 3 a été immédiatement définie sur l'espace disque maximum possible ; dans ce cas, il n'est pas nécessaire d'étendre la partition.
Il est nécessaire:
- Développez le tableau md126,
- Développer PV (volume physique),
- Développez la racine vg0 du LV (volume logique),
- Développez le système de fichiers.
1. Développez le tableau md126
jusqu'au maximum.
mdadm --grow /dev/md126 --size=max
Après l'expansion du tableau md126
la 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]
Expansion volume physique.
Avant d'agrandir, vérifiez 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 développons PV avec la commande suivante.
pvresize /dev/md126
Nous vérifions l'action terminée.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Expansion volume logique racine-vg0.
Après avoir développé 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 racine vg0 occupe 206.41 Go.
Nous étendons LV au maximum de l'espace disque.
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érifions 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 extension LV.
Extension du système de fichiers.
resize2fs /dev/mapper/vg0-root
Vérification de la taille du système de fichiers après l'avoir étendu.
[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 a été augmentée pour couvrir la totalité du volume.
Source: habr.com