文档章节

系统盘脚本扩容

o
 osc_y8yehimr
发布于 2019/03/20 15:51
字数 714
阅读 17
收藏 0

精选30+云产品,助力企业轻松上云!>>>

系统盘脚本扩容方案:

脚本:lvm_extend.sh

需求背景:

现在很多ECS环境上面所用的公共镜像全部默认系统盘大小为20G,如果用户创建系统盘的时候空间选定了20G以上,超出的部分不会被自动分区造成浪费,为避免这种情况造成用户困扰,特提供此方案可以让用户实现手动扩容。

扩容方式:LVM扩容。

LVM是逻辑盘卷管理(Logical VolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。

执行脚本:lvm_extend.sh

 1 #!/bin/bash
 2 
 3 extend_size(){
 4     vgextend centos $1
 5     
 6     
 7     #lvextend -L 30G /dev/centos/root
 8     lvextend -r -l +100%FREE /dev/centos/root
 9     
10     xfs_growfs /dev/mapper/centos-root
11     echo "Extend system_disk successfully!"
12 }
13 
14 extend_lvm(){
15     check_results=`ll /dev/ |grep da`
16 
17     last_disk="/dev/${check_results:0-4:4}"
18 
19     last_disk_num=${last_disk:0-1:1}
20 
21     disk_addr=${last_disk:0:8}
22 
23     new_last_disk_num=`expr $last_disk_num + 1`
24     
25     new_last_disk="$disk_addr$new_last_disk_num"
26     
27     if [ $last_disk_num -ne 4 ];
28     then
29         echo "Extend disk $new_last_disk"
30         
31         echo "n
32         p
33         
34         
35         
36         t
37         
38         8e
39         w
40         " | fdisk $disk_addr
41         
42         partprobe
43     
44         pvcreate $new_last_disk
45         
46         check_results=`ll /dev/ |grep da`
47     
48         last_disk_num=${check_results:0-1:1}
49     
50         if [ $last_disk_num -eq $new_last_disk_num ];
51         then
52             extend_size $new_last_disk 
53         else
54             echo "The disk size needn't extend!"
55         fi
56     else
57         echo "If you want to create more than four partitions, you must replace a primary partition with an extend!"
58     fi
59 }
60 
61 
62 check_results=`cat /etc/redhat-release`
63 
64 echo $check_results
65 
66 index_addr=`expr index "$check_results" "CentOS"`
67 
68 if [ $index_addr -ne 1 ];
69 then
70     echo 'System is not CentOS, skip!'
71 else
72     extend_lvm
73 fi
lvm_extend.sh

 

执行方式:. lvm_extend.sh

执行条件:系统盘镜像为CentOS,系统盘主分区个数为4以下(不包含4)。

预期结果:

  1. 脚本最后输出"Extend system_disk successfully!",扩展成功。
  2. 脚本最后输出"System is not CentOS, skip!",系统镜像非CentOS,无法扩容。
  3. 脚本最后输出"The disk size needn't extend!",系统盘不需要扩容。
  4. 脚本最后输出"If you want to create more than four partitions, you must replace a primary partition with an extend!",系统盘主分区为4,无法做扩容(一般来讲,linux虚机按照默认分区方式的话主分区有2个,每扩容一次会增加一个主分区,所以正常情况下系统盘支持扩容两次)。
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
超详尽!Linux云服务器存储扩容实操

环境说明:Linux操作系统:CentOS Linux release 7.6.1810 (Core) 平台环境:腾讯云CVM,CBS 1. 存储扩容概述 以下图为例,假如起初购买了100G磁盘空间,随着数据的不停增长,原有100G空间不...

osc_cx8uhydz
03/21
16
0
使用阿里云CSI插件实现云盘数据卷动态扩容

使用云盘存储卷,往往在服务初始化的时候申请了一个适当容量的云盘,但是随着数据的增长,数据盘的容量不能满足需求,需要扩容。 传统应用的扩容场景中,往往是先手动停掉应用,再对数据盘进...

阚俊宝
02/12
0
0
超详尽!Linux云服务器存储扩容实操

https://juejin.im/post/5e6f3264518825496e786a8c 环境说明:Linux操作系统:CentOS Linux release 7.6.1810 (Core) 平台环境:腾讯云CVM,CBS 1. 存储扩容概述 以下图为例,假如起初购买了...

osc_kedi1mvz
03/19
11
0
超详尽!Linux云服务器存储扩容实操

https://juejin.im/post/5e6f3264518825496e786a8c 环境说明:Linux操作系统:CentOS Linux release 7.6.1810 (Core) 平台环境:腾讯云CVM,CBS 1. 存储扩容概述 以下图为例,假如起初购买了...

osc_mpdswsal
03/19
2
0
超详尽!Linux云服务器存储扩容实操

环境说明:Linux操作系统:CentOS Linux release 7.6.1810 (Core) 平台环境:腾讯云CVM,CBS 1. 存储扩容概述 以下图为例,假如起初购买了100G磁盘空间,随着数据的不停增长,原有100G空间不...

腾讯云开发者社区
03/16
11
0

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-07-11

更新时间: 2020-07-11 00:00 Scientists make precise edits to mitochondrial DNA for first time - (nature.com) 科学家首次对线粒体DNA进行精确编辑 得分:66 | 评论:4 LibreOffice: The N......

FalconChen
40分钟前
95
0
是否有可能从另一个git存储库中挑选一个提交? - Is it possible to cherry-pick a commit from another git repository?

问题: I'm working with a git repository that needs a commit from another git repository that knows nothing of the first. 我正在使用一个git存储库,需要从另一个不知道第一个存储库......

技术盛宴
昨天
26
0
【LeetCode】53 盛最多水的容器

题目 解题思路 双指针法: https://leetcode-cn.com/problems/container-with-most-water/solution/sheng-zui-duo-shui-de-rong-qi-by-leetcode-solution/ 代码 public class Solution { ......

JaneRoad
昨天
20
0
阿里云OSS配置CDN加速

首先购买CDN流量包 然后添加域名 添加好后 然后将域名OSS.xxxx.com 解析到 生成的CDN域名上 这样就完成了

可达鸭眉头一皱
昨天
16
0
js 整数与小数正则替换片段

说明 /(\d+)/g 整数 /(\d+\.\d+)rem/g 小数 /(\d+\.\d+|\d+)rem/g 其中 | 或 条件 例子 全局查找带 rem 单位的,替换成 px 单位 let text = text.replace(/(\d+\.\d+|\d+)rem/g, function(s......

DrChenXX
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部