É normal que o seu sistema Linux com o passar do tempo consuma o filesystem, com aplicativos instalados e logs dos aplicativos que são gerados continuamente e vão logicamente consumido o seu disco, e como consequência disso ficamos sem espaço disponivel na partição root ou /. Existe uma maneira rápida, simples e transparente de incrementarmos mais espaço nessa partição, utilizando para isso a ferramenta LVM, onde podemos realizar esse ajuste de espaço se e somente o seu S.O foi instalado com LVM e foi configurado para a partição / utilizar o esquema de VG(Volume Group) da LVM, que geralmente é o VolGroup00, então isso significa que você porderá extender a sua partição.
Para descobrir essas informações no seu S.O utilize o seguinte comando:
#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
25G 5.6G 18G 25% /
/dev/sda1 99M 13M 82M 13% /boot
tmpfs 502M 0 502M 0% /dev/shm
/dev/mapper/VolGroupOracle-LogVolOracle
108G 29G 74G 28% /oracle
/dev/hdc 3.3G 3.3G 0 100% /mnt/dvd
Perceba que o filesystem da sua partição / é:
/dev/mapper/VolGroup00-LogVol00 onde VolGroup00 é o Grupo de volumes, é ele quem extenderemos primeiramente, pois, o nosso volume lógico LogVol00, que é a partição /, é membro deste grupo. Logo em seguida após extendermos o Grupo lógico VolGroup00 extenderemos nosso Volume lógico LogVol00 que como já foi dito é a nossa partição root.
Então vamos lá:
Resumo da tarefa a ser realizada: Para poder extender um grupo lógico você deverá arranjar espaço de algum lugar, com LVM geralmente colocamos um novo disco rígido no servidor e após isso mudamos a tabela de partição deste novo disco para o tipo 8e(Linux LVM). Em seguida criamos um Phisical Volume a partir deste disco recém adicionado, PV ou phisical volume é um disco lógico utlizado pelo LVM. Criado o PV, extenderemos o nosso VG(Volume Group) que no nosso caso será o VolGroup00. Logo em seguida após extender o VG iremos extender o LV(Logical Volume) desejado ou em outras palavras a partição / e para finalizar iremos passar para o S.O a informação que extendemos um filesystem dele com o comando resize2fs.
Verifique o nome do dispositivo que foi colocado para seu HD recém adicionado:
#fdsik -l
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdd doesn't contain a valid partition table
O dispositivo /dev/sdd está sem tabela de partição criada. Então iremos criar e coloca-la como tipo 8e(Linux LVM):
#fdisk /dev/sdd
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Partição criada:
#fdisk -l /dev/sdd
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 130 1044193+ 8e Linux LVM
Iremos agora para a parte do LVM, primeiramente criaremos um Phisical Volume(PV) com a partição que foi criada:
#pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created
Agora que já temos o PV iremos extender um Volume Group, que no nosso caso é grupo de volumes que contém a partição raiz / normalmente é chamado de VolGroup00, se não saber qual o nome do grupo der o comando abaixo:
#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
25G 3.7G 20G 17% /
/dev/sda1 99M 13M 82M 13% /boot
tmpfs 1006M 0 1006M 0% /dev/shm
/dev/mapper/VolGroupOracle-LogVolOracle
206G 188M 196G 1% /oracle
Identificado o Volume Group que contém a sua partição /, então, iremos extender esse VG passando para ele o dispositivo que contém o espaço livre, ou seja, o disco rigido recém adicionado na máquina:
#vgextend VolGroup00 /dev/sdd1
Volume group "VolGroup00" successfully extended
Pronto com o grupo já extendido vamos ver quanto de espaço livre este VG possui agora:
#vgdisplay VolGroup00
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 8.69 GB
PE Size 32.00 MB
Total PE 278
Alloc PE / Size 248 / 7.75 GB
Free PE / Size 30 / 960.00 MB
VG UUID Ll4Bg4-jIFV-lfut-z4Ae-JTfH-0Hzp-Zf9RjM
Agora sim iremos extender a nossa partição ou volume raiz / utilize o parâmetro Free PE do comando dado acima ele é o indice de espaço livre:
#lvextend -l+30 /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 8.19 GB
Logical volume LogVol00 successfully resized
Pronto! Agoramos que extendemos o nosso VG do LVM iremos passar esta informação para o S.O, pois, ainda não foi extendido o disco fisico propriamente dito, para extende-lo utilize o comando resize2fs:
#resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.40.2 (12-Jul-2007)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing
required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 2146304 (4k)
blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 2146304 blocks long.
df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/centos-root xfs 47781076 47095908 685168 99% /
devtmpfs devtmpfs 1927272 0 1927272 0% /dev
tmpfs tmpfs 1937252 0 1937252 0% /dev/shm
tmpfs tmpfs 1937252 8488 1928764 1% /run
tmpfs tmpfs 1937252 0 1937252 0% /sys/fs/cgroup
/dev/sda1 xfs 508588 183388 325200 37% /boot
10.71.50.71:/var/log nfs 49578752 20107264 26912512 43% /var/log/syslogserver
tmpfs tmpfs 387452 0 387452 0% /run/user/0
ATENÇÃO: Se estiver usando o SO CentOS 7, o sistema de arquivo padrão é xfs e o comando resize2fs dará erro. Use o comando abaixo:
xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=2987776 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=11951104, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=5835, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 11951104 to 27689984
Pronto!!!! Se tudo correu bem você está agora com espaço livre em seu disco e na sua partição raiz /.
Simples!