Dag Allemaal. Aan de vooravond van de start van een nieuwe cursusgroep
In dit artikel worden twee gevallen besproken van het vervangen van schijven en het overbrengen van informatie naar nieuwe schijven met een grotere capaciteit met verdere uitbreiding van de array en het bestandssysteem. Het eerste geval betreft de vervanging van schijven met dezelfde MBR/MBR- of GPT/GPT-partitionering, het tweede geval betreft de vervanging van schijven met MBR-partitionering door schijven met een capaciteit van meer dan 2 TB, waarop u moet installeren een GPT-partitie met een biosboot-partitie. In beide gevallen zijn de schijven waarnaar we de gegevens overbrengen al op de server geïnstalleerd. Het bestandssysteem dat voor de rootpartitie wordt gebruikt, is ext2.
Geval 1: Kleinere schijven vervangen door grotere schijven (tot 2TB)
doelstelling: Vervang huidige schijven door grotere schijven (tot 2 TB) met informatieoverdracht. In dit geval hebben we 2 x 240 GB SSD (RAID-1) schijven waarop het systeem is geïnstalleerd en 2 x 1 TB SATA-schijven waarnaar het systeem moet worden overgebracht.
Laten we eens kijken naar de huidige schijfindeling.
[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
Laten we de momenteel gebruikte bestandssysteemruimte controleren.
[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
De grootte van het bestandssysteem vóór het vervangen van schijven is 204 GB, er worden 2 md126-software-arrays gebruikt, die zijn gemount in /boot
и md127
, die wordt gebruikt als fysiek volume voor VG-groep vg0.
1. Schijfpartities uit arrays verwijderen
De status van de array controleren
[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>
Het systeem gebruikt 2 arrays: md126
(koppelpunt /boot
) - bestaat uit een sectie /dev/sda1
и /dev/sdb1
, md127
(LVM voor ruilen en de root van het bestandssysteem) - bestaat uit /dev/sda2
и /dev/sdb2
.
We markeren de partities van de eerste schijf die in elke array worden gebruikt als slecht.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
We verwijderen de /dev/sda blokapparaatpartities uit de arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Nadat we de schijf uit de array hebben verwijderd, ziet de blokapparaatinformatie er als volgt uit.
[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 van arrays na het verwijderen van schijven.
[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. Kopieer de partitietabel naar een nieuwe schijf
U kunt de gebruikte partitietabel op de schijf controleren met de volgende opdracht.
fdisk -l /dev/sdb | grep 'Disk label type'
De uitvoer voor MBR zou zijn:
Disk label type: dos
voor GPT:
Disk label type: gpt
De partitietabel voor MBR kopiëren:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
Bij deze opdracht de eerste schijf is aangegeven с waarvan de opmaak wordt gekopieerd, tweede - waar kopiëren.
ВНИМАНИЕ: Voor GPT de eerste schijf is aangegeven waarop? kopieer opmaak, de tweede schijf geeft de schijf aan van welke kopieer opmaak. Als u de schijven door elkaar haalt, wordt de aanvankelijk goede partitie overschreven en vernietigd.
De lay-outtabel voor GPT kopiëren:
sgdisk -R /dev/sdс /dev/sdb
Wijs vervolgens een willekeurige UUID toe aan de schijf (voor GPT).
sgdisk -G /dev/sdc
Nadat de opdracht is uitgevoerd, moeten de partities op de schijf verschijnen /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
Als de actie is uitgevoerd, staan de partities in het systeem op de schijf /dev/sdc
onbeslist, dan voeren we de opdracht uit om de partitietabel opnieuw te lezen.
sfdisk -R /dev/sdc
Als de huidige schijven de MBR-tabel gebruiken en de informatie moet worden overgebracht naar schijven groter dan 2 TB, dan moet u op nieuwe schijven handmatig een GPT-partitie maken met behulp van de biosboot-partitie. Deze casus wordt besproken in deel 2 van dit artikel.
3. Partities van de nieuwe schijf aan de array toevoegen
Laten we schijfpartities toevoegen aan de overeenkomstige arrays.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
We controleren of de secties zijn toegevoegd.
[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
Hierna wachten we tot de arrays zijn gesynchroniseerd.
[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>
U kunt het synchronisatieproces continu volgen met behulp van het hulpprogramma watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
specificeert met welke intervallen in seconden de opdracht moet worden uitgevoerd om de voortgang te controleren.
Herhaal stap 1 - 3 voor de volgende vervangende schijf.
We markeren de partities van de tweede schijf die in elke array worden gebruikt als slecht.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Blokapparaatpartities verwijderen /dev/sdb
uit arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Nadat we de schijf uit de array hebben verwijderd, ziet de blokapparaatinformatie er als volgt uit.
[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 van arrays na het verwijderen van schijven.
[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>
De MBR-partitietabel van de schijf kopiëren /dev/sdс
naar schijf /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Nadat de opdracht is uitgevoerd, moeten de partities op de schijf verschijnen /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
Schijfpartities aan arrays toevoegen.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
We controleren of de secties zijn toegevoegd.
[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]
Hierna wachten we tot de arrays zijn gesynchroniseerd.
[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. GRUB op nieuwe schijven installeren
Voor CentOS:
grub2-install /dev/sdX
Over Debian/Ubuntu:
grub-install /dev/sdX
waar X
— letter van het blokapparaat. In dit geval moet je GRUB installeren /dev/sdc
и /dev/sdd
.
6. Bestandssysteemextensie (ext4) van de rootpartitie
Op nieuwe schijven /dev/sdc
и /dev/sdd
931.5 GB beschikbaar. Vanwege het feit dat de partitietabel van kleinere schijven werd gekopieerd, werden de partities /dev/sdc2
и /dev/sdd2
222.5 GB beschikbaar.
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]
Het is noodzakelijk:
- Breid partitie 2 uit op elk van de schijven,
- Vouw array md127 uit,
- Vouw PV uit (fysiek volume),
- Vouw LV (logisch volume) vg0-root uit,
- Vouw het bestandssysteem uit.
Het hulpprogramma gebruiken gescheiden laten we de sectie uitbreiden /dev/sdc2
naar de maximale waarde. Voer de opdracht uit parted /dev/sdc
(1) en bekijk de huidige partitietabel met de opdracht p
(2).
Zoals u kunt zien, eindigt het einde van partitie 2 op 240 GB. Laten we de partitie uitbreiden met de opdracht resizepart
2
, waarbij 2 het nummer van sectie (3) is. We geven de waarde aan in digitaal formaat, bijvoorbeeld 1000 GB, of gebruiken de indicatie van het schijfaandeel - 100%. We controleren opnieuw of de partitie de nieuwe grootte (4) heeft.
Herhaal de bovenstaande stappen voor de schijf /dev/sdd
. Na het uitbreiden van partities /dev/sdc2
и /dev/sdd2
werd gelijk aan 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]
Hierna breiden we de array uit md127 tot het maximum.
mdadm --grow /dev/md127 --size=max
We controleren of de array is uitgebreid. Nu is de grootte 930.4 GB geworden.
[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]
Het verlengen van de extensie fysiek volume. Laten we, voordat we gaan uitbreiden, de huidige status van de PV controleren.
[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 ]
Zoals u kunt zien, PV /dev/md127
gebruikt 222.4 GB aan ruimte.
We breiden PV uit met het volgende commando.
pvresize /dev/md127
Het resultaat van PV-uitbreiding controleren.
[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 ]
Uitbreiden logisch volume. Laten we, voordat we uitbreiden, de huidige status van LV (1) controleren.
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<206,41 GiB] inherit
LV /dev/vg0/root
gebruikt 206.41 GB.
We breiden LV uit met het volgende commando (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
We controleren de voltooide actie (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Zoals u kunt zien, werd de hoeveelheid bezette schijfruimte na het uitbreiden van LV 914.39 GB.
Het LV-volume is toegenomen (4), maar het bestandssysteem beslaat nog steeds 204 GB (5).
1. Laten we het bestandssysteem uitbreiden.
resize2fs /dev/mapper/vg0-root
Nadat de opdracht is uitgevoerd, controleren we de grootte van het bestandssysteem.
[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
De grootte van het rootbestandssysteem zal toenemen tot 900 GB. Nadat u de stappen heeft doorlopen, kunt u de oude schijven verwijderen.
Geval 2: Kleinere schijven vervangen door grotere schijven (meer dan 2TB)
Oefening: Vervang de huidige schijven door grotere schijven (2 x 3TB) met behoud van de informatie. In dit geval hebben we 2 x 240 GB SSD (RAID-1) schijven waarop het systeem is geïnstalleerd en 2 x 3 TB SATA-schijven waarnaar het systeem moet worden overgebracht. Huidige schijven gebruiken de MBR-partitietabel. Omdat nieuwe schijven een capaciteit groter dan 2 TB hebben, zullen ze een GPT-tabel moeten gebruiken, aangezien MBR niet kan werken met schijven groter dan 2 TB.
Laten we eens kijken naar de huidige schijfindeling.
[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
Laten we de partitietabel controleren die op de schijf wordt gebruikt /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Op schijf /dev/sdb
er wordt een soortgelijke partitietabel gebruikt. Laten we de gebruikte schijfruimte op het systeem controleren.
[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
Zoals u kunt zien, neemt de root van het bestandssysteem 204 GB in beslag. Laten we de huidige status van de software-RAID-array controleren.
1. Een GPT-partitietabel installeren en schijfpartitionering
Laten we de schijfindeling per sector bekijken.
[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
Op de nieuwe 3TB-schijf moeten we 3 partities maken:
- Sectie
bios_grub
2MiB-formaat voor GPT BIOS-compatibiliteit, - De partitie voor de RAID-array waarin wordt aangekoppeld
/boot
. - De partitie voor de RAID-array waarop er zich zal bevinden LV-wortel и LV-wissel.
Het hulpprogramma installeren gescheiden team yum install -y parted
(voor CentOS), apt install -y parted
(voor Debian/Ubuntu).
Gebruik gescheiden Laten we de volgende opdrachten uitvoeren om de schijf te partitioneren.
Voer de opdracht uit parted /dev/sdc
en ga naar de bewerkingsmodus voor de schijfindeling.
Maak een GPT-partitietabel.
(parted) mktable gpt
Maak 1 sectie bios_grub
sectie en stel er een vlag voor in.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Maak partitie 2 en stel er een vlag voor in. De partitie zal worden gebruikt als blok voor een RAID-array en daarin worden gemonteerd /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
We maken een derde sectie, die ook zal worden gebruikt als een arrayblok waarin LVM zal worden geplaatst.
(parted) mkpart primary 1028MiB 100%
In dit geval is het niet nodig om de vlag in te stellen, maar indien nodig kan deze worden ingesteld met het volgende commando.
(parted) set 3 raid on
We controleren de gemaakte 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
We wijzen een nieuwe willekeurige GUID toe aan de schijf.
sgdisk -G /dev/sdd
2. Partities van de eerste schijf uit arrays verwijderen
De status van de array controleren
[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>
Het systeem gebruikt 2 arrays: md126 (aankoppelpunt /boot) - bestaat uit /dev/sda1
и /dev/sdb1
, md127
(LVM voor swap
en de root van het bestandssysteem) - bestaat uit /dev/sda2
и /dev/sdb2
.
We markeren de partities van de eerste schijf die in elke array worden gebruikt als slecht.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Blokapparaatpartities verwijderen /dev/sda
uit arrays.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
De status van de array controleren na het verwijderen van de schijf.
[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. Partities van de nieuwe schijf aan de array toevoegen
De volgende stap is het toevoegen van partities van de nieuwe schijf aan de arrays voor synchronisatie. Laten we eens kijken naar de huidige status van de schijfindeling.
[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
Sectie /dev/sdc1
is bios_grub
sectie en is niet betrokken bij het maken van arrays. De arrays zullen alleen gebruiken /dev/sdc2
и /dev/sdc3
. We voegen deze secties toe aan de overeenkomstige arrays.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Vervolgens wachten we tot de array is gesynchroniseerd.
[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>
Schijfpartitionering na het toevoegen van partities aan de array.
[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. Partities van de tweede schijf uit arrays verwijderen
We markeren de partities van de tweede schijf die in elke array worden gebruikt als slecht.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Blokapparaatpartities verwijderen /dev/sda
uit arrays.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopieer de GPT-indelingstabel en synchroniseer de array
Om de GPT-opmaaktabel te kopiëren, gebruiken we het hulpprogramma sgdisk
, dat is opgenomen in het pakket voor het werken met schijfpartities en een GPT-tabel - gdisk
.
installatie gdisk
voor CentOS:
yum install -y gdisk
installatie gdisk
voor Debian/Ubuntu:
apt install -y gdisk
ВНИМАНИЕ: Voor GPT de eerste schijf is aangegeven waarop? kopieer de opmaak, de tweede schijf geeft de schijf aan van welke kopieer de opmaak. Als u de schijven door elkaar haalt, wordt de aanvankelijk goede partitie overschreven en vernietigd.
Kopieer de GPT-opmaaktabel.
sgdisk -R /dev/sdd /dev/sdc
Schijfpartitionering na het overbrengen van een tabel naar schijf /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
Vervolgens voegen we elk van de partities toe die deelnemen aan software-RAID-arrays.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
We wachten tot de array is gesynchroniseerd.
[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>
Nadat u de GPT-partitie naar de tweede nieuwe schijf hebt gekopieerd, ziet de partitie er als volgt uit.
[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]
Installeer vervolgens GRUB op de nieuwe schijven.
Installatie voor CentOS:
grub2-install /dev/sdX
Installatie voor Debian/Ubuntu:
grub-install /dev/sdX
waar X
— schijfletter, in ons geval schijven /dev/sdc
и /dev/sdd
.
We werken informatie over de array bij.
Voor CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Over Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
De afbeelding bijwerken initrd
:
Voor CentOS:
dracut -f -v --regenerate-all
Over Debian/Ubuntu:
update-initramfs -u -k all
We updaten de GRUB-configuratie.
Voor CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Over Debian/Ubuntu:
update-grub
Na het voltooien van de stappen kunnen de oude schijven worden verwijderd.
6. Bestandssysteemextensie (ext4) van de rootpartitie
Schijfpartitionering vóór uitbreiding van het bestandssysteem na migratie van het systeem naar 2 x 3TB-schijven (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 secties /dev/sdc3
и /dev/sdd3
bezetten 2.7 TB. Omdat we een nieuwe schijfindeling met een GPT-tabel hebben gemaakt, werd de grootte van partitie 3 onmiddellijk ingesteld op de maximaal mogelijke schijfruimte; in dit geval is het niet nodig om de partitie uit te breiden.
Het is noodzakelijk:
- Vouw array md126 uit,
- Vouw PV uit (fysiek volume),
- Vouw LV (logisch volume) vg0-root uit,
- Vouw het bestandssysteem uit.
1. Vouw de array uit md126
tot het maximum.
mdadm --grow /dev/md126 --size=max
Na array-uitbreiding md126
de omvang van de bezette ruimte is toegenomen tot 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]
Uitbreiden fysiek volume.
Controleer vóór het uitbreiden de huidige waarde van de bezette ruimte PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
We breiden PV uit met het volgende commando.
pvresize /dev/md126
We controleren de voltooide actie.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Uitbreiden logisch volume vg0-root.
Laten we na het uitbreiden van PV de bezette ruimte VG controleren.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Laten we eens kijken naar de ruimte die LV inneemt.
[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
Het vg0-rootvolume beslaat 206.41 GB.
We breiden LV uit naar de maximale schijfruimte.
lvextend -l +100%FREE /dev/mapper/vg0-root
Controle van de LV-ruimte na expansie.
[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
Het bestandssysteem uitbreiden (ext4).
Laten we de huidige grootte van het bestandssysteem controleren.
[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
Het volume /dev/mapper/vg0-root beslaat 204 GB na LV-uitbreiding.
Het bestandssysteem uitbreiden.
resize2fs /dev/mapper/vg0-root
De grootte van het bestandssysteem controleren nadat het is uitgebreid.
[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
De bestandssysteemgrootte is vergroot om het volledige volume te bestrijken.
Bron: www.habr.com