为了对我们 AWS 的数据库实例的 EBS 卷进行不停机的动态扩容,由于之前对磁盘做了 LVM 所以我们只需要把新的 pv 往之前的 vg 添加即可。下面先介绍下基本基本概念。
概念
LVM(逻辑卷管理)是一个非常好用的硬盘系统工具。传统分区使用固定大小的分区,重新调整大小十分麻烦。但是,LVM 可以创建和管理“逻辑”卷,而不是直接使用物理硬盘。可以让管理员弹性的管理逻辑卷的扩大缩小,操作简单,而不损坏已存储的数据。可以随意将新的硬盘添加到 LVM,以直接扩展已经存在的逻辑卷。重要的是,LVM 并不需要重启就可以让内核知道分区的存在。
LVM的分层结构,如下图所示:
图中顶部,首先是实际的物理磁盘及其划分的分区和其上的物理卷(PV)。一个或多个物理卷可以用来创建卷组(VG)。然后基于卷组可以创建逻辑卷(LV)。只要在卷组中有可用空间,就可以随心所欲的创建逻辑卷。文件系统就是在逻辑卷上创建的,然后可以在操作系统挂载和访问。
步骤
-
首先准备好新的 EBS 卷,并分区(这里没有进行分区)
-
pvscan -n 查看是否有可用的物理卷,发现没有
pvscan命令会扫描系统中连接的所有硬盘,列出找到的物理卷列表。使用pvscan命令的-n选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的。
pvdisplay 命令用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
-
pvcreate /dev/xvdi
pvcreate 用于将物理硬盘分区初始化为物理卷,以便LVM使用。
此时 pvscan -n 可以看到有可用的物理卷
再次 pvdisplay 可以看到 /dev/xvdi 物理卷,但是还不属于任何卷组
-
vgdisplay命令用于显示LVM卷组的信息。如果不指定"卷组"参数,则分别显示所有卷组的属性。可以看到当前的卷组信息:
将 /dev/xvdi 物理卷加入到 datavg 卷组
vgextend命令 用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。
-
可以看到 /dev/xvdi 物理卷的空间已经加入到 datavg 卷组
- 扩展逻辑卷的大小
lvextend命令用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
8.但是看分区大小依然没有变
需要激活一下
resize2fs命令被用来增大或者收缩未加载的 “ext2/ext3” 文件系统的大小。如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线 resize,linux kernel 2.6 支持在mount 状态下扩容但仅限于ext3文件系统。