Udskiftning af mindre kapacitetsdrev med større kapacitetsdrev i Linux

Hej alle. Foran starten af den nye kursusgruppe «Linux Administrator» offentliggør vi nyttigt materiale skrevet af vores studerende, samt en mentor på kurserne, en specialist i teknisk support af virksomhedens produkter REG.RU — Roman Travin.

I denne artikel vil vi se pü to tilfÌlde af udskiftning af drev og overførsel af data til nye, større drev med derefter udvidelse af RAID-arrayet og filsystemet. Det første tilfÌlde vil omhandle udskiftning af drev med den samme partitionering MBR/MBR eller GPT/GPT, det andet tilfÌlde vedrører udskiftning af drev med MBR-partitionering til drev med over 2 TB, hvor det er nødvendigt at anvende GPT-partitionering med en biosboot-partition. I begge tilfÌlde er de drev, som dataene overføres til, allerede installeret i server. Filssystemet, der bruges til rodpartitionen, er ext4.

Sag 1: Udskiftning af mindre kapacitetsdrev med større kapacitetsdrev (op til 2TB)

Opgave: Udskift nuvÌrende drev med større kapacitetsdrev (op til 2 TB) med overførsel af data. I dette tilfÌlde har vi drev 2 x 240 GB SSD (RAID-1) med installeret system og drev 2 x 1 TB SATA, hvortil systemet skal overføres.

Lad os se pĂĽ den nuvĂŚrende diskpartitionering.

[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 det nuvĂŚrende brugte plads pĂĽ filsystemet.

[root@localhost ~]# df -h
Filsystem               Størrelse Brugt  Dato Brug% Cmnt
/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 af filsystemet før udskiftning af drevene er 204 GB, der bruges 2 software-RAID-arrays md126, som er monteret i /boot og md127, som bruges som fysisk volumen til VG-gruppen vg0.

1. Fjernelse af diskpartitioner fra arrayene

Kontrollerer status for arrayet

[root@localhost ~]# cat /proc/mdstat 
Personligheder : [raid1] 
md126 : aktiv raid1 sda1[0] sdb1[1]
      1047552 blokke super 1.2 [2/2] [UU]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv raid1 sda2[0] sdb2[1]
      233206784 blokke super 1.2 [2/2] [UU]
      bitmap: 0/2 sider [0KB], 65536KB chunk

ubrugte enheder:

Systemet bruger 2 arrays: md126 (monteringspunkt /boot) — består af partitionen /dev/sda1 og /dev/sdb1, md127 (LVM til swap og rodfilen) — består af /dev/sda2 og /dev/sdb2.

Markerer partitionerne fra den første disk, der bruges i hvert array, som fejlede.

mdadm /dev/md126 --fail /dev/sda1

mdadm /dev/md127 --fail /dev/sda2

Fjerner partitionerne fra bloco enheden /dev/sda fra arrays.

mdadm /dev/md126 --remove /dev/sda1

mdadm /dev/md127 --remove /dev/sda2

NĂĽr vi har fjernet disken fra arrayet, vil oplysningerne om bloco enhederne se sĂĽledes 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 
Personligheder : [raid1] 
md126 : aktiv raid1 sdb1[1]
      1047552 blokke super 1.2 [2/1] [_U]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv raid1 sdb2[1]
      233206784 blokke super 1.2 [2/1] [_U]
      bitmap: 1/2 sider [4KB], 65536KB chunk

ubrugte enheder:

2. Kopiering af partitionstabel til en ny disk

Den brugte partitionstabel pü disken kan kontrolleres med følgende kommando.

fdisk -l /dev/sdb | grep 'Disk label type'

Resultatet for MBR vil vĂŚre:

Disk label type: dos

for GPT:

Disk label type: gpt

Kopiering af partitionstabel for MBR:

sfdisk -d /dev/sdb | sfdisk /dev/sdc

I denne kommando anges først disken med hvis partitioneringen kopieres, for det andet — hvor at kopiere.

ADVARSEL: For GPT anges først disken hvor partitioneringen kopieres, angives den anden disk som disken hvorfra partitioneringen kopieres. Hvis diske swaps, vil den oprindeligt korrekt partitionering blive overskrevet og ødelagt.

Kopiering af partitionstabel for GPT:

sgdisk -R /dev/sdc /dev/sdb

Tildel derefter disken et tilfĂŚldigt UUID (for GPT).


sgdisk -G /dev/sdc

Efter udførelsen af kommandoen skal 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 partitionerne pü disken ikke er blevet identificeret efter den udførte handling, /dev/sdc skal vi køre kommandoen for at genlÌse partitionslisten.

sfdisk -R /dev/sdc

Hvis der bruges en MBR-partitionstabel pü de nuvÌrende diske, og oplysningerne skal overføres til diske, der er større end 2 TB, skal der manuelt oprettes en GPT-format pü de nye diske med biosboot-partitionen. Denne situation vil blive behandlet i del 2 af denne artikel.

3. Tilføjelse af partitioner fra den nye disk til arrayet

Vi tilføjer partitionerne pü disken til de relevante arrays.

mdadm /dev/md126 --add /dev/sdc1

mdadm /dev/md127 --add /dev/sdc2

Vi kontrollerer, at partitionerne er blevet 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 arraysene synkroniseres.

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md126 : aktiv raid1 sdc1[2] sdb1[1]
      1047552 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv 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 sider [8KB], 65536KB chunk

unused devices:

Man kan kontinuerligt overvüge synkroniseringsprocessen ved hjÌlp af vÌrktøjet watch.

watch -n 2 cat /proc/mdstat

Parameter -n angiver intervallet i sekunder, som kommandoen skal udføres for at kontrollere fremdriften.

Gentag punkterne 1-3 for den nĂŚste disk, der skal skiftes.

MarkĂŠr partitionerne pĂĽ den anden disk, som bruges i hvert array, som fejlede.

mdadm /dev/md126 --fail /dev/sdb1

mdadm /dev/md127 --fail /dev/sdb2

Fjern partitionerne fra blokenheden /dev/sdb fra matriser.

mdadm /dev/md126 --remove /dev/sdb1

mdadm /dev/md127 --remove /dev/sdb2

NĂĽr vi har fjernet disken fra arrayet, vil oplysningerne om bloco enhederne se sĂĽledes ud.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   STØRRELSE 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 
Personligheder : [raid1] 
md126 : aktiv raid1 sdc1[2]
      1047552 blocks super 1.2 [2/1] [U_]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv raid1 sdc2[2]
      233206784 blocks super 1.2 [2/1] [U_]
      bitmap: 1/2 sider [4KB], 65536KB chunk

ubrugte enheder:

Vi kopierer MBR-partitionstabel fra disk /dev/sdс til disk /dev/sdd.

sfdisk -d /dev/sdc | sfdisk /dev/sdd

Efter udførelsen af kommandoen skal partitionerne vises pü disken /dev/sdd.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   STØRRELSE 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  

Vi tilføjer diskpartitioner til matriser.

mdadm /dev/md126 --add /dev/sdd1

mdadm /dev/md127 --add /dev/sdd2

Vi kontrollerer, at partitionerne er blevet tilføjet.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   STØRRELSE 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 arraysene synkroniseres.

[root@localhost ~]# cat /proc/mdstat 
Personligheder : [raid1] 
md126 : aktiv raid1 sdd1[3] sdc1[2]
      1047552 blocks super 1.2 [2/2] [UU]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv raid1 sdd2[3] sdc2[2]
      233206784 blocks super 1.2 [2/1] [U_]
      [>....................]  genopretning =  0.5% (1200000/233206784) fĂŚrdig=35.4min hastighed=109090K/sek
      bitmap: 2/2 sider [8KB], 65536KB chunk

ubrugte enheder:

5. Installation af GRUB pĂĽ nye diske

For CentOS:

grub2-install /dev/sdX

For Debian/Ubuntu:

grub-install /dev/sdX

hvor X — bogstavet for blokkens enhed. Her skal GRUB installeres på /dev/sdc og /dev/sdd.

6. Udvidelse af filsystemet (ext4) pĂĽ rodpartitionen

PĂĽ de nye diske /dev/sdc og /dev/sdd er der tilgĂŚngelige 931,5 GB. Da partitionstabellen er kopieret fra diske med mindre kapacitet, er der pĂĽ partitionerne /dev/sdc2 og /dev/sdd2 tilgĂŚngelige 222,5 GB.

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]

Nødvendigt:

  1. Udvid partition 2 pĂĽ hver af diskerne,
  2. Udvid arrayet md127,
  3. Udvid PV (physical volume),
  4. Udvid LV (logical-volume) vg0-root,
  5. Udvid filsystemet.

Ved at bruge vÌrktøjet parted udvider vi partitionen /dev/sdc2 til maximum. Kør kommandoen parted /dev/sdc (1) og vis den aktuelle partitionsoversigt med kommandoen p (2).

Udskiftning af mindre kapacitetsdrev med større kapacitetsdrev i Linux

Som det fremgür, slutter slutningen af partition 2 pü 240 GB. Vi udfører udvidelsen af partitionen med kommandoen resizepart 2, hvor 2 er partitionens nummer (3). Angiv vÌrdien i numerisk format, f.eks. 1000 GB, eller brug en andel af disken - 100%. Tjek igen, at partitionen har den nye størrelse (4).

Gentag ovenstĂĽende trin for disken /dev/sdd. Efter udvidelsen blev partitionerne /dev/sdc2 og /dev/sdd2 lige 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]

Derefter udfører vi udvidelsen af arrayet md127 til maksimum.

mdadm --grow /dev/md127 --size=max

Tjek, at arrayet er blevet udvidet. Nu er størrelsen 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]

Vi udfører en udvidelse fysisk volumen. Før udvidelsen kontrollerer vi 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, /dev/md127 bruger PV 222,4 GB plads.

Vi udvider PV med følgende kommando.

pvresize /dev/md127

Vi tjekker resultatet af PV-udvidelsen.

[

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   ]

Vi udvider logisk volumen. Før udvidelsen kontrollerer vi 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 tjekker den udførte handling (3).

[root@localhost ~]# lvscan 
  ACTIVE            '/dev/vg0/swap' [<16,00 GiB] inherit
  ACTIVE            '/dev/vg0/root' [<914,39 GiB] inherit

Som vi kan se, efter udvidelsen er størrelsen pü det optagne diskplads steget til 914,39 GB.

Udskiftning af mindre kapacitetsdrev med større kapacitetsdrev i Linux

Størrelsen af LV er forøget (4), men filsystemet bruger stadig 204 GB (5).

1. Lad os udvide filsystemet.

resize2fs /dev/mapper/vg0-root

Vi tjekker størrelsen af filsystemet efter udførelsen af kommandoen.

[root@localhost ~]# df -h
Filsystem     Størrelse Anvendt  Dost Anvendt% Cmt
/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. Efter de udførte handlinger kan de gamle diske uddrages.

Case 2: Udskiftning af diske med mindre kapacitet til diske med større kapacitet (mere end 2TB)

Opgave: Erstat de nuvÌrende diske med større diske (2 x 3TB) med bevarelse af oplysninger. I dette tilfÌlde har vi diske 2 x 240 GB SSD (RAID-1) med det installerede system og diske 2 x 3 TB SATA, som systemet skal flyttes til. De nuvÌrende diske bruger MBR-partitionstabel. Da de nye diske har en kapacitet over 2 TB, skal der bruges en GPT-tabel, da MBR ikke kan arbejde med diske større end 2 TB.

Lad os se pĂĽ den nuvĂŚrende diskopdeling.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   STØRRELSE 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 kontrollere den anvendte partitionstabel pĂĽ disken. /dev/sda.

[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos

PĂĽ disken /dev/sdb bruges en tilsvarende partitionstabel. Lad os kontrollere den anvendte diskplads i systemet.

[root@localhost ~]# df -h
Filsystem     Størrelse Bruges  Døbt Brugt% Monteret i
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 synligt, tager rodmappen i filsystemet 204 GB. Lad os kontrollere den aktuelle tilstand af det softwarebaserede RAID-array.

1. Installation af GPT-partitionstabeller og opdeling af disk.

Lad os tjekke diskopdelingen i sektioner.

[root@localhost ~]# parted /dev/sda print
Model: ATA KINGSTON SVP200S (scsi)
Disk /dev/sda: 240GB
Sektorstørrelse (logisk/fysisk): 512B/512B
Partitionstabel: msdos
Disk Flags: 

Nummer  Start  Slut   Størrelse  Type      Filsystem  Flags
 1     1049kB  1076MB  1075MB  primary                    bootable, raid
 2     1076MB  240GB   239GB   primary                    raid

PĂĽ den nye 3TB disk skal vi oprette 3 partitioner:

  1. Partition bios_grub størrelse 2MiB for kompatibilitet mellem GPT og BIOS,
  2. Partition til RAID-arrayet, som vil blive monteret i /boot.
  3. Partition til RAID-arrayet, hvorpĂĽ der vil vĂŚre LV root og LV swap.

Installerer vÌrktøjet parted med kommandoen yum install -y parted (til CentOS), apt install -y parted (til Debian/Ubuntu).

Ved at bruge parted vi udfører følgende kommandoer for at partitionere disken.

Kør kommandoen parted /dev/sdc og gür ind i redigeringstilstand for partitionstabel.

Vi opretter GPT partitionstabel.

(parted) mktable gpt

Vi opretter 1 partition bios_grub partition og sĂŚtter flag for den.

(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on  

Vi opretter 2 partition og sĂŚtter flag for den. Partitionen vil blive brugt som blok til RAID-array og monteres i /boot.

(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on

Vi opretter 3 partition, som ogsĂĽ vil blive brugt som blok i arrayet, hvor LVM vil vĂŚre.

(parted) mkpart primary 1028MiB 100% 

I dette tilfÌlde er det ikke nødvendigt at sÌtte flaget, men hvis det er nødvendigt, kan det sÌttes med følgende kommando.

(parted) set 3 raid on

Vi kontrollerer den oprettede tabel.

(parted) p
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdc: 3001GB
Sektorstørrelse (logisk/fysisk): 512B/4096B
Partitionstabel: gpt
Diskflags: 

Nummer  Start   Slut   Størrelse  Filsystem       Navn     Flag
 1      1049kB  3146kB 2097kB                 primary  bios_grub
 2      3146kB  1077MB 1074MB                 primary  boot
 3      1077MB  3001GB 3000GB                 primary

Tildel disken et nyt tilfĂŚldigt GUID.

sgdisk -G /dev/sdd

2. Sletning af partitionerne fra den første disk i arrayene

Kontrollerer status for arrayet

[root@localhost ~]# cat /proc/mdstat 
Personligheder : [raid1] 
md126 : aktiv raid1 sda1[0] sdb1[1]
      1047552 blokke super 1.2 [2/2] [UU]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv raid1 sda2[0] sdb2[1]
      233206784 blokke super 1.2 [2/2] [UU]
      bitmap: 0/2 sider [0KB], 65536KB chunk

ubrugte enheder:

Der er 2 arrays i systemet: md126 (monteringspunkt /boot) — består af /dev/sda1 og /dev/sdb1, md127 (LVM til swap og rodfilen) — består af /dev/sda2 og /dev/sdb2.

Markerer partitionerne fra den første disk, der bruges i hvert array, som fejlede.

mdadm /dev/md126 --fail /dev/sda1

mdadm /dev/md127 --fail /dev/sda2

Fjern partitionerne fra blokenheden /dev/sda fra matriser.

mdadm /dev/md126 --remove /dev/sda1

mdadm /dev/md127 --remove /dev/sda2

Vi kontrollerer status for arrayet efter sletning af disken.

[root@localhost ~]# cat /proc/mdstat 
Personaliteter: [raid1] 
md126: aktiv raid1 sdb1[1]
      1047552 blokke super 1.2 [2/1] [_U]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127: aktiv raid1 sdb2[1]
      233206784 blokke super 1.2 [2/1] [_U]
      bitmap: 2/2 sider [8KB], 65536KB chunk

unused devices:

3. Tilføjelse af partitioner fra den nye disk til arrayet

Det nÌste skridt er at tilføje partitionerne fra den nye disk til arrayene for synkronisering. Lad os se den nuvÌrende tilstand af diskpartitionerne.

[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  

Partition /dev/sdc1 Baggrunden indeholder tekstur af siden og illustrationer, og dens opløsning er lavere end maskens. Baggrunden gemmes tabsløst for opfattelse med en opløsning pü 100 dpi. bios_grub partition og deltager ikke i oprettelsen af arrays. I arrays vil kun /dev/sdc2 og /dev/sdc3tilføjes disse partitioner til de tilsvarende arrays.

mdadm /dev/md126 --add /dev/sdc2

mdadm /dev/md127 --add /dev/sdc3

Efterfølgende venter vi pü synkroniseringen af arrayet.

[root@localhost ~]# cat /proc/mdstat 
Personligheder : [raid1] 
md126 : aktiv raid1 sdc2[2] sdb1[1]
      1047552 blokke super 1.2 [2/2] [UU]
      bitmap: 0/1 sider [0KB], 65536KB chunk

md127 : aktiv raid1 sdc3[2] sdb2[1]
      233206784 blokke super 1.2 [2/1] [_U]
      [>....................]  genopretning =  0.2% (619904/233206784) fĂŚrdig=31.2min hastighed=123980K/sek
      bitmap: 2/2 sider [8KB], 65536KB chunk
ubrugte enheder:

Diskenes opdeling efter tilføjelse af partitioner til arrayet.

[root@localhost ~]# lsblk
NAVN           MAJ:MIN RM   STØRRELSE RO TYPE  MONTERINGSSTED
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 del  
  └─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 del  
├─sdc2           8:34   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 del  
  └─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 fra den anden disk fra arrays

MarkĂŠr partitionerne pĂĽ den anden disk, som bruges i hvert array, som fejlede.

mdadm /dev/md126 --fail /dev/sdb1

mdadm /dev/md127 --fail /dev/sdb2

Fjern partitionerne fra blokenheden /dev/sda fra matriser.

mdadm /dev/md126 --remove /dev/sdb1

mdadm /dev/md127 --remove /dev/sdb2

5. Vi kopierer GPT-partitionstabel og synkroniserer arrayet

Til at kopiere GPT-partitionstabellen bruger vi værktøjet sgdisk, som er en del af pakken til håndtering af diskpartitioner og GPT-tabel — gdisk.

Installation gdisk til CentOS:

yum install -y gdisk

Installation gdisk til Debian/Ubuntu:

apt install -y gdisk

ADVARSEL: For GPT anges først disken hvor vi kopierer opdelingen, angives den anden disk som disken hvorfra de kopierer opdelingen. Hvis diskene forveksles, vil den oprindeligt korrekte opdeling blive overskrevet og ødelagt.

Vi kopierer GPT-partitionstabellen.

sgdisk -R /dev/sdd /dev/sdc

Diskenes opdeling efter overførsel af tabellen til disken /dev/sdd.

[root@localhost ~]# lsblk
NAVN           MAJ:MIN RM   STØRRELSE RO TYPE  MONTERINGSSTED
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
└─sdb2           8:18   0 222,5G  0 del  
sdc              8:32   0   2,7T  0 disk  
├─sdc1           8:33   0     2M  0 del  
├─sdc2           8:34   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 del  
  └─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 del  
├─sdd2           8:50   0     1G  0 del  
└─sdd3           8:51   0   2,7T  0 del  

Herefter tilføjer vi hver af partitionerne, der deltager i software RAID-arrays.

mdadm /dev/md126 --add /dev/sdd2

mdadm /dev/md127 --add /dev/sdd3

Vi venter pĂĽ synkronisering af arrayet.

[root@localhost ~]# cat /proc/mdstat 
Personligheder : [raid1] 
md126 : aktiv raid1 sdd2[3] sdc2[2]
      1047552 blokke super 1.2 [2/2] [UU]
      bitmap: 1/1 sider [4KB], 65536KB chunk

md127 : aktiv raid1 sdd3[3] sdc3[2]
      233206784 blokke super 1.2 [2/1] [U_]
      [>....................]  genoprettelse =  0.0% (148224/233206784) fĂŚrdig=26.2min hastighed=148224K/sek
      bitmap: 2/2 sider [8KB], 65536KB chunk
unused devices:

Efter kopiering af GPT-partitioneringen til den anden nye disk, vil partitioneringen se sĂĽledes ud.

[root@localhost ~]# lsblk
NAVN           MAJ:MIN RM   STØRRELSE 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]

Vi installerer GRUB pĂĽ de nye diske.

Installation til CentOS:

grub2-install /dev/sdX

Installation til Debian/Ubuntu:

grub-install /dev/sdX

hvor X — diskkens bogstav, i vores tilfælde diskene /dev/sdc og /dev/sdd.

Vi opdaterer informationen om arrayet.

For CentOS:

mdadm --detail --scan --verbose > /etc/mdadm.conf

For Debian/Ubuntu:

echo "DEVICE partitioner" > /etc/mdadm/mdadm.conf

mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf

Vi opdaterer billedet initrd:
For CentOS:

dracut -f -v --regenerate-all

For Debian/Ubuntu:

update-initramfs -u -k all

Vi opdaterer GRUB-konfigurationen.

For CentOS:

grub2-mkconfig -o /boot/grub2/grub.cfg

For Debian/Ubuntu:

update-grub

Efter de udførte handlinger kan de gamle diske fjernes.

6. Udvidelse af filsystemet (ext4) pĂĽ rodpartitionen

Partitioneringen af diskene før udvidelsen af filsystemet efter overførslen til diskene 2 x 3TB (RAID-1).

[root@localhost ~]# lsblk
NAVN           MAJ:MIN RM   STØRRELSE 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 partitionerne /dev/sdc3 og /dev/sdd3 de optager 2,7 TB. Da vi oprettede en ny diskarrangement med GPT-tabellen, blev størrelsen pü 3 partitioner straks indstillet til den maksimalt mulige diskplads, sü opgradering af partitionen er ikke nødvendig i dette tilfÌlde.

Nødvendigt:

  1. Udvid md126-arrayet,
  2. Udvid PV (physical volume),
  3. Udvid LV (logical-volume) vg0-root,
  4. Udvid filsystemet.

1. Vi udvider arrayet md126 til maksimum.

mdadm --grow /dev/md126 --size=max

Efter udvidelsen af arrayet md126 øges den optagne plads 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]

Vi udvider fysisk volumen.

Før udvidelsen tjekker vi den aktuelle vÌrdi for optaget 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 tjekker den udførte handling.

[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize  PFree
  /dev/md126 vg0 lvm2 a--  <2,73t 2,51t

Vi udvider logisk volumen vg0-root.

Efter udvidelsen af PV tjekker vi den optagne plads i VG.

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize  VFree
  vg0   1   2   0 wz--n- <2,73t 2,51t

Vi tjekker den optagne LV-plads.

[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            

Volumen vg0-root optager 206,41 GB.

Vi udvider LV til den maksimale diskplads.

lvextend -l +100%FREE /dev/mapper/vg0-root 

Vi tjekker LV-pladsen efter udvidelsen.

[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

Vi udvider filsystemet (ext4).

Vi tjekker den nuvÌrende størrelse pü filsystemet.

[root@localhost ~]# df -h
Filsystem     Størrelse Anvendt  Dost Anvendt% Montering i
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 optager 204 GB efter udvidelsen af LV.

Vi udvider filsystemet.

resize2fs /dev/mapper/vg0-root 

Vi kontrollerer størrelsen pü filsystemet efter dets udvidelse.

[root@localhost ~]# df -h
Filsystem                Størrelse  Brug  Benyttet  % Benyttet  Monteret i
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

Størrelsen pü filsystemet er steget til hele volumen.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster