Disko txikiagoak disko handiagoekin ordezkatzea Linuxen

Kaixo guztioi. Ikastaro talde berri baten hasieraren bezperan "Linux administratzailea" Gure ikasleak idatzitako material baliagarria argitaratzen ari gara, baita ikastaroaren tutorea, REG.RU produktu korporatiboetarako laguntza teknikoko espezialista - Roman Travin.

Artikulu honek 2 kasu hartuko ditu kontuan diskoak ordezkatzeko eta informazioa edukiera handiagoko disko berrietara transferitzeko, array eta fitxategi sistema gehiago hedatuz. Lehenengo kasua MBR/MBR edo GPT/GPT partizio berdina duten diskoak ordezkatzeari buruzkoa izango da, bigarren kasua MBR partizioa duten diskoak 2 TB baino gehiagoko edukiera duten diskoekin ordezkatzeari buruzkoa da, eta horietan instalatu beharko duzu. GPT partizioa biosboot partizio batekin. Bi kasuetan, datuak transferitzen ditugun diskoak dagoeneko instalatuta daude zerbitzarian. Erro partiziorako erabiltzen den fitxategi-sistema ext4 da.

1. kasua: disko txikiagoak disko handiagoekin ordezkatzea (2TB arte)

Helburua: Ordeztu egungo diskoak disko handiagoekin (gehienez 2 TB) informazio transferentziarekin. Kasu honetan, 2 x 240 GB SSD (RAID-1) disko ditugu sistema instalatuta eta 2 x 1 TB SATA disko, zeinetara sistema transferitu behar den.

Ikus dezagun egungo diskoaren diseinua.

[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  

Egiaztatu dezagun une honetan erabiltzen den fitxategi-sistemaren espazioa.

[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

Diskoak ordezkatu aurretik fitxategi-sistemaren tamaina 204 GB-koa da, 2 md126 software-matrize erabiltzen dira, hau da, /boot и md127gisa erabiltzen dena bolumen fisikoa VG taldearentzat vg0.

1. Disko partizioak arrayetatik kentzea

Array-aren egoera egiaztatzea

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

Sistemak 2 array erabiltzen ditu: md126 (muntatzeko puntua /boot) - atal batez osatuta dago /dev/sda1 и /dev/sdb1, md127 (LVMrako aldatu eta fitxategi-sistemaren erroa) - osatzen dute /dev/sda2 и /dev/sdb2.

Array bakoitzean erabiltzen diren lehen diskoaren partizioak txartzat markatzen ditugu.

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

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

/dev/sda blokeko gailuen partizioak arrayetatik kentzen ditugu.

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

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

Diskoa arraytik kendu ondoren, bloke gailuaren informazioa honela izango da.

[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  

Diskoak kendu ondoren matrizeen egoera.

[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. Kopiatu partizio-taula disko berri batera

Erabilitako partizio-taula diskoan egiaztatu dezakezu komando honekin.

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

MBRrako irteera hau izango litzateke:

Disk label type: dos

GPTrako:

Disk label type: gpt

MBRrako partizio-taula kopiatzen:

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

Talde honetan lehenengo diskoa adierazten da с horietako marka kopiatzen da, bigarren - non kopiatu.

KONTUZ: GPTrako lehenengo diskoa adierazten da zeinaren gainean kopiatu markaketa, bigarrena diskoak diskoa adierazten du bertatik kopiatu markaketa. Diskoak nahasten badituzu, hasiera batean ona den partizioa gainidatzi eta suntsitu egingo da.

GPTrako diseinu-taula kopiatzen:

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

Ondoren, esleitu ausazko UUID bat diskoari (GPTrako).


sgdisk -G /dev/sdc

Komandoa exekutatu ondoren, partizioak diskoan agertu behar dira /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  

Bada, ekintza egin ondoren, sistemako partizioak diskoan /dev/sdc erabaki gabe, orduan partizio-taula berrirakurtzeko komandoa exekutatuko dugu.

sfdisk -R /dev/sdc

Uneko diskoek MBR taula erabiltzen badute eta informazioa 2 TB baino handiagoak diren diskoetara transferitu behar bada, disko berrietan eskuz GPT partizioa sortu beharko duzu biosboot partizioa erabiliz. Kasu hau artikulu honen 2. zatian aztertuko da.

3. Disko berriaren partizioak gehitzea array-ra

Gehi ditzagun disko-partizioak dagozkien arrayetara.

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

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

Atalak gehitu direla egiaztatzen dugu.

[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  

Horren ostean, arrayak sinkronizatzeko itxarongo dugu.

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

Sinkronizazio-prozesua etengabe kontrola dezakezu utilitatea erabiliz watch.

watch -n 2 cat /proc/mdstat

Parametroa -n aurrerapena egiaztatzeko komandoa segundotan zein tartetan exekutatu behar den zehazten du.

Errepikatu 1 - 3 urratsak hurrengo ordezko diskorako.

Array bakoitzean erabiltzen diren bigarren diskoaren partizioak txartzat markatzen ditugu.

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

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

Bloke-gailuen partizioak kentzea /dev/sdb arrayetatik.

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

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

Diskoa arraytik kendu ondoren, bloke gailuaren informazioa honela izango da.

[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  

Diskoak kendu ondoren matrizeen egoera.

[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 partizio-taula diskotik kopiatzen /dev/sdс diskora /dev/sdd.

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

Komandoa exekutatu ondoren, partizioak diskoan agertu behar dira /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  

Disko partizioak gehitzea arrayetan.

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

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

Atalak gehitu direla egiaztatzen dugu.

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

Horren ostean, arrayak sinkronizatzeko itxarongo dugu.

[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 instalatzea disko berrietan

CentOSerako:

grub2-install /dev/sdX

Debian/Ubunturako:

grub-install /dev/sdX

non X — bloke-gailuaren letra. Kasu honetan, GRUB instalatu behar duzu /dev/sdc и /dev/sdd.

6. Erro partizioaren fitxategi-sistemaren luzapena (ext4).

Disko berrietan /dev/sdc и /dev/sdd 931.5 GB eskuragarri. Izan ere, partizio-taula disko txikiagoetatik kopiatu zen, partizioak /dev/sdc2 и /dev/sdd2 222.5 GB eskuragarri.

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]

Beharrezkoa da:

  1. Zabaldu 2. partizioa disko bakoitzean,
  2. Zabaldu array md127,
  3. Zabaldu PV (bolumen fisikoa),
  4. Zabaldu LV (bolumen logikoa) vg0-root,
  5. Zabaldu fitxategi-sistema.

Utilitatea erabiliz parted zabal dezagun atala /dev/sdc2 gehienezko balioraino. Exekutatu komandoa parted /dev/sdc (1) eta ikusi uneko partizio-taula komandoarekin p (2).

Disko txikiagoak disko handiagoekin ordezkatzea Linuxen

Ikus dezakezunez, 2. partizioaren amaiera 240 GBtan amaitzen da. Zabal dezagun partizioa komandoarekin resizepart 2, non 2 atalaren (3) kopurua den. Balioa formatu digitalean adierazten dugu, adibidez 1000 GB, edo diskoaren partekatzearen adierazlea erabili -% 100. Berriro egiaztatzen dugu partizioak tamaina berria duela (4).

Errepikatu goiko urratsak diskorako /dev/sdd. Partizioak zabaldu ondoren /dev/sdc2 и /dev/sdd2 930.5 GB-ren berdina bihurtu zen.

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

Honen ostean array zabaltzen dugu md127 gehienez.

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

Array-a zabaldu dela egiaztatzen dugu. Orain bere tamaina 930.4 GB bihurtu da.

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

Luzapena luzatzea bolumen fisikoa. Zabaldu aurretik, egiaztatu dezagun PVren egungo egoera.

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

Ikus daitekeenez, PV /dev/md127 222.4 GB-ko espazioa erabiltzen du.

PV zabaltzen dugu hurrengo komandoarekin.

pvresize /dev/md127

PV hedapenaren emaitza egiaztatzea.

[

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   ]

Zabaltzen bolumen logikoa. Zabaldu aurretik, egiazta dezagun LVren egungo egoera (1).

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

LV /dev/vg0/root 206.41 GB erabiltzen ditu.

LV zabaltzen dugu hurrengo komandoarekin (2).

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

Egindako ekintza egiaztatzen dugu (3).

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

Ikus dezakezunez, LV zabaldu ondoren, okupatutako diskoko espazioaren kopurua 914.39 GB bihurtu zen.

Disko txikiagoak disko handiagoekin ordezkatzea Linuxen

LV bolumena handitu egin da (4), baina fitxategi-sistemak 204 GB okupatzen ditu oraindik (5).

1. Zabal dezagun fitxategi-sistema.

resize2fs /dev/mapper/vg0-root

Komandoa exekutatu ondoren, fitxategi-sistemaren tamaina egiaztatuko dugu.

[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

Erro fitxategi-sistemaren tamaina 900 GB-ra igoko da. Urratsak amaitu ondoren, disko zaharrak kendu ditzakezu.

2. kasua: disko txikiagoak disko handiagoekin ordezkatzea (2TB baino gehiago)

Ariketa: Ordeztu uneko diskoak disko handiagoekin (2 x 3TB), informazioa gordez. Kasu honetan, 2 x 240 GB SSD (RAID-1) disko ditugu sistema instalatuta eta 2 x 3 TB SATA disko, zeinetara sistema transferitu behar den. Uneko diskoek MBR partizio-taula erabiltzen dute. Disko berriek 2 TB baino gehiagoko edukiera dutenez, GPT taula bat erabili beharko dute, MBR-k ezin baitu funtzionatu 2 TB baino handiagoak diren diskoekin.

Ikus dezagun egungo diskoaren diseinua.

[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  

Egiaztatu dezagun diskoan erabiltzen den partizio-taula /dev/sda.

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

Diskoan /dev/sdb antzeko partizio-taula erabiltzen da. Egiaztatu dezagun sisteman erabilitako disko-lekua.

[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

Ikus dezakezunez, fitxategi sistemaren erroak 204 GB hartzen ditu. Egiaztatu dezagun software RAID array-aren uneko egoera.

1. GPT partizio-taula eta disko-partizioa instalatzea

Egiaztatu dezagun diskoaren diseinua sektoreka.

[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

3TB disko berrian 3 partizio sortu beharko ditugu:

  1. atala bios_grub 2 MiB tamaina GPT BIOS bateragarrirako,
  2. Bertan muntatuko den RAID arrayaren partizioa /boot.
  3. egongo den RAID arrayaren partizioa LV erroa и LV trukea.

Utilitatea instalatzea parted taldeak yum install -y parted (CentOS-erako), apt install -y parted (Debian/Ubunturako).

Erabiltzea parted Exekutatu ditzagun komando hauek diskoa partitzeko.

Exekutatu komandoa parted /dev/sdc eta joan diskoaren diseinua editatzeko modura.

Sortu GPT partizio-taula bat.

(parted) mktable gpt

Sortu 1 atal bios_grub atala eta ezarri hari bandera bat.

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

Sortu 2. partizioa eta ezarri harentzat bandera. Partizioa RAID array baterako bloke gisa erabiliko da eta bertan muntatuko da /boot.

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

3. atal bat sortzen dugu, LVM kokatuko den array bloke gisa ere erabiliko dena.

(parted) mkpart primary 1028MiB 100% 

Kasu honetan, ez da beharrezkoa bandera ezartzea, baina beharrezkoa bada, hurrengo komandoarekin ezar daiteke.

(parted) set 3 raid on

Sortutako taula egiaztatzen dugu.

(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

Ausazko GUID berri bat esleitzen diogu diskoari.

sgdisk -G /dev/sdd

2. Lehenengo diskoaren partizioak arrayetatik kentzea

Array-aren egoera egiaztatzea

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

Sistemak 2 array erabiltzen ditu: md126 (muntatze puntua /boot) - osatzen dute /dev/sda1 и /dev/sdb1, md127 (LVMrako swap eta fitxategi-sistemaren erroa) - osatzen dute /dev/sda2 и /dev/sdb2.

Array bakoitzean erabiltzen diren lehen diskoaren partizioak txartzat markatzen ditugu.

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

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

Bloke-gailuen partizioak kentzea /dev/sda arrayetatik.

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

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

Diskoa kendu ondoren array-aren egoera egiaztatzea.

[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. Disko berriaren partizioak gehitzea array-ra

Hurrengo urratsa disko berriaren partizioak gehitzea da sinkronizaziorako matrizei. Ikus dezagun diskoaren diseinuaren egungo egoera.

[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  

atala /dev/sdc1 da bios_grub atalean eta ez da matrizeen sorreran parte hartzen. Arrayak bakarrik erabiliko dira /dev/sdc2 и /dev/sdc3. Atal hauek dagozkien arrayetara gehitzen ditugu.

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

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

Ondoren, array sinkronizatu arte itxarongo dugu.

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

Diskoaren partizioa arrayari partizioak gehitu ondoren.

[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. Bigarren diskoaren partizioak arrayetatik kentzea

Array bakoitzean erabiltzen diren bigarren diskoaren partizioak txartzat markatzen ditugu.

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

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

Bloke-gailuen partizioak kentzea /dev/sda arrayetatik.

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

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

5. Kopiatu GPT diseinu-taula eta sinkronizatu array

GPT markatze-taula kopiatzeko utilitatea erabiliko dugu sgdisk, disko partizioekin eta GPT taula batekin lan egiteko paketean sartzen dena - gdisk.

Instalazio- gdisk CentOSerako:

yum install -y gdisk

Instalazio- gdisk Debian/Ubunturako:

apt install -y gdisk

KONTUZ: GPTrako lehenengo diskoa adierazten da zeinaren gainean kopiatu marka, bigarrena diskoak diskoa adierazten du bertatik kopiatu marka. Diskoak nahasten badituzu, hasiera batean ona den partizioa gainidatzi eta suntsitu egingo da.

Kopiatu GPT markaketa taula.

sgdisk -R /dev/sdd /dev/sdc

Diskoaren partizioa taula bat diskora transferitu ondoren /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  

Ondoren, software RAID arrayetan parte hartzen duten partizio bakoitza gehitzen dugu.

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

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

Array-a sinkronizatzeko zain gaude.

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

GPT partizioa bigarren disko berrian kopiatu ondoren, partizioak itxura hau izango du.

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

Ondoren, instalatu GRUB disko berrietan.

CentOSerako instalazioa:

grub2-install /dev/sdX

Debian/Ubunturako instalazioa:

grub-install /dev/sdX

non X — drive letter, gure kasuan drives /dev/sdc и /dev/sdd.

Array-ari buruzko informazioa eguneratzen dugu.

CentOSerako:

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

Debian/Ubunturako:

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

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

Irudia eguneratzen initrd:
CentOSerako:

dracut -f -v --regenerate-all

Debian/Ubunturako:

update-initramfs -u -k all

GRUB konfigurazioa eguneratzen dugu.

CentOSerako:

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

Debian/Ubunturako:

update-grub

Urratsak amaitu ondoren, disko zaharrak kendu daitezke.

6. Erro partizioaren fitxategi-sistemaren luzapena (ext4).

Fitxategi-sistemaren hedapenaren aurretik diskoaren partizioa sistema 2 x 3TB diskotara (RAID-1) migratu ondoren.

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

Orain atalak /dev/sdc3 и /dev/sdd3 2.7 TB okupatzen ditu. GPT taula batekin disko-diseinu berri bat sortu genuenez, 3. partizioaren tamaina berehala ezarri zen ahalik eta diskoko espaziorik handiena; kasu honetan, ez dago partizioa zabaldu beharrik.

Beharrezkoa da:

  1. Zabaldu array md126,
  2. Zabaldu PV (bolumen fisikoa),
  3. Zabaldu LV (bolumen logikoa) vg0-root,
  4. Zabaldu fitxategi-sistema.

1. Zabaldu matrizea md126 gehienez.

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

Array hedapenaren ondoren md126 okupatutako espazioaren tamaina 2.7 TBra igo da.

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

Zabaltzen bolumen fisikoa.

Zabaldu aurretik, egiaztatu okupatutako espazioaren egungo balioa PV /dev/md126.

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

PV zabaltzen dugu hurrengo komandoarekin.

pvresize /dev/md126

Egindako ekintza egiaztatzen dugu.

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

Zabaltzen bolumen logikoa vg0-root.

PV zabaldu ondoren, egiaztatu dezagun okupatutako VG espazioa.

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

Ikus dezagun LVk hartzen duen espazioa.

[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 bolumenak 206.41 GB okupatzen ditu.

LV diskoaren gehienezko espaziora zabaltzen dugu.

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

Hedatu ondoren LV espazioa egiaztatzea.

[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

Fitxategi-sistema zabaltzea (ext4).

Egiaztatu dezagun fitxategi-sistemaren uneko tamaina.

[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

/dev/mapper/vg0-root bolumenak 204 GB okupatzen ditu LV hedapenaren ondoren.

Fitxategi-sistema zabaltzea.

resize2fs /dev/mapper/vg0-root 

Zabaldu ondoren fitxategi-sistemaren tamaina egiaztatzea.

[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

Fitxategi-sistemaren tamaina handitu da bolumen osoa estaltzeko.

Iturria: www.habr.com

Gehitu iruzkin berria