实现ISCSI共享存储的所需的软件包:
ISCSI Target : scsi-target-utils //在此设置共享存储设备
ISCSI Initiator : iscsi-initiator-utils
客户端认证方式:
- 基于IP认证 //允许哪个网段访问,单个主机,所有主机
- 基于用户,CHAP(双向认证) //下面会演示单向认证
1 | Target默认工作在3260端口; |
target准备:
- 分区,不要格式化,partprobe
- yum install scsi-target-utils
- service tgtd start
- chkconfig tgtd on
- tgtadm –lld iscsi –mode target –op new –targetname iqn.2013-05.com:teststore.disk1 –tid 1
- tgtadm –lld iscsi –mode target –op show 可以进行查看
- tgtadm –lld iscsi –mode logicalunit –op new –tid 1 –lun 1 –backing-store /dev/sda5 把/dev/sda5做成ISCSI设备;
- tgtadm –lld iscsi –mode target –op bind –tid 1 –initiator-addess 172.16.0.0/16 把172那个网段做成共享;
在这一步建议用配置文件的方式进行定义,因为不会生成配置文件,所以更多可以参考41_02;
Initiator:
iscsiadm模式化的命令:
-m {discovery|node|session|iface}
discovery:发现某服务器是否有target输出,以及输出了哪些target;
node:管理跟某target的关联关系;
session:会话管理;
iface:接口管理iscsiadm -m discovery [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I iface -t type -p ip:port [ -l ] ] | [ [ -p ip:port ] [ -l | -D ] ]
-d: 0~8 级别的越高看到的信息就越多,可以自己尝试;;
-I:指定接口
-t type:
SendTargets(ST)
SLP
iSNS
-p:IP:portiscsiadm -m node [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -L all,manual,automatic ] [ -U all,manual,automatic ] [ -S ] [ [ -T targetname -p ip:port -I iface ] [ -l | -u | -R | -s] ] [ [ -o operation ] [ -n name ] [ -v value ] [ -p ip:port ] ]
-L:登陆
all:登陆所有
manual:手动指定
automatic:自动登陆
-U:登出
1 |
|
1 | # iscsiadm -m discovery -t sendtargets -p 172.16.100.100 |
再开一台主机,同样操作,当挂载了后,往里面写文件,会发现一个现象:
node1上的文件有可能会在node2上看不到
node2上的文件有可能会在node1上看不到
为什么?
此时的操作还在内存中完成,没有同步到硬盘中,以至于多台主机共享这个共享存储的时候会面临一个问题:
当多台主机对共享存储中的一个文件进行写操作的时候,肯定会发生数据紊乱,
所以就要结合集群文件系统。。
ISCSI基于CHAP认证:这个讲的很详细,建议参考着看。。
http://blog.csdn.net/sinchb/article/details/8433994