Pienten levyjen korvaaminen suuremmilla levyillä Linuxissa

Hei kaikki. Uuden kurssiryhmän alkamisen aattona "Linux-järjestelmänvalvoja" Julkaisemme hyödyllistä materiaalia, jonka on kirjoittanut opiskelijamme, sekä kurssin mentori, teknisen tuen asiantuntija REG.RU:n yritystuotteille - Roman Travin.

Tässä artikkelissa tarkastellaan kahta tapausta, joissa levyt vaihdetaan ja tiedot siirretään uusille levyille, joiden kapasiteetti on suurempi, taulukon ja tiedostojärjestelmän laajentamisen myötä. Ensimmäinen tapaus koskee levyjen korvaamista samalla MBR/MBR- tai GPT/GPT-osiolla, toinen tapaus koskee levyjen korvaamista MBR-osiolla levyillä, joiden kapasiteetti on yli 2 TB ja joille sinun on asennettava GPT-osio, jossa on biosboot-osio. Molemmissa tapauksissa levyt, joille siirrämme tiedot, on jo asennettu palvelimelle. Pääosion tiedostojärjestelmä on ext2.

Tapaus 1: Pienten levyjen vaihtaminen suurempiin levyihin (jopa 2 Tt)

tavoite: Korvaa nykyiset levyt suurempiin levyihin (jopa 2 TB) tiedonsiirrolla. Tässä tapauksessa meillä on 2 x 240 Gt SSD (RAID-1) -levyä, joissa järjestelmä on asennettu, ja 2 x 1 TB SATA-levyä, joille järjestelmä on siirrettävä.

Katsotaanpa nykyistä levyasettelua.

[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  

Tarkastetaan tällä hetkellä käytössä oleva tiedostojärjestelmätila.

[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

Tiedostojärjestelmän koko ennen levyjen vaihtoa on 204 Gt, käytössä on 2 md126-ohjelmistotaulukkoa, joka on asennettu /boot и md127, jota käytetään mm fyysinen tilavuus VG-ryhmälle vg0.

1. Levyjen osioiden poistaminen taulukoista

Tarkistetaan taulukon tilaa

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

Järjestelmä käyttää 2 taulukkoa: md126 (liitoskohta /boot) - koostuu osasta /dev/sda1 и /dev/sdb1, md127 (LVM for vaihtaa ja tiedostojärjestelmän juuri) - koostuu /dev/sda2 и /dev/sdb2.

Merkitsemme kussakin taulukossa käytetyt ensimmäisen levyn osiot huonoiksi.

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

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

Poistamme /dev/sda-lohkon laiteosiot taulukoista.

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

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

Kun olemme poistaneet levyn ryhmästä, lohkolaitteen tiedot näyttävät tältä.

[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  

Taulukon tila levyjen poistamisen jälkeen.

[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. Kopioi osiotaulukko uudelle levylle

Voit tarkistaa käytetyn osiotaulukon levyllä seuraavalla komennolla.

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

MBR:n tulos olisi:

Disk label type: dos

GPT:lle:

Disk label type: gpt

Osiotaulukon kopioiminen MBR:lle:

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

Tässä joukkueessa ensimmäinen asema näkyy с joista merkintä kopioidaan, toinen - missä kopio.

VAROITUS: GPT:lle ensimmäinen asema näkyy jonka päällä kopioi merkinnät, toinen levy ilmaisee levyn josta kopioi merkintä. Jos sekoitat levyt, alun perin hyvä osio korvataan ja tuhoutuu.

GPT:n asettelutaulukon kopioiminen:

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

Määritä seuraavaksi levylle satunnainen UUID (GPT:lle).


sgdisk -G /dev/sdc

Kun komento on suoritettu, osioiden pitäisi ilmestyä levylle /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  

Jos toiminnon suorittamisen jälkeen järjestelmän osiot levyllä /dev/sdc päättämätön, suoritamme komennon lukeaksesi osiotaulukon uudelleen.

sfdisk -R /dev/sdc

Jos nykyiset levyt käyttävät MBR-taulukkoa ja tiedot on siirrettävä yli 2 TB:n levyille, uusille levyille on luotava manuaalisesti GPT-osio käyttämällä biosboot-osiota. Tätä tapausta käsitellään tämän artikkelin osassa 2.

3. Uuden levyn osioiden lisääminen taulukkoon

Lisätään levyosioita vastaaviin taulukoihin.

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

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

Tarkistamme, että osiot on lisätty.

[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  

Tämän jälkeen odotamme taulukoiden synkronointia.

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

Voit seurata synkronointiprosessia jatkuvasti apuohjelman avulla watch.

watch -n 2 cat /proc/mdstat

Parametri -n määrittää, millä aikaväleillä sekunneissa komento on suoritettava edistymisen tarkistamiseksi.

Toista vaiheet 1 - 3 seuraavalle vaihtolevylle.

Merkitsemme kussakin taulukossa käytetyt toisen levyn osiot huonoiksi.

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

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

Estolaitteen osioiden poistaminen /dev/sdb taulukoista.

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

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

Kun olemme poistaneet levyn ryhmästä, lohkolaitteen tiedot näyttävät tältä.

[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  

Taulukon tila levyjen poistamisen jälkeen.

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

MBR-osiotaulukon kopioiminen levyltä /dev/sdс levylle /dev/sdd.

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

Kun komento on suoritettu, osioiden pitäisi ilmestyä levylle /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  

Levyosioita lisätään taulukoihin.

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

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

Tarkistamme, että osiot on lisätty.

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

Tämän jälkeen odotamme taulukoiden synkronointia.

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

md127 : active raid1 sdd2[3] sdc2[2]
      233206784 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.5% (1200000/233206784) finish=35.4min speed=109090K/sec
      bitmap: 2/2 pages [8KB], 65536KB chunk

unused devices: <none>

5. GRUB:n asentaminen uusiin asemiin

CentOS:lle:

grub2-install /dev/sdX

Debian/Ubuntu:

grub-install /dev/sdX

missä X — lohkolaitteen kirjain. Tässä tapauksessa sinun on asennettava GRUB /dev/sdc и /dev/sdd.

6. Pääosion tiedostojärjestelmätunniste (ext4).

Uusilla levyillä /dev/sdc и /dev/sdd 931.5 Gt käytettävissä. Koska osiotaulukko kopioitiin pienemmiltä levyiltä, ​​osiot /dev/sdc2 и /dev/sdd2 222.5 Gt käytettävissä.

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]

On tarpeen:

  1. Laajenna osio 2 jokaiselle levylle,
  2. Laajenna joukko md127,
  3. Laajenna PV (fyysinen tilavuus),
  4. Laajenna LV (looginen äänenvoimakkuus) vg0-root,
  5. Laajenna tiedostojärjestelmä.

Apuohjelman käyttäminen erosimme laajennetaan osiota /dev/sdc2 maksimiarvoon. Suorita komento parted /dev/sdc (1) ja tarkastele nykyistä osiotaulukkoa komennolla p (2).

Pienten levyjen korvaaminen suuremmilla levyillä Linuxissa

Kuten näet, osion 2 lopussa on 240 Gt. Laajennamme osiota komennolla resizepart 2, jossa 2 on osan (3) numero. Ilmoitamme arvon digitaalisessa muodossa, esimerkiksi 1000 Gt, tai käytämme levyosuuden ilmaisua - 100%. Tarkistamme uudelleen, että osion koko on uusi (4).

Toista yllä olevat vaiheet levylle /dev/sdd. Osioiden laajentamisen jälkeen /dev/sdc2 и /dev/sdd2 tuli 930.5 Gt:ksi.

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

Tämän jälkeen laajennamme joukkoa md127 maksimissaan.

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

Tarkistamme, että joukko on laajentunut. Nyt sen kooksi on tullut 930.4 Gt.

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

Laajennuksen pidentäminen fyysinen tilavuus. Ennen laajentamista tarkistetaan PV:n nykyinen tila.

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

Kuten näkyy, PV /dev/md127 käyttää 222.4 Gt tilaa.

Laajennamme PV:tä seuraavalla komennolla.

pvresize /dev/md127

PV-laajennuksen tuloksen tarkistaminen.

[

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   ]

Laajenee looginen äänenvoimakkuus. Ennen laajentamista tarkistetaan LV:n (1) nykyinen tila.

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

LV /dev/vg0/root käyttää 206.41 Gt.

Laajennamme LV seuraavalla komennolla (2).

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

Tarkistamme suoritetun toiminnon (3).

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

Kuten näette, LV:n laajentamisen jälkeen varatun levytilan määräksi tuli 914.39 Gt.

Pienten levyjen korvaaminen suuremmilla levyillä Linuxissa

LV-tilavuus on kasvanut (4), mutta tiedostojärjestelmä vie edelleen 204 Gt (5).

1. Laajennamme tiedostojärjestelmää.

resize2fs /dev/mapper/vg0-root

Kun komento on suoritettu, tarkistamme tiedostojärjestelmän koon.

[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

Juuritiedostojärjestelmän koko kasvaa 900 Gt:iin. Kun olet suorittanut vaiheet, voit poistaa vanhat levyt.

Tapaus 2: Pienten levyjen vaihtaminen suurempiin levyihin (yli 2 Tt)

asetus: Vaihda nykyiset levyt suurempiin levyihin (2 x 3TB) säilyttäen samalla tiedot. Tässä tapauksessa meillä on 2 x 240 Gt SSD (RAID-1) -levyä, joissa järjestelmä on asennettu, ja 2 x 3 TB SATA-levyä, joille järjestelmä on siirrettävä. Nykyiset levyt käyttävät MBR-osiotaulukkoa. Koska uusien levyjen kapasiteetti on suurempi kuin 2 Tt, niissä on käytettävä GPT-taulukkoa, koska MBR ei toimi yli 2 Tt:n levyjen kanssa.

Katsotaanpa nykyistä levyasettelua.

[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  

Tarkastetaan levyllä käytetty osiotaulukko /dev/sda.

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

Levyllä /dev/sdb käytetään samanlaista osiotaulukkoa. Tarkastetaan järjestelmän käytetty levytila.

[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

Kuten näette, tiedostojärjestelmän juuri vie 204 Gt. Tarkastetaan ohjelmiston RAID-ryhmän nykyinen tila.

1. Asenna GPT-osiotaulukko ja levyosiointi

Tarkastetaan levyasettelu sektoreittain.

[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

Uudelle 3 Tt:n levylle meidän on luotava 3 osiota:

  1. jakso bios_grub 2 MB koko GPT BIOS -yhteensopivuutta varten,
  2. Osio RAID-ryhmälle, johon liitetään /boot.
  3. Osio RAID-ryhmälle, jossa se tulee olemaan LV-juuri и LV vaihto.

Apuohjelman asentaminen erosimme joukkue yum install -y parted (CentOS:lle), apt install -y parted (Debian/Ubuntu).

Käyttäminen erosimme Suoritetaan seuraavat komennot levyn osiointiin.

Suorita komento parted /dev/sdc ja siirry levyasettelun muokkaustilaan.

Luo GPT-osiotaulukko.

(parted) mktable gpt

Luo 1 osio bios_grub ja aseta sille lippu.

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

Luo osio 2 ja aseta sille lippu. Osiota käytetään RAID-ryhmän lohkona ja se liitetään sisään /boot.

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

Luomme 3. osan, jota käytetään myös taulukkolohkona, jossa LVM sijoitetaan.

(parted) mkpart primary 1028MiB 100% 

Tässä tapauksessa lippua ei tarvitse asettaa, mutta tarvittaessa se voidaan asettaa seuraavalla komennolla.

(parted) set 3 raid on

Tarkistamme luodun taulukon.

(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

Määritämme levylle uuden satunnaisen GUID:n.

sgdisk -G /dev/sdd

2. Ensimmäisen levyn osioiden poistaminen taulukoista

Tarkistetaan taulukon tilaa

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

Järjestelmä käyttää 2 taulukkoa: md126 (liitoskohta / käynnistys) - koostuu /dev/sda1 и /dev/sdb1, md127 (LVM for swap ja tiedostojärjestelmän juuri) - koostuu /dev/sda2 и /dev/sdb2.

Merkitsemme kussakin taulukossa käytetyt ensimmäisen levyn osiot huonoiksi.

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

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

Estolaitteen osioiden poistaminen /dev/sda taulukoista.

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

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

Matriisin tilan tarkistaminen levyn poistamisen jälkeen.

[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. Uuden levyn osioiden lisääminen taulukkoon

Seuraava vaihe on lisätä uuden levyn osiot taulukoihin synkronointia varten. Katsotaanpa levyasettelun nykyistä tilaa.

[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  

jakso /dev/sdc1 on bios_grub -osiossa eikä se ole mukana taulukoiden luomisessa. Taulukot käyttävät vain /dev/sdc2 и /dev/sdc3. Lisäämme nämä osat vastaaviin taulukoihin.

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

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

Sitten odotamme taulukon synkronointia.

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

Levyn osiointi osioiden lisäämisen jälkeen.

[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. Toisen levyn osioiden poistaminen taulukoista

Merkitsemme kussakin taulukossa käytetyt toisen levyn osiot huonoiksi.

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

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

Estolaitteen osioiden poistaminen /dev/sda taulukoista.

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

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

5. Kopioi GPT-asettelutaulukko ja synkronoi taulukko

Käytämme apuohjelmaa GPT-merkintätaulukon kopioimiseen sgdisk, joka sisältyy pakkaukseen levyosioiden ja GPT-taulukon kanssa työskentelemiseen - gdisk.

Asennus gdisk CentOS:lle:

yum install -y gdisk

Asennus gdisk Debian/Ubuntu:

apt install -y gdisk

VAROITUS: GPT:lle ensimmäinen asema näkyy jonka päällä kopioi merkintä, toinen levy ilmaisee levyn josta kopioi merkintä. Jos sekoitat levyt, alun perin hyvä osio korvataan ja tuhoutuu.

Kopioi GPT-merkintätaulukko.

sgdisk -R /dev/sdd /dev/sdc

Levyn osiointi taulukon siirtämisen jälkeen levylle /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  

Seuraavaksi lisäämme kaikki ohjelmiston RAID-ryhmiin osallistuvat osiot.

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

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

Odotamme taulukon synkronointia.

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

Kun GPT-osio on kopioitu toiselle uudelle levylle, osio näyttää tältä.

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

Asenna seuraavaksi GRUB uusille levyille.

CentOS:n asennus:

grub2-install /dev/sdX

Debianin/Ubuntun asennus:

grub-install /dev/sdX

missä X — asemakirjain, meidän tapauksessamme asemat /dev/sdc и /dev/sdd.

Päivitämme tietoja taulukosta.

CentOS:lle:

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

Kuvaa päivitetään initrd:
CentOS:lle:

dracut -f -v --regenerate-all

Debian/Ubuntu:

update-initramfs -u -k all

Päivitämme GRUB-kokoonpanon.

CentOS:lle:

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

Debian/Ubuntu:

update-grub

Kun vaiheet on suoritettu, vanhat levyt voidaan poistaa.

6. Pääosion tiedostojärjestelmätunniste (ext4).

Levyn osiointi ennen tiedostojärjestelmän laajentamista, kun järjestelmä on siirretty 2 x 3 Tt:n levyille (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]

Nyt jaksot /dev/sdc3 и /dev/sdd3 vievät 2.7 TB. Koska loimme uuden levyasettelun GPT-taulukolla, osion 3 koko asetettiin välittömästi mahdollisimman suureksi levytilaksi, joten osiota ei tässä tapauksessa tarvitse laajentaa.

On tarpeen:

  1. Laajenna joukko md126,
  2. Laajenna PV (fyysinen tilavuus),
  3. Laajenna LV (looginen äänenvoimakkuus) vg0-root,
  4. Laajenna tiedostojärjestelmä.

1. Laajenna joukkoa md126 maksimissaan.

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

Taulukon laajennuksen jälkeen md126 varatun tilan koko on kasvanut 2.7 TB:iin.

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

Laajenee fyysinen tilavuus.

Ennen laajentamista tarkista varatun tilan nykyinen arvo PV /dev/md126.

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

Laajennamme PV:tä seuraavalla komennolla.

pvresize /dev/md126

Tarkistamme suoritetun toimenpiteen.

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

Laajenee looginen tilavuus vg0-root.

PV:n laajentamisen jälkeen tarkistetaan varatun tilan VG.

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

Tarkastetaan LV:n käyttämä tila.

[root@localhost ~]# lvs
  LV   VG  Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0 -wi-ao---- <206,41g                                                    
  swap vg0 -wi-ao----  <16,00g            

Vg0-root-taltio vie 206.41 Gt.

Laajennamme LV:n levytilaa maksimissaan.

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

LV-tilan tarkistus laajennuksen jälkeen.

[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

Tiedostojärjestelmän laajentaminen (ext4).

Tarkastetaan tiedostojärjestelmän nykyinen koko.

[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

Taltio /dev/mapper/vg0-root vie 204 Gt LV-laajennuksen jälkeen.

Tiedostojärjestelmän laajentaminen.

resize2fs /dev/mapper/vg0-root 

Tiedostojärjestelmän koon tarkistaminen sen laajentamisen jälkeen.

[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

Tiedostojärjestelmän kokoa on lisätty kattamaan koko asema.

Lähde: will.com

Lisää kommentti