系统盘脚本扩容

系统盘脚本扩容方案: linux

脚本:lvm_extend.sh centos

需求背景: bash

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

扩容方式:LVM扩容。 ide

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

执行脚本:lvm_extend.sh code

 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 blog

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

预期结果: it

  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个,每扩容一次会增长一个主分区,因此正常状况下系统盘支持扩容两次)。
相关文章
相关标签/搜索