背景
线下有一台虚拟机df -h发现根分区内存不足,已用空间已经达到98%了,这样会造成很多问题,所以要给根分区增加空间
root@dubboadmin:~# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/dubboadmin--vg-root 96G 94G 500M 98% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 4.0K 2.0G 1% /dev tmpfs 396M 692K 395M 1% /run
虚拟机版本为
root@dubboadmin:~# cat /etc/issue
Ubuntu 14.04.3 LTS \n \l
操作
1.先将虚拟机关机
2.增加一块硬盘
3.fdisk -l
fdisk -l查看新硬盘/dev/sdc是否已经识别到
4.将新硬盘进行分区
root@dubboadmin:~# fdisk /dev/sdc
Command (m for help): n #新建分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p #选择分区类型 Partition number (1-4, default 1): #默认为1(因为是新磁盘第一次创建分区) First sector (2048-41943039, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): #这里我只创建一个分区所以默认是使用所有空间 Using default value 41943039 Partition 1 of type Linux and of size 20 GiB is set 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.
5.加载硬盘
让系统重新读取分区表:
root@dubboadmin:~# partprobe /dev/sdc
6.创建物理卷(PV):
root@dubboadmin:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
查看物理卷信息:
红框里是加入vg后才有的,新创建的物理卷VG name是空的
7.将pv加到vg中
root@dubboadmin:~# vgextend dubboadmin-vg /dev/sdc1
查看VG卷组信息:
没有扩展之前 Free PE应该是你添加进去的pv的大小
8.将新的VG空间划入LV(扩容/dev/dubboadmin-vg/root)
将所有剩余空间全部划入LV
root@dubboadmin:~# lvextend -l +100%FREE /dev/dubboadmin-vg/root
9.再df -h一下,发现根分区可用空间并没有增大?#_#
找到一篇文章可以解决内容如下:
Xfs是CentOS7的默认文件系统类型,而不同文件系统类型对应的创建、检查、调整命令不同。
LVM中对基于xfs的文件系统进行扩容LVM中对基于xfs的文件系统进行扩容
在xfs文件系统中,只能增大分区而不能减小。
[root@localhost ~]# ls /lib//modules/3.10.0-229.20.1.el7.x86_64/kernel/fs #查看内核所支持的所有文件系统类型
binfmt_misc.ko ceph dlm fat gfs2 lockd nfs_common overlayfs udf
btrfs cifs exofs fscache isofs mbcache.ko nfsd pstore xfs
cachefiles cramfs ext4 fuse jbd2 nfs nls squashfs
我之前已经新建了分区并加入到vg中,对物理边界也已扩展。
扩展逻辑边界时,报错如下所示:
[root@localhost ~]# resize2fs -p /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/centos-root 时
找不到有效的文件系统超级块.
首先想到使用fsck进行修复下,并没有用,看到错误信息,才知道xfs文件要使用xfs_repair进行修复
[root@localhost ~]# fsck /dev/mapper/centos-root
fsck,来自 util-linux 2.23.2
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_repair(8).
然后尝试修复下,然而并没有用,需要卸载才能进行修复,而此文件系统是挂载到 / 下的,所以想都别想。
[root@localhost ~]# xfs_repair /dev/mapper/centos-root
xfs_repair: /dev/mapper/centos-root contains a mounted filesystem
xfs_repair: /dev/mapper/centos-root contains a mounted and writable filesystem
fatal error -- couldn't initialize XFS library
最后在网上查了一番后,才知道xfs文件系统在进行逻辑扩展后,还要进行一步才能完成:
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 95.00g
swap centos -wi-ao---- 3.88g
[root@localhost ~]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 46G 42G 4.5G 91% / ------------>46G
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 164K 1.9G 1% /dev/shm
tmpfs 1.9G 8.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
[root@localhost ~]# 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 24903680
[root@localhost ~]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 95G 42G 54G 44% / ------------>已经完成扩展
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 164K 1.9G 1% /dev/shm
tmpfs 1.9G 8.7M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 497M 208M 290M 42% /boot
xfs相关常用命令
xfs_admin: 调整 xfs 文件系统的各种参数
xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)
xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)
xfs_check: 检测 xfs 文件系统的完整性
xfs_bmap: 查看一个文件的块映射
xfs_repair: 尝试修复受损的 xfs 文件系统
xfs_fsr: 碎片整理
xfs_quota: 管理 xfs 文件系统的磁盘配额
xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统
xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)
xfs_freeze 暂停(-f)和恢复(-u)xfs 文件系统
xfs_logprint: 打印xfs文件系统的日志
xfs_mkfile: 创建xfs文件系统
xfs_info: 查询文件系统详细信息
xfs_ncheck: generate pathnames from i-numbers for XFS
xfs_rtcp: XFS实时拷贝命令
xfs_io: 调试xfs I/O路径
参照文章,上述操作后再追加一条 xfs_growfs /dev/dubboadmin-vg/root #执行调整,扩展后需要执行此步骤
再次查看 df -lh 扩展成功