Ersetzen méi kleng Disken duerch méi grouss Disken am Linux

Moien alleguer. Um Virowend vum Start vun engem neie Cours Grupp "Linux Administrator" Mir publizéieren nëtzlecht Material geschriwwen vun eisem Student, souwéi Kursmentor, Spezialist fir technesch Ënnerstëtzung fir REG.RU Firmenprodukter - Roman Travin.

Dësen Artikel betruecht 2 Fäll fir Disken z'ersetzen an Informatioun op nei Disken mat méi grousser Kapazitéit ze transferéieren mat weiderer Ausdehnung vum Array a Dateiesystem. Den éischte Fall betrëfft den Ersatz vun Disken mat der selweschter MBR/MBR oder GPT/GPT Partitionéierung, den zweete Fall betrëfft den Ersatz vun Disken mat MBR Partitionéierung mat Disks mat enger Kapazitéit vu méi wéi 2 TB, op deenen Dir installéiere musst eng GPT Partition mat enger Biosboot Partition. A béide Fäll sinn d'Disks, op déi mir d'Donnéeën transferéieren, schonn um Server installéiert. De Dateiesystem deen fir d'Root-Partition benotzt gëtt ass ext4.

Fall 1: Ersetzen vu méi klengen Disken duerch méi grouss Disken (bis zu 2TB)

Eng Aufgab: Ersetzen déi aktuell Disken duerch méi grouss Disken (bis zu 2 TB) mat Informatiounstransfer. An dësem Fall hu mir 2 x 240 GB SSD (RAID-1) Disks mat dem System installéiert an 2 x 1 TB SATA Disks op déi de System muss transferéiert ginn.

Loosst eis den aktuellen Disk Layout kucken.

[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  

Loosst eis den aktuell benotzte Dateisystemraum iwwerpréiwen.

[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

D'Gréisst vum Dateiesystem virum Ersatz vun Disken ass 204 GB, 2 md126 Software Arrays ginn benotzt, déi am montéiert sinn /boot и md127, déi benotzt gëtt als kierperlecht Volumen fir VG Grupp vg0.

1. Ewechzehuelen Scheif Partitionen aus Arrays

Iwwerpréift den Zoustand vun der Array

[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>

De System benotzt 2 Arrays: md126 (Mount Punkt /boot) - besteet aus enger Sektioun /dev/sda1 и /dev/sdb1, md127 (LVM fir méchs an d'Wuerzel vum Dateiesystem) - besteet aus /dev/sda2 и /dev/sdb2.

Mir markéieren d'Partitionen vun der éischter Scheif, déi an all Array benotzt ginn, als schlecht.

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

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

Mir läschen d'/dev/sda Block Apparat Partitionen aus den Arrays.

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

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

Nodeems mir d'Disk aus der Array geläscht hunn, wäert d'Blockapparatinformatioun esou ausgesinn.

[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  

Zoustand vun Arrays no der Ewechhuele vun Disken.

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

md127 : active raid1 sdb2[1]
      233206784 blocks super 1.2 [2/1] [_U]
      bitmap: 1/2 pages [4KB], 65536KB chunk

unused devices: <none>

2. Kopie der Partition Dësch op eng nei Scheif

Dir kënnt d'benotzt Partitionstabelle op der Disk mat dem folgenden Kommando kontrolléieren.

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

D'Ausgab fir MBR wier:

Disk label type: dos

fir GPT:

Disk label type: gpt

Kopie vun der Partitionstabelle fir MBR:

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

An dëser Equipe éischt Scheif gëtt uginn с vun deem de Markup gëtt kopéiert, zweet - wou kopéieren.

ACHTUNG: Fir GPT éischt Scheif gëtt uginn op déi kopéieren Markup déi zweet Disk weist den Disk un vun deem kopéieren Markup. Wann Dir d'Disks vermëscht, gëtt déi ufanks gutt Partition iwwerschriwwen an zerstéiert.

Kopie vun der Layouttabell fir GPT:

sgdisk -R /dev/sdс /dev/sdb

Als nächst gitt eng zoufälleg UUID op den Disk (fir GPT).


sgdisk -G /dev/sdc

Nodeems de Kommando ausgefouert gëtt, sollten d'Partitionen op der Disk erscheinen /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  

Wann, nodeems d'Aktioun duerchgefouert gëtt, d'Partitionen am System op der Disk /dev/sdc net entscheet, da fuere mir de Kommando aus fir d'Partitionstabel nei ze liesen.

sfdisk -R /dev/sdc

Wann déi aktuell Disken d'MBR-Tabelle benotzen an d'Informatioun muss op Disken méi grouss wéi 2 TB transferéiert ginn, da musst Dir op neie Disken manuell GPT-Partitionéierung mat der Biosboot-Partition erstellen. Dëse Fall wäert am Deel 2 vun dësem Artikel diskutéiert ginn.

3. Dobäi Partitionen vun der neier Scheif op d'Array

Loosst eis Diskpartitionen an déi entspriechend Arrays addéieren.

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

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

Mir kontrolléieren ob d'Sektiounen dobäi sinn.

[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  

Duerno waarden mir op d'Arrays fir ze synchroniséieren.

[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>

Dir kënnt de Synchroniséierungsprozess kontinuéierlech iwwerwaachen mat dem Utility watch.

watch -n 2 cat /proc/mdstat

Parameter -n spezifizéiert op wéi eng Intervalle a Sekonnen de Kommando muss ausgefouert ginn fir de Fortschrëtt ze kontrolléieren.

Widderhuelen Schrëtt 1 - 3 fir déi nächst Ersatz Scheif.

Mir markéieren d'Partitionen vun der zweeter Disk, déi an all Array benotzt ginn, als schlecht.

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

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

Ewechzehuelen Block Apparat Partitionen /dev/sdb vun Arrays.

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

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

Nodeems mir d'Disk aus der Array geläscht hunn, wäert d'Blockapparatinformatioun esou ausgesinn.

[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  

Zoustand vun Arrays no der Ewechhuele vun Disken.

[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>

Kopie vun der MBR Partitionstabelle vun der Disk /dev/sdс op Scheif /dev/sdd.

sfdisk -d /dev/sdс | sfdisk /dev/sdd

Nodeems de Kommando ausgefouert gëtt, sollten d'Partitionen op der Disk erscheinen /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  

Füügt Diskpartitionen op Arrays.

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

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

Mir kontrolléieren ob d'Sektiounen dobäi sinn.

[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]

Duerno waarden mir op d'Arrays fir ze synchroniséieren.

[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. Installéiere GRUB op nei fiert

Fir CentOS:

grub2-install /dev/sdX

Debian/Ubuntu:

grub-install /dev/sdX

wou X - Bréif vum Blockapparat. An dësem Fall musst Dir GRUB installéieren op /dev/sdc и /dev/sdd.

6. Dateisystem Extensioun (ext4) vun der Root-Partition

Op neien Disken /dev/sdc и /dev/sdd 931.5 GB verfügbar. Wéinst der Tatsaach, datt d'Partitionstabel vu méi klengen Disken kopéiert gouf, sinn d'Partitionen /dev/sdc2 и /dev/sdd2 222.5 GB verfügbar.

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]

Et ass néideg:

  1. Verlängert Partition 2 op jiddereng vun den Disken,
  2. Erweidert Array md127,
  3. PV expandéieren (physesch Volumen),
  4. LV (logesch-Volumen) erweideren vg0-root,
  5. Erweidert de Dateiesystem.

Benotzt den Utility hu loosst eis d'Sektioun ausbauen /dev/sdc2 op de maximale Wäert. Féiert de Kommando aus parted /dev/sdc (1) a kuckt déi aktuell Partitionstabelle mam Kommando p (2).

Ersetzen méi kleng Disken duerch méi grouss Disken am Linux

Wéi Dir kënnt gesinn, endet d'Enn vun der Partition 2 op 240 GB. Loosst eis d'Partition mat dem Kommando ausbauen resizepart 2, wou 2 d'Zuel vun der Rubrik (3) ass. Mir weisen de Wäert am digitalen Format un, zum Beispill 1000 GB, oder benotzt d'Indikatioun vum Disk Share - 100%. Mir kontrolléieren nach eng Kéier datt d'Partition déi nei Gréisst (4) huet.

Widderhuelen déi uewe genannte Schrëtt fir den Disk /dev/sdd. Nodeems d'Partitionen erweidert /dev/sdc2 и /dev/sdd2 gouf gläich ze 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]

Duerno erweidere mir d'Array Md127 zum Maximum.

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

Mir kontrolléieren ob d'Array erweidert ass. Elo ass seng Gréisst 930.4 GB ginn.

[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]

Verlängerung vun der Verlängerung kierperlecht Volumen. Ier mer ausbauen, loosst eis den aktuellen Zoustand vun der PV kontrolléieren.

[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   ]

Wéi gesi kann, PV /dev/md127 benotzt 222.4 GB Plaz.

Mir erweideren PV mat de folgende Kommando.

pvresize /dev/md127

Iwwerpréift d'Resultat vun PV Expansioun.

[

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   ]

Erweiderung logesche Volume. Ier Dir erweidert, loosst eis den aktuellen Zoustand vun LV (1) kontrolléieren.

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

LV /dev/vg0/root benotzt 206.41 GB.

Mir erweideren LV mat dem folgenden Kommando (2).

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

Mir kontrolléieren déi ofgeschloss Aktioun (3).

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

Wéi Dir gesitt, no der Ausbau vun LV, gouf d'Quantitéit u besat Plaatz 914.39 GB.

Ersetzen méi kleng Disken duerch méi grouss Disken am Linux

De LV Volumen ass eropgaang (4), awer de Dateiesystem besetzt nach ëmmer 204 GB (5).

1. Loosst eis de Fichier System expandéieren.

resize2fs /dev/mapper/vg0-root

Nodeems de Kommando ausgefouert gëtt, kontrolléiere mir d'Gréisst vum Dateiesystem.

[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

D'Gréisst vum Root Dateisystem wäert op 900 GB eropgoen. Nodeems Dir d'Schrëtt ofgeschloss hutt, kënnt Dir déi al Disken ewechhuelen.

Fall 2: Ersetzen vu méi klengen Disken duerch méi grouss Disken (méi wéi 2TB)

Uerder: Ersetzen déi aktuell Disken mat gréisseren Disken (2 x 3TB) wärend d'Informatioun erhale bleift. An dësem Fall hu mir 2 x 240 GB SSD (RAID-1) Disks mat dem System installéiert an 2 x 3 TB SATA Disks op déi de System muss transferéiert ginn. Aktuell Disken benotzen d'MBR Partitionstabelle. Zënter datt nei Disken eng Kapazitéit méi wéi 2 TB hunn, musse se e GPT Dësch benotzen, well MBR net mat Disken méi grouss wéi 2 TB funktionnéiert.

Loosst eis den aktuellen Disk Layout kucken.

[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  

Loosst eis d'Partitionstabelle kucken déi op der Disk benotzt gëtt /dev/sda.

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

Op Disk /dev/sdb eng ähnlech Partitionstabell gëtt benotzt. Loosst eis de benotzten Disk Space um System iwwerpréiwen.

[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

Wéi Dir gesitt, hëlt d'Wuerzel vum Dateiesystem 204 GB. Loosst eis den aktuellen Zoustand vun der Software RAID Array kontrolléieren.

1. Installatioun vun engem GPT Partition Dësch an Scheif partitioning

Loosst eis den Disk Layout no Sektor iwwerpréiwen.

[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 der neier 3TB Disk musse mir 3 Partitionen erstellen:

  1. Sektioun bios_grub 2MiB Gréisst fir GPT BIOS Kompatibilitéit,
  2. D'Partition fir d'RAID-Array déi montéiert gëtt /boot.
  3. D'Partition fir d'RAID-Array op där et wäert sinn LV root и LV Austausch.

Installatioun vum Utility hu Equipe yum install -y parted (fir CentOS), apt install -y parted (fir Debian/Ubuntu).

Benotzen hu Loosst eis déi folgend Kommandoen ausféieren fir den Disk ze partitionéieren.

Féiert de Kommando aus parted /dev/sdc a gitt op den Disk Layout Editing Modus.

Erstellt eng GPT Partitionstabell.

(parted) mktable gpt

Schafen 1 Rubrik bios_grub Sektioun a setzen e Fändel dofir.

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

Erstellt Partition 2 a setzt e Fändel dofir. D'Partition gëtt als Block fir eng RAID-Array benotzt a montéiert /boot.

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

Mir kreéieren eng 3. Sektioun, déi och als Arrayblock benotzt gëtt an deem LVM wäert sinn.

(parted) mkpart primary 1028MiB 100% 

An dësem Fall ass et net néideg de Fändel ze setzen, awer wann néideg, kann et mat dem folgenden Kommando gesat ginn.

(parted) set 3 raid on

Mir kontrolléieren den erstallten Dësch.

(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

Mir ginn eng nei zoufälleg GUID un der Scheif.

sgdisk -G /dev/sdd

2. Ewechzehuelen Partitionen vun der éischter Scheif aus Arrays

Iwwerpréift den Zoustand vun der Array

[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>

De System benotzt 2 Arrays: md126 (Mount Punkt / Stiwwel) - besteet aus /dev/sda1 и /dev/sdb1, md127 (LVM fir swap an d'Wuerzel vum Dateiesystem) - besteet aus /dev/sda2 и /dev/sdb2.

Mir markéieren d'Partitionen vun der éischter Scheif, déi an all Array benotzt ginn, als schlecht.

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

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

Ewechzehuelen Block Apparat Partitionen /dev/sda vun Arrays.

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

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

Kontrolléiert den Zoustand vun der Array nodeems Dir d'Disk ewechgeholl huet.

[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. Dobäi Partitionen vun der neier Scheif op d'Array

De nächste Schrëtt ass fir Partitionen vun der neier Disk an d'Arrays fir d'Synchroniséierung ze addéieren. Loosst eis den aktuellen Zoustand vum Disk Layout kucken.

[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  

Sektioun /dev/sdc1 et ass bios_grub Sektioun an ass net an der Schafung vun Arrays involvéiert. D'Arrays wäerten nëmme benotzen /dev/sdc2 и /dev/sdc3. Mir addéieren dës Sektiounen an déi entspriechend Arrays.

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

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

Da waarden mir op d'Array fir ze synchroniséieren.

[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>

Disk Layout nodeems Dir Partitionen an d'Array bäigefüügt hutt.

[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. Ewechzehuelen Partitionen vun der zweeter Scheif aus Arrays

Mir markéieren d'Partitionen vun der zweeter Disk, déi an all Array benotzt ginn, als schlecht.

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

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

Ewechzehuelen Block Apparat Partitionen /dev/sda vun Arrays.

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

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

5. Kopéiert d'GPT Layout Dësch a synchroniséiert d'Array

Fir d'GPT Markuptabel ze kopéieren benotze mir den Utility sgdisk, déi am Package abegraff ass fir mat Diskpartitionen an engem GPT Dësch ze schaffen - gdisk.

Kader gdisk fir CentOS:

yum install -y gdisk

Kader gdisk fir Debian/Ubuntu:

apt install -y gdisk

ACHTUNG: Fir GPT éischt Scheif gëtt uginn op déi kopéiert de Markup, déi zweet Disk weist den Disk un vun deem kopéiert de Markup. Wann Dir d'Disks vermëscht, gëtt déi ufanks gutt Partition iwwerschriwwen an zerstéiert.

Kopéiert d'GPT Markuptabel.

sgdisk -R /dev/sdd /dev/sdc

Disk Partitionéierung nodeems en Dësch op Disk transferéiert gouf /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  

Als nächst addéiere mir jiddereng vun de Partitionen déi un Software RAID Arrays deelhuelen.

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

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

Mir waarden op d'Array fir ze synchroniséieren.

[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>

Nodeems Dir d'GPT Partition op déi zweet nei Disk kopéiert hutt, gesäit d'Partition esou aus.

[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]

Als nächst installéiert GRUB op den neien Disken.

Installatioun fir CentOS:

grub2-install /dev/sdX

Installatioun fir Debian/Ubuntu:

grub-install /dev/sdX

wou X - Fuert Bréif, an eisem Fall fiert /dev/sdc и /dev/sdd.

Mir aktualiséieren Informatioun iwwer d'Array.

Fir CentOS:

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

Debian/Ubuntu:

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

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

Update vum Bild initrd:
Fir CentOS:

dracut -f -v --regenerate-all

Debian/Ubuntu:

update-initramfs -u -k all

Mir aktualiséieren d'GRUB Konfiguratioun.

Fir CentOS:

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

Debian/Ubuntu:

update-grub

Nodeems Dir d'Schrëtt ofgeschloss hutt, kënnen déi al Disken ewechgeholl ginn.

6. Dateisystem Extensioun (ext4) vun der Root-Partition

Disk Partitioning virun Dateisystem Expansioun no der Migratioun vum System op 2 x 3TB Disks (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]

Elo Rubriken /dev/sdc3 и /dev/sdd3 besetzen 2.7 TB. Well mir en neien Disk Layout mat engem GPT Dësch erstallt hunn, gouf d'Gréisst vun der Partition 3 direkt op de maximal méiglechen Disk Space gesat; an dësem Fall ass et net néideg d'Partition auszebauen.

Et ass néideg:

  1. Erweidert Array md126,
  2. PV expandéieren (physesch Volumen),
  3. LV (logesch-Volumen) erweideren vg0-root,
  4. Erweidert de Dateiesystem.

1. D'Array erweideren md126 zum Maximum.

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

No Array Expansioun md126 d'Gréisst vum besat Raum ass op 2.7 TB eropgaang.

[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]

Erweiderung kierperlecht Volumen.

Ier Dir erweidert, kontrolléiert den aktuelle Wäert vum besat Raum PV /dev/md126.

[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize   PFree
  /dev/md126 vg0 lvm2 a--  222,40g    0 

Mir erweideren PV mat de folgende Kommando.

pvresize /dev/md126

Mir kontrolléieren déi ofgeschloss Aktioun.

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

Erweiderung logesch Volumen vg0-root.

Nom Ausbau PV, loosse mer de besat Raum VG kontrolléieren.

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

Loosst eis d'Plaz kucken, déi vum LV besat ass.

[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            

De vg0-Root Volumen besetzt 206.41 GB.

Mir erweideren LV op de maximalen Disk Space.

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

Kontrolléieren der LV Plaz no Expansioun.

[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

Erweiderung vum Dateiesystem (ext4).

Loosst eis déi aktuell Gréisst vum Dateiesystem iwwerpréiwen.

[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

De Volume /dev/mapper/vg0-root besetzt 204 GB no LV Expansioun.

Erweiderung vum Dateiesystem.

resize2fs /dev/mapper/vg0-root 

Iwwerpréift d'Gréisst vum Dateiesystem nodeems se erweidert hunn.

[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

D'Dateisystemgréisst gouf erhéicht fir de ganze Volumen ze decken.

Source: will.com

Setzt e Commentaire