| 1 | #!/bin/sh
|
|---|
| 2 | # usage:
|
|---|
| 3 | # 作成
|
|---|
| 4 | # # mngstorage create disk1 100M
|
|---|
| 5 | # # mngstorage delete disk1
|
|---|
| 6 | # # mngstorage snap disk1 disk2
|
|---|
| 7 | #
|
|---|
| 8 | #
|
|---|
| 9 | STORAGE_PATH=/storage/lv
|
|---|
| 10 | iqn=iqn.2008-09.com.example
|
|---|
| 11 | vgname=vg
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 | case $1 in
|
|---|
| 15 | create)
|
|---|
| 16 | MESURE=`echo $3|sed -e 's/\([0-9]\+\)\(.\)$/\2/'`
|
|---|
| 17 | SIZE=`echo $3|sed -e 's/\([0-9]\+\)\(.\)$/\1/'`
|
|---|
| 18 |
|
|---|
| 19 | dd of=$STORAGE_PATH/$2.img bs=1$MESURE seek=$SIZE count=0
|
|---|
| 20 | echo "<target ${iqn}:${vgname}.$2>
|
|---|
| 21 | backing-store ${STORAGE_PATH}/$2.raw
|
|---|
| 22 | </target>
|
|---|
| 23 | " >> /etc/tgt/conf.d/${vgname}_$2.conf
|
|---|
| 24 | service tgt reload
|
|---|
| 25 | ;;
|
|---|
| 26 |
|
|---|
| 27 | snap)
|
|---|
| 28 | cp --reflink $STORAGE_PATH/$2.raw $STORAGE_PATH/$3.raw
|
|---|
| 29 | echo "<target ${iqn}:${vgname}.$3>
|
|---|
| 30 | backing-store ${STORAGE_PATH}/$3.raw
|
|---|
| 31 | </target>
|
|---|
| 32 | " >> /etc/tgt/conf.d/${vgname}_$3.conf
|
|---|
| 33 | service tgt reload
|
|---|
| 34 | ;;
|
|---|
| 35 |
|
|---|
| 36 | delete)
|
|---|
| 37 | rm /etc/tgt/conf.d/${vgname}_${2}.conf
|
|---|
| 38 | rm $STORAGE_PATH/$2.raw
|
|---|
| 39 | service tgt reload
|
|---|
| 40 | ;;
|
|---|
| 41 |
|
|---|
| 42 | *)
|
|---|
| 43 | echo "error"
|
|---|
| 44 | ;;
|
|---|
| 45 |
|
|---|
| 46 | esac
|
|---|