zoukankan      html  css  js  c++  java
  • 系统盘脚本扩容

    系统盘脚本扩容方案:

    脚本: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个,每扩容一次会增加一个主分区,所以正常情况下系统盘支持扩容两次)。
  • 相关阅读:
    11.3 校内模拟赛
    11.2 模拟赛题解报告
    11.1 校内模拟赛题解报告
    CF710E Generate a String
    CF165E Compatible Numbers
    CF1092F Tree with Maximum Cost
    2021,10,29 模拟赛题解报告
    LCT学习笔记
    FFT 快速傅里叶变换学习笔记
    拉格朗日插值学习笔记
  • 原文地址:https://www.cnblogs.com/liuxia912/p/10565396.html
Copyright © 2011-2022 走看看