Pag-ilis sa gagmay nga mga disk sa mas dagkong mga disk sa Linux

Kumusta tanan. Sa bisperas sa pagsugod sa usa ka bag-ong grupo sa kurso "Linux Administrator" Nagmantala kami mapuslanon nga materyal nga gisulat sa among estudyante, ingon man ang magtutudlo sa kurso, espesyalista sa teknikal nga suporta alang sa mga produkto sa korporasyon sa REG.RU - Roman Travin.

Kini nga artikulo maghisgot sa 2 nga mga kaso sa pag-ilis sa mga disk ug pagbalhin sa impormasyon ngadto sa bag-ong mga disk nga mas dako nga kapasidad nga adunay dugang nga pagpalapad sa array ug file system. Ang una nga kaso may kalabotan sa pag-ilis sa mga disk nga adunay parehas nga MBR / MBR o GPT / GPT partitioning, ang ikaduha nga kaso bahin sa pag-ilis sa mga disk nga adunay MBR partitioning nga adunay mga disk nga adunay kapasidad nga labaw sa 2 TB, diin kinahanglan nimo i-install. usa ka partisyon sa GPT nga adunay partisyon sa biosboot. Sa duha nga mga kaso, ang mga disk diin among gibalhin ang data na-install na sa server. Ang file system nga gigamit alang sa root partition mao ang ext4.

Kaso 1: Pag-ilis sa gagmay nga mga disk sa mas dagkong mga disk (hangtod sa 2TB)

Usa ka buluhaton: Ilisan ang kasamtangan nga mga disk sa mas dagkong mga disk (hangtod sa 2 TB) uban sa pagbalhin sa impormasyon. Sa kini nga kaso, kami adunay 2 x 240 GB SSD (RAID-1) nga mga disk nga adunay sistema nga na-install ug 2 x 1 TB SATA disks diin kinahanglan ibalhin ang sistema.

Atong tan-awon ang kasamtangan nga layout sa disk.

[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  

Atong susihon ang kasamtangang gigamit nga luna sa sistema sa file.

[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

Ang gidak-on sa file system sa dili pa ilisan ang mga disk mao ang 204 GB, 2 md126 software arrays ang gigamit, nga gi-mount sa /boot и md127, nga gigamit ingon pisikal nga gidaghanon para sa VG group vg0.

1. Pagtangtang sa mga partisyon sa disk gikan sa mga arrays

Pagsusi sa kahimtang sa array

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

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

unused devices: <none>

Ang sistema naggamit sa 2 arrays: md126 (punto sa bukid /boot) - naglangkob sa usa ka seksyon /dev/sda1 и /dev/sdb1, md127 (LVM alang sa swap ug ang gamut sa file system) - naglangkob sa /dev/sda2 и /dev/sdb2.

Gimarkahan namon ang mga partisyon sa una nga disk nga gigamit sa matag array nga dili maayo.

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

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

Gikuha namo ang / dev / sda block device partitions gikan sa arrays.

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

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

Human namo tangtangon ang disk gikan sa laray, ang impormasyon sa block device mahimong sama niini.

[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  

Kahimtang sa mga arrays human sa pagtangtang sa mga disk.

[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. Kopyaha ang partition table sa bag-ong disk

Mahimo nimong susihon ang gigamit nga partition table sa disk gamit ang mosunud nga mando.

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

Ang output alang sa MBR mao ang:

Disk label type: dos

para sa GPT:

Disk label type: gpt

Pagkopya sa partition table para sa MBR:

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

Niini nga team una disk gipakita с kinsa ang markup gikopya, ikaduha - diin kopya.

PAGTAN-AW: Para sa GPT una disk gipakita diin kopya sa marka, ikaduha ang disk nagpakita sa disk gikan sa diin kopya sa marka. Kung imong isagol ang mga disk, ang una nga maayong partisyon ma-overwrite ug malaglag.

Pagkopya sa layout table para sa GPT:

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

Sunod, assign ug random UUID sa disk (alang sa GPT).


sgdisk -G /dev/sdc

Human mapatuman ang sugo, ang mga partisyon kinahanglang makita sa 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  

Kung, pagkahuman sa aksyon nga gihimo, ang mga partisyon sa sistema sa disk /dev/sdc wala makahukom, unya atong ipatuman ang sugo nga basahon pag-usab ang partition table.

sfdisk -R /dev/sdc

Kung ang kasamtangan nga mga disk naggamit sa MBR nga lamesa ug ang impormasyon kinahanglan ibalhin ngadto sa mga disk nga mas dako pa kay sa 2 TB, unya sa bag-ong mga disk kinahanglan nimo nga mano-mano ang paghimo og GPT partition gamit ang biosboot partition. Kini nga kaso hisgotan sa Bahin 2 niini nga artikulo.

3. Pagdugang mga partisyon sa bag-ong disk sa laray

Atong idugang ang mga partisyon sa disk sa katugbang nga mga arrays.

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

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

Atong susihon nga ang mga seksyon gidugang.

[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  

Pagkahuman niini, maghulat kami nga mag-synchronize ang mga arrays.

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

Mahimo nimong padayon nga bantayan ang proseso sa pag-synchronize gamit ang utility watch.

watch -n 2 cat /proc/mdstat

Parameter -n nagtino kung unsang mga agwat sa mga segundo ang mando kinahanglan ipatuman aron masusi ang pag-uswag.

Balika ang mga lakang 1 - 3 alang sa sunod nga puli nga disk.

Gimarkahan namon ang mga partisyon sa ikaduhang disk nga gigamit sa matag array nga dili maayo.

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

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

Pagtangtang sa mga partisyon sa block device /dev/sdb gikan sa arrays.

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

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

Human namo tangtangon ang disk gikan sa laray, ang impormasyon sa block device mahimong sama niini.

[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  

Kahimtang sa mga arrays human sa pagtangtang sa mga disk.

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

Pagkopya sa MBR partition table gikan sa disk /dev/sdс sa disk /dev/sdd.

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

Human mapatuman ang sugo, ang mga partisyon kinahanglang makita sa 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  

Pagdugang sa mga partisyon sa disk sa mga arrays.

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

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

Atong susihon nga ang mga seksyon gidugang.

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

Pagkahuman niini, maghulat kami nga mag-synchronize ang mga arrays.

[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. Pag-instalar sa GRUB sa bag-ong mga drive

Alang sa CentOS:

grub2-install /dev/sdX

Para sa Debian/Ubuntu:

grub-install /dev/sdX

diin X - sulat sa block device. Sa kini nga kaso, kinahanglan nimo nga i-install ang GRUB sa /dev/sdc и /dev/sdd.

6. File system extension (ext4) sa root partition

Sa bag-ong mga disk /dev/sdc и /dev/sdd 931.5 GB anaa. Tungod sa kamatuoran nga ang partition table gikopya gikan sa gagmay nga mga disk, ang mga partisyon /dev/sdc2 и /dev/sdd2 222.5 GB anaa.

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]

Gikinahanglan kini:

  1. I-extend ang partition 2 sa matag usa sa mga disk,
  2. Pagpalapad sa array md127,
  3. Pagpalapad sa PV (pisikal nga gidaghanon),
  4. Pagpalapad sa LV (logical-volume) vg0-root,
  5. Pagpalapad sa file system.

Paggamit sa utility nagbulag palapdan nato ang seksyon /dev/sdc2 ngadto sa maximum nga bili. Ipatuman ang sugo parted /dev/sdc (1) ug tan-awa ang kasamtangan nga partition table gamit ang command p (2).

Pag-ilis sa gagmay nga mga disk sa mas dagkong mga disk sa Linux

Sama sa imong nakita, ang katapusan sa partition 2 natapos sa 240 GB. Atong palapdan ang partisyon gamit ang command resizepart 2, diin ang 2 mao ang gidaghanon sa seksyon (3). Gipakita namo ang bili sa digital format, pananglitan 1000 GB, o gamiton ang timailhan sa disk share - 100%. Atong susihon pag-usab nga ang partisyon adunay bag-ong gidak-on (4).

Balika ang mga lakang sa ibabaw alang sa disk /dev/sdd. Human sa pagpalapad sa mga partisyon /dev/sdc2 и /dev/sdd2 nahimong katumbas sa 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]

Human niini atong gipalapdan ang laray Md127 ngadto sa maximum.

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

Gisusi namon nga ang laray nagkalapad. Karon ang gidak-on niini nahimong 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]

Pagdugang sa extension pisikal nga gidaghanon. Sa dili pa mopalapad, atong susihon ang kasamtangan nga kahimtang sa 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   ]

Sama sa makita, si PV /dev/md127 naggamit sa 222.4 GB nga luna.

Gipalapad namo ang PV sa mosunod nga sugo.

pvresize /dev/md127

Pagsusi sa resulta sa pagpalapad sa 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   ]

Pagpalapad lohikal nga gidaghanon. Sa dili pa mopalapad, atong susihon ang kasamtangan nga kahimtang sa 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 naggamit sa 206.41 GB.

Gipalapad namo ang LV sa mosunod nga sugo (2).

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

Atong susihon ang nahuman nga aksyon (3).

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

Sama sa imong nakita, pagkahuman sa pagpalapad sa LV, ang kantidad sa gi-okupar nga espasyo sa disk nahimong 914.39 GB.

Pag-ilis sa gagmay nga mga disk sa mas dagkong mga disk sa Linux

Ang gidaghanon sa LV misaka (4), apan ang file system nag-okupar gihapon sa 204 GB (5).

1. Atong palapdan ang file system.

resize2fs /dev/mapper/vg0-root

Human mapatuman ang command, atong susihon ang gidak-on sa file system.

[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

Ang gidak-on sa root file system mosaka ngadto sa 900 GB. Human makompleto ang mga lakang, mahimo nimong tangtangon ang daan nga mga disk.

Kaso 2: Pag-ilis sa gagmay nga mga disk sa mas dagkong mga disk (labaw sa 2TB)

Pag-ehersisyo: Ilisan ang kasamtangan nga mga disk sa mas dagkong mga disk (2 x 3TB) samtang gipreserbar ang impormasyon. Sa kini nga kaso, kami adunay 2 x 240 GB SSD (RAID-1) nga mga disk nga adunay sistema nga na-install ug 2 x 3 TB SATA disks diin ang sistema kinahanglan ibalhin. Ang kasamtangan nga mga disk naggamit sa MBR partition table. Tungod kay ang mga bag-ong disk adunay kapasidad nga labaw sa 2 TB, kinahanglan nila nga mogamit usa ka lamesa sa GPT, tungod kay ang MBR dili molihok sa mga disk nga mas dako pa sa 2 TB.

Atong tan-awon ang kasamtangan nga layout sa disk.

[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  

Atong susihon ang partition table nga gigamit sa disk /dev/sda.

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

Sa disk /dev/sdb parehas nga partition table ang gigamit. Atong susihon ang gigamit nga disk space sa sistema.

[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

Sama sa imong nakita, ang gamut sa sistema sa file adunay 204 GB. Atong susihon ang kasamtangan nga kahimtang sa software RAID array.

1. Pag-instalar ug GPT partition table ug disk partitioning

Atong susihon ang layout sa disk sa sektor.

[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

Sa bag-ong 3TB disk kinahanglan namon nga maghimo 3 nga partisyon:

  1. Seksyon bios_grub 2MiB gidak-on alang sa GPT BIOS compatibility,
  2. Ang partition para sa RAID array nga i-mount /boot.
  3. Ang partisyon alang sa RAID array diin adunay LV nga ugat и Pagpalit sa LV.

Pag-instalar sa utility nagbulag team yum install -y parted (alang sa CentOS), apt install -y parted (alang sa Debian/Ubuntu).

Paggamit nagbulag Atong padaganon ang mosunod nga mga sugo sa pagbahin sa disk.

Ipatuman ang sugo parted /dev/sdc ug adto sa disk layout editing mode.

Paghimo og GPT partition table.

(parted) mktable gpt

Paghimo og 1 ka seksyon bios_grub seksyon ug ibutang ang usa ka bandila alang niini.

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

Paghimo partition 2 ug ibutang ang usa ka bandila alang niini. Ang partisyon gamiton isip block para sa RAID array ug i-mount /boot.

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

Naghimo kami usa ka ika-3 nga seksyon, nga magamit usab ingon usa ka bloke sa array diin mahimutang ang LVM.

(parted) mkpart primary 1028MiB 100% 

Sa kini nga kaso, dili kinahanglan nga ibutang ang bandila, apan kung gikinahanglan, mahimo kini nga itakda sa mosunod nga sugo.

(parted) set 3 raid on

Atong susihon ang gihimo nga lamesa.

(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

Nag-assign kami og bag-ong random GUID sa disk.

sgdisk -G /dev/sdd

2. Pagtangtang sa mga partisyon sa unang disk gikan sa mga arrays

Pagsusi sa kahimtang sa array

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

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

unused devices: <none>

Ang sistema naggamit sa 2 arrays: md126 (mount point / boot) - naglangkob sa /dev/sda1 и /dev/sdb1, md127 (LVM alang sa swap ug ang gamut sa file system) - naglangkob sa /dev/sda2 и /dev/sdb2.

Gimarkahan namon ang mga partisyon sa una nga disk nga gigamit sa matag array nga dili maayo.

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

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

Pagtangtang sa mga partisyon sa block device /dev/sda gikan sa arrays.

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

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

Pagsusi sa kahimtang sa laray human makuha ang disk.

[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. Pagdugang mga partisyon sa bag-ong disk sa laray

Ang sunod nga lakang mao ang pagdugang sa mga partisyon sa bag-ong disk sa mga arrays alang sa pag-synchronize. Atong tan-awon ang kasamtangan nga kahimtang sa layout sa disk.

[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  

Seksyon /dev/sdc1 Kini mao ang bios_grub seksyon ug dili apil sa paghimo sa mga arrays. Ang mga arrays gamiton ra /dev/sdc2 и /dev/sdc3. Gidugang namon kini nga mga seksyon sa katugbang nga mga arrays.

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

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

Dayon maghulat kami nga mag-synchronize ang array.

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

Pagbahin sa disk pagkahuman sa pagdugang sa mga partisyon sa laray.

[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. Pagtangtang sa mga partisyon sa ikaduhang disk gikan sa mga arrays

Gimarkahan namon ang mga partisyon sa ikaduhang disk nga gigamit sa matag array nga dili maayo.

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

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

Pagtangtang sa mga partisyon sa block device /dev/sda gikan sa arrays.

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

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

5. Kopyaha ang GPT layout table ug i-synchronize ang array

Aron kopyahon ang GPT markup table among gamiton ang utility sgdisk, nga gilakip sa pakete alang sa pagtrabaho sa mga partisyon sa disk ug usa ka lamesa sa GPT - gdisk.

Pag-instalar gdisk alang sa CentOS:

yum install -y gdisk

Pag-instalar gdisk alang sa Debian/Ubuntu:

apt install -y gdisk

PAGTAN-AW: Para sa GPT una disk gipakita diin kopyaha ang markup, ikaduha ang disk nagpakita sa disk gikan sa diin kopyaha ang markup. Kung gisagol nimo ang mga disk, ang una nga maayong partisyon ma-overwrite ug malaglag.

Kopyaha ang GPT markup table.

sgdisk -R /dev/sdd /dev/sdc

Disk partitioning human sa pagbalhin sa usa ka lamesa ngadto sa 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  

Sunod, gidugang namon ang matag usa sa mga partisyon nga nag-apil sa software RAID arrays.

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

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

Naghulat kami nga mag-synchronize ang array.

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

Human makopya ang partisyon sa GPT sa ikaduhang bag-ong disk, ang partisyon mahimong sama niini.

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

Sunod, i-install ang GRUB sa bag-ong mga disk.

Pag-instalar alang sa CentOS:

grub2-install /dev/sdX

Pag-instalar alang sa Debian/Ubuntu:

grub-install /dev/sdX

diin X - drive sulat, sa atong kaso drive /dev/sdc и /dev/sdd.

Gi-update namon ang kasayuran bahin sa array.

Alang sa CentOS:

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

Para sa Debian/Ubuntu:

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

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

Pag-update sa imahe initrd:
Alang sa CentOS:

dracut -f -v --regenerate-all

Para sa Debian/Ubuntu:

update-initramfs -u -k all

Gi-update namo ang configuration sa GRUB.

Alang sa CentOS:

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

Para sa Debian/Ubuntu:

update-grub

Human makompleto ang mga lakang, ang daan nga mga disk mahimong tangtangon.

6. File system extension (ext4) sa root partition

Pagbahin sa disk sa wala pa ang pagpalapad sa file system pagkahuman sa pagbalhin sa sistema sa 2 x 3TB nga mga disk (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]

Karon mga seksyon /dev/sdc3 и /dev/sdd3 nag-okupar sa 2.7 TB. Tungod kay naghimo kami usa ka bag-ong layout sa disk nga adunay usa ka lamesa sa GPT, ang gidak-on sa partition 3 gibutang dayon sa labing kadaghan nga puwang sa disk; sa kini nga kaso, dili kinahanglan nga palapdan ang partisyon.

Gikinahanglan kini:

  1. Pagpalapad sa array md126,
  2. Pagpalapad sa PV (pisikal nga gidaghanon),
  3. Pagpalapad sa LV (logical-volume) vg0-root,
  4. Pagpalapad sa file system.

1. Palapad ang laray md126 ngadto sa maximum.

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

Pagkahuman sa pagpalapad sa array md126 ang gidak-on sa giokupar nga luna misaka ngadto sa 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]

Pagpalapad pisikal nga gidaghanon.

Sa dili pa mopalapad, susiha ang kasamtangang bili sa giokupar nga luna PV /dev/md126.

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

Gipalapad namo ang PV sa mosunod nga sugo.

pvresize /dev/md126

Atong susihon ang nahuman nga aksyon.

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

Pagpalapad lohikal nga gidaghanon vg0-gamut.

Human sa pagpalapad sa PV, atong susihon ang giokupar nga luna VG.

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

Atong susihon ang luna nga giokupar ni 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            

Ang vg0-root volume nag-okupar sa 206.41 GB.

Gipalapad namo ang LV sa pinakataas nga disk space.

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

Pagsusi sa LV space human sa pagpalapad.

[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

Pagpalapad sa file system (ext4).

Atong susihon ang kasamtangan nga gidak-on sa file system.

[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

Ang volume /dev/mapper/vg0-root nag-okupar sa 204 GB pagkahuman sa pagpalapad sa LV.

Pagpalapad sa file system.

resize2fs /dev/mapper/vg0-root 

Pagsusi sa gidak-on sa file system human sa pagpalapad niini.

[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

Ang gidak-on sa file system nadugangan aron matabonan ang tibuok volume.

Source: www.habr.com

Idugang sa usa ka comment