Ngaganti disk nu leuwih leutik ku disk nu leuwih gede dina Linux

Halo sadayana. Dina wengi mimiti grup tangtu anyar "Linux Administrator" Kami nyebarkeun bahan mangpaat anu ditulis ku murid urang, ogé mentor kursus, spesialis dukungan téknis pikeun produk perusahaan REG.RU - Roman Travin.

Artikel ieu bakal mertimbangkeun 2 kasus ngaganti disk jeung nransper informasi ka disk anyar kapasitas nu leuwih gede jeung perluasan salajengna tina susunan jeung sistem file. Kasus kahiji ngeunaan ngagantian disk sareng partisi MBR / MBR atanapi GPT / GPT anu sami, kasus kadua ngeunaan ngagantian disk sareng partisi MBR sareng disk anu kapasitasna langkung ti 2 TB, dimana anjeun kedah pasang. partisi GPT kalawan partisi biosboot. Dina duanana kasus, disk nu urang mindahkeun data geus dipasang dina server. Sistem file anu dianggo pikeun partisi akar nyaéta ext4.

Kasus 1: Ngaganti disk nu leuwih leutik ku disk nu leuwih gede (nepi ka 2TB)

Tugas: Ganti disk ayeuna sareng disk anu langkung ageung (dugi ka 2 TB) sareng transfer inpormasi. Dina hal ieu, urang gaduh 2 x 240 GB SSD (RAID-1) disk kalawan sistem dipasang na 2 x 1 TB SATA disk nu sistem kudu ditransfer.

Hayu urang nempo perenah disk ayeuna.

[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  

Hayu urang parios rohangan sistem file anu ayeuna dianggo.

[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

Ukuran sistem file sateuacan ngagentos disk nyaéta 204 GB, 2 susunan parangkat lunak md126 dianggo, anu dipasang dina /boot и md127, nu dipaké salaku volume fisik pikeun grup VG vg0.

1. Nyoplokkeun partitions disk ti arrays

Mariksa kaayaan Asép Sunandar Sunarya

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

Sistim ieu ngagunakeun 2 arrays: md126 (titik pasang /boot) - diwangun ku bagian /dev/sda1 и /dev/sdb1, md127 (LVM pikeun swap sareng akar sistem file) - diwangun ku /dev/sda2 и /dev/sdb2.

Urang nandaan partisi tina disk munggaran nu dipaké dina unggal Asép Sunandar Sunarya salaku goréng.

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

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

Urang miceun partisi / dev / sda blok alat tina arrays.

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

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

Sanggeus kami geus dihapus disk ti Asép Sunandar Sunarya, informasi alat block bakal kasampak kawas kieu.

[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  

Kaayaan arrays sanggeus nyoplokkeun 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. Nyalin tabel partisi ka disk anyar

Anjeun tiasa pariksa tabel partisi anu dianggo dina disk nganggo paréntah di handap ieu.

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

Kaluaran pikeun MBR bakal kieu:

Disk label type: dos

pikeun GPT:

Disk label type: gpt

Nyalin tabel partisi pikeun MBR:

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

Dina tim ieu kahiji disk dituduhkeun с saha markup disalin, kadua - dimana nyalin.

PERHATIAN: Pikeun GPT kahiji disk dituduhkeun di mana salinan markup, kadua disk nunjukkeun disk timana salinan markup. Lamun nyampur nepi disk, partisi mimitina alus bakal overwritten jeung ancur.

Nyalin tabel perenah pikeun GPT:

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

Salajengna, napelkeun UUID acak ka disk (pikeun GPT).


sgdisk -G /dev/sdc

Saatos paréntah dieksekusi, partisi kedah muncul dina 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  

Upami, saatos tindakan dilaksanakeun, partisi dina sistem dina disk /dev/sdc undecided, lajeng urang ngaéksekusi paréntah pikeun reread tabel partisi.

sfdisk -R /dev/sdc

Upami disk ayeuna nganggo tabel MBR sareng inpormasina kedah ditransfer ka disk anu langkung ageung ti 2 TB, teras dina disk énggal anjeun kedah ngadamel partisi GPT sacara manual nganggo partisi biosboot. Kasus ieu bakal dibahas dina Bagian 2 artikel ieu.

3. Nambahkeun partisi tina disk anyar pikeun Asép Sunandar Sunarya dina

Hayu urang tambahkeun partisi disk kana arrays pakait.

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

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

Urang pariksa yen bagian geus ditambahkeun.

[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  

Sanggeus ieu, urang ngadagoan arrays pikeun nyingkronkeun.

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

Anjeun tiasa terus-terusan ngawas prosés singkronisasi nganggo utilitas watch.

watch -n 2 cat /proc/mdstat

parameter -n nangtukeun dina interval naon dina detik paréntah kudu dieksekusi pikeun mariksa kamajuan.

Ulang léngkah 1 - 3 pikeun ngagantian disk salajengna.

Urang nandaan partisi tina disk kadua anu dipaké dina unggal Asép Sunandar Sunarya salaku goréng.

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

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

Nyoplokkeun partitions alat block /dev/sdb ti arrays.

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

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

Sanggeus kami geus dihapus disk ti Asép Sunandar Sunarya, informasi alat block bakal kasampak kawas kieu.

[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  

Kaayaan arrays sanggeus nyoplokkeun 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>

Nyalin tabel partisi MBR tina disk /dev/sdс kana disk /dev/sdd.

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

Saatos paréntah dieksekusi, partisi kedah muncul dina 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  

Nambahkeun partisi disk kana arrays.

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

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

Urang pariksa yen bagian geus ditambahkeun.

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

Sanggeus ieu, urang ngadagoan arrays pikeun nyingkronkeun.

[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. Masang GRUB on drive anyar

Pikeun CentOS:

grub2-install /dev/sdX

Pikeun Debian/Ubuntu:

grub-install /dev/sdX

di mana X - hurup tina alat block. Dina hal ieu, anjeun kedah pasang GRUB on /dev/sdc и /dev/sdd.

6. Ekstensi sistem file (ext4) tina partisi akar

Dina disk anyar /dev/sdc и /dev/sdd 931.5 GB sadia. Kusabab kanyataan yén tabel partisi disalin tina disk anu langkung alit, partisi /dev/sdc2 и /dev/sdd2 222.5 GB sadia.

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]

Ieu perlu:

  1. Manjangkeun partisi 2 dina unggal disk,
  2. Dilegakeun array md127,
  3. Ngalegaan PV (volume fisik),
  4. Dilegakeun LV (logical-volume) vg0-root,
  5. Kembangkeun sistem file.

Ngagunakeun utiliti parted hayu urang dilegakeun bagian /dev/sdc2 nepi ka nilai maksimum. Laksanakeun paréntah parted /dev/sdc (1) jeung nempo tabel partisi ayeuna jeung paréntah p (2).

Ngaganti disk nu leuwih leutik ku disk nu leuwih gede dina Linux

Sakumaha anjeun tiasa tingali, tungtung partisi 2 ends dina 240 GB. Hayu urang dilegakeun partisi kalayan paréntah resizepart 2, dimana 2 nyaeta jumlah bagian (3). Kami nunjukkeun nilai dina format digital, contona 1000 GB, atanapi nganggo indikasi pangsa disk - 100%. Urang pariksa deui yén partisi ngabogaan ukuran anyar (4).

Ngulang léngkah di luhur pikeun disk /dev/sdd. Sanggeus ngembangna partitions /dev/sdc2 и /dev/sdd2 jadi sarua jeung 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]

Sanggeus ieu urang dilegakeun Asép Sunandar Sunarya md127 nepi ka maksimum.

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

Urang pariksa yen Asép Sunandar Sunarya geus dimekarkeun. Ayeuna ukuranana geus jadi 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]

Ngalegaan extension volume fisik. Sateuacan ngalegaan, hayu urang pariksa kaayaan PV ayeuna.

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

Salaku bisa ditempo, PV /dev/md127 ngagunakeun 222.4 GB spasi.

Urang dilegakeun PV jeung paréntah di handap.

pvresize /dev/md127

Mariksa hasil ékspansi 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   ]

Ngalegaan volume logis. Sateuacan ngalegaan, hayu urang pariksa kaayaan LV ayeuna (1).

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

LV /dev/vg0/root ngagunakeun 206.41 GB.

Urang dilegakeun LV jeung paréntah di handap (2).

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

Urang pariksa Peta réngsé (3).

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

Sakumaha anjeun tiasa tingali, saatos ngalegaan LV, jumlah rohangan disk anu dijajah janten 914.39 GB.

Ngaganti disk nu leuwih leutik ku disk nu leuwih gede dina Linux

Volume LV geus ngaronjat (4), tapi sistem file masih nempatan 204 GB (5).

1. Hayu urang ngalegaan sistem file.

resize2fs /dev/mapper/vg0-root

Saatos paréntah dieksekusi, urang pariksa ukuran sistem file.

[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

Ukuran sistem file root bakal ningkat kana 900 GB. Saatos ngalengkepan léngkah-léngkah, anjeun tiasa nyabut disk anu lami.

Kasus 2: Ngaganti disk nu leuwih leutik ku disk nu leuwih gede (leuwih ti 2TB)

Tugas: Ganti disk ayeuna sareng disk anu langkung ageung (2 x 3TB) bari ngajaga inpormasi. Dina hal ieu, urang gaduh 2 x 240 GB SSD (RAID-1) disk kalawan sistem dipasang na 2 x 3 TB SATA disk nu sistem kudu ditransfer. Disk ayeuna nganggo tabel partisi MBR. Kusabab disk anyar boga kapasitas leuwih gede ti 2 TB, maranéhanana kudu ngagunakeun tabel GPT, sabab MBR teu tiasa dianggo kalayan disk leuwih badag batan 2 TB.

Hayu urang nempo perenah disk ayeuna.

[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  

Hayu urang pariksa tabel partisi dipaké dina disk /dev/sda.

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

Dina disk /dev/sdb a tabel partisi sarupa dipaké. Hayu urang pariksa spasi disk dipaké dina 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

Sakumaha anjeun tiasa tingali, akar sistem file nyandak 204 GB. Hayu urang pariksa kaayaan kiwari software RAID array.

1. Masang tabel partisi GPT jeung partisi disk

Hayu urang pariksa perenah disk ku séktor.

[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

Dina disk 3TB anyar urang kudu nyieun 3 partitions:

  1. Bagian bios_grub Ukuran 2MiB pikeun kasaluyuan GPT BIOS,
  2. Partisi pikeun Asép Sunandar Sunarya RAID anu bakal dipasang /boot.
  3. The partisi pikeun Asép Sunandar Sunarya RAID on nu bakal aya akar LV и LV ngaganti.

Masang utilitas parted tim yum install -y parted (pikeun CentOS), apt install -y parted (pikeun Debian/Ubuntu).

Ngagunakeun parted Hayu urang ngajalankeun paréntah di handap pikeun partisi disk.

Laksanakeun paréntah parted /dev/sdc tur lebet kana mode ngedit perenah disk.

Jieun tabel partisi GPT.

(parted) mktable gpt

Jieun 1 bagian bios_grub bagian tur nyetel bandéra pikeun eta.

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

Jieun partisi 2 tur nyetel bandéra pikeun eta. Partisi bakal dianggo salaku blok pikeun RAID Asép Sunandar Sunarya sareng dipasang /boot.

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

Kami nyiptakeun bagian ka-3, anu ogé bakal dianggo salaku blok Asép Sunandar Sunarya dimana LVM bakal aya.

(parted) mkpart primary 1028MiB 100% 

Dina hal ieu, teu perlu nyetél bandéra, tapi lamun perlu, éta bisa diatur ku paréntah di handap.

(parted) set 3 raid on

Urang pariksa tabel dijieun.

(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

Urang napelkeun GUID acak anyar kana disk.

sgdisk -G /dev/sdd

2. Nyoplokkeun partisi tina disk munggaran ti arrays

Mariksa kaayaan Asép Sunandar Sunarya

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

Sistim ngagunakeun 2 arrays: md126 (titik Gunung / boot) - diwangun ku /dev/sda1 и /dev/sdb1, md127 (LVM pikeun swap sareng akar sistem file) - diwangun ku /dev/sda2 и /dev/sdb2.

Urang nandaan partisi tina disk munggaran nu dipaké dina unggal Asép Sunandar Sunarya salaku goréng.

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

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

Nyoplokkeun partitions alat block /dev/sda ti arrays.

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

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

Mariksa kaayaan Asép Sunandar Sunarya sanggeus nyoplokkeun 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. Nambahkeun partisi tina disk anyar pikeun Asép Sunandar Sunarya dina

Lengkah saterusna nyaéta nambahkeun partisi disk anyar kana arrays pikeun sinkronisasi. Hayu urang tingali kaayaan ayeuna tina perenah 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  

Bagian /dev/sdc1 éta bios_grub bagian sarta henteu aub dina kreasi arrays. The arrays ngan bakal make /dev/sdc2 и /dev/sdc3. Urang nambahkeun bagian ieu ka arrays pakait.

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

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

Teras we ngadagoan Asép Sunandar Sunarya pikeun nyingkronkeun.

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

Disk partitioning sanggeus nambahkeun partisi kana Asép Sunandar Sunarya.

[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. Nyoplokkeun partitions tina disk kadua ti arrays

Urang nandaan partisi tina disk kadua anu dipaké dina unggal Asép Sunandar Sunarya salaku goréng.

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

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

Nyoplokkeun partitions alat block /dev/sda ti arrays.

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

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

5. Nyalin tabel perenah GPT tur nyingkronkeun susunan

Pikeun nyalin tabel markup GPT kami bakal nganggo utiliti sgdisk, anu kalebet dina pakét pikeun damel sareng partisi disk sareng tabel GPT - gdisk.

setting gdisk pikeun CentOS:

yum install -y gdisk

setting gdisk pikeun Debian/Ubuntu:

apt install -y gdisk

PERHATIAN: Pikeun GPT kahiji disk dituduhkeun di mana copy markup, kadua disk nunjukkeun disk timana nyalin markup. Lamun nyampur nepi disk, partisi mimitina alus bakal overwritten jeung ancur.

Salin tabel markup GPT.

sgdisk -R /dev/sdd /dev/sdc

Disk partitioning sanggeus mindahkeun tabel kana 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  

Salajengna, urang tambahkeun unggal partisi anu milu dina software RAID arrays.

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

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

Kami ngantosan susunan pikeun nyinkronkeun.

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

Saatos nyalin partisi GPT ka disk anyar kadua, partisi bakal kasampak kawas kieu.

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

Salajengna, pasang GRUB dina disk anyar.

Pamasangan pikeun CentOS:

grub2-install /dev/sdX

Pamasangan pikeun Debian/Ubuntu:

grub-install /dev/sdX

di mana X - hurup drive, bisi urang drive /dev/sdc и /dev/sdd.

Urang ngamutahirkeun informasi ngeunaan Asép Sunandar Sunarya.

Pikeun CentOS:

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

Pikeun Debian/Ubuntu:

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

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

Ngamutahirkeun gambar initrd:
Pikeun CentOS:

dracut -f -v --regenerate-all

Pikeun Debian/Ubuntu:

update-initramfs -u -k all

Urang ngamutahirkeun konfigurasi GRUB.

Pikeun CentOS:

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

Pikeun Debian/Ubuntu:

update-grub

Saatos réngsé léngkah-léngkah, disk anu lami tiasa dipupus.

6. Ekstensi sistem file (ext4) tina partisi akar

Partisi disk sateuacan ékspansi sistem file saatos migrasi sistem ka disk 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]

Ayeuna bagéan /dev/sdc3 и /dev/sdd3 ngeusian 2.7 TB. Kusabab urang nyiptakeun perenah disk anyar sareng tabel GPT, ukuran partisi 3 langsung disetel ka rohangan disk maksimum anu mungkin; dina hal ieu, henteu kedah dilegakeun partisi.

Ieu perlu:

  1. Dilegakeun array md126,
  2. Ngalegaan PV (volume fisik),
  3. Dilegakeun LV (logical-volume) vg0-root,
  4. Kembangkeun sistem file.

1. Dilegakeun Asép Sunandar Sunarya md126 nepi ka maksimum.

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

Saatos ékspansi Asép Sunandar Sunarya md126 ukuran spasi nempatan geus ngaronjat nepi ka 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]

Ngalegaan volume fisik.

Sateuacan ngalegaan, pariksa nilai ayeuna tina PV rohangan anu dijajah /dev/md126.

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

Urang dilegakeun PV jeung paréntah di handap.

pvresize /dev/md126

Urang pariksa Peta réngsé.

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

Ngalegaan volume logis vg0-root.

Saatos ngalegaan PV, hayu urang pariksa VG spasi nempatan.

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

Hayu urang pariksa spasi dikawasaan ku 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            

Volume vg0-root ngawengku 206.41 GB.

Urang dilegakeun LV ka spasi disk maksimum.

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

Mariksa spasi LV sanggeus ékspansi.

[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

Ngalegaan sistem file (ext4).

Hayu urang pariksa ukuran ayeuna tina sistem file.

[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

Volume / dev / mapper / vg0-root nempatan 204 GB sanggeus ékspansi LV.

Ngalegaan sistem file.

resize2fs /dev/mapper/vg0-root 

Mariksa ukuran sistem file saatos dilegakeun.

[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

Ukuran sistem file geus ngaronjat pikeun nutupan sakabéh volume.

sumber: www.habr.com

Tambahkeun komentar