利用 UNIX 脚本来管理 DS4000 磁盘阵列系统( 二 )


这个脚本的输入是配置文件:config 。它保存这用户自定义的配置信息 。这个脚本的输出是一系列的脚本(这个功能在后面会加以介绍):crtlun.cmd, crthost.cmd, maplun.cmd, delmap.cmd, delhost.cmd, dellun.cmd, setup.cmd, destroy.cmd 支持的操作系统:AIX,Solaris 和 Linux
脚本使用说明
编辑 config 文件,设置参数为用户所需要的值 。下面是一个例子,显示了 config 文件需要包含那些项以及一些说明:LunNumber:30 #30 个 LUNs
ArrayNumber:1 # 这些 LUNs 创建在 array 1 上
LunName:sunx325b # 这些 LUNs 的名字将为 sunx325b_0, sunx325b_1 ...
Capacity:0.5GB # 每个 LUNs 的容量是 0.5GB
HostGroupName:sunx325b_group # 这个主机组的名字为 sunx325b_group
HostName:sunx325b # 这个主机名为 sunx325b
Port0:210000e08b0e934d # 第一个 HBA 卡的 wwpn 值
Port1:210000e08b0e6e50 # 第二个 HBA 卡的 wwpn 值
HostType:8 # 主机类型
复制 ds4kscript.sh 到和 config 相同的目录下,执行:chmodx ds4kscript.sh (使用户对 ds4kscript.sh 具有执行权限)
./ds4kscript.sh ( 执行 ds4kscript.sh)
在 ds4kscript.sh 运行的目录下,一系列文件将会被创建出来:crtlun.cmd, crthost.cmd, maplun.cmd, delmap.cmd, delhost.cmd, dellun.cmd, setup.cmd, destroy.cmd 。下面逐一对这些文件的功能进行描述:
创建 Lun、host group、host、host port,映射 Lun 。它包括了 crtlun.cmd, crthost.cmd, maplun.cmd 的所有功能,算是一个功能集合的脚本 。
创建 Luns;
创建 host group、host、host port;
映射端口到 host 上;
删除 Lun、host group、host、host port,映射 Lun 。它包括了 delmap.cmd, delhost.cmd, dellun.cmd 的所有功能,算是一个功能集合的脚本;
删除 Lun 映射
删除 host group、host、host port
删除 Lun
复制 setup.cmd 的内容到 IBM Storage Manager 脚本编辑器中,然后运行它 。或者用户也可以单独的复制 crtlun.cmd, crthost.cmd, maplun.cmd 中的内容,来实现单独的一些功能 。这时 Lun 已经在 DS4000 上建立好了,同时也映射到了主机上 。
当然,同时可以执行 destroy.cmd 内的内容来进行删除操作,或者单独地执行 delmap.cmd, delhost.cmd, dellun.cmd 内的内容来清除刚才执行的创建操作 。
下面是 ds4kscript.sh 的详细内容,请注意其中的注解内容,会帮助您的理解:下面是 ds4kscript.sh 的详细内容,请注意其中的注解内容,会帮助您的理解:
#
ConfigFile=./config
ProgramName=./ds4kscript.sh
if [ -f $ConfigFile ]
then
echo "OK" >> /dev/null
else
echo "$ConfigFile not exist!"
exit -1
fi
# 从配置文件中依次获取参数值
sed -n '/LunNumber:/'p $ConfigFile >tmp
lunNumber=`sed 's/LunNumber://' tmp`
echo lunNumber=$lunNumber
sed -n '/ArrayNumber:/'p $ConfigFile >tmp
arrayNumber=`sed 's/ArrayNumber://' tmp`
echo arrayNumber=$arrayNumber
sed -n '/LunName:/'p $ConfigFile >tmp
lunName=`sed 's/LunName://' tmp`
echo lunName=$lunName
sed -n '/Capacity:/'p $ConfigFile >tmp
capacity=`sed 's/Capacity://' tmp`
echo capacity=$capacity
sed -n '/HostGroupName:/'p $ConfigFile >tmp
hostGroupName=`sed 's/HostGroupName://' tmp`
echo hostGroupName=$hostGroupName
sed -n '/HostName:/'p $ConfigFile >tmp
hostName=`sed 's/HostName://' tmp`
echo hostName=$hostName
sed -n '/Port0:/'p $ConfigFile >tmp
port0=`sed 's/Port0://' tmp`
echo port0=$port0
sed -n '/Port1:/'p $ConfigFile >tmp
port1=`sed 's/Port1://' tmp`
echo port1=$port1
sed -n '/HostType:/'p $ConfigFile >tmp
hostType=`sed 's/HostType://' tmp`
echo hostType=$hostType
# 创建 IBM storage manager 使用的脚本中创建 Lun 的部分,并保存为 crtlun.cmd 。

推荐阅读