Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10202687
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类:

2012-09-24 12:27:46

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

2012-09-23 21:29:45|  分类: openfiler系统+fr |  标签: |字号 

快速增长的存储容量使得企业需要采用网络存储解决方案。目前网络存储技术采用的连接技术主要有光纤通道和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)

backing-store /home/mandg/tgtd/virtualization/virtimage2 ##share point 1 发布的共享设备 这里为镜像文件 write-cache off

(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 backing-store /dev/vg_CentOS6/lv_root

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

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

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

其中iqn 名称规范:

iqn.yyyy-mm.: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 会使用快取来增快速度。不过,这样可能会有遗失资料的风险。所以,如果你的资料??比较重要的话, 或许不要使用快取,直接存取装置会比较妥当一些。

例如:

backing-store /dev/vg_CentOS6/lv_root Initiator-address 192.168.1.0/24 ##仅允许192.168.1.0网段的用户访问 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,其中有以下四大项可设置项:

  1. Startup:#设置自动还是手动;
  2. CHAP:#用户名和密码;
  3. Timeout:#连接,登入/登出;
  4. iSCSI:#流控制,负载大小,数据摘要检查;
  5. 以下是CHAP项中的部分设置项:
  6. node.session.auth.authmethod #开启CHAP验证,默认是NONE;
  7. node.session.auth.username #用于CHAP验证的用户名;
  8. discovery.sendtargets.auth.authmethod #为discovery会话开启CHAP验证;
  9. discovery.sendtargets.auth.username #为initiator端设置discovery会话的CHAP用户名;

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

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

客户端有几个重要文件:

  1. /etc/iscsi/iscsid.conf - #客户端主配置文件;
  2. /etc/iscsi/initiatorname.iscsi - #设置initiator名和别名;
  3. /var/lib/iscsi/nodes/ - #节点和target信息;
  4. /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
阅读(1283) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~