首先部署sheepdog集群。然后选择两个不同的计算节点分别进行如下操作
1、tgt安装
获取源码包https://github.com/fujita/tgt (注意需要支持的vdi大小,控制大小的宏#define MAX_DATA_OBJS (UINT64_C(1) << 22))
make && make install
启动tgt:tgtd start,并添加该命令到/etc/rc.d/rc.local,设置开机启动;
2、keepalived配置(参考http://weizhifeng.net/using-keepalived.html)
1) 选择两个不同的计算节点作为master、backup
2) 在master、backup上分别安装:yum install keepalived
3) 修改配置文件/etc/keepalived/keepalived.conf
##master
vrrp_instance VI_1 {
state MASTER #表示该机器为master,该字段必须为master
interface bond0 #master网卡名称
virtual_router_id 51
priority 101 #权重值,master需要高于backup
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.4.1.100 #虚拟ip
}
}
##backup
vrrp_instance VI_1 {
state BACKUP #表示该机器为backup,该字段必须为backup
interface bond0 #backup网卡名称
virtual_router_id 51
priority 100 #权重值,backup需要低于master
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.4.1.100 #虚拟ip
}
}
4) 启动keepalived:
service keepalived start,并添加该命令到/etc/rc.d/rc.local,设置开机启动;
3、target创建:
1) 基本命令
## create target
tgtadm --op new --mode target --tid [target id] --lld iscsi --targetname [target name]
## create lun
tgtadm --op new --mode lu --tid [target id] --lun [lun id] --lld iscsi --bstype sheepdog --backing-store unix:[sock directory]:[vdi name]
## modify target info
tgtadm --op update --mode lu --tid [target id] --lun [lun id] --lld iscsi --params vendor_id=iscsi,product_id=sheep,product_rev=0010,scsi_sn=[vdi id],scsi_id=[vdi id],removable=0
## add ACL
tgtadm --op bind --mode target --tid [target id] --lld iscsi -I ALL
## show targets
tgtadm --op show --mode target --lld iscsi
## delete target
tgtadm --op delete --mode target --tid [target id]
字段解释:
[target id]:为创建的target id,其值为自然数
[lun id]:为在target上面划分的lun id,值为自然数,一般仅仅划分一个lun
[sock directory]:是sock文件路径,如/sheep/sock
[vdi name]:与target对应的vdi name
[vdi id]:与target对应vdi id
2) ACL的设置:
##无限制,所有initiator都可以访问该target
tgtadm --lld iscsi --mode target --op unbind --tid 1 -I ALL
## 仅仅指定的initiator可以访问该target
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 10.4.2.202( initiator ip )
##指定地址段的initiator可以访问该target
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 10.4.1.0/24 (ip地址段)
示例:
tgtadm --op new --mode target --tid 1 --lld iscsi --targetname iqn.1991-05.com.microsoft:hvcluster-2tb-target-0
tgtadm --op new --mode lu --tid 1 --lun 1 --lld iscsi --bstype sheepdog --backing-store unix:/sheep/gw0/sock:volume-vancl-0(vdi name为volume-vancl-0)
tgtadm --op update --mode lu --tid 1 --lun 1 --lld iscsi --params vendor_id=iscsi,product_id=sheep,product_rev=0010,scsi_sn=37a3b5,scsi_id=37a3b5,removable=0
tgtadm --op bind --mode target --tid 1 --lld iscsi -I ALL
注:target名字不可有大写字母,否则在windows端 iscsi initiator会出现“找不到目标名称或从登录处标记为隐藏”
4、验证
1、在windows端按如下方式验证target是否创建成功
参考:
2、linux下验证:
yum install iscsi-initiator-utils.x86_64
发现target
iscsiadm -m discovery -t st -p 127.0.0.1:3260
创建块设备,创建完成后lsblk可以发现新设备
iscsiadm -m node --targetname tgt1 --portal 127.0.0.1:3260 -l
删除设备
iscsiadm -m node --targetname tgt1 --portal 127.0.0.1:3260 -u
iscsiadm -m node -o delete -T tgt1 --portal 127.0.0.1:3260
1、tgt安装
获取源码包https://github.com/fujita/tgt (注意需要支持的vdi大小,控制大小的宏#define MAX_DATA_OBJS (UINT64_C(1) << 22))
make && make install
启动tgt:tgtd start,并添加该命令到/etc/rc.d/rc.local,设置开机启动;
2、keepalived配置(参考http://weizhifeng.net/using-keepalived.html)
1) 选择两个不同的计算节点作为master、backup
2) 在master、backup上分别安装:yum install keepalived
3) 修改配置文件/etc/keepalived/keepalived.conf
##master
vrrp_instance VI_1 {
state MASTER #表示该机器为master,该字段必须为master
interface bond0 #master网卡名称
virtual_router_id 51
priority 101 #权重值,master需要高于backup
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.4.1.100 #虚拟ip
}
}
##backup
vrrp_instance VI_1 {
state BACKUP #表示该机器为backup,该字段必须为backup
interface bond0 #backup网卡名称
virtual_router_id 51
priority 100 #权重值,backup需要低于master
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.4.1.100 #虚拟ip
}
}
4) 启动keepalived:
service keepalived start,并添加该命令到/etc/rc.d/rc.local,设置开机启动;
3、target创建:
1) 基本命令
## create target
tgtadm --op new --mode target --tid [target id] --lld iscsi --targetname [target name]
## create lun
tgtadm --op new --mode lu --tid [target id] --lun [lun id] --lld iscsi --bstype sheepdog --backing-store unix:[sock directory]:[vdi name]
## modify target info
tgtadm --op update --mode lu --tid [target id] --lun [lun id] --lld iscsi --params vendor_id=iscsi,product_id=sheep,product_rev=0010,scsi_sn=[vdi id],scsi_id=[vdi id],removable=0
## add ACL
tgtadm --op bind --mode target --tid [target id] --lld iscsi -I ALL
## show targets
tgtadm --op show --mode target --lld iscsi
## delete target
tgtadm --op delete --mode target --tid [target id]
字段解释:
[target id]:为创建的target id,其值为自然数
[lun id]:为在target上面划分的lun id,值为自然数,一般仅仅划分一个lun
[sock directory]:是sock文件路径,如/sheep/sock
[vdi name]:与target对应的vdi name
[vdi id]:与target对应vdi id
2) ACL的设置:
##无限制,所有initiator都可以访问该target
tgtadm --lld iscsi --mode target --op unbind --tid 1 -I ALL
## 仅仅指定的initiator可以访问该target
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 10.4.2.202( initiator ip )
##指定地址段的initiator可以访问该target
tgtadm --lld iscsi --mode target --op bind --tid 1 -I 10.4.1.0/24 (ip地址段)
示例:
tgtadm --op new --mode target --tid 1 --lld iscsi --targetname iqn.1991-05.com.microsoft:hvcluster-2tb-target-0
tgtadm --op new --mode lu --tid 1 --lun 1 --lld iscsi --bstype sheepdog --backing-store unix:/sheep/gw0/sock:volume-vancl-0(vdi name为volume-vancl-0)
tgtadm --op update --mode lu --tid 1 --lun 1 --lld iscsi --params vendor_id=iscsi,product_id=sheep,product_rev=0010,scsi_sn=37a3b5,scsi_id=37a3b5,removable=0
tgtadm --op bind --mode target --tid 1 --lld iscsi -I ALL
注:target名字不可有大写字母,否则在windows端 iscsi initiator会出现“找不到目标名称或从登录处标记为隐藏”
4、验证
1、在windows端按如下方式验证target是否创建成功
参考:
windows端通过iscsi方式使用EBS盘
2、linux下验证:
yum install iscsi-initiator-utils.x86_64
发现target
iscsiadm -m discovery -t st -p 127.0.0.1:3260
创建块设备,创建完成后lsblk可以发现新设备
iscsiadm -m node --targetname tgt1 --portal 127.0.0.1:3260 -l
删除设备
iscsiadm -m node --targetname tgt1 --portal 127.0.0.1:3260 -u
iscsiadm -m node -o delete -T tgt1 --portal 127.0.0.1:3260