【RHCA翻译计划】EX436第三章:iSCSI存储配置(2)

3.03 iSCSI驱动器的特点:

对包头和数据摘要支持加密:iSCSI协议在iSCSI数据包上定义了一个32位的CRC摘要来保护数据的传输,因为16位的校验值用于TCP数据传输显然太过弱了,所以需要更强壮的加密来保证远距离的数据传输安全。

双向的CHAP(握手认证协议)认证:用于对target端做访问控制,并且用以确定客户端的可靠连接。

支持R2T(ready-to-transfer)流控制:用于target端通信流控制的一种类型。

支持多路径:iSCSI的target端通过多路径的使用来实现自动的failover错误轮转的机制。

服务器端的discovery广播机制:一种驱动器可以给可用的target提交请求的机制。

动态的target discovery机制:可用的target信息可以动态的改变。

为入口和target改变的异步事件通知:在target可以和initiator以异步的信息通信时发生的变化。

快速数据支持:通过iSCSI命令PDU(Protocol Data Unit)发送一个未请求的数据的能力。

动态的驱动器重配置:在initiator端做任何修改都不需要重启任何iSCSI的会话。

重启后自动挂载iSCSI:要保证网络的畅通,不然开机自启动也挂载不起来。

3.0.4 iSCSI设备的命名和挂载:

iSCSI驱动器为每个iSCSI设备使用默认的内核名,Linux内核在发现了iSCSI设备后将动态地分配SCSI设备名,但是系统重启之后命名将可能发生变化,SCSI命令可能发送到错误的逻辑单元。

持久的设备命名可以使用UDEV,设备唯一的UUID以及设备卷标,通常为了开机后自动挂载iSCSI上的文件系统,都会将iSCSI设备挂载信息写入到/etc/fstab中,但必须加上_netdev参数,没有加入此参数的话,rc.sysinit会在系统的网络服务启动之前尝试去挂载iSCSI设备,此时挂载必然是失败的。

3.05 iSCSI服务器端的命名:

iSCSI在target端对要发布出去的设备有专门的命名IQN(iSCSI Qualified Name),而且IQN必须在全局是唯一的。

IQN命名的格式:

iqn...[:]

例如:iqn.2011-01.com.example.sales:Oracle.rac.disk2

3.06 配置iSCSI服务器端:

首先是安装scsi-target-utils软件包,在安装完成后,用户程序tgtd服务必须启动了并且设置了开机自启动,接下来就可以在配置文件/etc/tgt/targets.conf中定义新的target条目。

配置实例:

Backing-store  /dev/vol0/iscsi   指定要发布的设备;

Initiator-address  192.168.0.1   对于客户端的访问控制;

Initiator-address  192.168.0.2

3.07 手动的iSCSI配置:

对于iSCSI服务器端的配置,既可以像上一节利用配置文件配置,也可以手动地用命令进行配置。

创建一个新的target条目:

# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2011-10.com.example.cluster2:iscsi

发布本地的块设备以及配置target的访问控制:

# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/vol1/iscsi

设置访问权限:

# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.0.1

删除target条目:

# tgtadm --lld iscsi --op delete --mode target --tid 1 -T iqn.2011-10.com.example.cluster2:iscsi

3.08 配置iSCSI客户端驱动器:

iSCSI客户端的配置文件是/etc/iscsi/iscsid.conf,其中有以下四大项可设置项:

Startup:设置自动还是手动;

CHAP:用户名和密码;

Timeout:连接,登入/登出;

iSCSI:流控制,负载大小,数据摘要检查;

以下是CHAP项中的部分设置项:

node.session.auth.authmethod 开启CHAP验证,默认是NONE;

node.session.auth.username 用于CHAP验证的用户名;

discovery.sendtargets.auth.authmethod 为discovery会话开启CHAP验证;

discovery.sendtargets.auth.username 为initiator端设置discovery会话的CHAP用户名;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23223.html