Att byta ut mindre diskar mot större diskar i Linux

Hej alla. Inför starten av den nya kursgruppen «Linuxadministratör» publicerar vi nyttigt material skrivet av vĂ„r student samt mentor pĂ„ kurserna, specialist inom teknisk support för företagsprodukter REG.RU – Roman Travin.

I den hÀr artikeln kommer vi att gÄ igenom 2 fall av diskbyte och överföring av information till nya större diskar med vidare utvidgning av arrayen och filsystemet. Det första fallet handlar om byte av diskar med samma partitionering MBR/MBR eller GPT/GPT, det andra fallet handlar om byte av diskar med MBR-partitionering mot diskar med mer Àn 2 TB, dÀr GPT-partitionering med biosboot-partition krÀvs. I bÄda fallen Àr diskarna som vi överför data till redan installerade i server. Filsystemet som anvÀnds för root-partitionen Àr ext4.

Fall 1: Byta ut mindre diskar mot större diskar (upp till 2TB)

Uppgift: Byt ut nuvarande diskar mot större diskar (upp till 2 TB) med överföring av information. HÀr har vi diskar 2 x 240 GB SSD (RAID-1) med installerat system och diskar 2 x 1 TB SATA, dit systemet ska överföras.

LÄt oss titta pÄ den aktuella partitioneringen av diskarna.

[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  

Vi kontrollerar det anvÀnda utrymmet pÄ filsystemet just nu.

[root@localhost ~]# df -h
Filsystem        Storlek AnvĂ€nt  ÅterstĂ„ende AnvĂ€nt% Monterat pĂ„
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

Storleken pÄ filsystemet innan diskbytet Àr 204 GB, 2 programvaruarayer md126 anvÀnds, som Àr monterade pÄ /boot och md127, som anvÀnds som fysiskt volym för VG-gruppen vg0.

1. Ta bort partitionerna frÄn diskarna i arrayerna

Kontrollera statusen för arrayen

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sda1[0] sdb1[1]
      1047552 block super 1.2 [2/2] [UU]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127 : aktiv raid1 sda2[0] sdb2[1]
      233206784 block super 1.2 [2/2] [UU]
      bitmap: 0/2 sidor [0KB], 65536KB chunk

oanvÀnda enheter:

Systemet anvĂ€nder 2 matriser: md126 (monteringspunkt /boot) — bestĂ„r av partition /dev/sda1 och /dev/sdb1, md127 (LVM för swap och rotfilsystemet) — bestĂ„r av /dev/sda2 och /dev/sdb2.

Vi markerar partitioner pÄ den första disken som anvÀnds i varje matris som misslyckade.

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

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

Vi tar bort partitionerna frÄn blockenheten /dev/sda frÄn matriserna.

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

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

Efter att vi har tagit bort disken frÄn matrisen kommer informationen om blockenheterna att se ut som följer.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPUNKT
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  

Status för matriserna efter att diskar har tagits bort.

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sdb1[1]
      1047552 block super 1.2 [2/1] [_U]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127 : aktiv raid1 sdb2[1]
      233206784 block super 1.2 [2/1] [_U]
      bitmap: 1/2 sidor [4KB], 65536KB chunk

oanvÀnda enheter:

2. Kopiering av partitionstabellen till en ny disk

Du kan kontrollera den anvÀnda partitionstabellen pÄ disken med följande kommando.

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

Utdatan för MBR kommer att vara:

Disk label type: dos

för GPT:

Disk label type: gpt

Kopiering av partitionstabellen för MBR:

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

I detta kommando första anger du disken med vars partitionering kopieras, den andra — vart kopiera.

UPPMRKSAMHET: För GPT första anger du disken dÀr partitioneringen kopieras, den andra disken anger disken frÄn vilken partitioneringen kopieras. Om du blandar ihop diskarna kommer den ursprungligen korrekta partitioneringen att skrivas över och förstöras.

Kopiering av partitionstabellen för GPT:

sgdisk -R /dev/sdc /dev/sdb

DÀrefter tilldelar vi disken ett slumpmÀssigt UUID (för GPT).


sgdisk -G /dev/sdc

Efter att kommandot har körts bör partitionerna dyka upp pÄ disken /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  

Om partitionerna pÄ disken inte har identifierats efter att ÄtgÀrden har genomförts /dev/sdc utför kommandot för att lÀsa om partitionsignaturen.

sfdisk -R /dev/sdc

Om MBR-partitionstabellen anvÀnds pÄ de aktuella diskarna och informationen behöver flyttas till diskar större Àn 2 TB, mÄste GPT-partitioner skapas manuellt pÄ de nya diskarna med hjÀlp av biosboot-partitionen. Detta fall kommer att behandlas i del 2 av denna artikel.

3. TillsÀttning av partitioner frÄn den nya disken till arrayen

Vi lÀgger till partitionerna frÄn disken i motsvarande arrayer.

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

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

Vi kontrollerar att partitionerna har lagts till.

[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  

Efter detta vÀntar vi pÄ att arrayerna ska synkroniseras.

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

FortsÀtt övervaka synkroniseringsprocessen med hjÀlp av verktyget övervaka.

watch -n 2 cat /proc/mdstat

Parameter -n angiver hur ofta, i sekunder, kommandot ska utföras för att kontrollera framsteg.

Upprepa punkterna 1—3 för den nĂ€sta bytta disken.

Markera partitionerna pÄ den andra disken som anvÀnds i varje array som misslyckade.

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

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

Ta bort partitionerna i blockenheten /dev/sdb frÄn matriser.

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

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

Efter att vi har tagit bort disken frÄn matrisen kommer informationen om blockenheterna att se ut som följer.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPUNKT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
└─sdb2           8:18   0 222,5G  0 del  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 del  
  └─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  

Status för matriserna efter att diskar har tagits bort.

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sdc1[2]
      1047552 block super 1.2 [2/1] [U_]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127 : aktiv raid1 sdc2[2]
      233206784 block super 1.2 [2/1] [U_]
      bitmap: 1/2 sidor [4KB], 65536KB chunk

anvÀnda enheter:

Kopierar MBR-partitionstabellen frÄn disken /dev/sdс till disk /dev/sdd.

sfdisk -d /dev/sdc | sfdisk /dev/sdd

Efter att kommandot har körts bör partitionerna dyka upp pÄ disken /dev/sdd.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPUNKT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
└─sdb2           8:18   0 222,5G  0 del  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 del  
  └─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 del  
└─sdd2           8:50   0 222,5G  0 del  

LĂ€gger till diskpartitioner i matriserna.

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

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

Vi kontrollerar att partitionerna har lagts till.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPUNKT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
└─sdb2           8:18   0 222,5G  0 del  
sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 del  
  └─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 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd2           8:50   0 222,5G  0 del  
  └─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]

Efter detta vÀntar vi pÄ att arrayerna ska synkroniseras.

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sdd1[3] sdc1[2]
      1047552 block super 1.2 [2/2] [UU]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127 : aktiv raid1 sdd2[3] sdc2[2]
      233206784 block super 1.2 [2/1] [U_]
      [>....................]  Äterskapande =  0.5% (1200000/233206784) avsluta=35.4min hastighet=109090K/sek
      bitmap: 2/2 sidor [8KB], 65536KB chunk

anvÀnda enheter:

5. Installera GRUB pÄ nya diskar

För CentOS:

grub2-install /dev/sdX

För Debian/Ubuntu:

grub-install /dev/sdX

w X — bokstav för blockenheten. I detta fall mĂ„ste GRUB installeras pĂ„ /dev/sdc och /dev/sdd.

6. Utvidgning av filsystemet (ext4) pÄ rotpartitionen

PÄ nya diskar /dev/sdc och /dev/sdd finns 931,5 GB tillgÀngligt. Eftersom partitionstabellen kopierades frÄn disk med mindre kapacitet, Àr det pÄ partitionerna /dev/sdc2 och /dev/sdd2 finns 222,5 GB.

sdc              8:32   0 931,5G  0 disk  
├─sdc1           8:33   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc2           8:34   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0 931,5G  0 disk  
├─sdd1           8:49   0     1G  0 part  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd2           8:50   0 222,5G  0 part  
  └─md127        9:127  0 222,4G  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Behövs:

  1. Utvidga partition 2 pÄ varje disk,
  2. Utvidga arrayen md127,
  3. Utvidga PV (physical volume),
  4. Utvidga LV (logical-volume) vg0-root,
  5. Utvidga filsystemet.

Genom att anvÀnda verktyget parted utvidgar vi partitionen /dev/sdc2 till maximalt vÀrde. Vi kör kommandot parted /dev/sdc (1) och granskar den aktuella partitionstabellen med kommandot p (2).

Att byta ut mindre diskar mot större diskar i Linux

Som syns slutar partition 2 pĂ„ 240 GB. Vi utvidgar partitionen med kommandot resizepart 2, dĂ€r 2 Ă€r partitionsnumret (3). Vi anger vĂ€rdet i numeriskt format, till exempel 1000 GB, eller anvĂ€nder en angivelse av del av disken – 100%. Vi kontrollerar Ă„terigen att partitionen har den nya storleken (4).

Vi upprepar ovanstÄende steg för disken /dev/sdd. Efter att partitionerna har utvidgats /dev/sdc2 och /dev/sdd2 har de blivit lika med 930,5 GB.

[root@localhost ~]# lsblk                                                 
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSSTEG
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]

Efter detta kör vi utvidgning av arrayen md127 till maximalt.

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

Vi kontrollerar att arrayen har utvidgats. Nu har den storleken blivit 930,4 GB.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   STORLEK RO TYPE  MONTERINGSPUNKT
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]

Utför utvidgning fysiskt volym. Innan utvidgningen kontrollerar vi det nuvarande tillstÄndet för PV.

[root@localhost ~]# pvscan
  PV /dev/md127   VG vg0             lvm2 [222,40 GiB / 0    ledig]
  Totalt: 1 [222,40 GiB] / i anvÀndning: 1 [222,40 GiB] / i ingen VG: 0 [0   ]

Som vi ser anvÀnder PV /dev/md127 222,4 GB utrymme.

Vi utökar PV med följande kommando.

pvresize /dev/md127

Kontrollerar resultatet av utvidgningen av PV.

[

root@localhost ~]# pvscan
  PV /dev/md127   VG vg0             lvm2 [930,38 GiB / 707,98 GiB ledig]
  Totalt: 1 [930,38 GiB] / i anvÀndning: 1 [930,38 GiB] / i ingen VG: 0 [0   ]

Utökar logiskt volym. Innan utvidgningen kontrollerar vi det nuvarande tillstÄndet för LV (1).

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

LV /dev/vg0/root anvÀnder 206,41 GB.

Vi utökar LV med följande kommando (2).

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

Kontrollerar den utförda ÄtgÀrden (3).

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

Som vi ser efter utvidgningen av LV har den upptagna diskutrymmet ökat till 914,39 GB.

Att byta ut mindre diskar mot större diskar i Linux

Volymen av LV har ökat (4), men filsystemet upptar fortfarande 204 GB (5).

1. Vi utför utvidgningen av filsystemet.

resize2fs /dev/mapper/vg0-root

Kontrollerar storleken pÄ filsystemet efter det utförda kommandot.

[root@localhost ~]# df -h
Filsystem     Storlek AnvÀndt  Dostat AnvÀndt% Monterat i
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

Storleken pÄ rotfilsystemet ökar till 900 GB. Efter genomförda ÄtgÀrder kan de gamla diskarna tas bort.

Fall 2: Byta ut mindre diskar mot större diskar (mer Àn 2TB)

Uppgift: Byt ut de aktuella diskarna mot diskar av större volym (2 x 3TB) och behÄll informationen. I det hÀr fallet har vi diskarna 2 x 240 GB SSD (RAID-1) med installerat system och diskarna 2 x 3 TB SATA som systemet ska flyttas till. PÄ de aktuella diskarna anvÀnds MBR-partitionering. Eftersom de nya diskarna har en volym över 2 TB, behöver vi anvÀnda GPT-partitionering, eftersom MBR inte kan hantera diskar större Àn 2 TB.

LÄt oss titta pÄ den aktuella diskinformationen.

[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  

Vi kontrollerar den anvÀnda partitioneringen pÄ disken. /dev/sda.

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

PÄ disken /dev/sdb anvÀnds en liknande partitionering. Vi kontrollerar det anvÀnda diskutrymmet i systemet.

[root@localhost ~]# df -h
Filsystem         Storlek AnvÀnt  Disponibelt Anv %  Monterat pÄ
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

Som vi kan se, tar rotfilsystemet upp 204 GB. LÄt oss kontrollera det aktuella tillstÄndet för RAID-arrayen.

1. Installera GPT-partitionering och partitionera disken.

Vi kontrollerar diskarna för sektorpÄverkan.

[root@localhost ~]# parted /dev/sda print
Modell: ATA KINGSTON SVP200S (scsi)
Disk /dev/sda: 240GB
Sektor storlek (logisk/fysisk): 512B/512B
Partitionering: msdos
Diskflaggor: 

Nummer Start Slut  Storlek  Typ      Filsystem  Flaggor
 1     1049kB  1076MB  1075MB  primÀr                    bootbar, raid
 2     1076MB  240GB   239GB   primÀr                    raid

PÄ den nya 3TB-disken behöver vi skapa 3 partitioner:

  1. Avsnitt bios_grub med en storlek av 2MiB för kompatibilitet mellan GPT och BIOS.
  2. Partition för RAID-arrayen, som kommer att monteras pÄ /boot.
  3. Partition för RAID-arrayen, dÀr LV root och LV swap.

Vi installerar verktyget parted med kommandot yum install -y parted (för CentOS), apt install -y parted (för Debian/Ubuntu).

Genom att anvÀnda parted utför följande kommandon för att partitionera disken.

Vi kör kommandot parted /dev/sdc och gÄr över till redigeringslÀge för partitioneringen.

Skapa en GPT-partitionstabell.

(parted) mktable gpt

Skapa 1 partition bios_grub partition och sÀtt flagga för den.

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

Skapa 2 partition och sÀtt flagga för den. Partitionen kommer att anvÀndas som en block för RAID-arrayen och monteras i /boot.

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

Skapa 3 partition som ocksÄ kommer att anvÀndas som en blockmassa, i vilken LVM kommer att finnas.

(parted) mkpart primary 1028MiB 100% 

I detta fall Àr det inte nödvÀndigt att sÀtta flaggan, men om det behövs kan den sÀttas med följande kommando.

(parted) set 3 raid on

Kontrollera den skapade tabellen.

(parted) p                                                                
Modell: ATA TOSHIBA DT01ACA3 (scsi)
Disk /dev/sdc: 3001GB
Sektorstorlek (logisk/fysisk): 512B/4096B
Partitionstabell: gpt
Diskflaggor: 

Nummer  Start  Slut   Storlek  Filsystem  Namn      Flaggor
 1     1049kB  3146kB  2097kB                    primary  bios_grub
 2     3146kB  1077MB  1074MB                    primary  bootbar
 3     1077MB  3001GB  3000GB                    primary

Tilldela disken ett nytt slumpmÀssigt GUID.

sgdisk -G /dev/sdd

2. Ta bort partitioner frÄn den första disken frÄn arrayerna

Kontrollera statusen för arrayen

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sda1[0] sdb1[1]
      1047552 block super 1.2 [2/2] [UU]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127 : aktiv raid1 sda2[0] sdb2[1]
      233206784 block super 1.2 [2/2] [UU]
      bitmap: 0/2 sidor [0KB], 65536KB chunk

oanvÀnda enheter:

Systemet anvĂ€nder 2 arrayer: md126 (monteringspunkt /boot) — bestĂ„r av /dev/sda1 och /dev/sdb1, md127 (LVM för swap och rotfilsystemet) — bestĂ„r av /dev/sda2 och /dev/sdb2.

Vi markerar partitioner pÄ den första disken som anvÀnds i varje matris som misslyckade.

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

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

Ta bort partitionerna i blockenheten /dev/sda frÄn matriser.

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

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

Kontrollera tillstÄndet för arrayen efter att ha tagit bort disken.

[root@localhost ~]# cat /proc/mdstat 
Personligheter: [raid1] 
md126: aktiv raid1 sdb1[1]
      1047552 block super 1.2 [2/1] [_U]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127: aktiv raid1 sdb2[1]
      233206784 block super 1.2 [2/1] [_U]
      bitmap: 2/2 sidor [8KB], 65536KB chunk

anvÀnda enheter: <inga>

3. TillsÀttning av partitioner frÄn den nya disken till arrayen

NÀsta steg Àr att lÀgga till partitionerna frÄn den nya disken i arrayerna för synkronisering. Kontrollera det aktuella tillstÄndet för diskpartitionerna.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPLATS
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  

Avsnitt /dev/sdc1 denna funktion ett omslag runt modulen Crypt::UnixCrypt och utgör ingen fara, men i det levererade arkivet pÄ Sourceforge anropas kod som direkt refererar till \/etc\/shadow, men gör det genom en shell-konstruktion. För att genomföra attacken rÀcker det med att ange tecknet "|" i fÀltet för det gamla lösenordet och koden efter detta kommer att köras med root-behörighet pÄ servern. bios_grub partition och deltar inte i skapandet av arrayen. I arrayerna kommer bara /dev/sdc2 och /dev/sdc3. LÀgger till dessa partitioner i motsvarande arrayer.

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

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

Efter vilket vi vÀntar pÄ att arrayen ska synkroniseras.

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sdc2[2] sdb1[1]
      1047552 block super 1.2 [2/2] [UU]
      bitmap: 0/1 sidor [0KB], 65536KB chunk

md127 : aktiv raid1 sdc3[2] sdb2[1]
      233206784 block super 1.2 [2/1] [_U]
      [>....................]  ÄterstÀllning =  0.2% (619904/233206784) avslut=31.2min hastighet=123980K/sek
      bitmap: 2/2 sidor [8KB], 65536KB chunk
oanvÀnda enheter:

Disklayout efter att partitioner har lagts till i arrayen.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPUNKT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdb2           8:18   0 222,5G  0 del  
  └─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 del  
├─sdc2           8:34   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 del  
  └─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. Ta bort partitioner frÄn den andra disken frÄn arrayerna

Markera partitionerna pÄ den andra disken som anvÀnds i varje array som misslyckade.

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

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

Ta bort partitionerna i blockenheten /dev/sda frÄn matriser.

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

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

5. Vi kopierar GPT-partitionstabellen och synkroniserar arrayen

För att kopiera GPT-partitionstabellen anvĂ€nder vi verktyget sgdisk, som ingĂ„r i paketet för att arbeta med partitioner och GPT-tabellen — gdisk.

Installation gdisk för CentOS:

yum install -y gdisk

Installation gdisk för Debian/Ubuntu:

apt install -y gdisk

UPPMRKSAMHET: För GPT första anger du disken dÀr kopierar layouten, den andra disken anger disken frÄn vilken kopierar layouten. Om diskarna förvÀxlas kommer den ursprungligen korrekta layouten att skrivas över och förstöras.

Kopiera GPT-partitionstabellen.

sgdisk -R /dev/sdd /dev/sdc

Disklayout efter att tabellen har överförts till disken /dev/sdd.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSPUNKT
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
└─sdb2           8:18   0 222,5G  0 del  
sdc              8:32   0   2,7T  0 disk  
├─sdc1           8:33   0     2M  0 del  
├─sdc2           8:34   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 del  
  └─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 del  
├─sdd2           8:50   0     1G  0 del  
└─sdd3           8:51   0   2,7T  0 del  

DÀrefter lÀgger vi till varje av partitionerna som deltar i de programvaru RAID-arrayerna.

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

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

Vi vÀntar pÄ att arrayen ska synkroniseras.

[root@localhost ~]# cat /proc/mdstat 
Personligheter : [raid1] 
md126 : aktiv raid1 sdd2[3] sdc2[2]
      1047552 block super 1.2 [2/2] [UU]
      bitmap: 1/1 sidor [4KB], 65536KB chunk

md127 : aktiv raid1 sdd3[3] sdc3[2]
      233206784 block super 1.2 [2/1] [U_]
      [>....................]  ÄterhÀmtning =  0,0% (148224/233206784) klart=26,2min hastighet=148224K/sek
      bitmap: 2/2 sidor [8KB], 65536KB chunk
oanvÀnda enheter:

Efter att ha kopierat GPT-partitionen till den andra nya disken, kommer partitionen att se ut som följer.

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSSTÄLLE
sda              8:0    0 223,6G  0 disk  
├─sda1           8:1    0     1G  0 del  
└─sda2           8:2    0 222,5G  0 del  
sdb              8:16   0 223,6G  0 disk  
├─sdb1           8:17   0     1G  0 del  
└─sdb2           8:18   0 222,5G  0 del  
sdc              8:32   0   2,7T  0 disk  
├─sdc1           8:33   0     2M  0 del  
├─sdc2           8:34   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 del  
  └─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 del  
├─sdd2           8:50   0     1G  0 del  
│ └─md126        9:126  0  1023M  0 raid1 /boot
└─sdd3           8:51   0   2,7T  0 del  
  └─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]

DÀrefter installerar vi GRUB pÄ de nya diskarna.

Installation för CentOS:

grub2-install /dev/sdX

Installation för Debian/Ubuntu:

grub-install /dev/sdX

w X — diskens bokstav, i vĂ„rt fall diskar /dev/sdc och /dev/sdd.

Uppdaterar informationen om matrisen.

För CentOS:

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

För Debian/Ubuntu:

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

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

Uppdaterar bilden initrd:
För CentOS:

dracut -f -v --regenerate-all

För Debian/Ubuntu:

update-initramfs -u -k all

Uppdaterar GRUB-konfigurationen.

För CentOS:

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

För Debian/Ubuntu:

update-grub

Efter utförda ÄtgÀrder kan de gamla diskarna tas ut.

6. Utvidgning av filsystemet (ext4) pÄ rotpartitionen

Partitionen av diskar före utvidgning av filsystem efter flytt av systemet till diskar 2 x 3TB (RAID-1).

[root@localhost ~]# lsblk
NAMN           MAJ:MIN RM   STORLEK RO TYP  MONTERINGSSTÄLLE
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 del  
├─sdc2           8:34   0     1G  0 del  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 del  
  └─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 del  
├─sdd2           8:50   0     1G  0 del  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdd3           8:51   0   2,7T  0 del  
  └─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]

Just nu upptar partitionerna 2,7 TB. Eftersom vi skapade en ny diskpartition med en GPT-tabell, sÄ har storleken pÄ 3 partitioner omedelbart angetts till den maximalt möjliga diskens utrymme, sÄ det behövs ingen utvidgning av partitionen i detta fall. /dev/sdc3 och /dev/sdd3 2,7 TB. Eftersom vi skapade en ny diskpartition med GPT-tabell, sÄ har storleken pÄ de 3 partitionerna omedelbart angivits till den maximala möjliga diskytan, det krÀvs ingen expansion av partitionen i detta fall.

Behövs:

  1. Utöka array md126,
  2. Utvidga PV (physical volume),
  3. Utvidga LV (logical-volume) vg0-root,
  4. Utvidga filsystemet.

1. Vi utökar arrayen md126 till maximalt.

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

Efter att arrayen har utökats md126 har den allokerade storleken ökat till 2.7 TB.

[root@localhost ~]# lsblk
NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda              8:0    0 223,6G  0 disk  
sdb              8:16   0 223,6G  0 disk  
sdc              8:32   0   2,7T  0 disk  
├─sdc1           8:33   0     2M  0 part  
├─sdc2           8:34   0     1G  0 part  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdc3           8:35   0   2,7T  0 part  
  └─md126        9:126  0   2,7T  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]
sdd              8:48   0   2,7T  0 disk  
├─sdd1           8:49   0     2M  0 part  
├─sdd2           8:50   0     1G  0 part  
│ └─md127        9:127  0  1023M  0 raid1 /boot
└─sdd3           8:51   0   2,7T  0 part  
  └─md126        9:126  0   2,7T  0 raid1 
    ├─vg0-root 253:0    0 206,4G  0 lvm   /
    └─vg0-swap 253:1    0    16G  0 lvm   [SWAP]

Utökar fysiskt volym.

Innan vi utökar, kontrollerar vi det aktuella vÀrdet av den allokerade platsen för PV /dev/md126.

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

Vi utökar PV med följande kommando.

pvresize /dev/md126

Vi kontrollerar den utförda ÄtgÀrden.

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

Utökar logiskt volym vg0-root.

Efter att ha utökat PV kontrollerar vi den allokerade platsen för VG.

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

Vi kontrollerar den allokerade LV-platsen.

[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            

Volymen vg0-root tar upp 206,41 GB.

Vi utökar LV till den maximala diskkapaciteten.

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

Vi kontrollerar LV-utrymmet efter utvidgningen.

[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

Vi utökar filsystemet (ext4).

Vi kontrollerar den nuvarande storleken pÄ filsystemet.

[root@localhost ~]# df -h
Filsystem     Storlek AnvÀnt AnvÀnd% Monterat pÄ
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

Volymen /dev/mapper/vg0-root tar upp 204 GB efter utvidgningen av LV.

Vi utökar filsystemet.

resize2fs /dev/mapper/vg0-root 

Vi kontrollerar storleken pÄ filsystemet efter dess utvidgning.

[root@localhost ~]# df -h
Filsystem            Storlek AnvĂ€ndt  ÅterstĂ„ende AnvĂ€ndt% Monterat pĂ„
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

Filsystemets storlek har ökat till hela volymens kapacitet.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster