Hej alla. På tröskeln till starten av en ny kursgrupp
Den här artikeln kommer att överväga två fall av utbyte av diskar och överföring av information till nya diskar med större kapacitet med ytterligare expansion av arrayen och filsystemet. Det första fallet gäller utbyte av diskar med samma MBR/MBR- eller GPT/GPT-partitionering, det andra fallet gäller utbyte av diskar med MBR-partitionering med diskar med en kapacitet på mer än 2 TB, som du måste installera på en GPT-partition med en biosboot-partition. I båda fallen är diskarna som vi överför data till redan installerade på servern. Filsystemet som används för rotpartitionen är ext2.
Fall 1: Byta ut mindre diskar med större diskar (upp till 2TB)
Uppgift: Byt ut nuvarande diskar mot större diskar (upp till 2 TB) med informationsöverföring. I det här fallet har vi 2 x 240 GB SSD (RAID-1)-diskar med systemet installerat och 2 x 1 TB SATA-diskar som systemet behöver överföras till.
Låt oss titta på den nuvarande disklayouten.
[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
Låt oss kontrollera det filsystemsutrymme som för närvarande används.
[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
Storleken på filsystemet innan du byter diskar är 204 GB, 2 md126 mjukvaruuppsättningar används, som är monterade i /boot
и md127
, som används som fysisk volym för VG-gruppen vg0.
1. Ta bort diskpartitioner från arrayer
Kontrollerar arrayens tillstånd
[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 använder 2 arrayer: md126
(monteringspunkt /boot
) - består av en sektion /dev/sda1
и /dev/sdb1
, md127
(LVM för byta och roten av filsystemet) - består av /dev/sda2
и /dev/sdb2
.
Vi markerar partitionerna på den första disken som används i varje array som dåliga.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Vi tar bort /dev/sda block enhetspartitionerna från arrayerna.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Efter att vi har tagit bort disken från arrayen kommer blockenhetsinformationen att se ut så här.
[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
Tillstånd för arrayer efter borttagning av diskar.
[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. Kopiera partitionstabellen till en ny disk
Du kan kontrollera den använda partitionstabellen på disken med följande kommando.
fdisk -l /dev/sdb | grep 'Disk label type'
Utdata för MBR skulle vara:
Disk label type: dos
för GPT:
Disk label type: gpt
Kopiera partitionstabellen för MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
I det här laget först disk indikeras с varav markeringen kopieras, andra - var kopiera.
VARNING: För GPT först disk indikeras på vilken kopiera uppmärkning, andra disk indikerar disken från vilken kopiera uppmärkning. Om du blandar ihop diskarna kommer den initialt bra partitionen att skrivas över och förstöras.
Kopiera layouttabellen för GPT:
sgdisk -R /dev/sdс /dev/sdb
Tilldela sedan ett slumpmässigt UUID till disken (för GPT).
sgdisk -G /dev/sdc
Efter att kommandot har körts bör partitionerna visas 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
Om, efter att åtgärden har utförts, partitionerna i systemet på disken /dev/sdc
obestämd, sedan kör vi kommandot för att läsa om partitionstabellen.
sfdisk -R /dev/sdc
Om de nuvarande diskarna använder MBR-tabellen och information behöver överföras till diskar större än 2 TB, måste du på nya diskar manuellt skapa GPT-partitionering med hjälp av biosboot-partitionen. Detta fall kommer att diskuteras i del 2 av denna artikel.
3. Lägga till partitioner för den nya disken till arrayen
Låt oss lägga till diskpartitioner till motsvarande arrayer.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Vi kontrollerar att avsnitten har lagts till.
[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
Efter detta väntar vi på att arrayerna ska synkroniseras.
[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 kontinuerligt övervaka synkroniseringsprocessen med hjälp av verktyget watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
anger med vilka intervaller i sekunder kommandot måste utföras för att kontrollera framstegen.
Upprepa steg 1 - 3 för nästa ersättningsskiva.
Vi markerar partitionerna på den andra disken som används i varje array som dåliga.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Ta bort blockenhetspartitioner /dev/sdb
från arrayer.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Efter att vi har tagit bort disken från arrayen kommer blockenhetsinformationen att se ut så här.
[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
Tillstånd för arrayer efter borttagning av diskar.
[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>
Kopierar MBR-partitionstabellen från disken /dev/sdс
till disk /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Efter att kommandot har körts bör partitionerna visas 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
Lägga till diskpartitioner till arrayer.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Vi kontrollerar att avsnitten har lagts till.
[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]
Efter detta väntar vi på att arrayerna ska synkroniseras.
[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. Installera GRUB på nya enheter
För CentOS:
grub2-install /dev/sdX
Till Debian/Ubuntu:
grub-install /dev/sdX
där X
— bokstaven för blockanordningen. I det här fallet måste du installera GRUB på /dev/sdc
и /dev/sdd
.
6. Filsystemtillägg (ext4) för rotpartitionen
På nya diskar /dev/sdc
и /dev/sdd
931.5 GB tillgängligt. På grund av det faktum att partitionstabellen kopierades från mindre diskar, kommer partitionerna /dev/sdc2
и /dev/sdd2
222.5 GB tillgängligt.
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 är nödvändigt:
- Utöka partition 2 på var och en av diskarna,
- Expandera array md127,
- Expandera PV (fysisk volym),
- Expandera LV (logisk volym) vg0-root,
- Expandera filsystemet.
Använda verktyget parted låt oss utöka avsnittet /dev/sdc2
till maxvärdet. Utför kommandot parted /dev/sdc
(1) och visa den aktuella partitionstabellen med kommandot p
(2).
Som du kan se slutar slutet av partition 2 på 240 GB. Låt oss utöka partitionen med kommandot resizepart
2
, där 2 är sektionens nummer (3). Vi anger värdet i digitalt format, till exempel 1000 GB, eller använder indikeringen av diskandelen - 100%. Vi kontrollerar igen att partitionen har den nya storleken (4).
Upprepa stegen ovan för disken /dev/sdd
. Efter att ha expanderat partitioner /dev/sdc2
и /dev/sdd2
blev lika 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]
Efter detta utökar vi arrayen md127 maximalt.
mdadm --grow /dev/md127 --size=max
Vi kontrollerar att arrayen har utökats. Nu har storleken blivit 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]
Förlängning av förlängningen fysisk volym. Innan vi expanderar, låt oss kontrollera det aktuella läget för 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 kan ses, PV /dev/md127
använder 222.4 GB utrymme.
Vi utökar PV med följande kommando.
pvresize /dev/md127
Kontrollerar resultatet av PV-expansion.
[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 ]
Expanderar logisk volym. Innan vi expanderar, låt oss kontrollera det aktuella läget för 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
använder 206.41 GB.
Vi expanderar LV med följande kommando (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Vi kontrollerar den genomförda åtgärden (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 att ha utökat LV, blev mängden upptaget diskutrymme 914.39 GB.
LV-volymen har ökat (4), men filsystemet upptar fortfarande 204 GB (5).
1. Låt oss utöka filsystemet.
resize2fs /dev/mapper/vg0-root
Efter att kommandot har körts kontrollerar vi storleken 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
Storleken på rotfilsystemet kommer att öka till 900 GB. När du har slutfört stegen kan du ta bort de gamla diskarna.
Fall 2: Byta ut mindre diskar med större diskar (mer än 2TB)
inställning: Byt ut de nuvarande diskarna mot större diskar (2 x 3TB) samtidigt som informationen bevaras. I det här fallet har vi 2 x 240 GB SSD (RAID-1)-diskar med systemet installerat och 2 x 3 TB SATA-diskar som systemet behöver överföras till. Aktuella diskar använder MBR-partitionstabellen. Eftersom nya diskar har en kapacitet som är större än 2 TB måste de använda en GPT-tabell, eftersom MBR inte kan fungera med diskar som är större än 2 TB.
Låt oss titta på den nuvarande disklayouten.
[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
Låt oss kontrollera partitionstabellen som används på disken /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
På disk /dev/sdb
en liknande partitionstabell används. Låt oss kontrollera det använda diskutrymmet 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 tar roten av filsystemet upp 204 GB. Låt oss kontrollera det aktuella tillståndet för mjukvaru-RAID-arrayen.
1. Installera en GPT-partitionstabell och diskpartitionering
Låt oss kontrollera disklayouten per 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 nya 3TB-disken måste vi skapa 3 partitioner:
- Avsnitt
bios_grub
2MiB storlek för GPT BIOS-kompatibilitet, - Partitionen för RAID-arrayen som kommer att monteras i
/boot
. - Partitionen för RAID-arrayen som det kommer att finnas på LV rot и LV-byte.
Installera verktyget parted team yum install -y parted
(för CentOS), apt install -y parted
(för Debian/Ubuntu).
med användning av parted Låt oss köra följande kommandon för att partitionera disken.
Utför kommandot parted /dev/sdc
och gå till redigeringsläge för disklayout.
Skapa en GPT-partitionstabell.
(parted) mktable gpt
Skapa 1 avsnitt bios_grub
sektion och ställ in en flagga för den.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Skapa partition 2 och ställ in en flagga för den. Partitionen kommer att användas som ett block för en RAID-array och monteras in /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Vi skapar partition 3, som också kommer att användas som ett arrayblock där LVM kommer att finnas.
(parted) mkpart primary 1028MiB 100%
I det här fallet är det inte nödvändigt att ställa in flaggan, men vid behov kan den ställas in med följande kommando.
(parted) set 3 raid on
Vi kontrollerar den skapade tabellen.
(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 tilldelar en ny slumpmässig GUID till disken.
sgdisk -G /dev/sdd
2. Ta bort partitioner från den första disken från arrayer
Kontrollerar arrayens tillstånd
[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 använder 2 arrayer: md126 (monteringspunkt /boot) - består av /dev/sda1
и /dev/sdb1
, md127
(LVM för swap
och roten av filsystemet) - består av /dev/sda2
и /dev/sdb2
.
Vi markerar partitionerna på den första disken som används i varje array som dåliga.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Ta bort blockenhetspartitioner /dev/sda
från arrayer.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Kontrollerar arrayens tillstånd efter att skivan tagits bort.
[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. Lägga till partitioner för den nya disken till arrayen
Nästa steg är att lägga till partitioner av den nya disken till arrayerna för synkronisering. Låt oss titta på det nuvarande tillståndet för disklayouten.
[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
Avsnitt /dev/sdc1
är bios_grub
sektionen och är inte involverad i skapandet av arrayer. Arrayerna kommer endast att använda /dev/sdc2
и /dev/sdc3
. Vi lägger till dessa sektioner till motsvarande arrayer.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Sedan väntar vi på att arrayen ska synkroniseras.
[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 att ha lagt till partitioner till arrayen.
[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. Ta bort partitioner på den andra disken från arrayer
Vi markerar partitionerna på den andra disken som används i varje array som dåliga.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Ta bort blockenhetspartitioner /dev/sda
från arrayer.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Kopiera GPT-layouttabellen och synkronisera arrayen
För att kopiera GPT-uppmärkningstabellen använder vi verktyget sgdisk
, som ingår i paketet för att arbeta med diskpartitioner och en GPT-tabell - gdisk
.
Installation gdisk
för CentOS:
yum install -y gdisk
Installation gdisk
för Debian/Ubuntu:
apt install -y gdisk
VARNING: För GPT först disk indikeras på vilken kopiera markeringen, andra disk indikerar disken från vilken kopiera uppmärkningen. Om du blandar ihop diskarna kommer den initialt bra partitionen att skrivas över och förstöras.
Kopiera GPT-uppmärkningstabellen.
sgdisk -R /dev/sdd /dev/sdc
Diskpartitionering efter överföring av en tabell till 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
Därefter lägger vi till var och en av partitionerna som deltar i mjukvaru-RAID-arrayer.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Vi väntar på att arrayen ska synkroniseras.
[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 att ha kopierat GPT-partitionen till den andra nya disken kommer partitionen att se ut så här.
[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]
Installera sedan GRUB på de nya diskarna.
Installation för CentOS:
grub2-install /dev/sdX
Installation för Debian/Ubuntu:
grub-install /dev/sdX
där X
— drivbokstav, i vårt fall driver /dev/sdc
и /dev/sdd
.
Vi uppdaterar information om arrayen.
För CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Till Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Uppdaterar bilden initrd
:
För CentOS:
dracut -f -v --regenerate-all
Till Debian/Ubuntu:
update-initramfs -u -k all
Vi uppdaterar GRUB-konfigurationen.
För CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Till Debian/Ubuntu:
update-grub
När du har slutfört stegen kan de gamla diskarna tas bort.
6. Filsystemtillägg (ext4) för rotpartitionen
Diskpartitionering före filsystemsexpansion efter migrering av systemet till 2 x 3TB-diskar (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 avsnitt /dev/sdc3
и /dev/sdd3
upptar 2.7 TB. Eftersom vi skapade en ny disklayout med en GPT-tabell, sattes storleken på partition 3 omedelbart till maximalt möjliga diskutrymme, i det här fallet finns det inget behov av att utöka partitionen.
Det är nödvändigt:
- Expandera array md126,
- Expandera PV (fysisk volym),
- Expandera LV (logisk volym) vg0-root,
- Expandera filsystemet.
1. Expandera arrayen md126
maximalt.
mdadm --grow /dev/md126 --size=max
Efter arrayexpansion md126
storleken på det upptagna utrymmet har ökat till 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]
Expanderar fysisk volym.
Innan du expanderar, kontrollera det aktuella värdet för det upptagna utrymmet PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Vi utökar PV med följande kommando.
pvresize /dev/md126
Vi kontrollerar den genomförda åtgärden.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Expanderar logisk volym vg0-root.
Efter att ha utökat PV, låt oss kontrollera det upptagna utrymmet VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Låt oss kontrollera utrymmet som upptas av 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-rootvolymen upptar 206.41 GB.
Vi utökar LV till maximalt diskutrymme.
lvextend -l +100%FREE /dev/mapper/vg0-root
Kontrollera LV-utrymmet efter 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
Utöka filsystemet (ext4).
Låt oss kontrollera den aktuella storleken 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
Volymen /dev/mapper/vg0-root upptar 204 GB efter LV-expansion.
Utöka filsystemet.
resize2fs /dev/mapper/vg0-root
Kontrollera storleken på filsystemet efter att ha expanderat 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 storlek har utökats för att täcka hela volymen.
Källa: will.com