Zëvendësimi i disqeve më të vegjël me disqe më të mëdhenj në Linux

Pershendetje te gjitheve. Në prag të fillimit të një grupi të ri kursi "Administrator Linux" Ne po publikojmë materiale të dobishme të shkruara nga studenti ynë, si dhe mentor i kursit, specialist i mbështetjes teknike për produktet e korporatës REG.RU - Roman Travin.

Ky artikull do të shqyrtojë 2 raste të zëvendësimit të disqeve dhe transferimit të informacionit në disqe të rinj me kapacitet më të madh me zgjerimin e mëtejshëm të grupit dhe sistemit të skedarëve. Rasti i parë do të ketë të bëjë me zëvendësimin e disqeve me të njëjtin ndarje MBR/MBR ose GPT/GPT, rasti i dytë ka të bëjë me zëvendësimin e disqeve me ndarje MBR me disqe me kapacitet më shumë se 2 TB, në të cilat do të duhet të instaloni një ndarje GPT me një ndarje biosboot. Në të dyja rastet, disqet në të cilat transferojmë të dhënat janë instaluar tashmë në server. Sistemi i skedarëve i përdorur për ndarjen rrënjë është ext4.

Rasti 1: Zëvendësimi i disqeve më të vegjël me disqe më të mëdhenj (deri në 2 TB)

Një detyrë: Zëvendësoni disqet aktuale me disqe më të mëdhenj (deri në 2 TB) me transferimin e informacionit. Në këtë rast, kemi 2 x 240 GB disqe SSD (RAID-1) me sistemin e instaluar dhe 2 x 1 TB disqe SATA në të cilët duhet të transferohet sistemi.

Le të shohim paraqitjen aktuale të diskut.

[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  

Le të kontrollojmë hapësirën e përdorur aktualisht të sistemit të skedarëve.

[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

Madhësia e sistemit të skedarëve para zëvendësimit të disqeve është 204 GB, përdoren 2 vargje softuerësh md126, të cilat janë montuar në /boot и md127, e cila përdoret si vëllimi fizik për grupin VG vg0.

1. Heqja e ndarjeve të diskut nga grupet

Kontrollimi i gjendjes së grupit

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

Sistemi përdor 2 vargje: md126 (pika e montimit /boot) - përbëhet nga një seksion /dev/sda1 и /dev/sdb1, md127 (LVM për bie në ujdi dhe rrënja e sistemit të skedarëve) - përbëhet nga /dev/sda2 и /dev/sdb2.

I shënojmë ndarjet e diskut të parë që përdoren në çdo grup si të këqija.

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

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

Ne heqim ndarjet e pajisjes së bllokut /dev/sda nga vargjet.

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

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

Pasi ta kemi hequr diskun nga grupi, informacioni i pajisjes bllok do të duket kështu.

[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  

Gjendja e vargjeve pas heqjes së disqeve.

[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. Kopjoni tabelën e ndarjes në një disk të ri

Ju mund të kontrolloni tabelën e ndarjes së përdorur në disk me komandën e mëposhtme.

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

Prodhimi për MBR do të ishte:

Disk label type: dos

për GPT:

Disk label type: gpt

Kopjimi i tabelës së ndarjes për MBR:

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

Në këtë ekip i pari tregohet ngasja с nga të cilat shënimi kopjohet, e dyta - ku kopje.

KUJDES: Për GPT i pari tregohet ngasja në të cilën shënimi i kopjes, e dyta disku tregon diskun nga e cila shënjimi i kopjes. Nëse përzieni disqet, ndarja fillimisht e mirë do të mbishkruhet dhe do të shkatërrohet.

Kopjimi i tabelës së paraqitjes për GPT:

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

Më pas, caktoni një UUID të rastësishme në disk (për GPT).


sgdisk -G /dev/sdc

Pasi komanda të ekzekutohet, ndarjet duhet të shfaqen në disk /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  

Nëse, pasi të kryhet veprimi, ndarjet në sistem në disk /dev/sdc të pavendosur, atëherë ekzekutojmë komandën për të rilexuar tabelën e ndarjes.

sfdisk -R /dev/sdc

Nëse disqet aktuale përdorin tabelën MBR dhe informacioni duhet të transferohet në disqe më të mëdhenj se 2 TB, atëherë në disqet e reja do t'ju duhet të krijoni manualisht një ndarje GPT duke përdorur ndarjen biosboot. Ky rast do të diskutohet në Pjesën 2 të këtij neni.

3. Shtimi i ndarjeve të diskut të ri në grup

Le të shtojmë ndarjet e diskut në grupet përkatëse.

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

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

Ne kontrollojmë që seksionet janë shtuar.

[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  

Pas kësaj, ne presim që vargjet të sinkronizohen.

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

Ju mund të monitoroni vazhdimisht procesin e sinkronizimit duke përdorur programin watch.

watch -n 2 cat /proc/mdstat

Parametër -n specifikon se në cilat intervale në sekonda duhet të ekzekutohet komanda për të kontrolluar progresin.

Përsëritni hapat 1 - 3 për diskun tjetër të zëvendësimit.

I shënojmë ndarjet e diskut të dytë që përdoren në çdo grup si të këqija.

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

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

Heqja e ndarjeve të bllokut të pajisjes /dev/sdb nga vargje.

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

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

Pasi ta kemi hequr diskun nga grupi, informacioni i pajisjes bllok do të duket kështu.

[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  

Gjendja e vargjeve pas heqjes së disqeve.

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

Kopjimi i tabelës së ndarjes MBR nga disku /dev/sdс në disk /dev/sdd.

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

Pasi komanda të ekzekutohet, ndarjet duhet të shfaqen në 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 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  

Shtimi i ndarjeve të diskut në vargje.

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

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

Ne kontrollojmë që seksionet janë shtuar.

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

Pas kësaj, ne presim që vargjet të sinkronizohen.

[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. Instalimi i GRUB në disqet e reja

Për CentOS:

grub2-install /dev/sdX

Për Debian/Ubuntu:

grub-install /dev/sdX

ku X — shkronja e pajisjes bllok. Në këtë rast, duhet të instaloni GRUB në /dev/sdc и /dev/sdd.

6. Zgjerimi i sistemit të skedarit (ext4) i ndarjes rrënjësore

Në disqe të reja /dev/sdc и /dev/sdd 931.5 GB në dispozicion. Për shkak të faktit se tabela e ndarjeve është kopjuar nga disqe më të vegjël, ndarjet /dev/sdc2 и /dev/sdd2 222.5 GB në dispozicion.

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]

Shtë e nevojshme:

  1. Zgjatni ndarjen 2 në secilin prej disqeve,
  2. Zgjero grupin md127,
  3. Zgjero PV (vëllimi fizik),
  4. Zgjero LV (volumi logjik) vg0-root,
  5. Zgjeroni sistemin e skedarëve.

Duke përdorur shërbimin i ndarë le të zgjerojmë seksionin /dev/sdc2 në vlerën maksimale. Ekzekutoni komandën parted /dev/sdc (1) dhe shikoni tabelën aktuale të ndarjes me komandën p (2).

Zëvendësimi i disqeve më të vegjël me disqe më të mëdhenj në Linux

Siç mund ta shihni, fundi i ndarjes 2 përfundon në 240 GB. Le ta zgjerojmë ndarjen me komandën resizepart 2, ku 2 është numri i seksionit (3). Ne tregojmë vlerën në format dixhital, për shembull 1000 GB, ose përdorim treguesin e ndarjes së diskut - 100%. Kontrollojmë sërish që ndarja të ketë madhësinë e re (4).

Përsëritni hapat e mësipërm për diskun /dev/sdd. Pas zgjerimit të ndarjeve /dev/sdc2 и /dev/sdd2 u bë e barabartë me 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]

Pas kësaj zgjerojmë grupin md127 në maksimum.

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

Kontrollojmë që grupi të jetë zgjeruar. Tani madhësia e tij është bërë 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]

Zgjatja e zgjatjes vëllimi fizik. Përpara se të zgjerohet, le të kontrollojmë gjendjen aktuale të 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   ]

Siç mund të shihet, PV /dev/md127 përdor 222.4 GB hapësirë.

Zgjerojmë PV me komandën e mëposhtme.

pvresize /dev/md127

Kontrollimi i rezultatit të zgjerimit të PV.

[

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   ]

Duke u zgjeruar vëllimi logjik. Përpara se të zgjerojmë, le të kontrollojmë gjendjen aktuale të LV (1).

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

LV /dev/vg0/root përdor 206.41 GB.

Zgjerojmë LV me komandën e mëposhtme (2).

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

Ne kontrollojmë veprimin e përfunduar (3).

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

Siç mund ta shihni, pas zgjerimit të LV, sasia e hapësirës së zënë në disk u bë 914.39 GB.

Zëvendësimi i disqeve më të vegjël me disqe më të mëdhenj në Linux

Vëllimi LV është rritur (4), por sistemi i skedarëve ende zë 204 GB (5).

1. Le të zgjerojmë sistemin e skedarëve.

resize2fs /dev/mapper/vg0-root

Pasi komanda të ekzekutohet, kontrollojmë madhësinë e sistemit të skedarëve.

[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

Madhësia e sistemit të skedarëve rrënjë do të rritet në 900 GB. Pas përfundimit të hapave, mund të hiqni disqet e vjetër.

Rasti 2: Zëvendësimi i disqeve më të vegjël me disqe më të mëdhenj (më shumë se 2 TB)

Vendosja: Zëvendësoni disqet aktuale me disqe më të mëdhenj (2 x 3TB) duke ruajtur informacionin. Në këtë rast, ne kemi 2 x 240 GB disqe SSD (RAID-1) me sistemin e instaluar dhe 2 x 3 TB disqe SATA në të cilët duhet të transferohet sistemi. Disqet aktuale përdorin tabelën e ndarjes MBR. Meqenëse disqet e rinj kanë një kapacitet më të madh se 2 TB, ata do të duhet të përdorin një tabelë GPT, pasi MBR nuk mund të funksionojë me disqe më të mëdhenj se 2 TB.

Le të shohim paraqitjen aktuale të diskut.

[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  

Le të kontrollojmë tabelën e ndarjes së përdorur në disk /dev/sda.

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

Në disk /dev/sdb përdoret një tabelë e ngjashme ndarjeje. Le të kontrollojmë hapësirën e përdorur të diskut në sistem.

[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

Siç mund ta shihni, rrënja e sistemit të skedarëve zë 204 GB. Le të kontrollojmë gjendjen aktuale të grupit RAID të softuerit.

1. Instalimi i një tabele të ndarjeve GPT dhe ndarjes së diskut

Le të kontrollojmë paraqitjen e diskut sipas sektorit.

[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

Në diskun e ri 3TB do të na duhet të krijojmë 3 ndarje:

  1. seksion bios_grub Madhësia 2 MiB për pajtueshmërinë me GPT BIOS,
  2. Ndarja për grupin RAID që do të montohet /boot.
  3. Ndarja për grupin RAID në të cilin do të ketë Rrënja LV и këmbim LV.

Instalimi i programit i ndarë ekipi yum install -y parted (për CentOS), apt install -y parted (për Debian/Ubuntu).

Përdorim i ndarë Le të ekzekutojmë komandat e mëposhtme për të ndarë diskun.

Ekzekutoni komandën parted /dev/sdc dhe shkoni në modalitetin e modifikimit të paraqitjes së diskut.

Krijoni një tabelë të ndarjes GPT.

(parted) mktable gpt

Krijo 1 seksion bios_grub seksion dhe vendosni një flamur për të.

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

Krijoni ndarjen 2 dhe vendosni një flamur për të. Ndarja do të përdoret si një bllok për një grup RAID dhe do të montohet në të /boot.

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

Ne krijojmë një seksion të tretë, i cili do të përdoret gjithashtu si një bllok grupi në të cilin do të vendoset LVM.

(parted) mkpart primary 1028MiB 100% 

Në këtë rast, nuk është e nevojshme të vendosni flamurin, por nëse është e nevojshme, mund të vendoset me komandën e mëposhtme.

(parted) set 3 raid on

Ne kontrollojmë tabelën e krijuar.

(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

Ne caktojmë një GUID të ri të rastësishëm në disk.

sgdisk -G /dev/sdd

2. Heqja e ndarjeve të diskut të parë nga vargjet

Kontrollimi i gjendjes së grupit

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

Sistemi përdor 2 vargje: md126 (pika e montimit /boot) - përbëhet nga /dev/sda1 и /dev/sdb1, md127 (LVM për swap dhe rrënja e sistemit të skedarëve) - përbëhet nga /dev/sda2 и /dev/sdb2.

I shënojmë ndarjet e diskut të parë që përdoren në çdo grup si të këqija.

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

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

Heqja e ndarjeve të bllokut të pajisjes /dev/sda nga vargje.

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

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

Kontrollimi i gjendjes së grupit pas heqjes së diskut.

[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. Shtimi i ndarjeve të diskut të ri në grup

Hapi tjetër është shtimi i ndarjeve të diskut të ri në vargje për sinkronizim. Le të shohim gjendjen aktuale të paraqitjes së diskut.

[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  

seksion /dev/sdc1 është bios_grub seksion dhe nuk është i përfshirë në krijimin e vargjeve. Vargjet do të përdoren vetëm /dev/sdc2 и /dev/sdc3. Ne i shtojmë këto seksione në grupet përkatëse.

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

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

Pastaj presim që grupi të sinkronizohet.

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

Ndarja e diskut pas shtimit të ndarjeve në grup.

[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. Heqja e ndarjeve të diskut të dytë nga vargjet

I shënojmë ndarjet e diskut të dytë që përdoren në çdo grup si të këqija.

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

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

Heqja e ndarjeve të bllokut të pajisjes /dev/sda nga vargje.

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

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

5. Kopjoni tabelën e paraqitjes së GPT dhe sinkronizoni grupin

Për të kopjuar tabelën e shënjimit të GPT ne do të përdorim programin sgdisk, i cili përfshihet në paketën për të punuar me ndarjet e diskut dhe një tabelë GPT - gdisk.

Instalim gdisk për CentOS:

yum install -y gdisk

Instalim gdisk për Debian/Ubuntu:

apt install -y gdisk

KUJDES: Për GPT i pari tregohet ngasja në të cilën kopjoni shënimin, e dyta disku tregon diskun nga e cila kopjoni shënimin. Nëse përzieni disqet, ndarja fillimisht e mirë do të mbishkruhet dhe do të shkatërrohet.

Kopjoni tabelën e shënjimit GPT.

sgdisk -R /dev/sdd /dev/sdc

Ndarja e diskut pas transferimit të një tabele në 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  

Më pas, ne shtojmë secilën prej ndarjeve që marrin pjesë në vargjet RAID të softuerit.

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

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

Ne presim që grupi të sinkronizohet.

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

Pas kopjimit të ndarjes GPT në diskun e dytë të ri, ndarja do të duket kështu.

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

Më pas, instaloni GRUB në disqet e reja.

Instalimi për CentOS:

grub2-install /dev/sdX

Instalimi për Debian/Ubuntu:

grub-install /dev/sdX

ku X - shkronja e makinës, në rastin tonë disqet /dev/sdc и /dev/sdd.

Ne përditësojmë informacionin rreth grupit.

Për CentOS:

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

Për Debian/Ubuntu:

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

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

Përditësimi i imazhit initrd:
Për CentOS:

dracut -f -v --regenerate-all

Për Debian/Ubuntu:

update-initramfs -u -k all

Ne përditësojmë konfigurimin GRUB.

Për CentOS:

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

Për Debian/Ubuntu:

update-grub

Pas përfundimit të hapave, disqet e vjetër mund të hiqen.

6. Zgjerimi i sistemit të skedarit (ext4) i ndarjes rrënjësore

Ndarja e diskut përpara zgjerimit të sistemit të skedarëve pas migrimit të sistemit në disqe 2 x 3TB (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]

Tani seksionet /dev/sdc3 и /dev/sdd3 zënë 2.7 TB. Meqenëse krijuam një plan urbanistik të ri të diskut me një tabelë GPT, madhësia e ndarjes 3 u vendos menjëherë në hapësirën maksimale të mundshme të diskut; në këtë rast, nuk ka nevojë të zgjerohet ndarja.

Shtë e nevojshme:

  1. Zgjero grupin md126,
  2. Zgjero PV (vëllimi fizik),
  3. Zgjero LV (volumi logjik) vg0-root,
  4. Zgjeroni sistemin e skedarëve.

1. Zgjero grupin md126 në maksimum.

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

Pas zgjerimit të vargut md126 madhësia e hapësirës së zënë është rritur në 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]

Duke u zgjeruar vëllimi fizik.

Përpara zgjerimit, kontrolloni vlerën aktuale të hapësirës së zënë PV /dev/md126.

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

Zgjerojmë PV me komandën e mëposhtme.

pvresize /dev/md126

Ne kontrollojmë veprimin e përfunduar.

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

Duke u zgjeruar vëllimi logjik vg0-rrënjë.

Pas zgjerimit të PV, le të kontrollojmë hapësirën e zënë VG.

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

Le të kontrollojmë hapësirën e zënë nga 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            

Vëllimi vg0-root zë 206.41 GB.

Ne zgjerojmë LV në hapësirën maksimale të diskut.

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

Kontrollimi i hapësirës LV pas zgjerimit.

[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

Zgjerimi i sistemit të skedarëve (ext4).

Le të kontrollojmë madhësinë aktuale të sistemit të skedarëve.

[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

Vëllimi /dev/mapper/vg0-root zë 204 GB pas zgjerimit të LV.

Zgjerimi i sistemit të skedarëve.

resize2fs /dev/mapper/vg0-root 

Kontrollimi i madhësisë së sistemit të skedarëve pas zgjerimit të tij.

[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

Madhësia e sistemit të skedarëve është rritur për të mbuluar të gjithë volumin.

Burimi: www.habr.com

Shto një koment