Ola a todos. En previsión do comezo dun novo grupo de curso
Este artigo considerará 2 casos de substitución de discos e transferencia de información a novos discos máis grandes cunha maior expansión da matriz e do sistema de ficheiros. O primeiro caso referirase á substitución de discos co mesmo nome MBR / MBR ou GPT / GPT, o segundo caso refírese á substitución de discos con particións MBR con discos de máis de 2 TB, que necesitarán partición GPT cunha partición de arranque biolóxico. En ambos casos, os discos aos que transferimos os datos xa están instalados no servidor. O sistema de ficheiros usado para a partición raíz é ext4.
Caso 1: Substitución de unidades máis pequenas por unidades máis grandes (ata 2 TB)
Unha tarefa: Substitúe os discos actuais por discos máis grandes (ata 2 TB) con transferencia de información. Neste caso, temos 2 unidades SSD de 240 GB (RAID-1) co sistema instalado e 2 unidades SATA de 1 TB ás que hai que transferir o sistema.
Considere o deseño actual do disco.
[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
Comprobamos o espazo do sistema de ficheiros usado actualmente.
[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
O tamaño do sistema de ficheiros antes de substituír os discos é de 204 GB, utilízanse 2 matrices de software md126, que se montan en /boot
и md127
, que se usa como volume físico para o grupo VG vg0.
1. Eliminar particións de disco das matrices
Comprobe o estado da matriz
[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>
O sistema usa 2 matrices: md126
(punto de montaxe /boot
) - consta dunha sección /dev/sda1
и /dev/sdb1
, md127
(LVM para intercambiar e a raíz do sistema de ficheiros) - consta de /dev/sda2
и /dev/sdb2
.
Marcamos como malas as particións do primeiro disco que se usan en cada matriz.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Elimina as particións do dispositivo do bloque /dev/sda das matrices.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Despois de eliminar o disco da matriz, a información do dispositivo de bloqueo terá este aspecto.
[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
O estado das matrices despois de eliminar os discos.
[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. Copie a táboa de particións nunha nova unidade
Podes comprobar a táboa de particións usada no disco co seguinte comando.
fdisk -l /dev/sdb | grep 'Disk label type'
A saída para o MBR será:
Disk label type: dos
para GPT:
Disk label type: gpt
Copiando a táboa de particións para MBR:
sfdisk -d /dev/sdb | sfdisk /dev/sdc
Neste comando первым indícase o disco с quen cópiase o marcado segundo - onde copiar.
ATENCIÓN: Para GPT первым indícase o disco sobre o que copia de marcado, segundo disco indica disco dende o cal copia de marcado. Se mesturas os discos, a partición inicialmente boa será sobreescrita e destruída.
Copiando a táboa de marcas para GPT:
sgdisk -R /dev/sdс /dev/sdb
A continuación, asigne un UUID aleatorio ao disco (para GPT).
sgdisk -G /dev/sdc
Despois de executar o comando, as particións deberían aparecer no disco /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
Se despois da acción as particións do sistema no disco /dev/sdc
indeciso, entón executamos o comando para reler a táboa de particións.
sfdisk -R /dev/sdc
Se os discos actuais usan a táboa MBR e hai que migrar a información a discos de máis de 2 TB, entón os novos discos terán que crear manualmente unha partición GPT usando a partición biosboot. Este caso considerarase na parte 2 deste artigo.
3. Engadir novas particións de disco á matriz
Engademos particións de disco ás matrices adecuadas.
mdadm /dev/md126 --add /dev/sdc1
mdadm /dev/md127 --add /dev/sdc2
Comproba que se engadiron as seccións.
[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
Despois diso, agardamos a sincronización das matrices.
[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>
Pode supervisar continuamente o proceso de sincronización mediante a utilidade watch
.
watch -n 2 cat /proc/mdstat
Parámetro -n
especifica en que intervalos en segundos se debe executar o comando para comprobar o progreso.
Repita os pasos 1 - 3 para o seguinte disco a substituír.
Marcamos como malas as particións do segundo disco que se usan en cada matriz.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Eliminar bloqueos de particións do dispositivo /dev/sdb
desde matrices.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
Despois de eliminar o disco da matriz, a información do dispositivo de bloqueo terá este aspecto.
[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
O estado das matrices despois de eliminar os discos.
[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>
Copia a táboa de particións MBR do disco /dev/sdс
ao disco /dev/sdd
.
sfdisk -d /dev/sdс | sfdisk /dev/sdd
Despois de executar o comando, as particións deberían aparecer no disco /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
Engadir particións de disco ás matrices.
mdadm /dev/md126 --add /dev/sdd1
mdadm /dev/md127 --add /dev/sdd2
Comproba que se engadiron as seccións.
[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]
Despois diso, agardamos a sincronización das matrices.
[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. Instalando GRUB en novas unidades
Para CentOS:
grub2-install /dev/sdX
Para Debian/Ubuntu:
grub-install /dev/sdX
onde X
é a letra do dispositivo de bloque. Neste caso, cómpre instalar GRUB /dev/sdc
и /dev/sdd
.
6. Ampliación do sistema de ficheiros (ext4) da partición raíz
En discos novos /dev/sdc
и /dev/sdd
931.5 GB dispoñibles. Debido ao feito de que a táboa de particións foi copiada de discos máis pequenos, particións /dev/sdc2
и /dev/sdd2
222.5 GB dispoñibles.
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]
É necesario:
- Estende a partición 2 en cada unha das unidades,
- Expandir matriz md127,
- Expandir PV (volume físico),
- Expandir LV (volume lóxico) vg0-root,
- Amplíe o sistema de ficheiros.
Usando a utilidade separouse ampliar a sección /dev/sdc2
ata o valor máximo. Executar o comando parted /dev/sdc
(1) e ver a táboa de particións actual co comando p
(2).
Como podes ver, o final da partición 2 remata en 240 GB. Imos expandir a partición co comando resizepart
2
, onde 2 é o número de sección (3). Especifique o valor en formato dixital, por exemplo 1000 GB, ou use a indicación da compartición do disco - 100%. Comprobe de novo que a partición ten o novo tamaño (4).
Repita os pasos anteriores para o disco /dev/sdd
. Despois da expansión da partición /dev/sdc2
и /dev/sdd2
converteuse en 930.5 GB.
[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]
Despois diso, expandimos a matriz md127 ata o máximo.
mdadm --grow /dev/md127 --size=max
Comprobamos que a matriz se expandiu. Agora o seu tamaño pasou a ser de 930.4 GB.
[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]
Realización dunha ampliación volume físico. Antes de expandir, verifique o estado actual do 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 ]
Como vedes, PV /dev/md127
usa 222.4 GB de espazo.
Expanda PV co seguinte comando.
pvresize /dev/md127
Comprobación do resultado da ampliación FV.
[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 ]
Expansión volume lóxico. Antes de expandir, verifique o estado actual de 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
usa 206.41 GB.
Ampliamos LV co seguinte comando (2).
lvextend -l +100%FREE /dev/mapper/vg0-root
Comprobamos a acción realizada (3).
[root@localhost ~]# lvscan
ACTIVE '/dev/vg0/swap' [<16,00 GiB] inherit
ACTIVE '/dev/vg0/root' [<914,39 GiB] inherit
Como podes ver, despois da expansión LV, a cantidade de espazo en disco ocupado converteuse en 914.39 GB.
O tamaño LV aumentou (4), pero o sistema de ficheiros aínda é de 204 GB (5).
1. Ampliemos o sistema de ficheiros.
resize2fs /dev/mapper/vg0-root
Comprobamos o tamaño do sistema de ficheiros despois do comando executado.
[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
O tamaño do sistema de ficheiros raíz aumentará a 900 GB. Despois de realizar os pasos, pode eliminar os discos antigos.
Caso 2: substituír discos máis pequenos por discos máis grandes (máis de 2 TB)
Tareo: Substitúe os discos actuais por discos máis grandes (2 x 3 TB) conservando a información. Neste caso, temos 2 unidades SSD (RAID-240) de 1 GB co sistema instalado e 2 unidades SATA de 3 TB ás que hai que transferir o sistema. Os discos actuais usan a táboa de particións MBR. Dado que os novos discos son maiores de 2 TB, terán que utilizar a táboa GPT, xa que o MBR non pode xestionar discos de máis de 2 TB.
Vexamos o deseño actual do disco.
[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
Comprobe a táboa de particións usada no disco /dev/sda
.
[root@localhost ~]# fdisk -l /dev/sda | grep 'Disk label type'
Disk label type: dos
No disco /dev/sdb
úsase a mesma táboa de particións. Comprobamos o espazo no disco usado no sistema.
[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
Como podes ver, a raíz do sistema de ficheiros é de 204 GB. Comprobamos o estado actual da matriz RAID do software.
1. Instale a táboa de particións GPT e o deseño do disco
Comprobamos a partición dos discos por sector.
[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
No novo disco de 3TB, necesitaremos crear 3 particións:
- Sección
bios_grub
Tamaño de 2 MiB para compatibilidade con GPT BIOS, - Partición para a matriz RAID que se vai montar
/boot
. - Unha partición para unha matriz RAID que conterá raíz LV и Intercambio LV.
Instalación da utilidade separouse o equipo yum install -y parted
(para CentOS), apt install -y parted
(para Debian/Ubuntu).
Uso separouse execute os seguintes comandos para particionar o disco.
Executar o comando parted /dev/sdc
e vai ao modo de edición do deseño do disco.
Crea unha táboa de particións GPT.
(parted) mktable gpt
Crear 1 sección bios_grub
sección e estableza unha bandeira para ela.
(parted) mkpart primary 1MiB 3MiB
(parted) set 1 bios_grub on
Crea a partición 2 e establece unha bandeira para ela. A partición empregarase como bloque para a matriz RAID e montarase /boot
.
(parted) mkpart primary ext2 3MiB 1028MiB
(parted) set 2 boot on
Creamos unha 3a partición, que tamén se utilizará como un bloque de matriz no que haberá LVM.
(parted) mkpart primary 1028MiB 100%
Neste caso, non é necesario establecer a bandeira, pero se é necesario, é posible configurala co seguinte comando.
(parted) set 3 raid on
Comprobe a táboa creada.
(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
Asigne un novo GUID aleatorio ao disco.
sgdisk -G /dev/sdd
2. Eliminando as particións do primeiro disco das matrices
Comprobe o estado da matriz
[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>
O sistema usa 2 matrices: md126 (punto de montaxe /boot) - consta de /dev/sda1
и /dev/sdb1
, md127
(LVM para swap
e a raíz do sistema de ficheiros) - consta de /dev/sda2
и /dev/sdb2
.
Marcamos como malas as particións do primeiro disco que se usan en cada matriz.
mdadm /dev/md126 --fail /dev/sda1
mdadm /dev/md127 --fail /dev/sda2
Eliminar bloqueos de particións do dispositivo /dev/sda
desde matrices.
mdadm /dev/md126 --remove /dev/sda1
mdadm /dev/md127 --remove /dev/sda2
Comprobando o estado da matriz despois de eliminar o disco.
[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. Engadir novas particións de disco á matriz
O seguinte paso é engadir particións do novo disco ás matrices para a sincronización. Observamos o estado actual do deseño do disco.
[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
Sección /dev/sdc1
é bios_grub
sección e non participa na creación de matrices. As matrices só se usarán /dev/sdc2
и /dev/sdc3
. Engadimos estas seccións ás matrices correspondentes.
mdadm /dev/md126 --add /dev/sdc2
mdadm /dev/md127 --add /dev/sdc3
Despois agardamos pola sincronización da matriz.
[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>
Particionar discos despois de engadir particións á matriz.
[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. Eliminando as particións do segundo disco das matrices
Marcamos como malas as particións do segundo disco que se usan en cada matriz.
mdadm /dev/md126 --fail /dev/sdb1
mdadm /dev/md127 --fail /dev/sdb2
Eliminar bloqueos de particións do dispositivo /dev/sda
desde matrices.
mdadm /dev/md126 --remove /dev/sdb1
mdadm /dev/md127 --remove /dev/sdb2
5. Copie a táboa de deseño GPT e sincronice a matriz
Para copiar a táboa de marcas GPT, use a utilidade sgdisk
, que se inclúe no paquete para traballar con particións de disco e a táboa GPT - gdisk
.
Instalación gdisk
para CentOS:
yum install -y gdisk
Instalación gdisk
para Debian/Ubuntu:
apt install -y gdisk
ATENCIÓN: Para GPT первым indícase o disco sobre o que copia de marcado, segundo disco indica disco dende o cal copia de marcado. Se mesturas os discos, a partición inicialmente boa será sobreescrita e destruída.
Copia a táboa de particións GPT.
sgdisk -R /dev/sdd /dev/sdc
Particionar discos despois de transferir unha táboa ao disco /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
A continuación, engadimos cada unha das particións que participan nas matrices RAID de software.
mdadm /dev/md126 --add /dev/sdd2
mdadm /dev/md127 --add /dev/sdd3
Estamos á espera da sincronización da matriz.
[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>
Despois de copiar a partición GPT no segundo disco novo, a partición terá este aspecto.
[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]
A continuación, instala GRUB nas novas unidades.
Instalación para CentOS:
grub2-install /dev/sdX
Instalación para Debian/Ubuntu:
grub-install /dev/sdX
onde X
- letra de unidade, no noso caso unidades /dev/sdc
и /dev/sdd
.
Actualiza a información sobre a matriz.
Para CentOS:
mdadm --detail --scan --verbose > /etc/mdadm.conf
Para Debian/Ubuntu:
echo "DEVICE partitions" > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose | awk '/ARRAY/ {print}' >> /etc/mdadm/mdadm.conf
Actualizando a imaxe initrd
:
Para CentOS:
dracut -f -v --regenerate-all
Para Debian/Ubuntu:
update-initramfs -u -k all
Actualiza a configuración de GRUB.
Para CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
Para Debian/Ubuntu:
update-grub
Despois de tomar os pasos, pódense eliminar os discos antigos.
6. Ampliación do sistema de ficheiros (ext4) da partición raíz
Particionar discos coa extensión do sistema de ficheiros despois da migración do sistema a 2 discos de 3 TB (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]
Agora seccións /dev/sdc3
и /dev/sdd3
ocupa 2.7 TB. Dado que creamos un novo deseño de disco coa táboa GPT, o tamaño da 3a partición foi inmediatamente configurado co espazo máximo posible en disco, neste caso non é necesario expandir a partición.
É necesario:
- Expandir matriz md126,
- Expandir PV (volume físico),
- Expandir LV (volume lóxico) vg0-root,
- Amplíe o sistema de ficheiros.
1. Ampliación da matriz md126
ata o máximo.
mdadm --grow /dev/md126 --size=max
Despois de expandir a matriz md126
o tamaño do espazo ocupado aumentou a 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]
Expansión volume físico.
Antes de expandir, comprobamos o valor actual do espazo ocupado PV /dev/md126
.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- 222,40g 0
Ampliamos PV co seguinte comando.
pvresize /dev/md126
Comprobamos a acción realizada.
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/md126 vg0 lvm2 a-- <2,73t 2,51t
Expansión volume lóxico vg0-root.
Despois de expandir PV, verifique o espazo ocupado por VG.
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg0 1 2 0 wz--n- <2,73t 2,51t
Comprobamos o espazo que ocupa 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
O volume vg0-root é de 206.41 GB.
Expande LV ata o máximo de espazo en disco.
lvextend -l +100%FREE /dev/mapper/vg0-root
Comprobando o espazo LV despois da expansión.
[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
Ampliación do sistema de ficheiros (ext4).
Imos comprobar o tamaño actual do sistema de ficheiros.
[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
O volume /dev/mapper/vg0-root é de 204 GB despois da expansión LV.
Ampliación do sistema de ficheiros.
resize2fs /dev/mapper/vg0-root
Comprobamos o tamaño do sistema de ficheiros despois da súa expansión.
[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
O tamaño do sistema de ficheiros aumentou en todo o tamaño do volume.
Fonte: www.habr.com