情景:当服务器磁盘挂载的目录空间不足时,就需要对相应的挂载点进行扩容,以/home
挂载点为例
Chipset
-->PCH Configuration
-->PCH SATA Configuration
-->Configure SATA as
-->RAID
确认待扩容的硬盘是否做过raid(如果没有做过raid,是有RAID这个配置选项的)图一 bios设置1 |
图二 bios设置2 |
图三 bios设置3 |
图四 bios设置4 |
使用lsblk
(list block,即用于列出所有可用块设备信息,而且还能显示他们之间的依赖关系),如下图所示
分区说明:fdsik
只支持2T硬盘的分区,如果硬盘是2T以上的,分区要用parted
。
a. 输入fdisk /dev/sdb
(对新加磁盘sdb进行分区)
b. 后续Command 依次输入:n
(新建一个分区)-->p
(选择主分区)-->1
(选择分区号)-->直接回车(表示使用默认起始扇区)-->直接回车(不设置结束扇区,则默认使用全部磁盘)-->t
(改磁盘类型)-->1
(选分区,若可选则选)-->8e
(将磁盘设置为LVM模式)-->p
(显示磁盘信息)-->w
(使前面的操作生效并退出)
c. 详细操作可参照下列图片
d. #lsblk
(查看分区后的块设备信息)
a. 输入parted /dev/sdb
(对新加磁盘sdb进行分区)
b. 依次输入:p
(查看硬盘信息)-->mklabel gpt
(创建gpt分区表) -->y
(warning数据删除) -->mkpart
(创建分区) -->sdb1
(输入分区名)-->xfs
(文件系统类型) -->0
(起始位置) -->硬盘容量大小(终止位置) -->I
(Ignore,忽视warning) -->p
(查看硬盘信息)
c. 详细操作可参照下列图片
d. # lsblk
(查看分区后的块设备信息)
a. # pvcreate /dev/sdb1
(新增物理卷)
b. # pvdisplay
(查看物理卷信息,见下图)
# lsblk -ip
(结果如下图)
由上图可知/home
挂载到了/dev/mapper/centos-home
分区上
# lvdisplay /dev/mapper/centos-home
(结果见下图)
由上图可知磁盘分区/dev/mapper/centos-home
所在逻辑卷为home
,所在卷组为centos
,现在就知道了,我们待会要扩容的卷组以及逻辑卷了。
# vgdisplay centos
(结果见下图)
a. # vgextend centos /dev/sdb1
(扩展centos卷组)
b. # pvdisplay centos
(结果见下图)
c. # vgdisplay
(结果见下图)
a. # lvdisplay /dev/centos/home
(LV扩容前,先查看逻辑卷home的容量)
b. # lvextend -l +100%FREE /dev/centos/home
(扩容逻辑卷home)
c. # lvdisplay /dev/centos/home
(与LV扩容前对比)
a. # df -h
(查看文件系统的使用情况)
可以看到/home挂载点的容量并没有增加,这是因为目前还只是扩容了LV,但是并未扩容其对应的文件系统,故还需要增加对应文件系统的容量。
b. # cat /etc/fstab
(确认/home的文件系统类型)
可以看出/home挂载点对应的文件系统类型为xfs类型,故使用xfs_growfs工具对其进行扩容,若是其他文件系统类型,需要使用对应的工具扩容文件系统,如ext4文件系统则要使用resize2fs工具。
c. # xfs_growfs /dev/mapper/centos-home
(同步LV容量到xfs文件系统)
d. # df -h
(查看/home是否已扩容)
至此,我们就实现了对指定挂载点/home的扩容。
目的:将磁盘sdb扩容到home逻辑卷的容量释放,实现centos磁盘空间重新分配。
由于xfs文件系统不能缩小空间,所以只能将/home先卸载,移除新磁盘物理卷移出centos卷组,为/home重建新的逻辑卷,再格式化,并挂载
#
tar -czvf /root/home.tgz -C /home .
#
tar -tvf /root/home.tgz
#
umount /dev/mapper/centos-home
# 有可能有target is busy错误,使用umount -l /dev/mapper/centos-home
, l表示lazy
#
lvremove /dev/mapper/centos-home
# 有可能有Logical volume centos/home contains a filesystem in use.
# 则使用fuser -m -v -f -k /home
关闭所有home进程(非常危险)
#
vgreduce centos /dev/sdb1
#
lvcreate -l +100%FREE -n home centos
#重建home逻辑卷
#mkfs.xfs /dev/centos/home
#格式化为xfs文件系统
#mount /dev/mapper/centos-home
#将/home挂载出来
#
lsblk
#查看块设备信息
#df -h
#查看文件系统信息
#
tar -xzvf /root/home.tgz -C /home