Linux-da kiçik diskləri daha böyük disklərlə əvəz etmək

Hamıya salam. Yeni kurs qrupunun başlaması ərəfəsində "Linux Administrator" Biz tələbəmiz, həmçinin kurs mentoru, REG.RU korporativ məhsulları üzrə texniki dəstək mütəxəssisi Roman Travin tərəfindən yazılmış faydalı materialı dərc edirik.

Bu məqalə disklərin dəyişdirilməsi və məlumatların massiv və fayl sisteminin daha da genişləndirilməsi ilə daha böyük tutumlu yeni disklərə ötürülməsinin 2 halını nəzərdən keçirəcəkdir. Birinci hal disklərin eyni MBR/MBR və ya GPT/GPT bölməsi ilə dəyişdirilməsinə aid olacaq, ikinci hal MBR bölməsi ilə disklərin 2 TB-dən çox tutumlu disklərlə dəyişdirilməsi ilə bağlı olacaq ki, onları da quraşdırmalı olacaqsınız. biosboot bölməsi olan GPT bölməsi. Hər iki halda məlumatları ötürəcəyimiz disklər artıq serverdə quraşdırılıb. Kök bölməsi üçün istifadə olunan fayl sistemi ext4-dür.

Məsələn 1: Kiçik diskləri daha böyük disklərlə əvəz etmək (2 TB-a qədər)

Vəzifə: Cari diskləri daha böyük disklərlə (2 TB-a qədər) məlumat ötürülməsi ilə əvəz edin. Bu halda, sistem quraşdırılmış 2 x 240 GB SSD (RAID-1) diskimiz və sistemin köçürülməsi lazım olan 2 x 1 TB SATA diskimiz var.

Mövcud disk tərtibatına baxaq.

[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  

Hazırda istifadə olunan fayl sistemi sahəsini yoxlayaq.

[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

Diskləri dəyişdirməzdən əvvəl fayl sisteminin ölçüsü 204 GB-dır, quraşdırılmış 2 md126 proqram massivindən istifadə olunur. /boot и md127kimi istifadə olunur fiziki həcm VG qrupu üçün vg0.

1. Disk bölmələrinin massivlərdən çıxarılması

Massivin vəziyyətinin yoxlanılması

[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 2 massivdən istifadə edir: md126 (montaj nöqtəsi /boot) - bölmədən ibarətdir /dev/sda1 и /dev/sdb1, md127 (LVM üçün dəyiş-düyüş və fayl sisteminin kökü) - ibarətdir /dev/sda2 и /dev/sdb2.

Hər massivdə istifadə olunan ilk diskin bölmələrini pis kimi qeyd edirik.

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

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

/dev/sda blok cihaz bölmələrini massivlərdən çıxarırıq.

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

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

Diski massivdən çıxardıqdan sonra blok cihazı məlumatı 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  
│ └─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  

Diskləri çıxardıqdan sonra massivlərin vəziyyəti.

[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. Bölmə cədvəlini yeni diskə kopyalayın

Diskdə istifadə olunan bölmə cədvəlini aşağıdakı əmrlə yoxlaya bilərsiniz.

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

MBR üçün çıxış belə olacaq:

Disk label type: dos

GPT üçün:

Disk label type: gpt

MBR üçün bölmə cədvəlinin kopyalanması:

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

Bu komandada birincisi disk göstərilir с bunlardan işarələmə kopyalanır, ikinci - harada surəti.

DİQQƏT: GPT üçün birincisi disk göstərilir hansının üstündə işarələməni kopyalayın, ikincisi disk diski göstərir hansından işarələməni kopyalayın. Diskləri qarışdırsanız, əvvəlcə yaxşı olan bölmənin üzərinə yazılacaq və məhv ediləcək.

GPT üçün tərtibat cədvəlinin kopyalanması:

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

Sonra, diskə təsadüfi UUID təyin edin (GPT üçün).


sgdisk -G /dev/sdc

Əmr yerinə yetirildikdən sonra bölmələr diskdə görünməlidir /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  

Əgər hərəkət edildikdən sonra sistemdəki bölmələr diskdə /dev/sdc qərar vermədikdə, bölmə cədvəlini yenidən oxumaq əmrini yerinə yetiririk.

sfdisk -R /dev/sdc

Cari disklər MBR cədvəlindən istifadə edirsə və məlumatı 2 TB-dən böyük disklərə köçürmək lazımdırsa, yeni disklərdə biosboot bölməsindən istifadə edərək GPT bölməsini əl ilə yaratmalısınız. Bu məsələ bu məqalənin 2-ci hissəsində müzakirə olunacaq.

3. Massivə yeni diskin bölmələrinin əlavə edilməsi

Müvafiq massivlərə disk bölmələrini əlavə edək.

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

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

Bölmələrin əlavə olunduğunu yoxlayırıq.

[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  

Bundan sonra massivlərin sinxronizasiyasını gözləyirik.

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

Utilitydən istifadə edərək sinxronizasiya prosesini davamlı olaraq izləyə bilərsiniz watch.

watch -n 2 cat /proc/mdstat

Parametr -n tərəqqini yoxlamaq üçün əmrin saniyələrlə hansı fasilələrlə yerinə yetirilməli olduğunu müəyyən edir.

Növbəti dəyişdirmə diski üçün 1-3 addımları təkrarlayın.

Hər massivdə istifadə olunan ikinci diskin bölmələrini pis kimi qeyd edirik.

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

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

Blok cihaz bölmələrinin çıxarılması /dev/sdb massivlərdən.

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

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

Diski massivdən çıxardıqdan sonra blok cihazı məlumatı 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 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  

Diskləri çıxardıqdan sonra massivlərin vəziyyəti.

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

MBR bölmə cədvəlinin diskdən kopyalanması /dev/sdс diskə /dev/sdd.

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

Əmr yerinə yetirildikdən sonra bölmələr diskdə görünməlidir /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  

Massivlərə disk bölmələrinin əlavə edilməsi.

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

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

Bölmələrin əlavə olunduğunu yoxlayırıq.

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

Bundan sonra massivlə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: <none>

5. GRUB-un yeni disklərə quraşdırılması

CentOS üçün:

grub2-install /dev/sdX

Debian/Ubuntu üçün:

grub-install /dev/sdX

hara X — blok cihazının hərfi. Bu halda, siz GRUB-u quraşdırmalısınız /dev/sdc и /dev/sdd.

6. Kök bölmənin fayl sistemi uzantısı (ext4).

Yeni disklərdə /dev/sdc и /dev/sdd 931.5 GB mövcuddur. Bölmə cədvəlinin daha kiçik disklərdən kopyalandığına görə bölmələr /dev/sdc2 и /dev/sdd2 222.5 GB mövcuddur.

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]

Lazımdır:

  1. Disklərin hər birində 2-ci bölməni genişləndirin,
  2. md127 massivini genişləndirin,
  3. PV-ni genişləndirin (fiziki həcm),
  4. LV (məntiqi həcm) vg0 kökünü genişləndirin,
  5. Fayl sistemini genişləndirin.

Köməkçi proqramdan istifadə ayrıldı bölməni genişləndirək /dev/sdc2 maksimum dəyərə. Əmri yerinə yetirin parted /dev/sdc (1) və komanda ilə cari bölmə cədvəlinə baxın p (2).

Linux-da kiçik diskləri daha böyük disklərlə əvəz etmək

Gördüyünüz kimi, 2-ci bölmənin sonu 240 GB-da bitir. Komanda ilə bölməni genişləndirək resizepart 2, burada 2 bölmənin sayıdır (3). Biz rəqəmsal formatda dəyəri göstəririk, məsələn 1000 GB və ya disk payının göstəricisini istifadə edirik - 100%. Bölmənin yeni ölçüdə olduğunu bir daha yoxlayırıq (4).

Disk üçün yuxarıdakı addımları təkrarlayın /dev/sdd. Bölmələri genişləndirdikdən sonra /dev/sdc2 и /dev/sdd2 930.5 GB-a bərabər 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]

Bundan sonra massivi genişləndiririk md127 maksimuma.

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

Massivin genişləndiyini yoxlayırıq. İndi onun ölçüsü 930.4 GB olmuşdur.

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

Uzatmanın uzadılması fiziki həcm. Genişləndirmədən əvvəl, PV-nin cari vəziyyətini yoxlayaq.

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

Göründüyü kimi, PV /dev/md127 222.4 GB yer istifadə edir.

Aşağıdakı əmrlə PV-ni genişləndiririk.

pvresize /dev/md127

PV genişlənməsinin nəticəsinin yoxlanılması.

[

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   ]

Genişlənir məntiqi həcm. Genişləndirmədən əvvəl LV-nin cari vəziyyətini yoxlayaq (1).

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

LV /dev/vg0/root 206.41 GB istifadə edir.

LV-ni aşağıdakı əmrlə genişləndiririk (2).

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

Tamamlanmış hərəkəti yoxlayırıq (3).

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

Gördüyünüz kimi, LV genişləndirildikdən sonra işğal edilmiş disk sahəsi 914.39 GB oldu.

Linux-da kiçik diskləri daha böyük disklərlə əvəz etmək

LV həcmi artdı (4), lakin fayl sistemi hələ də 204 GB (5) tutur.

1. Fayl sistemini genişləndirək.

resize2fs /dev/mapper/vg0-root

Əmr yerinə yetirildikdən sonra fayl sisteminin ölçüsünü yoxlayırıq.

[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

Kök fayl sisteminin ölçüsü 900 GB-a qədər artacaq. Addımları tamamladıqdan sonra köhnə diskləri çıxara bilərsiniz.

Məsələn 2: Kiçik diskləri daha böyük disklərlə əvəz etmək (2 TB-dən çox)

Məşq: Məlumatı qoruyarkən cari diskləri daha böyük disklərlə (2 x 3TB) əvəz edin. Bu halda, sistem quraşdırılmış 2 x 240 GB SSD (RAID-1) diskimiz və sistemin köçürülməsi lazım olan 2 x 3 TB SATA diskimiz var. Cari disklər MBR bölmə cədvəlindən istifadə edir. Yeni disklərin tutumu 2 TB-dən çox olduğundan, MBR 2 TB-dən böyük disklərlə işləyə bilmədiyi üçün onlar GPT cədvəlindən istifadə etməli olacaqlar.

Mövcud disk tərtibatına baxaq.

[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  

Diskdə istifadə olunan bölmə cədvəlini yoxlayaq /dev/sda.

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

Diskdə /dev/sdb oxşar bölmə cədvəlindən istifadə olunur. Sistemdə istifadə olunan disk sahəsini yoxlayaq.

[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

Gördüyünüz kimi, fayl sisteminin kökü 204 GB yer tutur. Proqram təminatının RAID massivinin cari vəziyyətini yoxlayaq.

1. GPT bölmə cədvəlinin quraşdırılması və diskin bölünməsi

Disk quruluşunu sektorlar üzrə yoxlayaq.

[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

Yeni 3TB diskdə 3 bölmə yaratmalıyıq:

  1. Bölmə bios_grub GPT BIOS uyğunluğu üçün 2MiB ölçüsü,
  2. Quraşdırılacaq RAID massivi üçün bölmə /boot.
  3. Orada olacaq RAID massivi üçün bölmə LV kökü и LV dəyişdirmə.

Köməkçi proqramın quraşdırılması ayrıldı komanda yum install -y parted (CentOS üçün), apt install -y parted (Debian/Ubuntu üçün).

Istifadə ayrıldı Diski bölmək üçün aşağıdakı əmrləri yerinə yetirək.

Əmri yerinə yetirin parted /dev/sdc və disk düzeninin redaktə rejiminə keçin.

GPT bölmə cədvəli yaradın.

(parted) mktable gpt

1 bölmə yaradın bios_grub bölmə və onun üçün bir bayraq təyin edin.

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

2-ci bölmə yaradın və onun üçün bayraq təyin edin. Bölmə RAID massivi üçün blok kimi istifadə olunacaq və içəriyə quraşdırılacaq /boot.

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

LVM-nin yerləşəcəyi massiv bloku kimi də istifadə olunacaq 3-cü bölmə yaradırıq.

(parted) mkpart primary 1028MiB 100% 

Bu zaman bayraq qoymaq lazım deyil, lazım gələrsə aşağıdakı komanda ilə təyin etmək olar.

(parted) set 3 raid on

Yaradılmış cədvəli yoxlayırıq.

(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

Biz diskə yeni təsadüfi GUID təyin edirik.

sgdisk -G /dev/sdd

2. Birinci diskin arakəsmələrinin massivlərdən çıxarılması

Massivin vəziyyətinin yoxlanılması

[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 2 massivdən istifadə edir: md126 (montaj nöqtəsi/boot) - ibarətdir /dev/sda1 и /dev/sdb1, md127 (LVM üçün swap və fayl sisteminin kökü) - ibarətdir /dev/sda2 и /dev/sdb2.

Hər massivdə istifadə olunan ilk diskin bölmələrini pis kimi qeyd edirik.

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

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

Blok cihaz bölmələrinin çıxarılması /dev/sda massivlərdən.

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

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

Diski çıxardıqdan sonra massivin vəziyyətinin yoxlanılması.

[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. Massivə yeni diskin bölmələrinin əlavə edilməsi

Növbəti addım sinxronizasiya üçün massivlərə yeni diskin bölmələrini əlavə etməkdir. Diskin yerləşdirilməsinin cari vəziyyətinə baxaq.

[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  

Bölmə /dev/sdc1 edir bios_grub bölməsidir və massivlərin yaradılmasında iştirak etmir. Massivlər yalnız istifadə edəcək /dev/sdc2 и /dev/sdc3. Bu bölmələri müvafiq massivlərə əlavə edirik.

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

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

Sonra serialın sinxronizasiyasını gözləyirik.

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

Massivə bölmələr əlavə etdikdən sonra disk bölməsi.

[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 diskin arakəsmələrinin massivlərdən çıxarılması

Hər massivdə istifadə olunan ikinci diskin bölmələrini pis kimi qeyd edirik.

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

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

Blok cihaz bölmələrinin çıxarılması /dev/sda massivlərdən.

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

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

5. GPT layout cədvəlini kopyalayın və massivi sinxronlaşdırın

GPT işarələmə cədvəlini köçürmək üçün yardım proqramından istifadə edəcəyik sgdiskdisk bölmələri və GPT cədvəli ilə işləmək üçün paketə daxil olan - gdisk.

Quraşdırma gdisk CentOS üçün:

yum install -y gdisk

Quraşdırma gdisk Debian/Ubuntu üçün:

apt install -y gdisk

DİQQƏT: GPT üçün birincisi disk göstərilir hansının üstündə işarələməni kopyalayın, ikincisi disk diski göstərir hansından işarələməni kopyalayın. Diskləri qarışdırsanız, əvvəlcə yaxşı olan bölmənin üzərinə yazılacaq və məhv ediləcək.

GPT işarələmə cədvəlini kopyalayın.

sgdisk -R /dev/sdd /dev/sdc

Cədvəl diskə köçürüldükdən sonra disk bölməsi /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, proqram təminatının RAID massivlərində iştirak edən bölmələrin hər birini əlavə edirik.

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

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

Biz serialın sinxronizasiyasını gözləyirik.

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

GPT bölməsini ikinci yeni diskə köçürdükdən sonra bölmə 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]

Sonra, GRUB-u yeni disklərə quraşdırın.

CentOS üçün quraşdırma:

grub2-install /dev/sdX

Debian/Ubuntu üçün quraşdırma:

grub-install /dev/sdX

hara X — sürücü məktubu, bizim vəziyyətimizdə sürücülər /dev/sdc и /dev/sdd.

Massiv haqqında məlumatları yeniləyirik.

CentOS üçün:

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

Debian/Ubuntu üçün:

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

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

Şəklin yenilənməsi initrd:
CentOS üçün:

dracut -f -v --regenerate-all

Debian/Ubuntu üçün:

update-initramfs -u -k all

GRUB konfiqurasiyasını yeniləyirik.

CentOS üçün:

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

Debian/Ubuntu üçün:

update-grub

Addımları tamamladıqdan sonra köhnə disklər çıxarıla bilər.

6. Kök bölmənin fayl sistemi uzantısı (ext4).

Sistemi 2 x 3TB diskə (RAID-1) köçürdükdən sonra fayl sisteminin genişləndirilməsindən əvvəl disk bölməsi.

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

İndi bölmələr /dev/sdc3 и /dev/sdd3 2.7 TB tutur. GPT cədvəli ilə yeni bir disk tərtibatı yaratdığımız üçün 3-cü bölmənin ölçüsü dərhal mümkün olan maksimum disk sahəsinə təyin edildi, bu halda bölməni genişləndirməyə ehtiyac yoxdur.

Lazımdır:

  1. md126 massivini genişləndirin,
  2. PV-ni genişləndirin (fiziki həcm),
  3. LV (məntiqi həcm) vg0 kökünü genişləndirin,
  4. Fayl sistemini genişləndirin.

1. Massivi genişləndirin md126 maksimuma.

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

Massiv genişlənməsindən sonra md126 işğal edilmiş yerin ölçüsü 2.7 TB-ə qədər artdı.

[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şlənir fiziki həcm.

Genişləndirmədən əvvəl, işğal edilmiş yerin cari dəyərini yoxlayın PV /dev/md126.

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

Aşağıdakı əmrlə PV-ni genişləndiririk.

pvresize /dev/md126

Tamamlanmış hərəkəti yoxlayırıq.

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

Genişlənir məntiqi həcm vg0-root.

PV-ni genişləndirdikdən sonra işğal edilmiş VG sahəsini yoxlayaq.

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

LV-nin tutduğu məkanı yoxlayaq.

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

LV-ni maksimum disk sahəsinə qədər genişləndiririk.

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

Genişlənmədən sonra LV boşluğunun yoxlanılması.

[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

Fayl sisteminin genişləndirilməsi (ext4).

Fayl sisteminin cari ölçüsünü yoxlayaq.

[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

/dev/mapper/vg0-root həcmi LV genişlənməsindən sonra 204 GB tutur.

Fayl sisteminin genişləndirilməsi.

resize2fs /dev/mapper/vg0-root 

Fayl sistemini genişləndirdikdən sonra onun ölçüsünü yoxlamaq.

[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

Fayl sisteminin ölçüsü bütün həcmi əhatə etmək üçün artırıldı.

Mənbə: www.habr.com

Добавить комментарий