一、普通目录扩容
先查看当前磁盘使用情况:
[root@lvm ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
创建一个/app目录,给该目录分配5G空间,下面开始实验:
1、创建PV物理卷:
[root@lvm ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
2、创建VG卷组:
[root@lvm ~]# vgcreate app /dev/sdb /dev/sdc
Volume group "app" successfully created
3、在上面app卷组基础上创建LVM逻辑卷:
[root@lvm ~]# lvcreate -n lvapp -L 5G app
Logical volume "lvapp" created.
4、格式化lvapp这个逻辑卷:
[root@lvm ~]# mkfs.ext4 /dev/app/lvapp
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
5、创建一个/app目录,并将/dev/app/lvapp挂载至/app目录:
[root@lvm ~]# mkdir /app
[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 4.8G 20M 4.6G 1% /app
下面开始测试给/app目录扩容至6G。
6、先取消挂载:
[root@lvm ~]# umount /app/
[root@lvm ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
7、使用lvextend命令扩容:
[root@lvm ~]# lvextend -L 6G /dev/app/lvapp
Size of logical volume app/lvapp changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
Logical volume app/lvapp successfully resized.
8、检查磁盘完整性:
[root@lvm ~]# e2fsck -f /dev/app/lvapp
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/app/lvapp: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks
9、重置磁盘容量:
[root@lvm ~]# resize2fs /dev/app/lvapp
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/app/lvapp to 1572864 (4k) blocks.
The filesystem on /dev/app/lvapp is now 1572864 blocks long.
10、重新挂载:
[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 5.8G 20M 5.5G 1% /app
二、根目录扩容
1、检查文件系统使用情况:
[root@lvm ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 5.8G 20M 5.5G 1% /app
2、使用fdisk创建一个新的分区:
[root@lvm ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x4260a25f 创建新的 DOS 磁盘标签。
#此处输入n,表示创建新的分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
#此处输入p表示创建主分区
Select (default p): p
#分区号根据实际情况写,我们这是第一次创建分区,所以默认是1,可以不写使用默认值也行
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
#这里行末输入要创建多大的分区,我们选择2G,所以输入+2G
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
#w表示写入
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
3、使用pvcreate命令创建/dev/sdd1物理卷:
[root@lvm ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
4、vgdisplay 查看系统中的卷组,根目录所在的卷组是centos:
[root@lvm ~]# vgdisplay
--- Volume group ---
VG Name app
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 1536 / 6.00 GiB
Free PE / Size 3582 / 13.99 GiB
VG UUID A9fjGc-PbU6-vrJv-DXy5-3hcE-Punp-ceda1p
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID 9TVteP-AgrQ-2I0y-H4yO-5kVI-nD5l-KOI24h
5、通过 vgextend 将物理卷sdd1加入卷组centos:
[root@lvm ~]# vgextend centos /dev/sdd1
Volume group "centos" successfully extended
这个时候只是卷组扩大了,但根目录所在的逻辑卷/dev/mapper/centos-root并没有扩大,所以根目录空间并没有变化,下面开始扩展根目录可用空间。
6、使用lvextend扩展/dev/mapper/centos-root逻辑卷的大小,这个要注意的是,我们上面只给卷组扩容了2G,下面扩容逻辑卷的时候,必须要小于2G,等于2G也不行:
[root@lvm ~]# lvextend -L +1G /dev/mapper/centos-root
Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <18.00 GiB (4607 extents).
Logical volume centos/root successfully resized.
7、根目录的文件系统xfs,使用 xfs_growfs 命令重置硬盘容量:
[root@lvm ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 4717568
8、查看根目录文件系统使用情况,之前总容量是17G,可用16G,现在总容量是18G,可用17G:
[root@lvm ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 18G 1.2G 17G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 5.8G 20M 5.5G 1% /app
总结:
1、对于根目录扩容,如果分区已经使用完,则需要使用fdisk命令,新建分区,然后新建PV物理卷,再将物理卷加入根目录所在的卷组,接着再扩容逻辑卷。
2、对于普通文件目录,如果物理卷组的空间够用,则可以直接扩容逻辑卷组;对于有些目录,取消挂载的话,可能会影响生产环境的业务。