系統盤腳本擴容

系統盤腳本擴容方案: 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個,每擴容一次會增長一個主分區,因此正常狀況下系統盤支持擴容兩次)。
相關文章
相關標籤/搜索