Halo semua. Menjelang dimulainya kelompok kursus baru
Artikel ini akan membahas 2 kasus penggantian disk dan mentransfer informasi ke disk baru dengan kapasitas lebih besar dengan perluasan lebih lanjut dari array dan sistem file. Kasus pertama menyangkut penggantian disk dengan partisi MBR/MBR atau GPT/GPT yang sama, kasus kedua menyangkut penggantian disk dengan partisi MBR dengan disk dengan kapasitas lebih dari 2 TB, yang mana Anda perlu menginstal partisi GPT dengan partisi biosboot. Dalam kedua kasus tersebut, disk tempat kami mentransfer data sudah diinstal di server. Sistem file yang digunakan untuk partisi root adalah ext4.
Kasus 1: Mengganti disk yang lebih kecil dengan disk yang lebih besar (hingga 2 TB)
Tugas: Ganti disk saat ini dengan disk yang lebih besar (hingga 2 TB) dengan transfer informasi. Dalam hal ini, kami memiliki disk SSD (RAID-2) 240 x 1 GB dengan sistem terinstal dan disk SATA 2 x 1 TB tempat sistem perlu ditransfer.
Mari kita lihat tata letak disk saat 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
│ └─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 periksa ruang sistem file yang saat ini 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
Ukuran sistem file sebelum mengganti disk adalah 204 GB, 2 array perangkat lunak md126 digunakan, yang dipasang di /boot
и md127
, yang digunakan sebagai volume fisik untuk grup VG vg0.dll.
1. Menghapus partisi disk dari array
Memeriksa 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 menggunakan 2 array: md126
(titik pemasangan /boot
) - terdiri dari satu bagian /dev/sda1
и /dev/sdb1
, md127
(LVM untuk menukar dan root dari sistem file) - terdiri dari /dev/sda2
и /dev/sdb2
.
Kami menandai partisi disk pertama yang digunakan di setiap array sebagai buruk.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Kami menghapus partisi perangkat blok /dev/sda dari array.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Setelah kita mengeluarkan disk dari array, informasi perangkat blok akan terlihat 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 array setelah mengeluarkan 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. Salin tabel partisi ke disk baru
Anda dapat memeriksa tabel partisi yang digunakan pada disk dengan perintah berikut.
fdisk -l /dev/sdb | grep 'Disk label type'
Output untuk MBR adalah:
Disk label type: dos
untuk GPT:
Disk label type: gpt
Menyalin tabel partisi untuk MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
Dalam perintah ini yang pertama disk ditunjukkan с yang mana markup disalin, kedua - dimana menyalin.
PERHATIAN: Untuk GPT yang pertama disk ditunjukkan di mana salin markup, kedua disk menunjukkan disk dari mana salin markup. Jika Anda mencampuradukkan disk, partisi yang awalnya baik akan ditimpa dan dimusnahkan.
Menyalin tabel tata letak untuk GPT:
sgdisk -R /dev/sdс /dev/sdb
Selanjutnya, tetapkan UUID acak ke disk (untuk GPT).
sgdisk -G /dev/sdc
Setelah perintah dijalankan, partisi akan muncul di 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
Jika, setelah tindakan dilakukan, partisi dalam sistem pada disk /dev/sdc
ragu-ragu, lalu kita jalankan perintah untuk membaca ulang tabel partisi.
sfdisk -R /dev/sdc
Jika disk saat ini menggunakan tabel MBR dan informasi perlu ditransfer ke disk yang lebih besar dari 2 TB, maka pada disk baru Anda perlu membuat partisi GPT secara manual menggunakan partisi biosboot. Kasus ini akan dibahas pada Bagian 2 artikel ini.
3. Menambahkan partisi disk baru ke array
Mari tambahkan partisi disk ke array yang sesuai.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Kami memeriksa apakah bagian tersebut 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
Setelah ini, kita menunggu hingga array disinkronkan.
[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 dapat terus memantau proses sinkronisasi menggunakan utilitas watch
.
watch -n 2 cat /proc/mdstat
Parameter -n
menentukan pada interval berapa dalam hitungan detik perintah harus dijalankan untuk memeriksa kemajuan.
Ulangi langkah 1 - 3 untuk disk pengganti berikutnya.
Kami menandai partisi disk kedua yang digunakan di setiap array sebagai buruk.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Menghapus partisi perangkat blok /dev/sdb
dari array.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Setelah kita mengeluarkan disk dari array, informasi perangkat blok akan terlihat 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 array setelah mengeluarkan 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>
Menyalin tabel partisi MBR dari disk /dev/sdс
ke disk /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Setelah perintah dijalankan, partisi akan muncul di 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
Menambahkan partisi disk ke array.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Kami memeriksa apakah bagian tersebut 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]
Setelah ini, kita menunggu hingga array disinkronkan.
[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. Menginstal GRUB pada drive baru
Untuk CentOS:
grub2-install /dev/sdX
Untuk Debian/Ubuntu:
grub-install /dev/sdX
dimana X
— huruf perangkat blok. Dalam hal ini, Anda perlu menginstal GRUB /dev/sdc
и /dev/sdd
.
6. Ekstensi sistem file (ext4) dari partisi root
Pada disk baru /dev/sdc
и /dev/sdd
Tersedia 931.5 GB. Karena kenyataan bahwa tabel partisi disalin dari disk yang lebih kecil, partisi /dev/sdc2
и /dev/sdd2
Tersedia 222.5 GB.
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]
Hal ini diperlukan:
- Perluas partisi 2 pada masing-masing disk,
- Perluas susunan md127,
- Perluas PV (volume fisik),
- Perluas LV (volume logis) vg0-root,
- Perluas sistem file.
Menggunakan utilitas berpisah mari kita perluas bagiannya /dev/sdc2
ke nilai maksimum. Jalankan perintah parted /dev/sdc
(1) dan lihat tabel partisi saat ini dengan perintah p
(2).
Seperti yang Anda lihat, akhir partisi 2 berakhir pada 240 GB. Mari perluas partisi dengan perintah resizepart
2
, dimana 2 adalah nomor bagian (3). Kami menunjukkan nilai dalam format digital, misalnya 1000 GB, atau menggunakan indikasi pembagian disk - 100%. Kami memeriksa lagi apakah partisi tersebut memiliki ukuran baru (4).
Ulangi langkah di atas untuk disk /dev/sdd
. Setelah memperluas partisi /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]
Setelah ini kami memperluas arraynya md127 hingga maksimal.
mdadm --grow /dev/md127 --size=max
Kami memeriksa apakah array telah diperluas. Sekarang ukurannya 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]
Memperluas ekstensi volume fisik. Sebelum memperluas, mari kita periksa kondisi PV saat ini.
[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 bisa dilihat, PV /dev/md127
menggunakan ruang 222.4 GB.
Kami memperluas PV dengan perintah berikut.
pvresize /dev/md127
Memeriksa hasil ekspansi 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 ]
Memperluas volume logis. Sebelum memperluas, mari kita periksa kondisi LV (1) saat ini.
[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 memperluas LV dengan perintah berikut (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Kami memeriksa 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, setelah LV diperluas, jumlah ruang disk yang digunakan menjadi 914.39 GB.
Volume LV meningkat (4), namun sistem file masih menempati 204 GB (5).
1. Mari perluas sistem file.
resize2fs /dev/mapper/vg0-root
Setelah perintah dijalankan, kami memeriksa 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 akan meningkat menjadi 900 GB. Setelah menyelesaikan langkah-langkahnya, Anda dapat menghapus disk lama.
Kasus 2: Mengganti disk yang lebih kecil dengan disk yang lebih besar (lebih dari 2TB)
Tugas: Ganti disk saat ini dengan disk yang lebih besar (2 x 3TB) dengan tetap menjaga informasinya. Dalam hal ini, kami memiliki disk SSD (RAID-2) 240 x 1 GB dengan sistem terinstal dan disk SATA 2 x 3 TB tempat sistem perlu ditransfer. Disk saat ini menggunakan tabel partisi MBR. Karena disk baru memiliki kapasitas lebih besar dari 2 TB, disk tersebut perlu menggunakan tabel GPT, karena MBR tidak dapat bekerja dengan disk yang lebih besar dari 2 TB.
Mari kita lihat tata letak disk saat 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
│ └─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 periksa tabel partisi yang digunakan pada disk /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
Di disk /dev/sdb
tabel partisi serupa digunakan. Mari kita periksa ruang disk 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, root sistem file membutuhkan 204 GB. Mari kita periksa status array RAID perangkat lunak saat ini.
1. Menginstal tabel partisi GPT dan mempartisi disk
Mari kita periksa tata letak disk berdasarkan 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 disk 3TB yang baru kita perlu membuat 3 partisi:
- Bagian
bios_grub
Ukuran 2MiB untuk kompatibilitas GPT BIOS, - Partisi untuk array RAID yang akan dipasang
/boot
. - Partisi untuk array RAID yang akan ditempatkan Akar LV и pertukaran LV.
Menginstal utilitas berpisah tim yum install -y parted
(untuk CentOS), apt install -y parted
(untuk Debian/Ubuntu).
Menggunakan berpisah Mari jalankan perintah berikut untuk mempartisi disk.
Jalankan perintah parted /dev/sdc
dan masuk ke mode pengeditan tata letak disk.
Buat tabel partisi GPT.
(parted) mktable gpt
Buat 1 bagian bios_grub
bagian dan atur tanda untuk itu.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Buat partisi 2 dan atur tandanya. Partisi tersebut akan digunakan sebagai blok untuk array RAID dan dipasang di dalamnya /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Kami membuat partisi 3, yang juga akan digunakan sebagai blok array di mana LVM akan ditempatkan.
(parted) mkpart primary 1028MiB 100%
Dalam hal ini, tidak perlu menyetel flag, tetapi jika perlu, dapat disetel dengan perintah berikut.
(parted) set 3 raid on
Kami memeriksa tabel 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 acak baru ke disk.
sgdisk -G /dev/sdd
2. Menghapus partisi disk pertama dari array
Memeriksa 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 menggunakan 2 array: md126 (mount point /boot) - terdiri dari /dev/sda1
и /dev/sdb1
, md127
(LVM untuk swap
dan root dari sistem file) - terdiri dari /dev/sda2
и /dev/sdb2
.
Kami menandai partisi disk pertama yang digunakan di setiap array sebagai buruk.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Menghapus partisi perangkat blok /dev/sda
dari array.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Memeriksa status array setelah mengeluarkan 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. Menambahkan partisi disk baru ke array
Langkah selanjutnya adalah menambahkan partisi disk baru ke array untuk sinkronisasi. Mari kita lihat keadaan tata letak disk saat 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 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
adalah bios_grub
bagian dan tidak terlibat dalam pembuatan array. Array hanya akan digunakan /dev/sdc2
и /dev/sdc3
. Kami menambahkan bagian ini ke array yang sesuai.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Kemudian kita menunggu array untuk melakukan sinkronisasi.
[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>
Partisi disk setelah menambahkan partisi ke 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. Menghapus partisi disk kedua dari array
Kami menandai partisi disk kedua yang digunakan di setiap array sebagai buruk.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Menghapus partisi perangkat blok /dev/sda
dari array.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Salin tabel tata letak GPT dan sinkronkan array
Untuk menyalin tabel markup GPT kita akan menggunakan utilitas sgdisk
, yang disertakan dalam paket untuk bekerja dengan partisi disk dan tabel GPT - gdisk
.
Instalasi gdisk
untuk CentOS:
yum install -y gdisk
Instalasi gdisk
untuk Debian/Ubuntu:
apt install -y gdisk
PERHATIAN: Untuk GPT yang pertama disk ditunjukkan di mana salin markupnya, kedua disk menunjukkan disk dari mana salin markupnya. Jika Anda mencampuradukkan disk, partisi yang awalnya baik akan ditimpa dan dimusnahkan.
Salin tabel markup GPT.
sgdisk -R /dev/sdd /dev/sdc
Partisi disk setelah mentransfer tabel ke 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
Selanjutnya, kami menambahkan setiap partisi yang berpartisipasi dalam array RAID perangkat lunak.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Kami sedang menunggu array untuk disinkronkan.
[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>
Setelah menyalin partisi GPT ke disk baru kedua, partisi tersebut akan terlihat 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]
Selanjutnya, instal GRUB pada disk baru.
Instalasi untuk CentOS:
grub2-install /dev/sdX
Instalasi untuk Debian/Ubuntu:
grub-install /dev/sdX
dimana X
— huruf drive, dalam kasus kami drive /dev/sdc
и /dev/sdd
.
Kami memperbarui informasi tentang array.
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
Memperbarui gambar initrd
:
Untuk CentOS:
dracut -f -v --regenerate-all
Untuk Debian/Ubuntu:
update-initramfs -u -k all
Kami memperbarui konfigurasi GRUB.
Untuk CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Untuk Debian/Ubuntu:
update-grub
Setelah menyelesaikan langkah-langkahnya, disk lama dapat dihapus.
6. Ekstensi sistem file (ext4) dari partisi root
Partisi disk sebelum perluasan sistem file setelah memigrasi sistem ke 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]
Sekarang bagian /dev/sdc3
и /dev/sdd3
menempati 2.7 TB. Karena kami membuat tata letak disk baru dengan tabel GPT, ukuran partisi 3 segera disetel ke ruang disk semaksimal mungkin; dalam hal ini, tidak perlu memperluas partisi.
Hal ini diperlukan:
- Perluas susunan md126,
- Perluas PV (volume fisik),
- Perluas LV (volume logis) vg0-root,
- Perluas sistem file.
1. Perluas arraynya md126
hingga maksimal.
mdadm --grow /dev/md126 --size=max
Setelah perluasan array md126
ukuran ruang yang ditempati telah meningkat menjadi 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]
Memperluas volume fisik.
Sebelum memperluas, periksa nilai saat ini dari ruang yang ditempati PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Kami memperluas PV dengan perintah berikut.
pvresize /dev/md126
Kami memeriksa tindakan yang telah selesai.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Memperluas volume logis vg0-root.
Setelah memperluas PV, mari kita periksa ruang yang ditempati VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Mari kita periksa ruang yang ditempati 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
Volume vg0-root menempati 206.41 GB.
Kami memperluas LV ke ruang disk maksimum.
lvextend -l +100%FREE /dev/mapper/vg0-root
Memeriksa ruang LV setelah ekspansi.
[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 file (ext4).
Mari kita periksa ukuran sistem file saat ini.
[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 menempati 204 GB setelah ekspansi LV.
Memperluas sistem file.
resize2fs /dev/mapper/vg0-root
Memeriksa ukuran sistem file setelah 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
Ukuran sistem file telah ditingkatkan untuk mencakup seluruh volume.
Sumber: www.habr.com