一、建立iscsi targets:
1、在新安装RHEL6系统的时候,将ISCSI对应的软件包选上,以免还要重新下载scsi-target-utils。
2、ISCSI TARGET对应的服务名称是TGTD,这个要注意。
3、进入后查询服务状态:service tgtd status。
4、启动和关闭服务:
关闭服务:service tgtd stop。可以正常关闭。
启动服务:service tgtd start。可以执行,提示启动失败,查询出来的服务状态是停止的。
换个启动方式:直接在命令提示符后执行 tgtd。
提示错误:
librdmacm: couldn't read ABI version.
librdmacm: assuming: 4
CMA: unable to get RDMA device list (null): iscsi_rdma_init(1217) cannot initialize RDMA; load kernel modules?
再执行一次时提示:
librdmacm: couldn't read ABI version.
librdmacm: assuming: 4
CMA: unable to get RDMA device list (null): iscsi_rdma_init(1217) cannot initialize RDMA; load kernel modules?
(null): iscsi_tcp_init(222) unable to bind server socket, Address already in use
(null): iscsi_tcp_init(222) unable to bind server socket, Address already in use
No available low level driver!
查询出来的状态却是运行的。原因一直查不出来,网上也没有相关的资料。
5、tgtd服务相应的配置文件是:/etc/tgt/targets.conf,但是这个文件中的配置不容易,系统好像对里面的内容很敏感,配置了几次都不成功,我还是记录下里面的内容格式吧,但是声明在先,这是配置失败了的:
backing-store /dev/mapper/VolGroup-lv_iscsi
这样的配置,是失败了的。我刚刚以为可能是默认驱动没有指定的原因,但还是不对,在targets.conf中添加了default-driver iscsi后,还是没有效果。
6、在targets.conf没有起效果的情况下,我只有使用手动添加的办法了,scsi-target-utils-1.0.4工具包提供几个办法,我知道的办法有两种:
办法1:tgtadm,这个办法比较复杂,有好几步,有如下步骤:
#tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2001-04.com.example:server.target #新增target device
#tgtadm --lld iscsi --op show --mode target #查看新增加的target device
#tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/mapper/VolGroup-lv_iscsi #把需要的分区加入到target device
#tgtadm --lld iscsi --op show --mode target #查看分区加入后的配置
#tgtadm --lld iscsi --op bind --mode target --tid -I ALL #允许任何客户端能连接进来
经过测试:创建成功,客户端可以登录。但是通过前几次失败的试验,可以得知这里是极度的case-sensitive大小写敏感。前一次试验,最后一步,我仅仅是最后一个ALL输入错了,输入成了all,结果失败。
办法2:tgt-seup-lun,这个办法相对简单,很是自动化,只有一步:
#tgt-setup-lun -n tgt-1 -d /dev/mapper/VolGroup-lv_iscsi
只要后面的分区名字打对了,基本没有问题,很简单。
NOTE:这两个办法都是临时性的, 重启服务或者重启计算机,都会导致上面的配置全部消失。在启动脚本加入配置语句,设置tgtd服务自动启动。
二、由于用redhat创建的iscsi系统,耗用资源的比较多,所以我还是考虑用openfiler创建iscsi系统。
目前已经创建成功。
1、按照RAC的网络配置要求,iscsi系统因为位于RAC系统的私有网络中,也就是一般说的10.0.0.XXX这个IP网段中。这个IP地址,可以在openfiler创建系统的时候,输入IP。同时要注意NETMASK,这个要求和RAC系统的私有IP地址相应的NETMASK一样即可。
2、openfiler系统,一定程度上被制作成了一个嵌入式系统。openfiler系统本身没有图形界面,可以按照启动完成后,进入系统登录时,看到的ip和端口的提供,用其他相连的机器用浏览器进入该系统图形界面。登录的用户和密码为openfiler和password。
3、下面我把别的教程截图下来,并做相应的说明:
第一步:
(上图注释:/dev/sda,就是linux识别到的物理磁盘或者底层RAID组。底层不一定做RAID,因为后面还有volume group,逻辑卷组提供了类似于条带化的功能。但是我估计没有镜像能力。)
(上图注释:这个是在指定的物理磁盘或者RAID上创建分区,从实际中发现,一个磁盘上无法创建两个分区,只能创建一个,所以建议一个磁盘的全部容量直接用于创建一个分区。)
(上图注释:创建分区后,建立逻辑卷组,同时添加物理卷到卷组,卷组名称需要自己输入。)
(上图注释:默认情况下,没有创建iscsi target,所以需要自己添加,这里注意一点,可能ADD按钮为灰色,不可点击,这是因为iscsi target服务还没有启动,先去启动iscsi target服务,然后再来新建iscsi target。)
(上图注射:这是建立映射关系,直接点击即可。)
(上图注释:这两个操作,实际中可能是多余的,iscsi target服务在上一步已经被启动。访问控制这个会很麻烦,尽量少涉及,如果是不外联的网络,不设置network ACL中的内容,即是连通的计算机均能进入。)
到此,openfiler上的iscsi target设置完成了,iscsi客户端只要IP地址正确就可以连接并登陆iscsi target了。