原因与需求:最近随着用户在服务器上上传的数据集增加,原来的根目录下36G左右的容量已经占用了82%,接近预警线了。而机器实际还有一块200G的硬盘(/dev/xvde)还没有挂载。于是想把xvde的容量转移到根目录下。
查看硬盘情况
使用 lsblk
命令查看系统下面挂载的硬盘
硬盘进行分区
使用fdisk 命令进行分区
fdisk /dev/xvde
然后输入 p 进行分区 确认后 默认 1 号分区 ,分区起始位置默认位置2048
最后 w 保存并退出
重读分区表
partprobe /dev/xvde
使用 lsblk
命令查看
发现多了一个xvde1
创建 物理卷PV 加入根目录卷组VG 并扩容虚拟卷LV
基本概念:linux文件系统基本概念:物理卷(Physical Volume, PV),卷组(Volume Group, VG),逻辑卷(Logical volume, LV),这三个从下至上演变成我们熟悉的文件。最后一层逻辑卷可以挂载到某个文件夹,其大小也就决定了这个文件夹的容量大小,最底层的物理卷就是硬盘的分区,而卷组则是可以将硬盘分区组合起来称为一个更大容量的空间,这样不同硬盘的分区也是可以一起用的。
这三个’空间‘也对应着三组命令,即我们常见的PV、VG、LV命令。
我们的目标是对根目录/进行扩容,其做法是:如果卷组中有多余的空间,直接使用lvextend命令扩容;如果卷组中没有多余空间,则需要先从物理卷中添加分区进入对应的卷组中。
使用df -Th命令可以看到目前机器的硬盘容量分配情况。
下面的截图是我已经扩容好的
从上面的结果看到根目录对应的文件系统是/dev/mapper/ao-root,这说明根目录对应的逻辑卷(lv)名称是’root‘,该逻辑卷下面的卷组(vg)是’ao‘。使用
vgdisplay
查看卷组容量情况:
!
可以看到卷组此时并没有多余的空间,查看物理卷的分配情况:
pvdisplay
!
/dev/xvde1 内容是我已经使用 可以不用管,
如果没有使用 VG Name 应该是空的
PE Size 大小是分配的总大小
创建物理卷:
pvcreate /dev/xvde1
如果创建遇到问题
就需要抹除原来的文件系统签名才能创建成功。
加入卷组
使用卷组命令将新的物理卷添加到对应的ao卷组中:
vgextend ao /dev/xvde1
虚拟卷扩容
使用lv命令从卷组空闲容量分配到逻辑卷root中:
lvdisplay
lvextend -L +199.9G /dev/ao/root
重新计算磁盘大小
执行结束之后还需要重新计算磁盘大小才能使用:
文件系统是 ext4 的
resize2fs /dev/ao/root
xfs文件系统的调整命令是xfs_growfs(只能增大)。
xfs_growfs /dev/ao/root
可以使用 df -Th 查看你当前要扩容挂载路径的文件系统格式
如果不行报错 不要重启 可以把路径 /dev/ao/root
替换为 /
试一下
再次使用df -h
命令即可看到根目录的容量已经增大。
另记:还有一种不那么麻烦的方式是直接更改机械硬盘的挂载目录,但根目录这种敏感的目录不建议操作。以/home目录为例,将机械硬盘挂载到/home下可以先将原来的/home目录备份,然后直接使用mount /etc/sda /home命令挂载,之后再将原来的文件复制进新的/home,设置开机自动挂载即可。这里仅提供思路。