扩容挂载点--Linux

2022/9/9 5:23:26

本文主要是介绍扩容挂载点--Linux,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


情景:当服务器磁盘挂载的目录空间不足时,就需要对相应的挂载点进行扩容,以/home挂载点为例


一、检查磁盘是否做过RAID

  1. 将硬盘插入到服务器可用的槽位
  2. 重启服务器进入bios设置,依次选择
    Chipset-->PCH Configuration-->PCH SATA Configuration-->Configure SATA as-->RAID 确认待扩容的硬盘是否做过raid(如果没有做过raid,是有RAID这个配置选项的
  3. 若有磁盘配置有RAID选项则需要选择该选项。详细操作步骤可参考下列图片

图一 bios设置1

图二 bios设置2

图三 bios设置3

图四 bios设置4

二、磁盘分区、格式化、挂载操作

1. 用root用户登录系统

2. 查看系统是否识别出新加的硬盘

    使用lsblk(list block,即用于列出所有可用块设备信息,而且还能显示他们之间的依赖关系),如下图所示


图5 识别新硬盘

3.磁盘分区

分区说明fdsik只支持2T硬盘的分区,如果硬盘是2T以上的,分区要用parted

1)使用fdisk命令分区(硬盘容量小于等于2T)

   a. 输入fdisk /dev/sdb (对新加磁盘sdb进行分区)
   b. 后续Command 依次输入:n(新建一个分区)-->p(选择主分区)-->1(选择分区号)-->直接回车(表示使用默认起始扇区)-->直接回车(不设置结束扇区,则默认使用全部磁盘)-->t(改磁盘类型)-->1(选分区,若可选则选)-->8e(将磁盘设置为LVM模式)-->p(显示磁盘信息)-->w(使前面的操作生效并退出)

c. 详细操作可参照下列图片


图6 fdisk分区

   d. #lsblk(查看分区后的块设备信息)



图7 检查磁盘新分区

2)使用parted命令分区(不论硬盘容量大小)

   a. 输入parted /dev/sdb (对新加磁盘sdb进行分区)
   b. 依次输入:p(查看硬盘信息)-->mklabel gpt(创建gpt分区表) -->y(warning数据删除) -->mkpart(创建分区) -->sdb1(输入分区名)-->xfs(文件系统类型) -->0(起始位置) -->硬盘容量大小(终止位置) -->I(Ignore,忽视warning) -->p(查看硬盘信息)

c. 详细操作可参照下列图片


图8 parted分区

   d. # lsblk(查看分区后的块设备信息)



图9 检查磁盘新分区

4.将新增的分区创建为物理卷

   a. # pvcreate /dev/sdb1 (新增物理卷)
   b. # pvdisplay (查看物理卷信息,见下图)


5. 扩容/home所挂载分区对应的逻辑卷(LV)

1)查询/home所挂载的磁盘分区

   # lsblk -ip (结果如下图)

由上图可知/home挂载到了/dev/mapper/centos-home分区上

2)查询该磁盘分区所对应的LV(逻辑卷)

   # lvdisplay /dev/mapper/centos-home (结果见下图)

由上图可知磁盘分区/dev/mapper/centos-home所在逻辑卷为home,所在卷组为centos,现在就知道了,我们待会要扩容的卷组以及逻辑卷了。

3)查询卷组信息(新增物理卷前)

   # vgdisplay centos(结果见下图)

4)将新增物理卷(/dev/sdb1)扩展至卷组centos

   a. # vgextend centos /dev/sdb1 (扩展centos卷组)
   b. # pvdisplay centos (结果见下图)

   c. # vgdisplay (结果见下图)

至此,我们已经实现了home逻辑卷对应的centos卷组的扩容。

5) 将centos卷组中扩容得到的空间分配给指定逻辑卷

   a. # lvdisplay /dev/centos/home (LV扩容前,先查看逻辑卷home的容量)

   b. # lvextend -l +100%FREE /dev/centos/home (扩容逻辑卷home)

   c. # lvdisplay /dev/centos/home (与LV扩容前对比)

6. 同步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的扩容。

三、章末补充-取消扩容(以下操作很危险,会影响服务器中调用/home目录的服务进程)

目的:将磁盘sdb扩容到home逻辑卷的容量释放,实现centos磁盘空间重新分配。
由于xfs文件系统不能缩小空间,所以只能将/home先卸载,移除新磁盘物理卷移出centos卷组,为/home重建新的逻辑卷,再格式化,并挂载

1• 备份 /home目录下的文件

# tar -czvf /root/home.tgz -C /home .

2• 查看备份内容的完整性

# tar -tvf /root/home.tgz

3• 取消挂载/home

# umount /dev/mapper/centos-home
# 有可能有target is busy错误,使用umount -l /dev/mapper/centos-home, l表示lazy

4• 移除home逻辑卷

# lvremove /dev/mapper/centos-home # 有可能有Logical volume centos/home contains a filesystem in use.
# 则使用fuser -m -v -f -k /home 关闭所有home进程(非常危险)

5• 将物理卷sdb1移出centos卷组

# vgreduce centos /dev/sdb1

6• 为/home重建新的逻辑卷,格式化,并挂载

# lvcreate -l +100%FREE -n home centos #重建home逻辑卷
# mkfs.xfs /dev/centos/home #格式化为xfs文件系统
# mount /dev/mapper/centos-home #将/home挂载出来

7• 验证磁盘sdb空间是否释放并且/home是否重新挂载成功

# lsblk #查看块设备信息
# df -h #查看文件系统信息

8• 恢复备份

# tar -xzvf /root/home.tgz -C /home



这篇关于扩容挂载点--Linux的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程