Замена мањих дискова са већим дисковима у Линуку

Здраво свима. Уочи почетка нове курсне групе "Линук администратор" Објављујемо користан материјал који је написао наш студент, као и ментор курса, специјалиста техничке подршке за РЕГ.РУ корпоративне производе - Роман Травин.

Овај чланак ће размотрити 2 случаја замене дискова и преноса информација на нове дискове већег капацитета уз даље проширење низа и система датотека. Први случај ће се односити на замену дискова са истим МБР/МБР или ГПТ/ГПТ партицијама, други случај се односи на замену дискова са МБР партиционисањем дисковима капацитета већег од 2 ТБ, на које ћете морати да инсталирате ГПТ партицију са биосбоот партицијом. У оба случаја, дискови на које преносимо податке су већ инсталирани на серверу. Систем датотека који се користи за роот партицију је ект4.

Случај 1: Замена мањих дискова већим дисковима (до 2ТБ)

Задатак: Замените постојеће дискове већим дисковима (до 2 ТБ) са преносом информација. У овом случају имамо 2 к 240 ГБ ССД (РАИД-1) диска са инсталираним системом и 2 к 1 ТБ САТА диска на које систем треба пренети.

Погледајмо тренутни распоред диска.

[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 софтверска низа мд126 који се монтирају у /boot и md127, који се користи као физички волумен за ВГ групу вг0.

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 (ЛВМ за свап и корен система датотека) – састоји се од /dev/sda2 и /dev/sdb2.

Партиције првог диска које се користе у сваком низу означавамо као лоше.

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

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

Уклањамо /дев/сда блок партиције уређаја из низова.

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'

Излаз за МБР би био:

Disk label type: dos

за ГПТ:

Disk label type: gpt

Копирање табеле партиција за МБР:

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

У овом тиму прво диск је назначен с од којих ознака је копирана, друго - где копија.

ОПРЕЗ: За ГПТ прво диск је назначен на којем копирај ознаке, друго диск означава диск од којих копирај маркуп. Ако помешате дискове, првобитно добра партиција ће бити преписана и уништена.

Копирање табеле изгледа за ГПТ:

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

Затим доделите насумични УУИД диску (за ГПТ).


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

Ако тренутни дискови користе МБР табелу и информације треба да се пренесу на дискове веће од 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>

Копирање табеле МБР партиција са диска /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. Инсталирање ГРУБ-а на нове диск јединице

За ЦентОС:

grub2-install /dev/sdX

За Дебиан/Убунту:

grub-install /dev/sdX

где X — слово блок уређаја. У овом случају, потребно је да инсталирате ГРУБ /dev/sdc и /dev/sdd.

6. Екстензија система датотека (ект4) коренске партиције

На новим дисковима /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. Прошири низ мд127,
  3. Прошири ПВ (физички волумен),
  4. Прошири ЛВ (логички волумен) вг0-роот,
  5. Проширите систем датотека.

Коришћење услужног програма подељен проширимо одељак /dev/sdc2 до максималне вредности. Извршите команду parted /dev/sdc (1) и погледајте тренутну партициону табелу помоћу команде p (КСНУМКС).

Замена мањих дискова са већим дисковима у Линуку

Као што видите, крај партиције 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]

Након тога ширимо низ мдКСНУМКС до максимума.

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]

Продужење екстензије физички волумен. Пре проширења, хајде да проверимо тренутно стање ПВ-а.

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

Као што се може видети, ПВ /dev/md127 користи 222.4 ГБ простора.

Проширујемо ПВ следећом командом.

pvresize /dev/md127

Провера резултата ПВ експанзије.

[

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   ]

Проширивање логички обим. Пре проширења, хајде да проверимо тренутно стање ЛВ (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 ГБ.

Проширујемо ЛВ следећом командом (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

Као што видите, након проширења ЛВ-а, количина заузетог простора на диску је постала 914.39 ГБ.

Замена мањих дискова са већим дисковима у Линуку

ЛВ волумен је повећан (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 к 3ТБ) уз очување информација. У овом случају имамо 2 к 240 ГБ ССД (РАИД-1) диска са инсталираним системом и 2 к 3 ТБ САТА диска на које систем треба пренети. Тренутни дискови користе табелу МБР партиција. Пошто нови дискови имају капацитет већи од 2 ТБ, мораће да користе ГПТ табелу, пошто МБР не може да ради са дисковима већим од 2 ТБ.

Погледајмо тренутни распоред диска.

[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 ГБ. Хајде да проверимо тренутно стање софтверског РАИД низа.

1. Инсталирање табеле ГПТ партиција и партиционисања диска

Хајде да проверимо распоред диска по секторима.

[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 2МиБ величина за ГПТ БИОС компатибилност,
  2. Партиција за РАИД низ који ће бити монтиран /boot.
  3. Партиција за РАИД низ на коме ће се налазити ЛВ корен и ЛВ свап.

Инсталирање услужног програма подељен тим yum install -y parted (за ЦентОС), apt install -y parted (за Дебиан/Убунту).

Коришћење подељен Покренимо следеће команде за партиционисање диска.

Извршите команду parted /dev/sdc и идите у режим за уређивање распореда диска.

Направите ГПТ партициону табелу.

(parted) mktable gpt

Направите 1 одељак bios_grub одељак и постави заставу за њега.

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

Направите партицију 2 и поставите заставицу за њу. Партиција ће се користити као блок за РАИД низ и монтирана /boot.

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

Креирамо 3. одељак, који ће такође бити коришћен као блок низа у коме ће се налазити ЛВМ.

(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

Додељујемо нови насумични ГУИД диску.

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 низа: мд126 (тачка монтирања/боот) - састоји се од /dev/sda1 и /dev/sdb1, md127 (ЛВМ за 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. Копирајте табелу ГПТ распореда и синхронизујте низ

Да бисмо копирали табелу ознака ГПТ, користићемо услужни програм sgdisk, који је укључен у пакет за рад са партицијама диска и ГПТ табелом - gdisk.

Инсталација gdisk за ЦентОС:

yum install -y gdisk

Инсталација gdisk за Дебиан/Убунту:

apt install -y gdisk

ОПРЕЗ: За ГПТ прво диск је назначен на којем копирајте ознаку, друго диск означава диск од којих копирајте ознаку. Ако помешате дискове, првобитно добра партиција ће бити преписана и уништена.

Копирајте табелу ознака ГПТ-а.

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  

Затим додајемо сваку од партиција које учествују у софтверским РАИД низовима.

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>

Након копирања ГПТ партиције на други нови диск, партиција ће изгледати овако.

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

Затим инсталирајте ГРУБ на нове дискове.

Инсталација за ЦентОС:

grub2-install /dev/sdX

Инсталација за Дебиан/Убунту:

grub-install /dev/sdX

где X — слово погона, у нашем случају погони /dev/sdc и /dev/sdd.

Ажурирамо информације о низу.

За ЦентОС:

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

За Дебиан/Убунту:

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

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

Ажурирање слике initrd:
За ЦентОС:

dracut -f -v --regenerate-all

За Дебиан/Убунту:

update-initramfs -u -k all

Ажурирамо ГРУБ конфигурацију.

За ЦентОС:

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

За Дебиан/Убунту:

update-grub

Након завршетка корака, стари дискови се могу уклонити.

6. Екстензија система датотека (ект4) коренске партиције

Партиционисање диска пре проширења система датотека након миграције система на 2 к 3ТБ диска (РАИД-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 ТБ. Пошто смо креирали нови распоред диска са ГПТ табелом, величина партиције 3 је одмах подешена на максимални могући простор на диску; у овом случају нема потребе за проширењем партиције.

Неопходно је:

  1. Прошири низ мд126,
  2. Прошири ПВ (физички волумен),
  3. Прошири ЛВ (логички волумен) вг0-роот,
  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]

Проширивање физички волумен.

Пре проширења, проверите тренутну вредност заузетог простора ПВ /dev/md126.

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

Проширујемо ПВ следећом командом.

pvresize /dev/md126

Проверавамо извршену акцију.

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

Проширивање логички волумен вг0-роот.

Након проширења ПВ, хајде да проверимо заузети простор ВГ.

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

Хајде да проверимо простор који заузима ЛВ.

[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            

Вг0-роот запремина заузима 206.41 ГБ.

Проширујемо ЛВ на максимални простор на диску.

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

Провера ЛВ простора након проширења.

[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

Проширивање система датотека (ект4).

Хајде да проверимо тренутну величину система датотека.

[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

Волумен /дев/маппер/вг0-роот заузима 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

Величина система датотека је повећана да покрије цео волумен.

Извор: ввв.хабр.цом

Додај коментар