系统盘脚本扩容

系统盘脚本扩容方案:

脚本: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个,每扩容一次会增加一个主分区,所以正常情况下系统盘支持扩容两次)。
posted @ 2019-03-20 15:51  流年的夏天  阅读(1032)  评论(0编辑  收藏  举报