1.重建DATABLOCK并挂载
在执行持久化DATABLOCK挂在之前执行原DATABLOCK的删除和重建工作。
…………………………………………………
SRC_PATH="${DST_DS_PATH}${SRC_ARG_PATH##$SRC_DS_PATH}"
#-------------------------------------------------------------------------------
# Make by chensh at 131129
#-------------------------------------------------------------------------------
USER=$(whoami)
GROUP=$(groups)
if [ -f "$SRC_PATH" ]; then
SIZE=$(ls -lh $SRC_PATH | cut -d " " -f5)
rm -rf $SRC_PATH
mkdir -p $SRC_PATH
CD_CMD="cd $SRC_PATH"
CREATE_IMAGE="/sbin/vmkfstools -c ${SIZE} -d thin -a lsilogic disk.vmdk"
CHOWN_CMD="sudo chown -R $USER:$GROUP $SRC_PATH"
MKSCRIPT=$(cat <<EOF
$CD_CMD
$CREATE_IMAGE
EOF
)
ssh $DST_HOST "$MKSCRIPT"
$CHOWN_CMD
fi
#-------------------------------------------------------------------------------
# Create DST path
#-------------------------------------------------------------------------------
………………………………
********************************************************************
2.文件夹类型的数据盘删除脚本
[oneadmin@nebula ~]$ pwd
/srv/cloud/one
[oneadmin@nebula ~]$ more bin/onedelete
#!/bin/bash
#-------------------------------------------------------------------------------
# Make by chensh at 131202
#-------------------------------------------------------------------------------
IMAGE_ID=$1
CODE0="0:OK,Image ID has been deleted."
CODE1="1:Error,Image ID not exist."
CODE2="2:Error,Error image ID type."
CODE3="3:Error,Not input image ID."
CODE4="4:Error,Image is used."
HELP=`cat << EOF
Help Information:
Please use "oneimage list" get image ID and Execute "onedelete ID" delete it;
For example ----> onedelete 123
----------------------------------
$CODE0
$CODE1
$CODE2
$CODE3
$CODE4
----------------------------------
EOF
`
if [ -n "$IMAGE_ID" ]; then
if [ $IMAGE_ID = "--help" ]; then
echo "$HELP"
exit 0
else
ID_TYPE=`echo $IMAGE_ID | awk '{print($0~/^([0-9])+$/)?"INT":"NON_INT"}'`
if [ $ID_TYPE = "INT" ]; then
IMAGE_SOURCE=$(oneimage show $IMAGE_ID | grep SOURCE | awk -F : '{print $2}')
if [ -n "$IMAGE_SOURCE" ]; then
IMAGE_STATE=$(oneimage show $IMAGE_ID | grep STATE | awk -F : '{print $2}')
if [ $IMAGE_STATE = "used" ]; then
echo $CODE4
exit 0
else
rm -rf $IMAGE_SOURCE && oneimage delete $IMAGE_ID && echo "$CODE0"
fi
else
echo "$CODE1"
fi
else
echo "$CODE2"
fi
fi
else
echo "$CODE3"
fi
********************************************************************
3.添加临时磁盘的脚本
[oneadmin@nebula shared]$ pwd
/srv/cloud/one/var/remotes/tm/shared
[oneadmin@nebula shared]$ vi mkimage
………………………………
#-------------------------------------------------------------------------------
# Make the new image (file-based)
#-------------------------------------------------------------------------------
MKDIR_CMD=`mkdir -p $DST_PATH`
CD_CMD="cd $DST_PATH"
CREATE_IMAGE="/sbin/vmkfstools -c ${SIZE}M -d thin -a lsilogic disk.vmdk"
MKSCRIPT=$(cat <<EOF
$CD_CMD
$CREATE_IMAGE
EOF
)
$MKDIR_CMD
ssh $DST_HOST "$MKSCRIPT"
exit 0
********************************************************************
4.创建qcow2格式的磁盘,大小以10G递增
[oneadmin@opennebula chensh]$ more disk_create131114.sh
#!/bin/bash
DIR="/srv/cloud/one/images"
for ((i=1;i<=100;i++));
do
qemu-img create -f qcow2 data_disk-${i}0G.qcow2 ${i}0G
oneimage create -d 1 --name data_disk-${i}0G --path $DIR/data_disk-${i}0G.qcow2 --prefix vd --type DATABLOCK --fstype ext4 --driver qcow2
echo "Create data_disk-${i}0G.qcow2 ------> Finish ${i}%"
done
[oneadmin@opennebula chensh]$
********************************************************************