CentOS 7添加硬盘扩展根目录空间
查看虚拟机磁盘空间
[root@hdp2 ~]# df -h
目前根目录只有10G的空间
第一步、给VMware虚拟机增加一块200G磁盘
打开虚拟机设置-->左下角添加-->选择硬盘-->磁盘类型选择“SCSI”-->选择“创建新虚拟磁盘”-->设置磁盘大小为100G,不要选择立即创建磁盘空间,剩余两个选项都可。
第二步、使用Linux下的fdisk工具进行分区
切换到root用户
fdisk 命令, fdisk -l : 打印当前的磁盘分区表,这时我们可以看到一个新的设备文件容量为200G,但是分区只有以前的那几个原有的分区。
[root@hdp2 ~]# fdisk -l
键入命令: fdisk /dev/sdb 进行磁盘分区, “sdb 就是新添加的硬盘,为SCSI硬盘 ”
键入 : m -- “ 列出 fdisk 的帮助 ”
我们在这里是要添加一个新分区,这样才能被操作系统挂载识别。
键入: n -- ”命令 n 用于添加新分区 "
此时, fdisk 会让你选择添加为逻辑分区呢(编号从 5 开始)还是主分区(编号 1 到 4 )。
选择主分区吧,则键入 p ;选择逻辑分区键入 l 。
我们选择主分区于是:
键入: p -- " 选择创建主分区 "
此时, fdisk 会让你选择主分区的编号,因为是个新的分区,我们键入1.
键入: 1
此时, fdisk 又会让你选择该分区的开始值这个就是分区的 Start 值( start cylinder );这里最好直接按回车, 如果您输入了一个非默认的数字,可能会造成空间浪费;
对于分区的 End 值(end cylinder),同样直接按回车。这时候会显示出你新建分区的柱面范围和空间大小。
此时键入: w 表示" 保存所有并退出,分区划分完毕 "
[root@hdp2 ~]# fdisk /dev/sdbnp1enterenterw
我们的新建分区/dev/sdb1,却不是LVM的。所以,接下来使用fdisk将其改成LVM的。
[root@hdp2 ~]# fdisk /dev/sdbt8ew
fdisk -l 查看发现/dev/sdb1 已经支持LVM
[root@hdp2 ~]# fdisk -l
我们现在还不能用这个分区 , 因为我们没格式化。
第三步、格式化该新添加的分区
格式化指定的分区,CentOS 7系统默认是xfs格式,如果你需要其它的,可以查看mkfs 的帮助。
[root@hdp2 ~]# mkfs -t xfs /dev/sdb1
到此为止,我们就新建了一个分区/dev/sdb1,此时我们已经可以通过挂载来使用这个新的空间,但是对于我,这并不能满足我的需求,因为服务器的服务程序是在根目录上的,目前根目录空间已经使用完毕,所以能把新建的分区使用在根目录上,分担根目录的空间,才能解决问题。
第四步、扩充根分区
在这里要先普及一下lvm的知识
1、什么是LVM?
LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式。
2、LVM的优缺点
1.优点
①.可以在系统运行的状态下动态的扩展文件系统的大小。
在Linux操作系统中我们的磁盘管理机制和Windows上的都差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进行文件系统的格式化,在Linux系统中如果要使用该分区就将其挂载上去即可,windows的话其实底层也就是自动将所有的分区挂载好,然后我们就可以对该分区进行使用了。
可这样做的话会带来很多问题,比如我们使用的一个分区所剩空间大小已经不够使用了,这个时候我们没法对分区进行扩充,我们只能通过增加硬盘,然后在新的硬盘上创建分区,对分区进行格式化,然后将之前分区的所有东西都拷贝到新的分区里面才行。但是新增加的硬盘是作为独立的文件系统存在的,原有的文件系统并没有得到任何的扩充,上层应用只能访问到一个文件系统。这样的方式对个人的电脑来说可能还能接受,但是如果对于生产环境下的服务器来说,这是不可接受的。因为如果要把一个分区的内容都拷贝到另一个分区上去,势必要首先卸载掉之前的那个分区,然后再对整个分区进行拷贝,如果服务器上运行着一个重要的服务,要求是 7*24 小时运行正常的,那么卸载掉分区这是不可想象的,同时如果该分区保存的内容非常非常的多,那么在对分区进行转移时时间可能会耗费很久,所以,这个时候我们就会受到传统磁盘管理的限制,因为其不能够进行动态的磁盘管理。因此,为了解决这个问题,LVM技术就诞生了!这也是LVM最大的优点。
②.文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
③.可以增加新的磁盘到LVM的存储池中。
④.可以以镜像的方式冗余重要的数据到多个物理磁盘。
⑤.可以方便的导出整个卷组到另外一台机器。
2.缺点
①.在从卷组中移除一个磁盘的时候必须使用reducevg命令(这个命令要求root权限,并且不允许在快照卷组中使用)。
②.当卷组中的一个磁盘损坏时,整个卷组都会受到影响。
③.因为加入了额外的操作,存贮性能受到影响。
3、LVM的用法
1.名词解释
如图所示就是LVM的基本组成
PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区。
PP(Physical Extend):物理区域,PV中可以用于分配的最小存储单元,可以在创建PV的时候制定(默认为4MB),如1M, 2M, 4M, 8M, 32M, 64M…组成同一VG中所有PV的PE大小应该相同。
VG(Volume Group):卷组,建立在PV之上,可以含有一个到多个PV。
LV(Logical Volume):逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。
用lvs命令查看当前逻辑卷信息。
[root@hdp2 ~]# lvs
用pvcreate命令在新建的分区上创建PV(physical volume)
[root@hdp2 ~]# pvcreate /dev/sdb1
在这里是因为这两个分区之前被格式化为xfs系统了,所以这里要把它变为逻辑卷需要输入Y确认更改
创建完后我们可以用pvs查看或者pvdisplay查看详细信息
[root@hdp2 ~]# pvs
[root@hdp2 ~]# pvdisplay
上图中用pvs命令查看时我们发现我们新创的PV卷组和以前创建的有点不同,它们的Attr部分不一样,这是因为我们新创建的PV卷组还没有激活,a---表示已激活的PV卷组。VG那一栏是所属的VG组,因为我们还没有划分VG组,所以这一栏也是空。
接下来就是将新创建的PV加入到已存在的VG中
[root@hdp2 ~]# vgextend centos /dev/sdb1
其中centos是当前需要扩充的lvm组名,可以通过df -h查看,例如我的是: /dev/mapper/centos/root
查看VG信息
[root@hdp2 ~]# vgdisplay
主要查看Free PE / Size 51200 / 200 GB,说明我们最多可以有200G的扩充空间
最后给根分区增加空间,将卷组的剩余空间(200G)添加到逻辑卷 /dev/centos/root
[root@hdp2 ~]# lvextend -l +100%FREE /dev/centos/root
上面这些只是对逻辑卷扩容,还需要同步到文件系统,实现对根目录的扩容
[root@hdp2 ~]# xfs_growfs /dev/centos/root
然后查看挂载情况
[root@hdp2 ~]# df -h
发现根目录的空间已经扩展到了 209G,大功告成~
参考链接:
逻辑卷管理器(LVM)