如何自动初始化弹性伸缩新增的云服务器数据盘?
操作场景
云服务器创建完成后,数据盘需要初始化后才能使用。当使用弹性伸缩为伸缩组增加数量较多的云服务器时,您就需要逐一手动初始化数据盘,将会占用较长时间。
本节为您介绍通过脚本自动化完成初始化磁盘的操作,包括磁盘分区和挂载指定目录。本节介绍的自动初始化脚本示例仅支持初始化一个数据盘。
本节操作以centos 6.5为例。其他操作系统配置方法略有区别,请参考对应操作系统的相关资料进行操作,文档中不对此进行详细说明。
操作步骤
- 以root用户登录已有云服务器。
- 执行以下命令,进入脚本存放目录。
例如:
cd /home
- 执行以下命令,创建脚本。
例如:
vi fdisk_mount.sh
- 按“i”,进入脚本编辑页面。
以下脚本为云服务器只有一个数据盘时的自动初始化,仅供参考,请用户根据实际情况修改。
#!/bin/bash bash_scripts_name=fdisk_mount.sh ini_path=/home/fdisk.ini disk= size= mount= partition= function get_disk_from_ini() { disk=`cat $ini_path|grep disk| awk -F '=' '{print $2}'` if [ $disk = "" ] then echo "disk is null in file,exit" exit fi result=`fdisk -l $disk | grep $disk` if [ $result = 1 ] then echo "disk path is not exist in linux,exit" exit fi } function get_size() { size=`cat $ini_path| grep size|awk -F '=' '{print $2}'` if [ $size = "" ] then echo "size is null,exit" exit fi } function make_fs_mount() { mkfs.ext4 -T largefile $partition if [ $? -ne 0 ] then echo "mkfs disk failed,exit" exit fi dir=`cat $ini_path|grep mount |awk -F '=' '{print $2}'` if [ $dir = "" ] then echo "mount dir is null in file,exit" exit fi if [ ! -d $dir ] then mkdir -p $dir fi mount $partition $dir if [ $? -ne 0 ] then echo "mount disk failed,exit" exit fi echo "$partition $dir ext3 defaults 0 0" >> /etc/fstab } function remove_rc() { cat /etc/rc.local | grep $bash_scripts_name if [ $? ne 0 ] then sed -i '/'$bash_scripts_name'/d' /etc/rc.local fi } ################## start ####################### ##1、判断配置文件是否存在 if [ ! -f $ini_path ] then echo "ini file not exist,exit" exit fi ##2、获取配置文件中disk指定的设备路径 get_disk_from_ini ##3、获取配置文件中size分区大小 get_size ##4、将磁盘分区 fdisk $disk <<EOF n p 1 1 $size w EOF partition=`fdisk -l $disk 2>/dev/null| grep "^/dev/[xsh].*d" | awk '{print $1}'` ##5、格式化分区,挂载分区到对应目录 make_fs_mount ##6、修改开机启动项,避免重试执行 remove_rc echo 'SUCESS'
- 按“Esc”键,输入:wq,按“Enter”保存并退出编辑。
- 执行以下命令,创建配置文件。
- 按“i”,进入配置文件编辑页面。
配置文件中设置了数据盘的盘符、大小和挂载目录信息,用户可参考如下所示信息,根据实际情况修改。
disk=/dev/xdev size=+100G mount=/opt/test
- 按“Esc”键,输入:wq,按“Enter”保存并退出编辑。
- 执行以下命令,打开配置文件“rc.local”。
- 按“i”,在“rc.local”文件中添加如下内容。
配置“rc.local”后,云服务器首次启动时会自动执行初始化数据盘脚本。
- 按“Esc”键,输入:wq,按“Enter”保存并退出编辑。
- 通过已有云服务器创建私有镜像。
- 创建伸缩配置。
- 创建伸缩组。
伸缩组创建成功后,通过该组的伸缩活动产生的云服务器,会按照私有镜像中的配置自动初始化数据盘。