Linux жүйесінде кішірек дискілерді үлкенірек дискілерге ауыстыру

Бәріңе сәлем. Жаңа курс тобының басталу қарсаңында «Linux әкімшісі» Біз студенттің, сонымен қатар курс тәлімгері, REG.RU корпоративтік өнімдерін техникалық қолдау жөніндегі маман Роман Травин жазған пайдалы материалды басып шығарамыз.

Бұл мақалада дискілерді ауыстырудың және массив пен файлдық жүйені одан әрі кеңейте отырып, ақпаратты үлкенірек жаңа дискілерге тасымалдаудың 2 жағдайы қарастырылады. Бірінші жағдай дискілерді бірдей MBR/MBR немесе GPT/GPT бөлімдерімен ауыстыруға қатысты болады, екінші жағдай MBR бөлімі бар дискілерді сыйымдылығы 2 ТБ-дан асатын дискілермен ауыстыруға қатысты, оны орнату қажет болады. biosboot бөлімі бар GPT бөлімі. Екі жағдайда да біз деректерді тасымалдайтын дискілер серверде орнатылған. Түбірлік бөлім үшін пайдаланылатын файлдық жүйе ext4 болып табылады.

1-жағдай: кішірек дискілерді үлкенірек дискілерге ауыстыру (2 ТБ дейін)

Сынақ: Ағымдағы дискілерді ақпаратты тасымалдау арқылы үлкенірек дискілермен (2 ТБ дейін) ауыстырыңыз. Бұл жағдайда бізде жүйе орнатылған 2 x 240 ГБ SSD (RAID-1) дискілері және жүйені тасымалдау қажет 2 x 1 ТБ SATA дискілері бар.

Ағымдағы дискінің орналасуын қарастырайық.

[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  

Ағымдағы пайдаланылатын файлдық жүйе кеңістігін тексерейік.

[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

Дискілерді ауыстыру алдында файлдық жүйенің өлшемі 204 ГБ құрайды, 2 md126 бағдарламалық массиві пайдаланылады, олар орнатылған. /boot и md127ретінде пайдаланылады физикалық көлем VG тобына арналған vg0.

1. Массивтерден диск бөлімдерін жою

Массив күйін тексеру

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

Жүйе 2 массивті пайдаланады: md126 (бекіту нүктесі /boot) - бөлімнен тұрады /dev/sda1 и /dev/sdb1, md127 (LVM үшін своп және файлдық жүйенің түбірі) - тұрады /dev/sda2 и /dev/sdb2.

Әрбір массивте пайдаланылатын бірінші дискінің бөлімдерін нашар деп белгілейміз.

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

Бұл командада алдымен диск көрсетілген с оның ішінде белгі көшіріледі, екінші – қайда көшіру.

ЕСКЕРТУ: 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 ТБ-дан үлкен дискілерге тасымалдау қажет болса, жаңа дискілерде biosboot бөлімін пайдаланып GPT бөлімін қолмен жасау қажет болады. Бұл жағдай осы мақаланың 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  

Осыдан кейін біз массивтердің синхрондалуын күтеміз.

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

Утилитаны пайдаланып синхрондау процесін үздіксіз бақылауға болады watch.

watch -n 2 cat /proc/mdstat

Параметр -n орындалу барысын тексеру үшін пәрменді секундтарда қандай аралықтарда орындау керектігін көрсетеді.

Келесі ауыстыру дискі үшін 1 - 3 қадамдарды қайталаңыз.

Әрбір массивте қолданылатын екінші дискінің бөлімдерін нашар деп белгілейміз.

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

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

Құрылғының блок бөліктерін жою /dev/sdb массивтерден.

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 : 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 бөлімі кестесін дискіден көшіру /dev/sdс дискіге /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  

Массивтерге диск бөлімдерін қосу.

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]

Осыдан кейін біз массивтердің синхрондалуын күтеміз.

[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 орнату

CentOS үшін:

grub2-install /dev/sdX

Debian/Ubuntu үшін:

grub-install /dev/sdX

қайда X — блоктық құрылғының әрпі. Бұл жағдайда сізге GRUB орнату керек /dev/sdc и /dev/sdd.

6. Түбірлік бөлімнің файлдық жүйесінің кеңейтімі (ext4).

Жаңа дискілерде /dev/sdc и /dev/sdd 931.5 ГБ қол жетімді. Бөлім кестесі кішірек дискілерден көшірілгендіктен, бөлімдер /dev/sdc2 и /dev/sdd2 222.5 ГБ қол жетімді.

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]

Қажет:

  1. Дискілердің әрқайсысында 2-бөлімді кеңейтіңіз,
  2. md127 массивін кеңейту,
  3. PV кеңейту (физикалық көлем),
  4. LV (логикалық-том) vg0-түбірін кеңейту,
  5. Файлдық жүйені кеңейтіңіз.

Утилитаны пайдалану бөлінді бөлімді кеңейтейік /dev/sdc2 максималды мәнге дейін. Пәрменді орындаңыз parted /dev/sdc (1) пәрменімен ағымдағы бөлім кестесін қараңыз p (2).

Linux жүйесінде кішірек дискілерді үлкенірек дискілерге ауыстыру

Көріп отырғаныңыздай, 2-бөлімнің соңы 240 Гбайтта аяқталады. Пәрмен арқылы бөлімді кеңейтейік resizepart 2, мұндағы 2 - бөлімнің саны (3). Біз мәнді сандық форматта көрсетеміз, мысалы, 1000 ГБ немесе дискінің үлесі - 100% көрсеткішін пайдаланамыз. Бөлімнің жаңа өлшемі бар екенін тағы да тексереміз (4).

Диск үшін жоғарыдағы қадамдарды қайталаңыз /dev/sdd. Бөлімдерді кеңейткеннен кейін /dev/sdc2 и /dev/sdd2 930.5 ГБ тең болды.

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

Осыдан кейін біз массивті кеңейтеміз Md127 максимумға дейін.

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

Біз массивтің кеңейгенін тексереміз. Қазір оның көлемі 930.4 ГБ болды.

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

Кеңейтімді ұзарту физикалық көлем. Кеңейтпес бұрын, PV ағымдағы күйін тексерейік.

[root@localhost ~]# pvscan
  PV /dev/md127   VG vg0             lvm2 [222,40 GiB / 0    free]
  Total: 1 [222,40 GiB] / in use: 1 [222,40 GiB] / in no VG: 0 [0   ]

Көріп отырғанымыздай, PV /dev/md127 222.4 ГБ орынды пайдаланады.

Келесі пәрмен арқылы PV кеңейтеміз.

pvresize /dev/md127

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   ]

Кеңейту логикалық көлем. Кеңейтпес бұрын, LV (1) ағымдағы күйін тексерейік.

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

LV /dev/vg0/root 206.41 ГБ пайдаланады.

Төмендегі пәрменмен LV кеңейтеміз (2).

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

Аяқталған әрекетті тексереміз (3).

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

Көріп отырғаныңыздай, LV кеңейтілгеннен кейін дискілік кеңістіктің көлемі 914.39 ГБ болды.

Linux жүйесінде кішірек дискілерді үлкенірек дискілерге ауыстыру

LV көлемі ұлғайды (4), бірақ файлдық жүйе әлі де 204 ГБ (5) алады.

1. Файлдық жүйені кеңейтейік.

resize2fs /dev/mapper/vg0-root

Пәрмен орындалғаннан кейін файлдық жүйенің өлшемін тексереміз.

[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

Түбірлік файлдық жүйенің өлшемі 900 ГБ дейін артады. Қадамдарды орындағаннан кейін ескі дискілерді жоюға болады.

2-жағдай: кішірек дискілерді үлкенірек дискілерге ауыстыру (2 ТБ-тан көп)

Тапсырма: Ақпаратты сақтай отырып, ағымдағы дискілерді үлкенірек дискілерге (2 x 3TB) ауыстырыңыз. Бұл жағдайда бізде жүйе орнатылған 2 x 240 ГБ SSD (RAID-1) дискілері және жүйені тасымалдау қажет 2 x 3 ТБ SATA дискілері бар. Ағымдағы дискілер MBR бөлімдер кестесін пайдаланады. Жаңа дискілердің сыйымдылығы 2 ТБ-тан жоғары болғандықтан, MBR 2 ТБ-тан үлкен дискілермен жұмыс істей алмайтындықтан, олар GPT кестесін пайдалануы керек.

Ағымдағы дискінің орналасуын қарастырайық.

[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  

Дискіде қолданылатын бөлімдер кестесін тексерейік /dev/sda.

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

Дискіде /dev/sdb ұқсас бөлу кестесі пайдаланылады. Жүйедегі пайдаланылған дискілік кеңістікті тексерейік.

[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

Көріп отырғаныңыздай, файлдық жүйенің түбірі 204 ГБ алады. Бағдарламалық қамтамасыз етудің RAID массивінің ағымдағы күйін тексерейік.

1. GPT бөлімдер кестесін орнату және дискіні бөлу

Дискінің орналасуын секторлар бойынша тексерейік.

[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

Жаңа 3 ТБ дискіде бізге 3 бөлім жасау керек:

  1. Бөлім bios_grub GPT BIOS үйлесімділігі үшін 2МБ өлшемі,
  2. Орнатылатын RAID массивіне арналған бөлім /boot.
  3. RAID массиві болатын бөлім LV түбірі и LV своп.

Утилитаны орнату бөлінді командасы yum install -y parted (CentOS үшін), apt install -y parted (Debian/Ubuntu үшін).

Пайдалану бөлінді Дискіні бөлу үшін келесі пәрмендерді орындайық.

Пәрменді орындаңыз parted /dev/sdc және диск макетін өңдеу режиміне өтіңіз.

GPT бөлімдер кестесін жасаңыз.

(parted) mktable gpt

1 бөлім жасаңыз bios_grub бөлімін таңдап, оған жалаушаны орнатыңыз.

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

2-бөлімді жасаңыз және оған жалаушаны орнатыңыз. Бөлім RAID массиві үшін блок ретінде пайдаланылады және оған орнатылады /boot.

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

Біз 3-ші бөлімді жасаймыз, ол сонымен қатар LVM орналасатын массив блогы ретінде пайдаланылады.

(parted) mkpart primary 1028MiB 100% 

Бұл жағдайда жалаушаны орнату қажет емес, бірақ қажет болған жағдайда оны келесі пәрменмен орнатуға болады.

(parted) set 3 raid on

Құрылған кестені тексереміз.

(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

Біз дискіге жаңа кездейсоқ GUID тағайындаймыз.

sgdisk -G /dev/sdd

2. Массивтерден бірінші дискінің бөлімдерін жою

Массив күйін тексеру

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

Жүйе 2 массивті пайдаланады: md126 (қондыру нүктесі/жүктеу) - тұрады /dev/sda1 и /dev/sdb1, md127 (LVM үшін swap және файлдық жүйенің түбірі) - тұрады /dev/sda2 и /dev/sdb2.

Әрбір массивте пайдаланылатын бірінші дискінің бөлімдерін нашар деп белгілейміз.

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 ~]# 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. Массивке жаңа дискінің бөлімдерін қосу

Келесі қадам синхрондау үшін массивтерге жаңа дискінің бөлімдерін қосу болып табылады. Диск орналасуының ағымдағы күйін қарастырайық.

[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  

Бөлім /dev/sdc1 Бұл bios_grub бөлімі және массивтерді құруға қатыспайды. Массивтер тек пайдаланылады /dev/sdc2 и /dev/sdc3. Бұл бөлімдерді сәйкес массивтерге қосамыз.

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

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

Содан кейін массив синхрондауды күтеміз.

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

Массивке бөлімдерді қосқаннан кейін дискіні бөлу.

[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. Массивтерден екінші дискінің бөлімдерін жою

Әрбір массивте қолданылатын екінші дискінің бөлімдерін нашар деп белгілейміз.

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

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

Құрылғының блок бөліктерін жою /dev/sda массивтерден.

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

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

5. GPT орналасу кестесін көшіріп, массивті синхрондаңыз

GPT белгілеу кестесін көшіру үшін біз утилитаны қолданамыз sgdisk, ол диск бөлімдерімен және GPT кестесімен жұмыс істеуге арналған пакетке кіреді - gdisk.

параметр gdisk CentOS үшін:

yum install -y gdisk

параметр gdisk Debian/Ubuntu үшін:

apt install -y gdisk

ЕСКЕРТУ: GPT үшін алдымен диск көрсетілген қайсы бойынша белгіні көшіру, екіншіден диск дискіні көрсетеді қайдан белгіні көшіріңіз. Дискілерді араластырсаңыз, бастапқыда жақсы бөлім қайта жазылады және жойылады.

GPT белгілеу кестесін көшіріңіз.

sgdisk -R /dev/sdd /dev/sdc

Кестені дискіге тасымалдағаннан кейін дискіні бөлу /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  

Әрі қарай, біз бағдарламалық жасақтаманың RAID массивтеріне қатысатын бөлімдердің әрқайсысын қосамыз.

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

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

Біз массивтің синхрондалуын күтеміз.

[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 бөлімін екінші жаңа дискіге көшіргеннен кейін бөлім келесідей болады.

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

Содан кейін GRUB бағдарламасын жаңа дискілерге орнатыңыз.

CentOS үшін орнату:

grub2-install /dev/sdX

Debian/Ubuntu үшін орнату:

grub-install /dev/sdX

қайда X — диск хаты, біздің жағдайда дискілер /dev/sdc и /dev/sdd.

Біз массив туралы ақпаратты жаңартамыз.

CentOS үшін:

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

Debian/Ubuntu үшін:

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

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

Кескінді жаңарту initrd:
CentOS үшін:

dracut -f -v --regenerate-all

Debian/Ubuntu үшін:

update-initramfs -u -k all

GRUB конфигурациясын жаңартамыз.

CentOS үшін:

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

Debian/Ubuntu үшін:

update-grub

Қадамдарды орындағаннан кейін ескі дискілерді алып тастауға болады.

6. Түбірлік бөлімнің файлдық жүйесінің кеңейтімі (ext4).

Жүйені 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]

Енді бөлімдер /dev/sdc3 и /dev/sdd3 2.7 ТБ алады. Біз GPT кестесімен жаңа диск макетін жасағандықтан, 3-бөлімнің өлшемі бірден дискінің максималды мүмкіндігіне орнатылды, бұл жағдайда бөлімді кеңейтудің қажеті жоқ.

Қажет:

  1. md126 массивін кеңейту,
  2. PV кеңейту (физикалық көлем),
  3. LV (логикалық-том) vg0-түбірін кеңейту,
  4. Файлдық жүйені кеңейтіңіз.

1. Жиымды кеңейтіңіз md126 максимумға дейін.

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

Массив кеңейтілгеннен кейін md126 алып жатқан кеңістіктің көлемі 2.7 ТБ дейін өсті.

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

Кеңейту физикалық көлем.

Кеңейтпес бұрын, алып жатқан кеңістіктің ағымдағы мәнін тексеріңіз PV /dev/md126.

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

Келесі пәрмен арқылы PV кеңейтеміз.

pvresize /dev/md126

Аяқталған әрекетті тексереміз.

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

Кеңейту логикалық көлем vg0-түбір.

PV кеңейтілгеннен кейін, VG алып жатқан кеңістікті тексерейік.

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

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            

vg0-түбірлік көлемі 206.41 ГБ алады.

Біз LV максималды дискілік кеңістікке дейін кеңейтеміз.

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

Кеңейтуден кейін LV кеңістігін тексеру.

[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

Файлдық жүйені кеңейту (ext4).

Файлдық жүйенің ағымдағы өлшемін тексерейік.

[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 көлемі LV кеңейтілгеннен кейін 204 ГБ алады.

Файлдық жүйені кеңейту.

resize2fs /dev/mapper/vg0-root 

Файлдық жүйені кеңейткеннен кейін оның өлшемін тексеру.

[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

Файлдық жүйе өлшемі бүкіл көлемді қамту үшін үлкейтілді.

Ақпарат көзі: www.habr.com

пікір қалдыру