Hai semua. Pada malam permulaan kumpulan kursus baru
Artikel ini akan mempertimbangkan 2 kes menggantikan cakera dan memindahkan maklumat ke cakera baharu dengan kapasiti yang lebih besar dengan pengembangan lanjut tatasusunan dan sistem fail. Kes pertama melibatkan penggantian cakera dengan pembahagian MBR/MBR atau GPT/GPT yang sama, kes kedua melibatkan penggantian cakera dengan pembahagian MBR dengan cakera dengan kapasiti lebih daripada 2 TB, di mana anda perlu memasang partition GPT dengan partition biosboot. Dalam kedua-dua kes, cakera yang kami pindahkan data telah dipasang pada pelayan. Sistem fail yang digunakan untuk partition root ialah ext4.
Kes 1: Menggantikan cakera yang lebih kecil dengan cakera yang lebih besar (sehingga 2TB)
Tugas: Gantikan cakera semasa dengan cakera yang lebih besar (sehingga 2 TB) dengan pemindahan maklumat. Dalam kes ini, kami mempunyai cakera 2 x 240 GB SSD (RAID-1) dengan sistem dipasang dan cakera SATA 2 x 1 TB yang sistem perlu dipindahkan.
Mari lihat susun atur cakera semasa.
[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
Mari kita semak ruang sistem fail yang sedang digunakan.
[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
Saiz sistem fail sebelum menggantikan cakera ialah 204 GB, 2 tatasusunan perisian md126 digunakan, yang dipasang dalam /boot
и md127
, yang digunakan sebagai isipadu fizikal untuk kumpulan VG vg0.
1. Mengalih keluar partition cakera daripada tatasusunan
Menyemak keadaan tatasusunan
[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 ini menggunakan 2 tatasusunan: md126
(titik lekap /boot
) - terdiri daripada bahagian /dev/sda1
и /dev/sdb1
, md127
(LVM untuk swap dan akar sistem fail) - terdiri daripada /dev/sda2
и /dev/sdb2
.
Kami menandakan partition cakera pertama yang digunakan dalam setiap tatasusunan sebagai buruk.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Kami mengalih keluar partition peranti blok /dev/sda daripada tatasusunan.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Selepas kami telah mengalih keluar cakera daripada tatasusunan, maklumat peranti blok akan kelihatan seperti ini.
[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
Keadaan tatasusunan selepas mengeluarkan cakera.
[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. Salin jadual partition ke cakera baharu
Anda boleh menyemak jadual partition yang digunakan pada cakera dengan arahan berikut.
fdisk -l /dev/sdb | grep 'Disk label type'
Output untuk MBR ialah:
Disk label type: dos
untuk GPT:
Disk label type: gpt
Menyalin jadual partition untuk MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
Dalam pasukan ini первым cakera ditunjukkan с yang mana markup disalin, kedua - di mana salinan.
PERHATIAN: Untuk GPT первым cakera ditunjukkan yang mana salin markup, kedua cakera menunjukkan cakera dari mana salin markup. Jika anda mencampurkan cakera, partition yang pada mulanya baik akan ditimpa dan dimusnahkan.
Menyalin jadual reka letak untuk GPT:
sgdisk -R /dev/sdс /dev/sdb
Seterusnya, tetapkan UUID rawak pada cakera (untuk GPT).
sgdisk -G /dev/sdc
Selepas arahan itu dilaksanakan, partition harus muncul pada cakera /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
Jika, selepas tindakan dilakukan, partition dalam sistem pada cakera /dev/sdc
belum membuat keputusan, maka kami melaksanakan arahan untuk membaca semula jadual partition.
sfdisk -R /dev/sdc
Jika cakera semasa menggunakan jadual MBR dan maklumat perlu dipindahkan ke cakera yang lebih besar daripada 2 TB, maka pada cakera baharu anda perlu mencipta partition GPT secara manual menggunakan partition biosboot. Kes ini akan dibincangkan dalam Bahagian 2 artikel ini.
3. Menambah partition cakera baharu pada tatasusunan
Mari tambah partition cakera pada tatasusunan yang sepadan.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Kami menyemak bahawa bahagian telah ditambahkan.
[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
Selepas ini, kami menunggu tatasusunan untuk disegerakkan.
[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>
Anda boleh terus memantau proses penyegerakan menggunakan utiliti watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
menentukan pada selang masa dalam beberapa saat arahan mesti dilaksanakan untuk menyemak kemajuan.
Ulang langkah 1 - 3 untuk cakera gantian seterusnya.
Kami menandakan partition cakera kedua yang digunakan dalam setiap tatasusunan sebagai buruk.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Mengalih keluar sekatan peranti blok /dev/sdb
daripada tatasusunan.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Selepas kami telah mengalih keluar cakera daripada tatasusunan, maklumat peranti blok akan kelihatan seperti ini.
[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
Keadaan tatasusunan selepas mengeluarkan cakera.
[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>
Menyalin jadual partition MBR dari cakera /dev/sdс
ke cakera /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Selepas arahan itu dilaksanakan, partition harus muncul pada cakera /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
Menambah partition cakera pada tatasusunan.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Kami menyemak bahawa bahagian telah ditambahkan.
[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]
Selepas ini, kami menunggu tatasusunan untuk disegerakkan.
[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. Memasang GRUB pada pemacu baharu
Untuk CentOS:
grub2-install /dev/sdX
Untuk Debian/Ubuntu:
grub-install /dev/sdX
mana X
— huruf peranti blok. Dalam kes ini, anda perlu memasang GRUB pada /dev/sdc
и /dev/sdd
.
6. Sambungan sistem fail (ext4) bagi partition root
Pada cakera baharu /dev/sdc
и /dev/sdd
931.5 GB tersedia. Disebabkan oleh fakta bahawa jadual partition telah disalin dari cakera yang lebih kecil, partition /dev/sdc2
и /dev/sdd2
222.5 GB tersedia.
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]
Perlu:
- Panjangkan partition 2 pada setiap cakera,
- Kembangkan tatasusunan md127,
- Kembangkan PV (isipadu fizikal),
- Kembangkan LV (volum logik) vg0-root,
- Kembangkan sistem fail.
Menggunakan utiliti berpisah mari luaskan bahagian /dev/sdc2
kepada nilai maksimum. Laksanakan arahan parted /dev/sdc
(1) dan lihat jadual partition semasa dengan arahan p
(2).
Seperti yang anda lihat, penghujung partition 2 berakhir pada 240 GB. Mari kembangkan partition dengan arahan resizepart
2
, dengan 2 ialah bilangan bahagian (3). Kami menunjukkan nilai dalam format digital, contohnya 1000 GB, atau menggunakan petunjuk bahagian cakera - 100%. Kami menyemak semula bahawa partition mempunyai saiz baharu (4).
Ulangi langkah di atas untuk cakera /dev/sdd
. Selepas mengembangkan partition /dev/sdc2
и /dev/sdd2
menjadi sama dengan 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]
Selepas ini kami mengembangkan tatasusunan md127 secara maksimum.
mdadm --grow /dev/md127 --size=max
Kami menyemak bahawa tatasusunan telah berkembang. Kini saiznya telah menjadi 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]
Memanjangkan sambungan isipadu fizikal. Sebelum mengembangkan, mari kita semak keadaan semasa 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 ]
Seperti yang dapat dilihat, PV /dev/md127
menggunakan 222.4 GB ruang.
Kami mengembangkan PV dengan arahan berikut.
pvresize /dev/md127
Menyemak hasil pengembangan 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 ]
Mengembangkan isipadu logik. Sebelum mengembangkan, mari kita semak keadaan semasa 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
menggunakan 206.41 GB.
Kami mengembangkan LV dengan arahan berikut (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Kami menyemak tindakan yang telah selesai (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Seperti yang anda lihat, selepas mengembangkan LV, jumlah ruang cakera yang diduduki menjadi 914.39 GB.
Jumlah LV telah meningkat (4), tetapi sistem fail masih menduduki 204 GB (5).
1. Mari kembangkan sistem fail.
resize2fs /dev/mapper/vg0-root
Selepas arahan itu dilaksanakan, kami menyemak saiz sistem fail.
[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
Saiz sistem fail akar akan meningkat kepada 900 GB. Selepas melengkapkan langkah, anda boleh mengalih keluar cakera lama.
Kes 2: Menggantikan cakera yang lebih kecil dengan cakera yang lebih besar (lebih daripada 2TB)
Senaman: Gantikan cakera semasa dengan cakera yang lebih besar (2 x 3TB) sambil mengekalkan maklumat. Dalam kes ini, kami mempunyai cakera 2 x 240 GB SSD (RAID-1) dengan sistem dipasang dan cakera SATA 2 x 3 TB yang sistem perlu dipindahkan. Cakera semasa menggunakan jadual partition MBR. Memandangkan cakera baharu mempunyai kapasiti lebih daripada 2 TB, ia perlu menggunakan jadual GPT, memandangkan MBR tidak boleh berfungsi dengan cakera yang lebih besar daripada 2 TB.
Mari lihat susun atur cakera semasa.
[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
Mari kita semak jadual partition yang digunakan pada cakera /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Pada cakera /dev/sdb
jadual partition yang serupa digunakan. Mari kita semak ruang cakera yang digunakan pada 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
Seperti yang anda lihat, akar sistem fail memerlukan 204 GB. Mari kita semak keadaan semasa tatasusunan RAID perisian.
1. Memasang jadual partition GPT dan partitioning cakera
Mari kita semak susun atur cakera mengikut 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
Pada cakera 3TB baharu kita perlu mencipta 3 partition:
- Seksyen
bios_grub
Saiz 2MiB untuk keserasian GPT BIOS, - Pembahagian untuk tatasusunan RAID yang akan dipasang
/boot
. - Pembahagian untuk tatasusunan RAID yang akan ada akar LV и pertukaran LV.
Memasang utiliti berpisah pasukan yum install -y parted
(untuk CentOS), apt install -y parted
(untuk Debian/Ubuntu).
Menggunakan berpisah Mari jalankan arahan berikut untuk membahagikan cakera.
Laksanakan arahan parted /dev/sdc
dan pergi ke mod penyuntingan susun atur cakera.
Buat jadual partition GPT.
(parted) mktable gpt
Buat 1 bahagian bios_grub
bahagian dan tetapkan bendera untuknya.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Buat partition 2 dan tetapkan bendera untuknya. Partition akan digunakan sebagai blok untuk tatasusunan RAID dan dipasang /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Kami mencipta bahagian ke-3, yang juga akan digunakan sebagai blok tatasusunan di mana LVM akan ditempatkan.
(parted) mkpart primary 1028MiB 100%
Dalam kes ini, tidak perlu menetapkan bendera, tetapi jika perlu, ia boleh ditetapkan dengan arahan berikut.
(parted) set 3 raid on
Kami menyemak jadual yang dibuat.
(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
Kami menetapkan GUID rawak baharu pada cakera.
sgdisk -G /dev/sdd
2. Mengalih keluar sekatan cakera pertama daripada tatasusunan
Menyemak keadaan tatasusunan
[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 menggunakan 2 tatasusunan: md126 (mount point /boot) - terdiri daripada /dev/sda1
и /dev/sdb1
, md127
(LVM untuk swap
dan akar sistem fail) - terdiri daripada /dev/sda2
и /dev/sdb2
.
Kami menandakan partition cakera pertama yang digunakan dalam setiap tatasusunan sebagai buruk.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Mengalih keluar sekatan peranti blok /dev/sda
daripada tatasusunan.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Menyemak keadaan tatasusunan selepas mengeluarkan cakera.
[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. Menambah partition cakera baharu pada tatasusunan
Langkah seterusnya ialah menambah partition cakera baharu pada tatasusunan untuk penyegerakan. Mari kita lihat keadaan semasa susun atur cakera.
[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
Seksyen /dev/sdc1
adalah bios_grub
bahagian dan tidak terlibat dalam penciptaan tatasusunan. Tatasusunan hanya akan digunakan /dev/sdc2
и /dev/sdc3
. Kami menambah bahagian ini pada tatasusunan yang sepadan.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Kemudian kita tunggu array untuk disegerakkan.
[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>
Pembahagian cakera selepas menambah partition pada tatasusunan.
[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. Mengalih keluar sekatan cakera kedua daripada tatasusunan
Kami menandakan partition cakera kedua yang digunakan dalam setiap tatasusunan sebagai buruk.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Mengalih keluar sekatan peranti blok /dev/sda
daripada tatasusunan.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Salin jadual susun atur GPT dan segerakkan tatasusunan
Untuk menyalin jadual markup GPT kami akan menggunakan utiliti sgdisk
, yang disertakan dalam pakej untuk bekerja dengan partition cakera dan jadual GPT - gdisk
.
Pemasangan gdisk
untuk CentOS:
yum install -y gdisk
Pemasangan gdisk
untuk Debian/Ubuntu:
apt install -y gdisk
PERHATIAN: Untuk GPT первым cakera ditunjukkan yang mana salin markup, kedua cakera menunjukkan cakera dari mana salin markup. Jika anda mencampurkan cakera, partition yang pada mulanya baik akan ditimpa dan dimusnahkan.
Salin jadual penanda GPT.
sgdisk -R /dev/sdd /dev/sdc
Pembahagian cakera selepas memindahkan jadual ke cakera /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
Seterusnya, kami menambah setiap partition yang mengambil bahagian dalam tatasusunan RAID perisian.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Kami sedang menunggu tatasusunan untuk disegerakkan.
[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>
Selepas menyalin partition GPT ke cakera baharu kedua, partition akan kelihatan seperti ini.
[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]
Seterusnya, pasang GRUB pada cakera baharu.
Pemasangan untuk CentOS:
grub2-install /dev/sdX
Pemasangan untuk Debian/Ubuntu:
grub-install /dev/sdX
mana X
— surat memandu, dalam kes kami memandu /dev/sdc
и /dev/sdd
.
Kami mengemas kini maklumat tentang tatasusunan.
Untuk CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Untuk Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Mengemas kini imej initrd
:
Untuk CentOS:
dracut -f -v --regenerate-all
Untuk Debian/Ubuntu:
update-initramfs -u -k all
Kami mengemas kini konfigurasi GRUB.
Untuk CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Untuk Debian/Ubuntu:
update-grub
Selepas melengkapkan langkah, cakera lama boleh dialih keluar.
6. Sambungan sistem fail (ext4) bagi partition root
Pembahagian cakera sebelum pengembangan sistem fail selepas memindahkan sistem kepada cakera 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]
Sekarang bahagian /dev/sdc3
и /dev/sdd3
menduduki 2.7 TB. Memandangkan kami mencipta susun atur cakera baharu dengan jadual GPT, saiz partition 3 segera ditetapkan kepada ruang cakera maksimum yang mungkin; dalam kes ini, tidak perlu mengembangkan partition.
Perlu:
- Kembangkan tatasusunan md126,
- Kembangkan PV (isipadu fizikal),
- Kembangkan LV (volum logik) vg0-root,
- Kembangkan sistem fail.
1. Kembangkan tatasusunan md126
secara maksimum.
mdadm --grow /dev/md126 --size=max
Selepas pengembangan tatasusunan md126
saiz ruang yang diduduki telah meningkat kepada 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]
Mengembangkan isipadu fizikal.
Sebelum mengembangkan, semak nilai semasa PV ruang yang diduduki /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Kami mengembangkan PV dengan arahan berikut.
pvresize /dev/md126
Kami menyemak tindakan yang telah selesai.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Mengembangkan volum logik vg0-root.
Selepas mengembangkan PV, mari semak VG ruang yang diduduki.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Jom semak ruang yang diduduki oleh 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
Jumlah vg0-root menduduki 206.41 GB.
Kami mengembangkan LV ke ruang cakera maksimum.
lvextend -l +100%FREE /dev/mapper/vg0-root
Memeriksa ruang LV selepas pengembangan.
[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
Memperluas sistem fail (ext4).
Mari kita semak saiz semasa sistem fail.
[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
Kelantangan /dev/mapper/vg0-root menduduki 204 GB selepas pengembangan LV.
Memperluas sistem fail.
resize2fs /dev/mapper/vg0-root
Menyemak saiz sistem fail selepas mengembangkannya.
[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
Saiz sistem fail telah ditingkatkan untuk menampung keseluruhan volum.
Sumber: www.habr.com