1.背景
2.确定扩容云盘类型与控制台操作
3.ECS实例内部扩容操作说明
3.1 ECS实例内部执行扩容分区
3.2 ECS实例内部执行扩容文件系统
1.背景
软件应用的数据库所在服务器磁盘使用率已经达到97%,服务器操作实例如下:
一旦使用达到上限,所有的数据库写入操作就会执行异常,一般会出现类似于以下无可用磁盘空间的提醒:
No space left on device
对于用户使用层面就是发布动态的新增操作或是编辑个人信息的更新操作都会执行失败.会极大降低用户的体验.解决问题的最简单最经济的办法就是磁盘扩容,数据库所在服务器使用的是阿里云,本文就以阿里云服务器为例详细介绍一下如何进行磁盘扩容.
2.确定扩容云盘类型与控制台操作
阿里云服务器的云盘类型分为系统盘和数据盘(可以理解为相当于window中的C盘和C盘以外的盘),首先要确定要扩容的是哪种类型的磁盘(当然只有一个系统盘就直接点击进行扩容操作即可),云盘展示路径如下:
我这控制台有一个数据库盘,一个系统盘,可以按照如下操作确定使用率快到上限的是哪个盘,实例内部执行:
df -lh
简单解释一下从做到右显示的内容信息:
文件系统
容量
已用
可用
可用百分比
对应挂载目录
使用率为97%对应的磁盘空间打下为40G,与控制台的系统盘显示的40G大小一致,所以确定需要扩容的是系统盘(熟悉阿里云运维的小伙伴会清楚vda表示的系统盘,vdb表示的是数据盘,后面的数字表示的是对应的分区.关于分区的概念下面会介绍.).
从系统盘右侧按照如图点击扩容按钮即可.系统盘支持的扩容后的大小是40G-500G,数据盘支持的扩容后大小20G-32768G.点击扩容可以进入到如下页面(该图是由40GG扩容到60G成功之后的截图,扩容前的当前容量为40G):
当时40G扩容到60G费用43.94.扩容成功之后每年服务器的续费会在原来的基础上增加扩容的费用.订单支付成功之后执行会发现控制台的磁盘空间大小已经变成60G,但是执行df -lh没有变为60G,因为还需要单独操作,继续往下看.
3.ECS实例内部扩容操作说明
在ECS控制台上扩容云盘容量后,对应分区和文件系统并未扩容,您还需要进入ECS实例内部继续扩容云盘的分区和文件系统,将扩容部分的容量划分至已有分区及文件系统内,使云盘扩容生效。本文为您介绍如何通过两个步骤完成Linux实例云盘的分区和文件系统扩容。
下面会涉及到分区的操作,作为非运维出身的同学可能对分区概念不是很清楚,有篇博主的感觉介绍的还明白,这里引用一下方便同学理解(如有侵权请联系删除):
系统分区也叫做磁盘分区,把大的硬盘,按照需求分成几个小的硬盘
开始举栗子: 小明家里有一面空墙,做个跟墙一样大的柜子,但是里面没有分成小柜子,里面也没有隔板,这时候把家里所有的衣服,比如帽子上衣裤子等等,都扔进去。突然有一天要找一双袜子,本来很简单,柜子打开,拿出即可,但是柜子里所有的衣服都在一块,变麻烦了。相当于从硬盘中取用数据和放入数据的效果会大大降低。 这里的柜子就是我们的硬盘,如果没有合理的规划,我们的硬盘写入和读取都会变得极其低下。所以正确得做法是把大柜子变成合理得小柜子,比如小明家里面有三口人,这是把一个大柜子分成三个小柜子,规定好,第一个放爸爸得,第二个放妈妈的,第三个放小明的。硬盘也是这样,把大硬盘按照我们的需求分成几个分区,比如说c盘放操作系统,d盘放应用软件,e盘放娱乐资料等等,这就是分区的作用。 这样的话,一旦进行合理的分区,我们数据的读取,包括用户进行数据读取的时候,读取的效果会大大增加。
当硬盘越来越大,四个主分区就不够使用了,这个时候必须把主分区当中,拿出来一个分区划为扩展分区。逻辑分区可以正确的写入数据和格式化。
小明的爷爷奶奶来看小明,并打算住一段时间,这个时候三个柜子不够,需要五个柜子,可是按照硬盘的限制只能分四个分区,为了解决这个矛盾只能这样做。分区四不能放入数据也不能格式化,唯一的作用是里面包含其他的小柜子,1、2、3是主分区,4是扩展分区,5、6是扩展分区中的逻辑分区,逻辑分区可以正常的格式化并且写入数据。这个限制不是Linux限制的,而是我们的硬盘限制的,只要硬盘的结构不发生变化,这种限制依然都会限制。
看完继续介绍云盘扩容实操,分为以下两个步骤.
3.1 ECS实例内部执行扩容分区
确认待扩容云盘及其分区信息,执行如下命令:
fdisk -lu
如果不存在系统盘分区或是数据盘分区,可以跳过扩容分区操作直接进行下一步的文件系统扩容.
扩容分区需要安装对应的工具,具体操作需要根据ECS的Linux版本而定,我这里是ubantu版本,执行如下命令:
更新软件源,执行如下命令:
apt-get update
执行成功后截图如下:
安装cloud-guest-utils:
type growpart || apt-get install -y cloud-guest-utils
执行成功后截图如下:
如果云盘分区类型为GPT,还需运行以下命令安装gdisk工具,执行如下命令:
type sgdisk || apt-get install -y gdisk
我这里ECS中的分区类型为MBR分区,所以这一步可以省略.查看分区类型操作如下:
Disk label type值为dos表示MBR分区,值为gpt表示GPT分区。
3.2 ECS实例内部执行扩容文件系统
运行以下命令,查看文件系统类型:
df -Th
Type值为文件系统类型,Mounted on值为分区的挂载目录。如上图,表示/dev/vda1分区的文件系统类型为ext4,挂载目录为/。
扩容文件系统,执行如下命令:
LC_ALL=en_US.UTF-8 growpart /dev/vda 1
执行完成后截图如下:
运行以下命令,确认是否扩容成功
df -Th
可以看出容量大小已经变更,到此操作成功.
以上是阿里云服务器云盘扩容的详细操作步骤,如果有相同需求的同学可以参考,感觉有所帮助欢迎评论区点赞或收藏!
参考链接:
阿里云扩容分区和文件系统
学Linux必须了解的系统分区!!!(通俗易懂)