Cloud-initは、openstack仮想マシンイメージを作成し、ディスクを自動的に拡張します

Cloud-initは、openstack仮想マシンイメージを作成し、ディスクを自動的に拡張します

記事のディレクトリ

 

背景メモ

cloud-init 的一项功能是自动扩展linux的指定分区。比如linux镜像是20G,在部署instance时选择的flavor磁盘定义是40G,那么instance部署时cloud-init会自动将制定分区扩到 40G。
  •  

環境への備え

1)この関数はgrowpartに依存しているため、開始する前にミラーにパッケージをインストールする必要があります。

yum install –y cloud-utils-growpart

2)拡張する必要のあるディスクパーティションを表示します

# mount  |grep /dev/vd
/dev/vda1 on / type ext4 (rw,relatime,seclabel,data=ordered)
如上所示:/dev/vda1为我们需要进行扩容的磁盘分区。
cloud-init配置
cloud-init配置开机启动命令:
# cat /etc/cloud/cloud.cfg
….
bootcmd:
  - [ cloud-init-per, once, grow-partition, growpart, /dev/vda, 1]
  - [ cloud-init-per, once, resize-filesystem, xfs_growfs, /dev/vda1 ]
简单来说就是,在系统第一次启动的时候,执行命令:
growpart /dev/vda 1
xfs_growfs /dev/vda1
即可。

Lvmタイプのシステムディスク拡張スクリプト

lvmタイプのシステムディスクの場合は、次のスクリプトを使用して容量を拡張できます。

# cat extend_root_fs
echo "[] linux-rootfs-resize ..."
lvm vgchange --sysinit -an
#lvm_lv_root=$( echo $(df -h | grep '/$') | sed " ")
lvm_lv_root=$(echo $(df -h | grep '/$') | awk -F ' ' '{print $1}')
lvm_pv_path=$(lvm pvs --noheadings |awk '{print $1}')
lvm_pv_temp=$(echo ${lvm_pv_path}|sed "s/dev//g")
lvm_pv_dev=$(echo ${lvm_pv_temp}| sed "s/[^a-z]//g")
lvm_pv_part=$(echo ${lvm_pv_temp}| sed "s/[^0-9]//g")
growpart -v /dev/${lvm_pv_dev} ${lvm_pv_part}
partprobe -s /dev/${lvm_pv_dev}
lvm pvresize -v ${lvm_pv_path}
lvm vgchange --sysinit -ay
lvm lvextend -v -l +100%FREE ${lvm_lv_root}

次に、以下を実行します。

./ extend_root_fs
  • 1

次に、システムを再起動します。

おすすめ

転載: blog.csdn.net/qq_42533216/article/details/113701617