Hej alle. På tærsklen til starten af en ny kursusgruppe
Denne artikel vil overveje 2 tilfælde af udskiftning af diske og overførsel af information til nye diske med større kapacitet med yderligere udvidelse af arrayet og filsystemet. Det første tilfælde drejer sig om udskiftning af diske med samme MBR/MBR eller GPT/GPT partitionering, det andet tilfælde vedrører udskiftning af diske med MBR partitionering med diske med en kapacitet på mere end 2 TB, som du skal installere på en GPT-partition med en biosboot-partition. I begge tilfælde er de diske, som vi overfører dataene til, allerede installeret på serveren. Filsystemet, der bruges til rodpartitionen, er ext4.
Case 1: Udskiftning af mindre diske med større diske (op til 2 TB)
Formål: Udskift nuværende diske med større diske (op til 2 TB) med informationsoverførsel. I dette tilfælde har vi 2 x 240 GB SSD (RAID-1)-diske med systemet installeret og 2 x 1 TB SATA-diske, som systemet skal overføres til.
Lad os se på det aktuelle disklayout.
[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
Lad os tjekke den aktuelt brugte filsystemplads.
[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
Størrelsen på filsystemet før udskiftning af diske er 204 GB, der bruges 2 md126 software arrays, som er monteret i /boot
и md127
, som bruges som fysisk volumen for VG-gruppen vg0.
1. Fjernelse af diskpartitioner fra arrays
Kontrol af arrayets tilstand
[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>
Systemet bruger 2 arrays: md126
(monteringspunkt /boot
) - består af et afsnit /dev/sda1
и /dev/sdb1
, md127
(LVM for bytte og roden af filsystemet) - består af /dev/sda2
и /dev/sdb2
.
Vi markerer partitionerne på den første disk, der bruges i hvert array, som dårlige.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Vi fjerner /dev/sda blok enhedspartitionerne fra arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Efter at vi har fjernet disken fra arrayet, vil blokenhedsinformationen se sådan ud.
[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
Status for arrays efter fjernelse af diske.
[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. Kopier partitionstabellen til en ny disk
Du kan kontrollere den brugte partitionstabel på disken med følgende kommando.
fdisk -l /dev/sdb | grep 'Disk label type'
Outputtet for MBR ville være:
Disk label type: dos
for GPT:
Disk label type: gpt
Kopiering af partitionstabellen til MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
I dette hold den første disk er angivet с heraf markeringen kopieres, andet - hvor kopi.
FORSIGTIG: Til GPT den første disk er angivet hvor kopi markup, sekund disk angiver disken hvorfra kopi markup. Hvis du blander diskene sammen, vil den oprindeligt gode partition blive overskrevet og ødelagt.
Kopiering af layouttabellen til GPT:
sgdisk -R /dev/sdс /dev/sdb
Tildel derefter et tilfældigt UUID til disken (for GPT).
sgdisk -G /dev/sdc
Efter kommandoen er udført, bør partitionerne vises på disken /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
Hvis, efter handlingen er udført, partitionerne i systemet på disken /dev/sdc
uafklaret, så udfører vi kommandoen for at genlæse partitionstabellen.
sfdisk -R /dev/sdc
Hvis de nuværende diske bruger MBR-tabellen, og oplysningerne skal overføres til diske, der er større end 2 TB, skal du på nye diske manuelt oprette en GPT-partition ved hjælp af biosboot-partitionen. Denne sag vil blive diskuteret i del 2 af denne artikel.
3. Tilføjelse af partitioner på den nye disk til arrayet
Lad os tilføje diskpartitioner til de tilsvarende arrays.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Vi tjekker, at afsnittene er tilføjet.
[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
Herefter venter vi på, at arrays synkroniseres.
[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>
Du kan løbende overvåge synkroniseringsprocessen ved hjælp af hjælpeprogrammet watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
angiver med hvilke intervaller i sekunder kommandoen skal udføres for at kontrollere fremskridt.
Gentag trin 1 - 3 for den næste erstatningsdisk.
Vi markerer partitionerne på den anden disk, der bruges i hvert array, som dårlige.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Fjernelse af blokenhedspartitioner /dev/sdb
fra arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Efter at vi har fjernet disken fra arrayet, vil blokenhedsinformationen se sådan ud.
[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
Status for arrays efter fjernelse af diske.
[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>
Kopiering af MBR-partitionstabellen fra disken /dev/sdс
til disk /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Efter kommandoen er udført, bør partitionerne vises på disken /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
Tilføjelse af diskpartitioner til arrays.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Vi tjekker, at afsnittene er tilføjet.
[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]
Herefter venter vi på, at arrays synkroniseres.
[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 af GRUB på nye drev
For CentOS:
grub2-install /dev/sdX
Til Debian/Ubuntu:
grub-install /dev/sdX
где X
— bogstavet for blokanordningen. I dette tilfælde skal du installere GRUB på /dev/sdc
и /dev/sdd
.
6. Filsystemudvidelse (ext4) af rodpartitionen
På nye diske /dev/sdc
и /dev/sdd
931.5 GB tilgængelig. På grund af det faktum, at partitionstabellen blev kopieret fra mindre diske, blev partitionerne /dev/sdc2
и /dev/sdd2
222.5 GB tilgængelig.
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]
Det er nødvendigt:
- Udvid partition 2 på hver af diskene,
- Udvid array md127,
- Udvid PV (fysisk volumen),
- Udvid LV (logisk volumen) vg0-root,
- Udvid filsystemet.
Brug af hjælpeprogrammet parted lad os udvide afsnittet /dev/sdc2
til den maksimale værdi. Udfør kommandoen parted /dev/sdc
(1) og se den aktuelle partitionstabel med kommandoen p
(2).
Som du kan se, ender slutningen af partition 2 på 240 GB. Lad os udvide partitionen med kommandoen resizepart
2
, hvor 2 er nummeret på afsnit (3). Vi angiver værdien i digitalt format, for eksempel 1000 GB, eller bruger indikationen af diskandelen - 100%. Vi tjekker igen, at partitionen har den nye størrelse (4).
Gentag ovenstående trin for disken /dev/sdd
. Efter udvidelse af partitioner /dev/sdc2
и /dev/sdd2
blev lig med 930.5 GB.
[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]
Herefter udvider vi arrayet md127 til det maksimale.
mdadm --grow /dev/md127 --size=max
Vi tjekker, at arrayet er udvidet. Nu er dens størrelse blevet 930.4 GB.
[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]
Udvidelse af forlængelse fysisk volumen. Før vi udvider, lad os tjekke den aktuelle tilstand af 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 ]
Som det kan ses, har PV /dev/md127
bruger 222.4 GB plads.
Vi udvider PV med følgende kommando.
pvresize /dev/md127
Kontrol af resultatet af PV-udvidelse.
[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 ]
Udvider logisk volumen. Før vi udvider, lad os tjekke den aktuelle tilstand af 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
bruger 206.41 GB.
Vi udvider LV med følgende kommando (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Vi kontrollerer den gennemførte handling (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Som du kan se, efter at have udvidet LV, blev mængden af optaget diskplads 914.39 GB.
LV-volumen er steget (4), men filsystemet fylder stadig 204 GB (5).
1. Lad os udvide filsystemet.
resize2fs /dev/mapper/vg0-root
Efter kommandoen er udført, kontrollerer vi størrelsen på filsystemet.
[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
Størrelsen af rodfilsystemet vil stige til 900 GB. Når du har gennemført trinene, kan du fjerne de gamle diske.
Tilfælde 2: Udskiftning af mindre diske med større diske (mere end 2 TB)
Indstilling: Udskift de nuværende diske med større diske (2 x 3TB), mens du bevarer oplysningerne. I dette tilfælde har vi 2 x 240 GB SSD (RAID-1) diske med systemet installeret og 2 x 3 TB SATA diske, som systemet skal overføres til. Nuværende diske bruger MBR-partitionstabellen. Da nye diske har en kapacitet på mere end 2 TB, skal de bruge en GPT-tabel, da MBR ikke kan fungere med diske, der er større end 2 TB.
Lad os se på det aktuelle disklayout.
[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
Lad os tjekke den partitionstabel, der bruges på disken /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
På disk /dev/sdb
en lignende partitionstabel bruges. Lad os tjekke den brugte diskplads på systemet.
[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
Som du kan se, fylder roden af filsystemet 204 GB. Lad os tjekke den aktuelle tilstand af software-RAID-arrayet.
1. Installation af en GPT-partitionstabel og diskpartitionering
Lad os tjekke disklayoutet efter sektor.
[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
På den nye 3TB disk skal vi oprette 3 partitioner:
- Sektion
bios_grub
2MiB størrelse for GPT BIOS-kompatibilitet, - Partitionen for RAID-arrayet, der vil blive monteret i
/boot
. - Partitionen for RAID-arrayet, som der vil være på LV rod и LV swap.
Installation af hjælpeprogrammet parted hold yum install -y parted
(til CentOS), apt install -y parted
(til Debian/Ubuntu).
Brug parted Lad os køre følgende kommandoer for at partitionere disken.
Udfør kommandoen parted /dev/sdc
og gå til redigeringstilstand for disklayout.
Opret en GPT-partitionstabel.
(parted) mktable gpt
Opret 1 sektion bios_grub
sektion og sæt et flag for det.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Opret partition 2 og sæt et flag for den. Partitionen vil blive brugt som en blok for et RAID-array og monteret i /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Vi opretter en 3. sektion, som også vil blive brugt som en arrayblok, hvori LVM vil blive placeret.
(parted) mkpart primary 1028MiB 100%
I dette tilfælde er det ikke nødvendigt at indstille flaget, men om nødvendigt kan det indstilles med følgende kommando.
(parted) set 3 raid on
Vi tjekker den oprettede tabel.
(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
Vi tildeler en ny tilfældig GUID til disken.
sgdisk -G /dev/sdd
2. Fjernelse af partitioner på den første disk fra arrays
Kontrol af arrayets tilstand
[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>
Systemet bruger 2 arrays: md126 (mount point /boot) - består af /dev/sda1
и /dev/sdb1
, md127
(LVM for swap
og roden af filsystemet) - består af /dev/sda2
и /dev/sdb2
.
Vi markerer partitionerne på den første disk, der bruges i hvert array, som dårlige.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Fjernelse af blokenhedspartitioner /dev/sda
fra arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Kontrol af arrayets tilstand efter fjernelse af disken.
[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. Tilføjelse af partitioner på den nye disk til arrayet
Det næste trin er at tilføje partitioner på den nye disk til arrays til synkronisering. Lad os se på den aktuelle tilstand af disklayout.
[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
Sektion /dev/sdc1
er bios_grub
sektion og er ikke involveret i oprettelsen af arrays. Arrays vil kun bruge /dev/sdc2
и /dev/sdc3
. Vi tilføjer disse sektioner til de tilsvarende arrays.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Så venter vi på, at arrayet synkroniserer.
[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>
Diskpartitionering efter tilføjelse af partitioner til arrayet.
[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. Fjernelse af partitioner på den anden disk fra arrays
Vi markerer partitionerne på den anden disk, der bruges i hvert array, som dårlige.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Fjernelse af blokenhedspartitioner /dev/sda
fra arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopier GPT-layouttabellen og synkroniser arrayet
For at kopiere GPT-markeringstabellen bruger vi værktøjet sgdisk
, som er inkluderet i pakken til at arbejde med diskpartitioner og en GPT-tabel - gdisk
.
Installation gdisk
til CentOS:
yum install -y gdisk
Installation gdisk
til Debian/Ubuntu:
apt install -y gdisk
FORSIGTIG: Til GPT den første disk er angivet hvor kopiere opmærkningen, sekund disk angiver disken hvorfra kopiere markeringen. Hvis du blander diskene sammen, vil den oprindeligt gode partition blive overskrevet og ødelagt.
Kopiér GPT-markeringstabellen.
sgdisk -R /dev/sdd /dev/sdc
Diskpartitionering efter overførsel af en tabel til disk /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
Dernæst tilføjer vi hver af de partitioner, der deltager i software RAID-arrays.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Vi venter på, at arrayet synkroniserer.
[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>
Efter at have kopieret GPT-partitionen til den anden nye disk, vil partitionen se sådan ud.
[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]
Installer derefter GRUB på de nye diske.
Installation til CentOS:
grub2-install /dev/sdX
Installation til Debian/Ubuntu:
grub-install /dev/sdX
где X
— drevbogstav, i vores tilfælde drev /dev/sdc
и /dev/sdd
.
Vi opdaterer information om arrayet.
For CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Til Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Opdatering af billedet initrd
:
For CentOS:
dracut -f -v --regenerate-all
Til Debian/Ubuntu:
update-initramfs -u -k all
Vi opdaterer GRUB-konfigurationen.
For CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Til Debian/Ubuntu:
update-grub
Efter at have gennemført trinene, kan de gamle diske fjernes.
6. Filsystemudvidelse (ext4) af rodpartitionen
Diskpartitionering før filsystemudvidelse efter migrering af systemet til 2 x 3TB diske (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]
Nu afsnit /dev/sdc3
и /dev/sdd3
fylder 2.7 TB. Da vi oprettede et nyt disklayout med en GPT-tabel, blev størrelsen af partition 3 straks indstillet til den maksimalt mulige diskplads; i dette tilfælde er det ikke nødvendigt at udvide partitionen.
Det er nødvendigt:
- Udvid array md126,
- Udvid PV (fysisk volumen),
- Udvid LV (logisk volumen) vg0-root,
- Udvid filsystemet.
1. Udvid arrayet md126
til det maksimale.
mdadm --grow /dev/md126 --size=max
Efter udvidelse af array md126
størrelsen af den besatte plads er steget til 2.7 TB.
[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]
Udvider fysisk volumen.
Før du udvider, skal du kontrollere den aktuelle værdi af den besatte plads PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Vi udvider PV med følgende kommando.
pvresize /dev/md126
Vi kontrollerer den gennemførte handling.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Udvider logisk volumen vg0-root.
Efter at have udvidet PV, lad os tjekke den besatte plads VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Lad os tjekke pladsen optaget af 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
Vg0-rodvolumenet fylder 206.41 GB.
Vi udvider LV til den maksimale diskplads.
lvextend -l +100%FREE /dev/mapper/vg0-root
Kontrol af LV-pladsen efter ekspansion.
[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
Udvidelse af filsystemet (ext4).
Lad os tjekke den aktuelle størrelse på filsystemet.
[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
Volumen /dev/mapper/vg0-root fylder 204 GB efter LV-udvidelse.
Udvidelse af filsystemet.
resize2fs /dev/mapper/vg0-root
Kontrol af størrelsen på filsystemet efter at have udvidet det.
[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
Filsystemets størrelse er blevet øget til at dække hele volumen.
Kilde: www.habr.com