滔哥的主页

帮趣游戏     进入个人中心
新浪微博

滔哥

memory

滔哥博客 http://www.lvtao.net

http://bangqu.com/memory

职业: CTO

现居: 湖北省武汉市

  • 浏览 717次
  • 感谢 0人
  • 收益 ¥0.0元
Tags:

Centos6.2安装和配置ISCSI服务和客户端

快速增长的存储容量使得企业需要采用网络存储解决方案。目前网络存储技术采用的连接技术主要有光纤通道和TCP/IP。基于IP的网络存储能解决基于光纤 通道的网络存储中存在的兼容性和传输距离问题,而且能提供相对廉价的解决方案。iSCSI协议是IP存储网络协议之一,它将广泛应用的两种工业标准 SCSI和TCP/IP结合起来,为存储设备提供面向数据块级的连接服务。

iSCSI(互联网小型计算机系统接口)是一种在TCP/IP上进行数据块传输的标准。它是由Cisco和IBM两家发起的,并且得到了各大存储厂商的大力支持。iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行快速的数据存取备份操作。

iSCSI存储分为服务器端(targets)和客户端(initiators),客户端发送SCSI命令到远程的存储设备端(服务器端),iSCSI使用的是TCP/IP协议,默认使用TCP的3260端口。

客户端:
-通过discovery程序来请求远程的块设备;
-客户端必须安装了iscsi设备驱动器;
-要安装iscsi-initiator-utils-*.rpm软件包;

服务器端:
-发布一个或多个块设备给initiator访问;
-从RHEL5.3以后开始支持iSCSI;
-需要安装scsi-target-utils-*.rpm软件包;

对于每个target来说,主机ID是唯一的,存储块设备的LUN ID是由iSCSI target来分配的。iSCSI驱动器为SCSI请求和回应提供了一个通过IP网络传输的渠道。

本文 介绍如何在CentOS6.2上安装iSCSI 服务,以实现iSCSI的功能,在网络中提供存储服务。
1、安装 iSCSI server 软件

[root@Vtest ~]# yum install scsi-target-utils

2、启动 iscsi 服务

[root@Vtest ~]# service tgtd  start
[root@Vtest ~]# service tgtd  status
tgtd (pid 2180 2179) 正在运行...

设置自动启动

[root@Vtest ~]# chkconfig tgtd on
[root@Vtest ~]# chkconfig --list tgtd
tgtd            0:关闭  1: 关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

3、服务端设置

ISCSI的共享磁盘可以是镜像文件(.img)、LVM分区、物理磁盘、或其它分区。

首先演示如何使用镜像文件作为共享磁盘的方法

(1)、创建镜像

[root@CentOS6 ~]# mkdir /home/lampbo/tgtd/virtualization -p

##创建一个50M的img镜像文件

[root@CentOS6 ~]# dd if=/dev/zero of=/home/lampbo/tgtd/virtualization/virtimage1.img bs=1M count=50

(2)、编辑配置文件/etc/tgt/targets.conf,并设置下iSCSI Qualified Name (IQN)

<target iqn.2008-09.com.example:server.target1>
backing-store /home/mandg/tgtd/virtualization/virtimage2     ##share point 1 发布的共享设备 这里为镜像文件
write-cache off
</target>

(3)、重启服务

[root@CentOS6 ~]# service tgtd restart

(4)、验证

如果显示类似下面的内容,说明创建成功

[root@Vtest ~]# tgt-admin --show
Target 1: iqn.2008-09.com.example:server.target1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET     00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
ACL information:
ALL

再看一个使用LVM分区的配置文件的例子

(1)、显示可用的LV(逻辑卷)

[root@CentOS6 ~]# lvdisplay
--- Logical volume ---
LV Name                /dev/vg_CentOS6/lv_iscsi
VG Name                vg_CentOS6
LV UUID                DA02b9-Psq4-gncP-v3Wm-1UiD-1Wme-j3T9C2
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                37.54 GiB
Current LE             9610
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:0

(2)、编辑配置文件

[root@CentOS6 ~]# vim /etc/tgt/targets.conf
<target iqn.2008-09.com.example:server.target2>
backing-store /dev/vg_CentOS6/lv_root
</target>

其他步骤就不多说了,就剩下重启和验证。

下面看下tgtd服务配置文件的格式

<target iqn.相关装置的target名称>
backing-store /你的/虚拟装置/完整名称-1  <==LUN 1
backing-store /你的/虚拟装置/完整名称-2  <==LUN 2
lun N <==LUN 10 自定义lun
</target>

其中iqn 名称规范:

iqn.yyyy-mm.<reversed domain name>:identifier
iqn.年年-月.单位网域名的反转写法:这个分享的target名称

对于/etc/tgt/targets.conf 配置文件

除了backing-store 之外,在这个配置文档当中还有一些比较特别的参数(man tgt-admin):

    backing-store (虚拟的装置), direct-store (实际的装置): 设定装置时,如果你的整颗磁盘是全部被拿来当iSCSI 分享之用,那么才能够使用direct-store 。不过,根据网路上的其他文件, 似乎说明这个设定值有点危险的样子。所以,基本上还是建议单纯使用模拟的backing-store 较佳。
    initiator-address (使用者端位址): 如果你想要限制能够使用这个target 的用户端来源,才需要填写这个设定值。基本上,不用设定它(代表所有人都能使用的意思), 因为我们后来会使用iptables 来规范可以连接的客户端
    incominguser (使用者帐号密码设定): 如果除了来源IP 的限制之外,你还想要让使用者输入帐密才能使用你的iSCSI target 的话,那么就加用这个设定项目。此设定后面接两个参数,分别是帐号与密码啰。
    write-cache [off|on] (是否使用快取): 在预设的情况下,tgtd 会使用快取来增快速度。不过,这样可能会有遗失资料的风险。所以,如果你的资料??比较重要的话, 或许不要使用快取,直接存取装置会比较妥当一些。

例如:

<target iqn.2008-09.com.example:server.target2>
backing-store /dev/vg_CentOS6/lv_root
Initiator-address  192.168.1.0/24    ##仅允许192.168.1.0网段的用户访问
</target>

4、手动配置服务器端

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

(1)、创建一个新的target条目:

# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2008-09.com.example:server.target2:iscsi

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

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

(3)、设置访问权限:

# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.1.0/24

(4)、 删除target条目:

# tgtadm --lld iscsi --op delete --mode target --tid 1 -T iqn.2008-09.com.example:server.target2:iscsi

5、配置ISCSI客户端

(1)ISCSId配置文件

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用户名;

可以使用CHAP配置双向授权验证。在不加密的通信中,基于CHAP的授权由以下特点:用户名和密码都是明文传输的;如果用户名和密码被嗅探,遭受攻击将是很大可能的;鉴于此,可以考虑将iSCSI置于一个独立的存储网络中。

Iscsiadm是iSCSI的客户端管理工具,可以用于管理discovery和登入iSCSI服务器端,可以管理访问控制和open-iscsi数据库的配置,本工具的很多操作都需要iscsid进程出于运行状态。

客户端有几个重要文件:

    /etc/iscsi/iscsid.conf - #客户端主配置文件;
    /etc/iscsi/initiatorname.iscsi - #设置initiator名和别名;
    /var/lib/iscsi/nodes/ - #节点和target信息;
    /var/lib/iscsi/send_targets - #target的入口信息;

(2)、启动iscsid服务

[root@CentOS6 ~]# service iscsid start

(3)、发现网络中可用的target:

[root@CentOS6 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.120:3260

(4)、登入可用的target会话:

[root@CentOS6 ~]# iscsiadm -m node -T iqn.2008-09.com.example:server.target2:iscsi -p 192.168.0.120:3260 -l

(5)、查看target信息:

[root@CentOS6 ~]# iscsiadm -m node -P N  查看节点信息(N=0,1)
[root@CentOS6 ~]# iscsiadm -m session -P N  查看iscsi的会话信息(N=1-3)
[root@CentOS6 ~]# iscsiadm -m discovery -P N  查看discovery信息(N=0,1)

(6)、登出一个target会话:

[root@CentOS6 ~]# iscsiadm -m node -T  iqn.2008-09.com.example:server.target2:iscsi -p 192.168.0.120:3260 -u

(7)、当需要重新进行连接时,可以重启iscsi服务,系统将自动进行连接,也可以通过以下的命令实现重新连接:

[root@CentOS6 ~]# iscsiadm -m node -T  iqn.2008-09.com.example:server.target2:iscsi -p 192.168.0.120:3260 -l

(8)、关闭iSCSI在开机重启或重启iscsi服务时自动对target进行重新连接,就需要在该客户机彻底将该target条目信息删除:

1)登出target会话:

[root@CentOS6 ~]# iscsiadm -m node -T  iqn.2008-09.com.example:server.target2:iscsi -p 192.168.0.120:3260 -u

2)删除target条目的记录:

[root@CentOS6 ~]# iscsiadm -m node -o delete -T iqn.2008-09.com.example:server.target2:iscsi -p 192.168.0.120:3260

在客户端删除了之前discovery发现的可用的target条目,则重启或重启服务后将不会自动进行重连接。
6、重启后自动挂载

如果从 iscsi 服务器端连接的分区格式化为:/dev/sdc

那么挂载是需要加_netdev参数,否则启动时候报错。

例如:

/dev/sdc    /mnt   ext4    default,_netdev  0 0

Pages:12
分享时间: