Hər kəsə salam. Yeni kurs qrupunun başlanğıcı ərəfəsində bir faydalı materialı istifadəyə veririk, onu tələbəmiz, kurslarımızdakı mentor və REG.RU korporativ məhsullarının texniki dəstək mütəxəssisi — Roman Traviyn tərəfindən yazılıb.
Bu məqalədə iki disk dəyişmə və daha böyük tutuma malik yeni disklərə məlumat ötürmə hallarını nəzərdən keçirəcəyik, bununla yanaşı arraya və fayl sisteminə genişləndirmək. Birinci hal MBR/MBR və ya GPT/GPT eyniadlı bölmə ilə disk dəyişməsi ilə bağlı olacaq, ikinci hal isə MBR bölməsi olan diskləri 2 TB-dan çox tutuma malik disklərlə dəyişməyə aiddir, burada BIOS boot bölməsi ilə GPT bölməsi qurulmalıdır. Hər iki halda məlumatların köçürüləcəyi disklər artıq server. İstifadə olunan fayl sistemi — ext4.
Hal 1: Kiçik tutumlu disklərin daha böyük tutumlu disklərlə (2 TB-a qədər) dəyişdirilməsi
Tapşırıq: Mövcud diskləri daha böyük tutumlu (2 TB-a qədər) disklərlə dəyişdirmək, məlumatların köçürülməsi ilə. Bu halda 2 x 240 GB SSD (RAID-1) ilə quraşdırılmış sistemimiz var və məlumatları köçürməli olduğumuz 2 x 1 TB SATA disklər var.
Mövcud disk bölməsini nəzərdən keçirək.
[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 Mövcud anda fayl sisteminin istifadə olunan sahəsini yoxlayaq.
[root@localhost ~]# df -h
Fayl sistemi Ölçü İstifadə olunan Qalıq İstifadə olunan% Montajda
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 Disklərin dəyişdirilməsindən əvvəl fayl sisteminin ölçüsü 204 GB təşkil edir, 2 proqramlı array md126 aktivdir, bu isə /boot və md127, bu isə fiziki həcim üçün VG qrupunun vg0.
1. Disk bölmələrinin arraylardan silinməsi
Arrayın vəziyyətini yoxlayaq
[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: Sistemdə 2 array istifadə olunur: md126 (montaj nöqtəsi /boot) — bölmədən ibarətdir /dev/sda1 və /dev/sdb1, md127 (LVM üçün swap və fayl sisteminin kök həcmi) — ibarətdir /dev/sda2 və /dev/sdb2.
Birinci diskin arrayda iştirak edən bölmələrini uğursuz kimi işarələyirik.
mdadm \/dev\/md126 --fail \/dev\/sda1
mdadm \/dev\/md127 --fail \/dev\/sda2
Удаляем разделы блочного устройства /dev/sda из массивов.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2После того, как мы удалили диск из массива, информация о блочных устройствах будет выглядеть следующим образом.
[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 Состояние массивов после удаления дисков.
[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. Копирование таблицы разделов на новый диск
Проверить используемую таблицу разделов на диске можно следующей командой.
fdisk -l /dev/sdb | grep 'Disk label type'
Выводом для MBR будет:
Disk label type: dosдля GPT:
Disk label type: gpt Копирование таблицы разметки для MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdcВ данной команде первым указывается диск c которого копируется разметка, вторым — куда копировать.
ВНИМАНИЕ: Для GPT первым указывается диск на который копировать разметку, вторым диском указывается диск с которого копировать разметку. Если перепутать диски, то изначально исправная разметка будет перезаписана и уничтожена.
Копирование таблицы разметки для GPT:
sgdisk -R /dev/sdс /dev/sdbДалее назначаем диску случайный UUID (для GPT).
sgdisk -G /dev/sdc После выполненной команды разделы должны появится на диске /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 Если после выполненного действия разделы в системе на диске /dev/sdc не определились, то выполняем команду, чтобы перечитать таблицу разделов.
sfdisk -R /dev/sdcЕсли на текущих дисках используется таблица MBR и информацию необходимо перенести на диски объёмом более 2 TB, то на новых дисках потребуется вручную создавать разметку GPT с использованием раздела biosboot. Данный случай будет рассмотрен во 2 части данной статьи.
3. Добавление разделов нового диска в массив
Добавим разделы диска в соответствующие массивы.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2Проверяем, что разделы добавлены.
[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 Sonra, arraylərin sinxronizasiyasını gözləyirik.
[root@localhost ~]# cat \/proc\/mdstat
Personalities : [raid1]
md126 : aktiv raid1 sdc1[2] sdb1[1]
1047552 blocks super 1.2 [2\/2] [UU]
bitmap: 0\/1 pages [0KB], 65536KB chunk
md127 : aktiv 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: Sinxronizasiya prosesini davamlı izləmək üçün, proqramdan istifadə edə bilərsiniz watch.
watch -n 2 cat \/proc\/mdstat Parametr -n bu, müəyyən edilmiş saniyə aralığında irəliləməyi yoxlamaq üçün əmri icra etməyə imkan tanıyır.
1-3-cü maddələri növbəti dəyişdiriləcək disk üçün təkrarlayırıq.
İkinci diskin hər varaqda istifadə olunan hissələrini uğursuz olaraq qeyd edirik.
mdadm \/dev\/md126 --fail \/dev\/sdb1
mdadm \/dev\/md127 --fail \/dev\/sdb2
Blok cihazının hissələrini /dev/sdb arraylardan silirik.
mdadm \/dev\/md126 --remove \/dev\/sdb1
mdadm \/dev\/md127 --remove \/dev\/sdb2После того, как мы удалили диск из массива, информация о блочных устройствах будет выглядеть следующим образом.
[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
Состояние массивов после удаления дисков.
[root@localhost ~]# cat \/proc\/mdstat
Personalities : [raid1]
md126 : aktiv raid1 sdc1[2]
1047552 blocks super 1.2 [2\/1] [U_]
bitmap: 0\/1 pages [0KB], 65536KB chunk
md127 : aktiv raid1 sdc2[2]
233206784 blocks super 1.2 [2\/1] [U_]
bitmap: 1\/2 pages [4KB], 65536KB chunk
unused devices: MBR bölməsinin cədvəlini disklə /dev/sdс diskə köçürürük /dev/sdd.
sfdisk -d \/dev\/sdс | sfdisk \/dev\/sdd После выполненной команды разделы должны появится на диске /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 Diskin bölmələrini arraylara əlavə edirik.
mdadm \/dev\/md126 --add \/dev\/sdd1
mdadm \/dev\/md127 --add \/dev\/sdd2Проверяем, что разделы добавлены.
[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]Sonra, arraylərin sinxronizasiyasını gözləyirik.
[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:
5. GRUB'ın yeni disklere kurulması
CentOS için:
grub2-install /dev/sdXDebian/Ubuntu için:
grub-install /dev/sdX burada X — blok cihazının harfidir. Bu durumda GRUB'ı kurmak gerekir /dev/sdc və /dev/sdd.
6. Yeni disklerde kök bölümünün dosya sisteminin genişletilmesi
Yeni disklerde /dev/sdc və /dev/sdd 931.5 GB mevcuttur. Bölüm tablosu daha az kapasiteli disklerden kopyalandığından, bölümlerde /dev/sdc2 və /dev/sdd2 222.5 GB mevcuttur.
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]Gerekli:
- Her diskte 2. bölümü genişletmek,
- md127 dizisini genişletmek,
- PV'yi (fiziksel hacim) genişletmek,
- vg0-root'u (mantıksal hacim) genişletmek,
- dosya sistemini genişletmek.
Kullanarak parted bölümü /dev/sdc2 maksimum değere genişletelim. Aşağıdaki komutu çalıştırıyoruz: parted /dev/sdc (1) ve mevcut bölüm tablosunu görmek için: p (2).

Görüldüğü gibi, 2. bölümün sonu 240 GB'de bitiyor. Bölümü genişletmek için şu komutu çalıştırıyoruz: resizepart 2, burada 2 — bölüm numarasıdır (3). Sayısal formatta bir değer belirtiyoruz, örneğin 1000 GB veya disk yüzdesi kullanabiliriz — 100%. Tekrar kontrol edelim ki bölüm yeni boyuta sahip (4).
Yukarıda belirtilen işlemleri /dev/sddiçin tekrar ediyoruz. Bölümlerin genişletilmesinden sonra /dev/sdc2 və /dev/sdd2 930.5 GB eşit oldu.
[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]Daha sonra dizi genişletme işlemini gerçekleştiriyoruz md127 maksimum boyuta kadar.
mdadm --grow /dev/md127 --size=maxDizi genişlediğini kontrol ediyoruz. Şimdi boyutu 930.4 GB oldu.
[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]Genişletme işlemini gerçekleştiriyoruz fiziki həcim. Genişletme öncesi mevcut PV durumunu kontrol edelim.
[root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [222.40 GiB / 0 free]
Toplam: 1 [222.40 GiB] / kullanılan: 1 [222.40 GiB] / no VG: 0 [0 ]
Görüldüğü gibi, PV /dev/md127 222.4 GB alan kullanıyor.
PV'yi aşağıdaki komutla genişletiyoruz.
pvresize /dev/md127PV genişletme sonucunu kontrol ediyoruz.
[
root@localhost ~]# pvscan
PV /dev/md127 VG vg0 lvm2 [930.38 GiB / 707.98 GiB free]
Toplam: 1 [930.38 GiB] / kullanılan: 1 [930.38 GiB] / no VG: 0 [0 ]Genişletiyoruz mantıksal birimi. Genişletme öncesi mevcut LV durumunu kontrol edelim (1).
[root@localhost ~]# lvscan
AKTİF ' /dev/vg0/swap' [<16.00 GiB] inherit
AKTİF ' /dev/vg0/root' [<206.41 GiB] inherit LV /dev/vg0/root 206.41 GB kullanıyor.
LV'yi aşağıdaki komutla genişletiyoruz (2).
lvextend -l +100%FREE /dev/mapper/vg0-rootGerçekleştirdiğimiz işlemin sonucunu kontrol ediyoruz (3).
[root@localhost ~]# lvscan
AKTİF ' /dev/vg0/swap' [<16.00 GiB] inherit
AKTİF ' /dev/vg0/root' [<914.39 GiB] inherit
Görüldüğü üzere, LV genişlettikten sonra alanın kapladığı disk boyutu 914.39 GB oldu.

LV boyutu arttı (4), ancak dosya sistemi halen 204 GB kaplıyor (5).
1. Dosya sistemini genişletelim.
resize2fs /dev/mapper/vg0-rootGenişletme komutundan sonra dosya sisteminin boyutunu kontrol ediyoruz.
[root@localhost ~]# df -h
Dosya sistemi Boyut Kullanılan Boş Kullanılan% Montaj noktasında
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\/0Kök dosya sisteminin boyutu 900 GB'a yükselecek. Yapılan işlemlerden sonra eski diskler çıkarılabilir.
Durum 2: Daha küçük disklerin daha büyük disklerle (2TB'den fazla) değiştirilmesi
Görev: Mevcut diskleri bilgi kaybı olmadan daha büyük disklerle (2 x 3TB) değiştirmek. Bu durumda, 2 x 240 GB SSD (RAID-1) ile kurulu sistemin bulunduğu diskler ve sistemi taşıyacağımız 2 x 3 TB SATA diskleri bulunmaktadır. Mevcut disklerde MBR bölümleme tablosu kullanılmaktadır. Yeni diskler 2 TB'den büyük olduğu için, bunlarda GPT bölümleme tablosu kullanılacaktır, çünkü MBR 2 TB'den büyük disklerle çalışamaz.
Mevcut disk düzenini inceleyelim.
[root@localhost ~]# lsblk
İsim MAJ:MIN RM BOYUT RO TİP MONTAJ NOKTASI
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 bölüm
│ └─md126 9:126 0 1023M 0 raid1 \/boot
└─sda2 8:2 0 222,5G 0 bölüm
└─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 bölüm
│ └─md126 9:126 0 1023M 0 raid1 \/boot
└─sdb2 8:18 0 222,5G 0 bölüm
└─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 Diskte kullanılan bölümleme tablosunu kontrol edelim. /dev/sda.
[root@localhost ~]# fdisk -l \/dev\/sda | grep 'Disk label type'
Disk label type: dos Diskte /dev/sdb aynı bölümleme tablosu kullanılıyor. Sistemde kullanılan disk alanını kontrol edelim.
[root@localhost ~]# df -h
Dosya sistemi Boyut Kullanılan Boş Kullanılan% Montaj noktasında
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\/0Görüldüğü gibi, dosya sisteminin kökü 204 GB yer kaplıyor. Mevcut yazılım RAID dizisinin durumunu kontrol edelim.
1. GPT bölümleme tablosunun kurulumu ve diskin düzenlenmesi
Disklerin sektörler halinde düzenini kontrol edelim.
[root@localhost ~]# parted \/dev\/sda print
Model: ATA KINGSTON SVP200S (scsi)
Disk \/dev\/sda: 240GB
Sektör boyutu (mantıksal/fiziksel): 512B/512B
Bölümleme tablosu: msdos
Disk Bayrakları:
Numara Başlangıç Bitiş Boyut Tür Dosya sistemi Bayraklar
1 1049kB 1076MB 1075MB birincil önyükleme, raid
2 1076MB 240GB 239GB birincil raid
Yeni 3TB disk üzerinde 3 bölüm oluşturmamız gerekecek:
- Bölüm
bios_grubGPT ile BIOS arasında uyumluluk için 2MiB boyutunda, - RAID dizisi için, monte edilecek bölüm
/boot. - RAID massivi üçün bölmə, üstündə olacaq LV root və LV swap.
Alətimizi quraşdırırıq parted əmri ilə yum install -y parted (CentOS üçün), apt install -y parted (Debian/Ubuntu).
İstifadə edərək parted diskin bölmələnməsi üçün aşağıdakı əmrləri yerinə yetirəcəyik.
Komandanı icra edirik parted /dev/sdc və disk bölmələrinin redaktə rejiminə keçirik.
GPT bölmə cədvəli yaradırıq.
(parted) mktable gpt 1 bölmə yaradırıq bios_grub bölmə və ona ştamplar quraşdırırıq.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on 2-ci bölməni yaradırıq və ona ştamplar quraşdırırıq. Bu bölmə RAID massivi üçün blok kimi istifadə olunacaq və bunun daxilində montaj ediləcək /boot.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on3-cü bölmə yaradırıq ki, bu da blok massivi üçün istifadə olunacaq, burada LVM olacaq.
(parted) mkpart primary 1028MiB 100% Bu halda ştampları quraşdırmaq mütləq deyil, amma əgər ehtiyac varsa, onu aşağıdakı əmr ilə quraşdıra bilərsiniz.
(parted) set 3 raid onYaradılan cədvəli yoxlayırıq.
(parted) p
Model: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdc: 3001GB
Sektorun ölçüsü (lojiq./fiziki): 512B/4096B
Bölmə cədvəli: gpt
Disk Ştampları:
Nömrə Başlanğıc Son Ölçü Fayl sistemi Ad Ştamplar
1 1049kB 3146kB 2097kB primary bios_grub
2 3146kB 1077MB 1074MB primary yüklənə bilən
3 1077MB 3001GB 3000GB primary
Diskə yeni təsadüfi GUID təyin edirik.
sgdisk -G /dev/sdd
2. Birinci diskdə bölmələri massivlərdən çıxarmaq
Arrayın vəziyyətini yoxlayaq
[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: Sistem 2 massivdən istifadə edir: md126 (/boot montaj nöqtəsi) — bu, aşağıdakılardan ibarətdir /dev/sda1 və /dev/sdb1, md127 (LVM üçün swap və fayl sisteminin kök həcmi) — ibarətdir /dev/sda2 və /dev/sdb2.
Birinci diskin arrayda iştirak edən bölmələrini uğursuz kimi işarələyirik.
mdadm \/dev\/md126 --fail \/dev\/sda1
mdadm \/dev\/md127 --fail \/dev\/sda2 Blok cihazının hissələrini /dev/sda arraylardan silirik.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Disk çıxarıldıqdan sonra massivin vəziyyətini yoxlayırıq.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : aktiv raid1 sdb1[1]
1047552 blok super 1.2 [2/1] [_U]
bitmap: 0/1 səhifə [0KB], 65536KB parça
md127 : aktiv raid1 sdb2[1]
233206784 blok super 1.2 [2/1] [_U]
bitmap: 2/2 səhifə [8KB], 65536KB parça
istifadə edilən cihazlar:
3. Добавление разделов нового диска в массив
Sonrakı addım yeni diskin bölmələrinin massivlərə əlavə edilməsidir. Disk bölmələrinin cari vəziyyətinə baxırıq.
[root@localhost ~]# lsblk
AD MAJ:MIN RM ÖLÇÜ RO NÖV MONTAJ NÖQTƏSİ
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 1G 0 bölmə
└─sda2 8:2 0 222,5G 0 bölmə
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 1G 0 bölmə
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb2 8:18 0 222,5G 0 bölmə
└─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 bölmə
├─sdc2 8:34 0 1G 0 bölmə
└─sdc3 8:35 0 2,7T 0 bölmə
sdd 8:48 0 2,7T 0 disk Bölüm /dev/sdc1 budur bios_grub bölmədir və massivlərin yaradılmasında iştirak etmir. Massivlərdə yalnız istifadə olunacaq /dev/sdc2 və /dev/sdc3. Bu bölmələri uyğun massivlərə əlavə edirik.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3Sonra massivin sinxronizasiyasını gözləyirik.
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1]
md126 : aktiv raid1 sdc2[2] sdb1[1]
1047552 blok super 1.2 [2/2] [UU]
bitmap: 0/1 səhifə [0KB], 65536KB parça
md127 : aktiv raid1 sdc3[2] sdb2[1]
233206784 blok super 1.2 [2/1] [_U]
[>....................] bərpa = 0.2% (619904/233206784) bitir=31.2dək dəqiqə sürət=123980K/dəqiqə
bitmap: 2/2 səhifə [8KB], 65536KB parça
istifadə edilən cihazlar:Yenidən disk bölmələrinin massivə əlavə olunmasından sonra.
[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. İkinci diskdən massivlərdən bölmələri silmək
İkinci diskin hər varaqda istifadə olunan hissələrini uğursuz olaraq qeyd edirik.
mdadm \/dev\/md126 --fail \/dev\/sdb1
mdadm \/dev\/md127 --fail \/dev\/sdb2
Blok cihazının hissələrini /dev/sda arraylardan silirik.
mdadm \/dev\/md126 --remove \/dev\/sdb1
mdadm \/dev\/md127 --remove \/dev\/sdb2
5. GPT təsvir cədvəlini köçürürük və massivləri sinxronlaşdırırıq
GPT təsvir cədvəlini köçürmək üçün sgdisk, disk bölmələri və GPT cədvəlində işləmək üçün paketə daxil olan bir vasitədir — gdisk.
Quraşdırma gdisk CentOS üçün:
yum install -y gdisk Quraşdırma gdisk Debian/Ubuntu üçün:
apt install -y gdiskВНИМАНИЕ: Для GPT первым указывается диск на который təsvir cədvəlini köçürürük, вторым диском указывается диск с которого təsvir cədvəlini köçürür. Disklər qarışdırılarsa, əvvəllər düzgün olan təsvir sürüşdürüləcək və məhv olacaq.
GPT təsvir cədvəlini köçürürük.
sgdisk -R /dev/sdd /dev/sdc Cədvəlin köçürülməsindən sonra disklərin təsviri /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 Sonra hər birini proqram RAID massivlərinə əlavə edirik.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3Massivin sinxronlaşdırılmasını gözləyin.
[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:GPT təsvir cədvəlini ikinci yeni diskə köçürdükdən sonra, təsvir belə görünəcək.
[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]Daha sonra GRUB'u yeni disklerde kurun.
CentOS için kurulum:
grub2-install /dev/sdXDebian/Ubuntu için kurulum:
grub-install /dev/sdX burada X — diskin harfi, bizim durumumuzda diskler /dev/sdc və /dev/sdd.
Dizi bilgilerini güncelliyoruz.
CentOS için:
mdadm --detail --scan --verbose > /etc/mdadm.confDebian/Ubuntu için:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf Görüntüyü güncelliyoruz initrd:
CentOS için:
dracut -f -v --regenerate-allDebian/Ubuntu için:
update-initramfs -u -k allGRUB yapılandırmasını güncelliyoruz.
CentOS için:
grub2-mkconfig -o /boot/grub2/grub.cfg
Debian/Ubuntu için:
update-grubYapılan işlemlerden sonra eski diskler çıkarılabilir.
6. Yeni disklerde kök bölümünün dosya sisteminin genişletilmesi
Disklerin bölümlenmesi, sistemi 2 x 3TB disklerine (RAID-1) taşıdıktan sonra dosya sisteminin genişletilmesi.
[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] Şu anda bölümler /dev/sdc3 və /dev/sdd3 2.7 TB yer kaplıyor. Yeni bir disk düzenlemesi oluşturduğumuz için GPT tablosu ile, bu üç bölümün boyutu hemen maksimum disk alanı olarak ayarlandı, bu durumda bölümü genişletmeye gerek yoktur.
Gerekli:
- md126 dizisini genişlet
- PV'yi (fiziksel hacim) genişletmek,
- vg0-root'u (mantıksal hacim) genişletmek,
- dosya sistemini genişletmek.
1. Diziyi genişletiyoruz md126 maksimum boyuta kadar.
mdadm --grow /dev/md126 --size=max
Dizinin genişletilmesinden sonra md126 kapladığı alan 2.7 TB'a yükseldi.
[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]
Genişletiyoruz fiziki həcim.
Genişletmeden önce mevcut alan değerini kontrol ediyoruz PV /dev/md126.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0 PV-ni növbəti əmr ilə genişləndiririk.
pvresize /dev/md126
Edilmiş dəyişiklikləri yoxlayırıq.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51tGenişletiyoruz lojiqal həcmi vg0-root.
PV genişləndikdən sonra VG tərəfindən tutulan sahəni yoxlayırıq.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51tLV tərəfindən tutulan sahəni yoxlayırıq.
[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 vg0-root həcmi 206.41 GB sahəni tutur.
LV-ni disk alanının maksimumuna qədər genişləndiririk.
lvextend -l +100%FREE /dev/mapper/vg0-root Genişləndikdən sonra LV-nin sahəsini yoxlayırıq.
[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,00gSistem faylını (ext4) genişləndiririk.
Hazırkı sistem faylının ölçüsünü yoxlayırıq.
[root@localhost ~]# df -h
Fayl sistemi Ölçü İstifadə olunub Qalıq İstifadə olunma% Montajda
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/dev/mapper/vg0-root həcmi LV genişləndikdən sonra 204 GB-dir.
Sistem faylını genişləndiririk.
resize2fs /dev/mapper/vg0-root
Genişləndikdən sonra sistem faylının ölçüsünü yoxlayırıq.
[root@localhost ~]# df -h
Fayl sistemi Ölçü İstifadə olunub Qalıq İstifadə olunma% Montajda
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 Sistem faylının ölçüsü bütün həcmin maksimumuna qədər artırılıb.
Mənbə: habr.com
