Ngganti disk cilik karo disk luwih gedhe ing Linux

Halo kabeh. Ing Kawa saka wiwitan klompok mesthi anyar "Linux Administrator" Kita nerbitake materi sing migunani sing ditulis dening siswa, uga mentor kursus, spesialis dhukungan teknis kanggo produk perusahaan REG.RU - Roman Travin.

Artikel iki bakal nimbang 2 kasus ngganti disk lan nransfer informasi menyang disk anyar kanthi kapasitas luwih gedhe kanthi ekspansi array lan sistem file. Kasus pisanan babagan panggantos disk kanthi partisi MBR / MBR utawa GPT / GPT sing padha, kasus liyane babagan panggantos disk kanthi partisi MBR kanthi disk kanthi kapasitas luwih saka 2 TB, sing sampeyan kudu nginstal. partisi GPT karo partisi biosboot. Ing kasus loro kasebut, disk sing ditransfer data wis diinstal ing server. Sistem file sing digunakake kanggo partisi root yaiku ext4.

Kasus 1: Ngganti disk cilik karo disk sing luwih gedhe (nganti 2TB)

Tugas: Ganti disk saiki nganggo disk sing luwih gedhe (nganti 2 TB) kanthi transfer informasi. Ing kasus iki, kita duwe 2 x 240 GB SSD (RAID-1) disk karo sistem diinstal lan 2 x 1 TB SATA disk sing sistem kudu ditransfer.

Ayo katon ing tata letak disk saiki.

[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  

Ayo priksa ruang sistem file sing saiki digunakake.

[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 sadurunge ngganti disk yaiku 204 GB, 2 susunan piranti lunak md126 digunakake, sing dipasang ing /boot и md127, kang digunakake minangka volume fisik kanggo grup VG vg0.

1. Mbusak partisi disk saka susunan

Priksa status 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>

Sistem nggunakake 2 array: md126 (titik gunung /boot) - kasusun saka bagean /dev/sda1 и /dev/sdb1, md127 (LVM kanggo pertukaran lan ROOT saka sistem file) - kasusun saka /dev/sda2 и /dev/sdb2.

Kita menehi tandha partisi disk pisanan sing digunakake ing saben array minangka ala.

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

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

Kita mbusak partisi piranti blok / dev / sda saka array.

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

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

Sawise kita mbusak disk saka array, informasi piranti pemblokiran bakal katon kaya iki.

[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  

Negara susunan sawise njabut 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 menyang disk anyar

Sampeyan bisa mriksa tabel partisi sing digunakake ing disk kanthi printah ing ngisor iki.

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

Output kanggo MBR bakal:

Disk label type: dos

kanggo GPT:

Disk label type: gpt

Nyalin tabel partisi kanggo MBR:

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

Ing tim iki sing pisanan disk dituduhake с sing markup disalin, kapindho - ngendi salinan.

PENTING: Kanggo GPT sing pisanan disk dituduhake ing kang copy markup, kapindho disk nuduhake disk saka kang salinan markup. Yen sampeyan nyampur disk, partisi sing wiwitan apik bakal ditumpuk lan dirusak.

Nyalin tabel tata letak kanggo GPT:

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

Sabanjure, nemtokake UUID acak menyang disk (kanggo GPT).


sgdisk -G /dev/sdc

Sawise printah dieksekusi, partisi kudu katon ing 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  

Yen, sawise tumindak ditindakake, partisi ing sistem ing disk /dev/sdc undecided, banjur kita nglakokaké printah kanggo reread tabel pemisahan.

sfdisk -R /dev/sdc

Yen disk saiki nggunakake tabel MBR lan informasi kasebut kudu ditransfer menyang disk sing luwih gedhe tinimbang 2 TB, banjur ing disk anyar sampeyan kudu nggawe partisi GPT kanthi manual nggunakake partisi biosboot. Kasus iki bakal dibahas ing Part 2 artikel iki.

3. Nambahake partisi disk anyar menyang array

Ayo nambah partisi disk menyang susunan sing cocog.

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

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

Kita mriksa manawa bagean kasebut wis ditambahake.

[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  

Sawise iki, kita ngenteni array kanggo nyinkronake.

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

Sampeyan bisa terus-terusan ngawasi proses sinkronisasi nggunakake sarana kasebut watch.

watch -n 2 cat /proc/mdstat

Parameter -n nemtokake ing interval ing sawetara detik printah kudu kaleksanan kanggo mriksa kemajuan.

Baleni langkah 1 - 3 kanggo disk panggantos sabanjure.

Kita menehi tandha partisi disk kapindho sing digunakake ing saben array minangka ala.

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

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

Mbusak partisi piranti pamblokiran /dev/sdb saka susunan.

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

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

Sawise kita mbusak disk saka array, informasi piranti pemblokiran bakal katon kaya iki.

[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  

Negara susunan sawise njabut 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 saka disk /dev/sdс menyang disk /dev/sdd.

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

Sawise printah dieksekusi, partisi kudu katon ing 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  

Nambahake partisi disk menyang array.

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

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

Kita mriksa manawa bagean kasebut wis ditambahake.

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

Sawise iki, kita ngenteni array kanggo nyinkronake.

[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. Nginstal GRUB ing drive anyar

Kanggo CentOS:

grub2-install /dev/sdX

Kanggo Debian/Ubuntu:

grub-install /dev/sdX

ngendi X - layang saka piranti pamblokiran. Ing kasus iki, sampeyan kudu nginstal GRUB ing /dev/sdc и /dev/sdd.

6. Ekstensi sistem file (ext4) saka partisi root

Ing disk anyar /dev/sdc и /dev/sdd 931.5 GB kasedhiya. Amarga kasunyatan manawa tabel partisi disalin saka disk sing luwih cilik, partisi kasebut /dev/sdc2 и /dev/sdd2 222.5 GB kasedhiya.

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]

Sampeyan perlu:

  1. Ekstensi partisi 2 ing saben disk,
  2. Expand array md127,
  3. Expand PV (volume fisik),
  4. Expand LV (logical-volume) vg0-root,
  5. Nggedhekake sistem file.

Nggunakake sarana pisah ayo nggedhekake bagean /dev/sdc2 menyang nilai maksimum. Nglakokaké dhawuh parted /dev/sdc (1) lan ndeleng tabel partisi saiki kanthi printah p (2).

Ngganti disk cilik karo disk luwih gedhe ing Linux

Nalika sampeyan bisa ndeleng, mburi pemisahan 2 ends ing 240 GB. Ayo nggedhekake partisi kanthi printah resizepart 2, ngendi 2 iku nomer bagean (3). Kita nuduhake nilai ing format digital, contone 1000 GB, utawa nggunakake indikasi panggabungan disk - 100%. Kita mriksa maneh yen partisi nduweni ukuran anyar (4).

Baleni langkah ing ndhuwur kanggo disk /dev/sdd. Sawise nggedhekake partisi /dev/sdc2 и /dev/sdd2 dadi padha karo 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]

Sawise iki, kita nggedhekake array Md127 nganti maksimal.

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

Kita mriksa manawa array wis ditambahi. Saiki ukurane wis dadi 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]

Ngluwihi ekstensi volume fisik. Sadurunge nggedhekake, ayo mriksa kahanan PV saiki.

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

Minangka bisa katon, PV /dev/md127 nggunakake 222.4 GB saka papan.

We nggedhekake PV karo printah ing ngisor iki.

pvresize /dev/md127

Priksa asil expansion 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   ]

Ngembangake volume logis. Sadurunge nggedhekake, ayo mriksa kahanan saiki 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 nggunakake 206.41 GB.

We nggedhekake LV karo printah ing ngisor iki (2).

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

Kita mriksa tumindak rampung (3).

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

Kaya sing sampeyan ngerteni, sawise ngembangake LV, jumlah ruang disk sing dikuwasani dadi 914.39 GB.

Ngganti disk cilik karo disk luwih gedhe ing Linux

Volume LV wis tambah (4), nanging sistem file isih manggoni 204 GB (5).

1. Ayo nggedhekake sistem file.

resize2fs /dev/mapper/vg0-root

Sawise printah dieksekusi, kita mriksa 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 tambah dadi 900 GB. Sawise ngrampungake langkah-langkah kasebut, sampeyan bisa mbusak disk lawas.

Kasus 2: Ngganti disk cilik karo disk sing luwih gedhe (luwih saka 2TB)

Tugas: Ganti disk saiki nganggo disk sing luwih gedhe (2 x 3TB) nalika njaga informasi kasebut. Ing kasus iki, kita duwe 2 x 240 GB SSD (RAID-1) disk karo sistem diinstal lan 2 x 3 TB SATA disk kanggo kang sistem kudu ditransfer. Disk saiki nggunakake tabel partisi MBR. Amarga disk anyar duwe kapasitas luwih saka 2 TB, kudu nggunakake tabel GPT, amarga MBR ora bisa digunakake karo disk sing luwih gedhe tinimbang 2 TB.

Ayo katon ing tata letak disk saiki.

[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  

Ayo dipriksa tabel partisi sing digunakake ing disk /dev/sda.

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

Ing disk /dev/sdb Tabel partisi sing padha digunakake. Ayo priksa ruang disk sing digunakake ing 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

Nalika sampeyan bisa ndeleng, ROOT saka sistem file njupuk munggah 204 GB. Ayo dipriksa kahanan saiki saka array RAID piranti lunak.

1. Nginstal tabel partisi GPT lan partisi disk

Ayo dipriksa tata letak disk miturut 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

Ing disk 3TB anyar, kita kudu nggawe 3 partisi:

  1. Bagean bios_grub Ukuran 2MiB kanggo kompatibilitas GPT BIOS,
  2. Pemisahan kanggo array RAID sing bakal dipasang ing /boot.
  3. Pemisahan kanggo array RAID sing bakal ana LV ROOT и tukar LV.

Nginstal sarana pisah tim yum install -y parted (kanggo CentOS), apt install -y parted (kanggo Debian/Ubuntu).

Nggunakake pisah Ayo mbukak printah ing ngisor iki kanggo partisi disk.

Nglakokaké dhawuh parted /dev/sdc lan pindhah menyang mode editing tata letak disk.

Nggawe tabel partisi GPT.

(parted) mktable gpt

Nggawe 1 bagean bios_grub bagean lan nyetel flag kanggo.

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

Nggawe partisi 2 lan nyetel gendera kanggo. Partisi kasebut bakal digunakake minangka blok kanggo array RAID lan dipasang ing /boot.

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

Kita nggawe bagean 3rd, sing uga bakal digunakake minangka blok array ing ngendi LVM bakal ana.

(parted) mkpart primary 1028MiB 100% 

Ing kasus iki, ora perlu nyetel gendera, nanging yen perlu, bisa disetel nganggo printah ing ngisor iki.

(parted) set 3 raid on

Kita mriksa tabel sing digawe.

(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

We nemtokake GUID acak anyar kanggo disk.

sgdisk -G /dev/sdd

2. Mbusak partisi disk pisanan saka susunan

Priksa status 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>

Sistem nggunakake 2 susunan: md126 (mount point / boot) - kasusun saka /dev/sda1 и /dev/sdb1, md127 (LVM kanggo swap lan ROOT saka sistem file) - kasusun saka /dev/sda2 и /dev/sdb2.

Kita menehi tandha partisi disk pisanan sing digunakake ing saben array minangka ala.

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

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

Mbusak partisi piranti pamblokiran /dev/sda saka susunan.

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

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

Priksa status array sawise njabut 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. Nambahake partisi disk anyar menyang array

Langkah sabanjure yaiku nambah partisi disk anyar menyang susunan kanggo sinkronisasi. Ayo katon ing kahanan saiki saka tata letak 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  

Bagean /dev/sdc1 Iku bios_grub bagean lan ora melu nggawe susunan. Array mung bakal digunakake /dev/sdc2 и /dev/sdc3. Kita nambah bagean kasebut menyang susunan sing cocog.

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

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

Banjur kita ngenteni array kanggo nyinkronake.

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

Tata letak disk sawise nambahake partisi menyang array.

[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. Mbusak partisi disk kapindho saka susunan

Kita menehi tandha partisi disk kapindho sing digunakake ing saben array minangka ala.

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

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

Mbusak partisi piranti pamblokiran /dev/sda saka susunan.

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

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

5. Nyalin tabel tata letak GPT lan nyinkronake array

Kanggo nyalin tabel markup GPT kita bakal nggunakake sarana sgdisk, sing kalebu ing paket kanggo nggarap partisi disk lan tabel GPT - gdisk.

Instalasi gdisk kanggo CentOS:

yum install -y gdisk

Instalasi gdisk kanggo Debian/Ubuntu:

apt install -y gdisk

PENTING: Kanggo GPT sing pisanan disk dituduhake ing kang copy markup, kapindho disk nuduhake disk saka kang nyalin markup. Yen sampeyan nyampur disk, partisi sing wiwitan apik bakal ditumpuk lan dirusak.

Salin tabel markup GPT.

sgdisk -R /dev/sdd /dev/sdc

Pemisahan disk sawise nransfer tabel menyang 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  

Sabanjure, kita nambahake saben partisi sing melu array RAID piranti lunak.

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

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

Kita ngenteni array kanggo nyinkronake.

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

Sawise nyalin partisi GPT menyang disk anyar kapindho, partisi kasebut bakal katon kaya iki.

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

Sabanjure, instal GRUB ing disk anyar.

Instalasi kanggo CentOS:

grub2-install /dev/sdX

Instalasi kanggo Debian/Ubuntu:

grub-install /dev/sdX

ngendi X - huruf drive, ing kasus kita drive /dev/sdc и /dev/sdd.

Kita nganyari informasi babagan array.

Kanggo CentOS:

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

Kanggo Debian/Ubuntu:

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

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

Nganyari gambar initrd:
Kanggo CentOS:

dracut -f -v --regenerate-all

Kanggo Debian/Ubuntu:

update-initramfs -u -k all

Kita nganyari konfigurasi GRUB.

Kanggo CentOS:

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

Kanggo Debian/Ubuntu:

update-grub

Sawise ngrampungake langkah-langkah kasebut, disk lawas bisa dicopot.

6. Ekstensi sistem file (ext4) saka partisi root

Pemisahan disk sadurunge ekspansi sistem file sawise migrasi sistem menyang 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]

Saiki bagean /dev/sdc3 и /dev/sdd3 manggoni 2.7 TB. Amarga kita nggawe tata letak disk anyar kanthi tabel GPT, ukuran partisi 3 langsung disetel menyang ruang disk maksimal; ing kasus iki, ora perlu nggedhekake partisi.

Sampeyan perlu:

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

1. Expand array md126 nganti maksimal.

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

Sawise expansion array md126 ukuran papan sing dikuwasani wis tambah dadi 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]

Ngembangake volume fisik.

Sadurunge nggedhekake, priksa nilai saiki saka papan sing dikuwasani PV /dev/md126.

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

We nggedhekake PV karo printah ing ngisor iki.

pvresize /dev/md126

Kita mriksa tumindak sing wis rampung.

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

Ngembangake volume logis vg0-root.

Sawise nggedhekake PV, ayo mriksa ruang VG sing dikuwasani.

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

Ayo dipriksa papan sing dikuwasani 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 manggoni 206.41 GB.

We nggedhekake LV kanggo papan disk maksimum.

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

Priksa spasi LV sawise expansion.

[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

Ngembangake sistem file (ext4).

Ayo priksa ukuran sistem file saiki.

[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 manggoni 204 GB sawise expansion LV.

Ngembangake sistem file.

resize2fs /dev/mapper/vg0-root 

Priksa ukuran sistem file sawise nggedhekake.

[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 wis tambah kanggo nutupi kabeh volume.

Source: www.habr.com

Add a comment