A. CentOS7 扩展磁盘容量(虚拟机及物理机同理)
服务器是搭建在ESXI之上,安装LAMP环境到MySQL安装时突然报错,查看日志发现文件写入失败磁盘已满。
查看了下磁盘容量,果真已无多少剩余空间了,这次选择给磁盘空间作下扩充。
显示如下:
可见可用只剩260K,使用已经100%。
首先需要关闭操作系统,然后在设置中将磁盘调整到需要的容量。
如果选项是灰色的,说明虚拟机有快照,将其快照删除再操作。
VMware在虚拟机设置的硬盘里面有“扩展”按钮可以进行设置。
其他虚拟机也差不多的操作,可以网络查看。
物理机直接增加硬盘(接入新硬盘)即可。
显示信息:
说明增加了空间的磁盘是/dev/sda
分别键入以下参数:
使用partprobe重读分区表,或者reboot重启机器。
格式化/dev/sda3分区
进入lvm管理
LVM基础知识: http://blog.csdn.net/wuweilong/article/details/7565530
(1)初始化刚才的分区
(2)查看卷和卷组
要记下”VG Name”,例如这里是centos;再记下”Free PE/Size”的大小,例如这里是2048
(3)将初始化过的分区加入到VG卷组
刚才记下的”VG Name”就在这里使用。但是执行到这一步时报错了:
网络了下,因为磁盘剩余空间实在太小了,无法执行,删除一些数据就可以了。 我删除了/home目录和~目录下的文件。
(4)扩展已有卷的容量
lvextend指令用于在线扩展逻辑卷的空间大小,不中断应用程序对逻辑卷的访问。其后有两个选项
其余两个参数:2048是上边通过vgdisplay查看的Free PE/Size的大小,后边的目录参数/dev/mapper/centos-root可以通过df -h命令查看。
(5)查看卷容量并退出
上面的步骤只是卷扩容了,文件系统还没实现真正扩容
CentOS 7: 由于使用的是 XFS
CentOS 6:
注:本文参考felcon的“Esxi中CentOS7 扩展磁盘容量”文章进行操作和记录。
B. Centos7 给根目录磁盘扩容
参考教程链接:https://www.cnblogs.com/Axianba/p/13049615.html
大坑预警:由于算数据所需软件均安装在/opt路径下,实验室服务器根目录爆满,在我删除了一些日志文件后空间仍然少的可怜,因此给根目录磁盘扩容是解决这个问题最好的办法。正好服务器安装了新硬盘,我以为硬盘挂载好之后会更方便我处理这个问题,我就等着硬盘安装后来扩容根目录,但是发现挂载好的硬盘是无法格式化的,需要卸载后再格式化进行后续操作。
执行该教程的前两步没有任何问题,在格式化硬盘时报错:
mkfs.xfs: cannot open /dev/sdc1: 设备或资源忙
Google之后使用命令: dmsetup ls
也没有找到占用该磁盘的进程,因此方法不适合解决我的问题。
解决办法:
umount -l /dev/sdc 强行解除挂载的硬盘后,顺利完成根目录扩容。
思考:这个方法既然可以给根目录扩容,是否也可以给/home目录扩容?把这个软件运行上就去试试。
C. centos系统在不关机情况下,扩展硬盘容量的方法
不关机的情况下扩展系统硬盘空间
1、选择需要被扩展的虚拟机,然后右击,选择“编辑设置”,然后点击“添加”:
2、选择要添加的硬件“硬盘”,然后点击“下一步”:
3、选择默认,然后点击“下一步”:
4、选择要扩展的硬盘的容量,然后点击“下一步”:
5、选择默认,然后点击“下一步”:
6、然后点击“完成”:
7、新的硬盘正在添加,然后点击“下一步”:
8、进入虚拟机系统,查看系统硬盘容量:
没有加载时,重新扫描SCSI总线来添加设备
(1)确定主机总线号
ls /sys/class/scsi_host/
(2)重扫
echo "- - -">/sys/class/scsi_host/host0/scan
echo "- - -">/sys/class/scsi_host/host1/scan
echo "- - -">/sys/class/scsi_host/host2/scan
再次查看,可以看到磁盘已经新增上来了,盘符为/dev/sdb
fdisk -l
9、通过partprobe重载分区表,避免重启系统:
partprobe /dev/sdb
注意:出现错误,则需要重启系统。
10、pvcreate 命令用于将物理硬盘分区初始化为物理卷,以便LVM使用。
pvcreate /dev/sdb
11、pvdisplay 命令用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
pvdisplay
12 、vgextend centos /dev/sdb:扩展卷分组,"centos"是vgdisplay命令查到的卷分组名:
vgextend centos /dev/sdb (上图中的VG name,可以看卷分组名)
13、lvextend命令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
lvextend -L +100G /dev/mapper/centos-home
14、xfs_growfs:作为目标XFS文件系统来扩展,你可以指定挂载点、磁盘分区或者逻辑卷(在使用LVM时),使用数据块数量来指定新的XFS文件系统的大小
xfs_growfs /dev/mapper/centos-home
15、查看系统硬盘空间:
df -h
以上步骤描述了centos系统在不关机情况下,扩展硬盘容量的方法。
D. centos7进行添加新硬盘对根目录扩容
操作思路:先确定要扩展目录的格式,df -hT,添加新硬盘,进行分区后,创建pv,然后将空间加入到vg中,然后vg中的空间加入到要扩展的目录中,然后重新读取空间。
命令:
插入新硬盘,不重启识别如下命令:
fdisk -l #没查看到相关的磁盘,进行如下操作:
识别磁盘后,进行磁盘格式化:
n #新建分区 p #主分区 1 #分区号 按回车 #起始扇区选择默认
也是回车默认 #为了不浪费空间 p #查看创建出来的分区 w #保存
重新让系统读取分区,输入两次:
识别到如下磁盘。
···
root@Repository:/# lsblk
sdc 8:32 0 500G 0 disk
└─sdc1 8:33 0 500G 0 part
└─Repository--vg-root 252:0 0 1.1T 0 lvm /
sr0 11:0 1 1024M 0 rom
···
接下来创建pv、vg,在进行扩容。
查看vg名称,并将空间加入到vg中,然后进行扩容。
将空间加入到vg中
扩容:
多出来的500G加入到扩展分区中:
重新读取空间: