参考网站:http://www.360doc.com/content/18/0128/11/52410512_725728162.shtml


 

VirtualBox中安装了CentOS 7,给同事用来做kafka和zookeeper测试服务器。昨晚kafka意外终止,看了日志发现是/root只分配了1GiB大小,已接近饱和。开始bing,总结一下步骤:

列出各分区使用情况:

# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs       997M  994M  2.9M 100% /
devtmpfs                devtmpfs  915M     0  915M   0% /dev
tmpfs                   tmpfs     921M     0  921M   0% /dev/shm
tmpfs                   tmpfs     921M   17M  905M   2% /run
tmpfs                   tmpfs     921M     0  921M   0% /sys/fs/cgroup
/dev/mapper/centos-usr  xfs       4.9G  1.6G  3.4G  33% /usr
/dev/sda1               xfs        97M   66M   31M  69% /boot
/dev/mapper/centos-var  xfs       2.4G  473M  1.9G  21% /var

可以看见 /dev/mapper/centos-root 已经使用了100%,我们准备为它扩容。

在VirtualBox中添加一块新的虚拟磁盘:

先关闭操作系统。在VirtualBox中选中当前VM,设置->存储->控制器->SATA控制器,点击图标“添加虚拟硬盘”,新建一个虚拟硬盘。我增加了一块3GiB大小的虚拟磁盘,保存后再次启动虚拟机。

创建新分区

先看一下现有磁盘情况:

# fdisk -l

结果:

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000940ec
 
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400   83  Linux
/dev/sda2          206848    41943039    20868096   8e  Linux LVM
 
Disk /dev/sdb: 3221 MB, 3221225472 bytes, 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

 

 

Disk /dev/mapper/centos-swap: 2097 MB, 2097152000 bytes, 4096000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
 
Disk /dev/mapper/centos-usr: 5242 MB, 5242880000 bytes, 10240000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
 
 
Disk /dev/mapper/centos-root: 1048 MB, 1048576000 bytes, 2048000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
...
...
...

已经可以看到新磁盘/dev/sdb。

对新磁盘进行分区:

 # fdisk /dev/sdb

在fdisk的交互模式中,依次输入:

n  --创建新分区

p  --创建主分区

<回车>  --默认分区编号

<回车>  --默认起始扇区位置。

<回车>  --默认结束扇区位置。

w  --写入分区表

这样就把整个磁盘分成了一个区。

再看一下现有磁盘情况:

# fdisk -l

已经多出了一个新分区:

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     6291455     3144704   83  Linux

将新分区用于扩展/root

先看一下卷分组:

# vgdisplay -v
Finding all volume groups
    Finding volume group "centos"
  --- Volume group ---
  VG Name               centos
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                5
  Open LV               5
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               19.90 GiB
  PE Size               4.00 MiB
  Total PE              5094
  Alloc PE / Size       5093 / 19.89 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               vtJL08-7Jxi-5IqK-3fUg-Pben-682a-wiv2GL
  
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                ZWTgoT-AMWs-g54v-dZA1-NQUj-mqGa-8tmr4U
  LV Write Access        read/write
  LV Creation host, time localhost, 2016-07-03 21:59:31 -0400
  LV Status              available
  # open                 1
  LV Size                1000.00 MiB
  Current LE             250
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
   currently set to     256
  Block device           253:2
  ...
  ...
  ...
  --- Physical volumes ---
  PV Name               /dev/sda2    
  PV UUID               fiVH1e-lwfi-63Lr-oIlK-GDZI-dcuZ-T04VlC
  PV Status             allocatable
  Total PE / Free PE    5094 / 1
 
可以看到当前卷分组名为"centos"。
为之前新增的分区创建物理卷:
# pvcreate /dev/sdb1
提示是否擦除xfs签名,我选了y:
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n] y
  Wiping xfs signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created
查看结果:
# pvdisplay
已经看到新创建的3GiB大小的物理卷:
--- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               19.90 GiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              5094
  Free PE               1
  Allocated PE          5093
  PV UUID               fiVH1e-lwfi-63Lr-oIlK-GDZI-dcuZ-T04VlC
  
  "/dev/sdb1" is a new physical volume of "3.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name              
  PV Size               3.00 GiB
  Allocatable           NO
  PE Size               0  
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               VGXSAn-UiZ0-Fy40-eQxb-53xA-5hZM-3eGPg0
扩展卷分组,"centos"是vgdisplay命令查到的卷分组名:
# vgextend centos /dev/sdb1
提示成功扩展。
下面查看一下逻辑卷:
# lvdisplay
可以看到/dev/centos/root目前的LV Size是1000MiB。
下面扩展逻辑卷/dev/centos/root:
# lvextend -L +3G /dev/centos/root
注:+3G是我们新增加的分区大小。
扩展后,还要执行一步:
# xfs_growfs /dev/centos/root
将文件系统扩大。
完成。
因为安装CentOS用的xfs分区,所以使用命令xfs_growfs扩展文件系统大小。否则的话使用resize2fs命令。
查看结果:
# df -Th
/root已经扩充到4GiB:
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs       4.0G  995M  3.1G  25% /
devtmpfs                devtmpfs  915M     0  915M   0% /dev
tmpfs                   tmpfs     921M     0  921M   0% /dev/shm
tmpfs                   tmpfs     921M  8.4M  913M   1% /run
tmpfs                   tmpfs     921M     0  921M   0% /sys/fs/cgroup
/dev/mapper/centos-usr  xfs       4.9G  1.6G  3.4G  33% /usr
/dev/mapper/centos-home xfs       9.8G  391M  9.4G   4% /home
/dev/mapper/centos-var  xfs       2.4G  469M  1.9G  20% /var
/dev/sda1               xfs        97M   66M   31M  69% /boot