标签:iscsi
iscsi
iSCSI的协议自顶向下分为三层
SCSI层:根据客户端发出的请求建立SCSI CDB--命令描述,并传给iSCSI层。同时接收来自iscsi层的CDB,并向应用返回数据
iSCSI层:对SCSI CDB进行封装,便于能够在基于TCP/IP协议的网络上进行传输,完成SCSI到tcp/ip的协议映射。这一层是iscsi协议的核心层。
TCP/IP层:对ip报文进行路由和转发,并且提供端到端的透明可靠的传输。
iscsi协议定义了在tcp/ip网络发送,接收数据块存储数据的规则和方式。发送端封装scsi命令和数据到TCP/IP包,然后通过ip网络转发,接收到tcp/ip包后将其还原为scsi命令和数据并执行,执行完成后将返回的scsi命令和数据在封装到tcp/ip包中,返回给发送端。
iSCSI Initiator是一个安装在计算机上的软件或硬件设备,其负责与iSCSI存储设备进行通信。
iSCSI服务器与iSCSI存储设备之间的连接方式有两种:软件方式iSCSI Initiator软件,在iSCSI服务器上安装Initiator后,其可以将以太网卡虚拟为iSCSI卡,可以接收和发送iSCSI数据报文,从而实现主机和iSCSI存储设备之间的iSCSI协议和TCP/IP协议传输功能。但是iSCSI报文和TCP/IP报文转换需要消耗iSCSI服务器的一部分CPU资源。第二种就是硬件iSCSI HBA卡
Linux上配置iSCSI Initiator
启动iscsi
iscsi initiator的目录及其部分说明
/sbin/iscsiadm;用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,能够对iSCSI nodes、sessions、connections、discovery records进行操作
/var/lib/iscsi/send_targets;此目录下回生成iSCSI存储服务器的ip地址和端口号命名的文件夹
/var/lib/iscsi/nodes;此目录下生成iSCSI存储服务器上的target命名的文件夹,还有一个文件名iSCSI port ip,端口号的配置文件,此文件是iSCSI Initiator登录iSCSI Target时需要的参数,此参数从/etc/iscsi/iscsi.conf文件中继承过来
执行iSCSI Target发现
iscsiadm -m dicovery --type sendtargets --portal ip或
iscsiadm -m discovey -t sendtargets -p ip
成功执行一次Targets发现后,iSCSI Initiator就会将查询记录到/var/lib/iscsi/send_targets对应的目录下面。
iscsiadm指令与iSCSI Target主机建立连接,登录到iSCSI Target
iscsiadm -m node -T <target-name> -p ip --login
当Target主机多时,通过--login=all登录所有主机
说明:执行Target发现操作时,已经与iSCSI Target主机建立了连接。断开iSCSI Target与Initiator的连接命令如下
iscsiadm -m node -T <target-name> -p ip -u
查看iSCSI session信息
iscsiadmin -m session -i
iSCSI在安全方面的设定
iSCSI在授权访问和安全管理方面可以以主机为基础来设定允许和拒绝;也可以通过账号密码设定允许和拒绝。
Initiaror主机以ip认证方式获取iSCSI Target资源:
iSCSI Target是一个可以用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以成为Target,其主配置文件是/etc/iet/ietd.conf
在iSCSI Target服务器上修改/etc/iet/ietd.conf定义Target,并为Target添加对应的分区,然后修改/etc/iet/initiator.allow文件,此文件件定义Initiator主机对Target服务器的访问规则类似于/etc/hosts.allow
Initiaror主机以密码认证方式获取iSCSI Target资源:
iscsi Target以账号密码方式认证分两个阶段:
一是discovery查询认证所使用的账号密码
二是登录Target使用的账号密码
需要在Initiator主机和iscsi Target主机上进行配置
1、iscsi Target配置
vim /etc/iet/initiator.allow开启权限
vim /etc/iet/ietd.conf
2、Initiator主机配置
vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod=CHAP
node.session.auth.username=login_username
node.session.auth.password = secret
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = discovery.auth
discovery.sendtargets.auth.password = discoverysecret
iSCSI优化
由于iSCSI协议建立在TCP/IP协议上,进行数据传输时,其性能受限于TCP/IP协议栈负载和以太网最大带宽。在应用中iSCSI数据传输性能存在瓶颈。一次完整的数据发送过程;数据封装--->数据拷贝--->数据传输。
标签:iscsi
原文地址:http://51kxj.blog.51cto.com/3537967/1697140