Výmena menších diskov za väčšie v Linuxe

Ahojte všetci. V predvečer začiatku novej skupiny kurzov "Správca Linuxu" Zverejňujeme užitočný materiál, ktorý napísal náš študent, ako aj mentor kurzu, špecialista technickej podpory pre firemné produkty REG.RU - Roman Travin.

Tento článok sa bude zaoberať 2 prípadmi výmeny diskov a prenosu informácií na nové disky s väčšou kapacitou s ďalším rozšírením poľa a súborového systému. Prvý prípad sa bude týkať výmeny diskov s rovnakým delením MBR/MBR alebo GPT/GPT, druhý prípad výmeny diskov s delením MBR za disky s kapacitou nad 2 TB, na ktoré bude potrebné nainštalovať oddiel GPT s oddielom biosboot. V oboch prípadoch sú disky, na ktoré prenášame dáta, už nainštalované na serveri. Súborový systém používaný pre koreňový oddiel je ext4.

Prípad 1: Výmena menších diskov za väčšie disky (do 2 TB)

cieľ: Vymeňte súčasné disky za väčšie disky (do 2 TB) s prenosom informácií. V tomto prípade tu máme 2 x 240 GB SSD (RAID-1) disky s nainštalovaným systémom a 2 x 1 TB SATA disky, na ktoré je potrebné systém preniesť.

Pozrime sa na aktuálne rozloženie disku.

[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  

Skontrolujeme aktuálne používaný priestor v súborovom systéme.

[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

Veľkosť súborového systému pred výmenou diskov je 204 GB, použité sú 2 softvérové ​​polia md126, ktoré sa montujú v /boot и md127, ktorý sa používa ako fyzický objem pre skupinu VG VG0.

1. Odstránenie diskových oddielov z polí

Kontrola stavu poľa

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

Systém používa 2 polia: md126 (bod pripojenia /boot) - pozostáva z časti /dev/sda1 и /dev/sdb1, md127 (LVM pre výmena a koreňový adresár súborového systému) – pozostáva z /dev/sda2 и /dev/sdb2.

Oddiely prvého disku, ktoré sú použité v každom poli, označíme ako zlé.

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

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

Z polí odstránime oddiely blokových zariadení /dev/sda.

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

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

Po odstránení disku z poľa budú informácie o blokovom zariadení vyzerať takto.

[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  

Stav polí po odstránení diskov.

[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. Skopírujte tabuľku oblastí na nový disk

Pomocou nasledujúceho príkazu môžete skontrolovať použitú tabuľku oddielov na disku.

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

Výstup pre MBR by bol:

Disk label type: dos

pre GPT:

Disk label type: gpt

Kopírovanie tabuľky oddielov pre MBR:

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

V tomto tíme prvý je indikovaný pohon с z toho označenie sa skopíruje, druhý - kde kopírovať.

UPOZORNENIE: Pre značky GPT prvý je indikovaný pohon na ktorých kopírovať označenie druhý disk označuje disk z ktorých kopírovať označenie. Ak zamiešate disky, pôvodne dobrý oddiel bude prepísaný a zničený.

Kopírovanie tabuľky rozloženia pre značku GPT:

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

Ďalej priraďte disku náhodné UUID (pre GPT).


sgdisk -G /dev/sdc

Po vykonaní príkazu by sa oddiely mali objaviť na disku /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  

Ak sa po vykonaní akcie oddiely v systéme na disku /dev/sdc nerozhodnutý, potom vykonáme príkaz na opätovné prečítanie tabuľky oddielov.

sfdisk -R /dev/sdc

Ak aktuálne disky používajú tabuľku MBR a informácie je potrebné preniesť na disky väčšie ako 2 TB, potom na nových diskoch budete musieť manuálne vytvoriť oddiel GPT pomocou oddielu biosboot. Tento prípad bude diskutovaný v časti 2 tohto článku.

3. Pridanie partícií nového disku do poľa

Pridajme oddiely disku k príslušným poliam.

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

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

Skontrolujeme, či boli pridané sekcie.

[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  

Potom počkáme, kým sa polia zosynchronizujú.

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

Pomocou pomôcky môžete nepretržite sledovať proces synchronizácie watch.

watch -n 2 cat /proc/mdstat

Parameter -n určuje, v akých intervaloch v sekundách sa musí príkaz vykonať, aby sa skontroloval priebeh.

Opakujte kroky 1 - 3 pre ďalší výmenný disk.

Oddiely druhého disku, ktoré sú použité v každom poli, označíme ako zlé.

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

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

Odstránenie oddielov blokového zariadenia /dev/sdb z polí.

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

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

Po odstránení disku z poľa budú informácie o blokovom zariadení vyzerať takto.

[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  

Stav polí po odstránení diskov.

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

Kopírovanie tabuľky oblastí MBR z disku /dev/sdс na disk /dev/sdd.

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

Po vykonaní príkazu by sa oddiely mali objaviť na disku /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  

Pridávanie diskových oddielov do polí.

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

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

Skontrolujeme, či boli pridané sekcie.

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

Potom počkáme, kým sa polia zosynchronizujú.

[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. Inštalácia GRUB na nové disky

Pre CentOS:

grub2-install /dev/sdX

Pre Debian/Ubuntu:

grub-install /dev/sdX

kde X — písmeno blokového zariadenia. V tomto prípade musíte nainštalovať GRUB /dev/sdc и /dev/sdd.

6. Prípona systému súborov (ext4) koreňového oddielu

Na nových diskoch /dev/sdc и /dev/sdd K dispozícii je 931.5 GB. Vzhľadom na to, že tabuľka oddielov bola skopírovaná z menších diskov, oddiely /dev/sdc2 и /dev/sdd2 K dispozícii je 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]

Je potrebné:

  1. Rozšírte oddiel 2 na každom z diskov,
  2. Rozbaliť pole md127,
  3. Rozbaliť PV (fyzický objem),
  4. Rozbaliť LV (logický zväzok) vg0-root,
  5. Rozbaľte systém súborov.

Používanie pomôcky rozlúčili rozšírme sekciu /dev/sdc2 na maximálnu hodnotu. Vykonajte príkaz parted /dev/sdc (1) a pomocou príkazu zobrazte aktuálnu tabuľku oddielov p (2).

Výmena menších diskov za väčšie v Linuxe

Ako vidíte, koniec oddielu 2 končí na 240 GB. Rozšírime oddiel pomocou príkazu resizepart 2, kde 2 je číslo sekcie (3). Hodnotu uvádzame v digitálnom formáte, napríklad 1000 GB, alebo použijeme označenie zdieľania disku - 100 %. Znova skontrolujeme, či má oddiel novú veľkosť (4).

Opakujte vyššie uvedené kroky pre disk /dev/sdd. Po rozšírení oddielov /dev/sdc2 и /dev/sdd2 sa stal rovným 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]

Potom pole rozšírime md127 na maximum.

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

Skontrolujeme, či sa pole rozšírilo. Teraz sa jeho veľkosť stala 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]

Predĺženie rozšírenia fyzický objem. Pred rozšírením si skontrolujme aktuálny stav 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   ]

Ako vidno, PV /dev/md127 využíva 222.4 GB priestoru.

PV rozšírime nasledujúcim príkazom.

pvresize /dev/md127

Kontrola výsledku expanzie FV.

[

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   ]

Rozširujúce sa logický objem. Pred rozšírením si skontrolujme aktuálny stav NN (1).

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

LV /dev/vg0/root využíva 206.41 GB.

LV rozšírime nasledujúcim príkazom (2).

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

Skontrolujeme dokončenú akciu (3).

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

Ako vidíte, po rozšírení LV sa množstvo obsadeného miesta na disku stalo 914.39 GB.

Výmena menších diskov za väčšie v Linuxe

Objem LV sa zvýšil (4), ale súborový systém stále zaberá 204 GB (5).

1. Rozšírime súborový systém.

resize2fs /dev/mapper/vg0-root

Po vykonaní príkazu skontrolujeme veľkosť súborového systému.

[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

Veľkosť koreňového súborového systému sa zvýši na 900 GB. Po dokončení krokov môžete staré disky odstrániť.

Prípad 2: Výmena menších diskov za väčšie disky (viac ako 2 TB)

Cvičenie: Vymeňte súčasné disky za väčšie disky (2 x 3 TB) pri zachovaní informácií. V tomto prípade tu máme 2 x 240 GB SSD (RAID-1) disky s nainštalovaným systémom a 2 x 3 TB SATA disky, na ktoré je potrebné systém preniesť. Aktuálne disky používajú tabuľku oddielov MBR. Keďže nové disky majú kapacitu väčšiu ako 2 TB, budú musieť použiť tabuľku GPT, pretože MBR nemôže pracovať s diskami väčšími ako 2 TB.

Pozrime sa na aktuálne rozloženie disku.

[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  

Pozrime sa na tabuľku oddielov použitú na disku /dev/sda.

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

Na disku /dev/sdb používa sa podobná tabuľka oddielov. Skontrolujeme využité miesto na disku v systéme.

[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

Ako vidíte, koreňový adresár súborového systému zaberá 204 GB. Poďme skontrolovať aktuálny stav softvérového poľa RAID.

1. Inštalácia tabuľky oddielov GPT a rozdelenia disku

Skontrolujeme rozloženie disku podľa sektorov.

[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

Na novom 3TB disku budeme musieť vytvoriť 3 partície:

  1. časť bios_grub Veľkosť 2 MiB pre kompatibilitu GPT BIOS,
  2. Oddiel pre pole RAID, do ktorého sa pripojí /boot.
  3. Oddiel pre pole RAID, na ktorom bude Koreň LV и Výmena LV.

Inštalácia pomôcky rozlúčili tímom yum install -y parted (pre CentOS), apt install -y parted (pre Debian/Ubuntu).

použitím rozlúčili Spustite nasledujúce príkazy na rozdelenie disku.

Vykonajte príkaz parted /dev/sdc a prejdite do režimu úpravy rozloženia disku.

Vytvorte tabuľku oddielov GPT.

(parted) mktable gpt

Vytvorte 1 sekciu bios_grub sekciu a nastavte pre ňu príznak.

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

Vytvorte oddiel 2 a nastavte preň príznak. Oddiel sa použije ako blok pre pole RAID a pripojí sa /boot.

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

Vytvoríme 3. sekciu, ktorá bude zároveň použitá ako blok poľa, v ktorom bude umiestnený LVM.

(parted) mkpart primary 1028MiB 100% 

V tomto prípade nie je potrebné nastaviť príznak, ale v prípade potreby ho možno nastaviť nasledujúcim príkazom.

(parted) set 3 raid on

Skontrolujeme vytvorenú tabuľku.

(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

Disk pridelíme nový náhodný GUID.

sgdisk -G /dev/sdd

2. Odstránenie partícií prvého disku z polí

Kontrola stavu poľa

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

Systém používa 2 polia: md126 (pripojovací bod /boot) - pozostáva z /dev/sda1 и /dev/sdb1, md127 (LVM pre swap a koreňový adresár súborového systému) – pozostáva z /dev/sda2 и /dev/sdb2.

Oddiely prvého disku, ktoré sú použité v každom poli, označíme ako zlé.

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

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

Odstránenie oddielov blokového zariadenia /dev/sda z polí.

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

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

Kontrola stavu poľa po vybratí disku.

[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. Pridanie partícií nového disku do poľa

Ďalším krokom je pridanie partícií nového disku do polí na synchronizáciu. Pozrime sa na aktuálny stav rozloženia disku.

[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  

časť /dev/sdc1 je bios_grub sekcie a nepodieľa sa na vytváraní polí. Polia budú používať iba /dev/sdc2 и /dev/sdc3. Tieto sekcie pridáme do zodpovedajúcich polí.

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

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

Potom počkáme, kým sa pole zosynchronizuje.

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

Rozloženie disku po pridaní partícií do poľa.

[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. Odstránenie partícií druhého disku z polí

Oddiely druhého disku, ktoré sú použité v každom poli, označíme ako zlé.

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

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

Odstránenie oddielov blokového zariadenia /dev/sda z polí.

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

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

5. Skopírujte tabuľku rozloženia GPT a synchronizujte pole

Na skopírovanie tabuľky značiek GPT použijeme nástroj sgdisk, ktorý je súčasťou balenia pre prácu s diskovými oddielmi a tabuľkou GPT - gdisk.

Inštalácia gdisk pre CentOS:

yum install -y gdisk

Inštalácia gdisk pre Debian/Ubuntu:

apt install -y gdisk

UPOZORNENIE: Pre značky GPT prvý je indikovaný pohon na ktorých skopírujte označenie druhý disk označuje disk z ktorých skopírujte označenie. Ak zamiešate disky, pôvodne dobrý oddiel bude prepísaný a zničený.

Skopírujte tabuľku značiek GPT.

sgdisk -R /dev/sdd /dev/sdc

Rozdelenie disku po prenose tabuľky na 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  

Ďalej pridáme každú z partícií zúčastňujúcich sa na softvérových poliach RAID.

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

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

Čakáme na synchronizáciu poľa.

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

Po skopírovaní GPT partície na druhý nový disk bude partícia vyzerať takto.

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

Ďalej nainštalujte GRUB na nové disky.

Inštalácia pre CentOS:

grub2-install /dev/sdX

Inštalácia pre Debian/Ubuntu:

grub-install /dev/sdX

kde X — písmeno jednotky, v našom prípade jednotky /dev/sdc и /dev/sdd.

Aktualizujeme informácie o poli.

Pre CentOS:

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

Pre Debian/Ubuntu:

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

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

Aktualizácia obrázka initrd:
Pre CentOS:

dracut -f -v --regenerate-all

Pre Debian/Ubuntu:

update-initramfs -u -k all

Aktualizujeme konfiguráciu GRUB.

Pre CentOS:

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

Pre Debian/Ubuntu:

update-grub

Po dokončení krokov je možné staré disky odstrániť.

6. Prípona systému súborov (ext4) koreňového oddielu

Rozdelenie disku pred rozšírením súborového systému po migrácii systému na 2 x 3TB disky (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]

Teraz sekcie /dev/sdc3 и /dev/sdd3 zaberajú 2.7 TB. Keďže sme vytvorili nové rozloženie disku s tabuľkou GPT, veľkosť partície 3 bola okamžite nastavená na maximálne možné miesto na disku, v tomto prípade nie je potrebné oblasť rozširovať.

Je potrebné:

  1. Rozbaliť pole md126,
  2. Rozbaliť PV (fyzický objem),
  3. Rozbaliť LV (logický zväzok) vg0-root,
  4. Rozbaľte systém súborov.

1. Rozbaľte pole md126 na maximum.

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

Po rozšírení poľa md126 veľkosť obsadeného priestoru narástla na 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]

Rozširujúce sa fyzický objem.

Pred rozšírením skontrolujte aktuálnu hodnotu obsadeného priestoru PV /dev/md126.

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

PV rozšírime nasledujúcim príkazom.

pvresize /dev/md126

Skontrolujeme vykonanú akciu.

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

Rozširujúce sa logický zväzok vg0-root.

Po rozšírení PV skontrolujme obsadené miesto VG.

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

Skontrolujeme priestor, ktorý zaberá 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            

Koreňový zväzok vg0 zaberá 206.41 GB.

Rozšírime LV na maximum miesta na disku.

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

Kontrola priestoru NN po rozšírení.

[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

Rozšírenie systému súborov (ext4).

Skontrolujeme aktuálnu veľkosť súborového systému.

[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

Zväzok /dev/mapper/vg0-root zaberá po rozšírení LV 204 GB.

Rozšírenie systému súborov.

resize2fs /dev/mapper/vg0-root 

Kontrola veľkosti súborového systému po jeho rozšírení.

[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

Veľkosť systému súborov bola zväčšená, aby pokryla celý zväzok.

Zdroj: hab.com

Pridať komentár