CentOS6.0 + Windows7 + RedHat5.5搭建iSCSI存储环境实验

本文转载于 http://www.linuxidc.com/Linux/2012-04/58574p2.htm



CentOS6.0 + Windows7 + RedHat5.5搭建iSCSI存储环境实验

[日期:2012-04-13]来源:Linux社区  作者:shanker

之前的那篇文章 http://www.linuxidc.com/Linux/2012-04/58572.htm 侧重在应用上,在target的搭建上用到了openfiler系统,这篇文件介绍如何在RedHat5.5系统上创建target,并用CentOS和win来连接,侧重点是在shell环境下搭建iSCSI。

存储世界里,常用的名词有SCSI(Small Computer System Interface), FC(FIbre Channel ), DAS(Direct -Attached  Storage), NAS(Network  Attached Storage ), SAN(Storage Area Network ),iSCSI(internet SCSI),在iSCSI出现之前,构建SAN架构的存储唯一技术就是利用光纤通道,需要花费很大建设成本,一般中小企业无法承担。iSCSI技术解决了传输效率,兼容性,开放性,安全性等方面的诸多问题.

FC SAN 与 IP SAN比较,在传输方式上,FC SAN AND IP SAN 都采用协议方式来完成,这是他们的共同点;在传输速度上,FC SAN 2Gbit/s, iSCSI 1Gbit/s;传输距离上,FC理论上可以达到100公里,而事实上,传输超过50公里后,就会出现瓶颈,而iSCSI在理论上没有距离的限制;管理及维护成本上,假设FC SAN需要投入很多硬件成本,并且需要特定的工具软件进行管理,而iSCSI构建成本低,只要有网络就可以.

iSCSI的组成: iSCSI initiator或者iSCSI HBA; iSCSI Target;至少两台服务器;以太网交换机.本次实验是在vmware的虚拟机环境下完成的,initiator为centos6.0(192.168.39.133),target为rhel5.5(192.168.39.134),软件有

iscsi-initiator-utils-6.2.0.871-0.16.el5

iscsitarget-1.4.20.2.tar.gz
 
iSCSI target:就是储存设备端,存放磁盘或RAID的设备,目前也能够将Linux主机模拟成iSCSI target了! 目的在提供其他主机使用的『磁盘』;
 
iSCSI initiator:就是能够使用target的用户端,通常是服务器。 也就是说,想要连接到iSCSI target的服务器,也必须要安装iSCSI initiator的相关功能后才能够使用iSCSI target提供的磁盘。
实验第一步:在target上安装软件
 解压软件包
# cd /usr/local/src/
# tar xzvf iscsitarget-1.4.20.2.tar.gz
 
 编译安装iscsitarget
# cd iscsitarget-1.4.20.2
# make  
# make install
 
 加入系统服务
# chkconfig --add iscsi-target
配置iSCSI target
Vi /etc/iet/ietd.conf

Target iqn.1994-05.com.RedHat:e44b66e1842Lun 1  Path=/dev/sdc,Type=blockio,ScsiId=sdc

iSCSI有一套自己分享target文件的定义,基本上,由iSCSI分享出来的target文件都是以iqn为开头,意思是:『iSCSI Qualified Name (iSCSI合格名称)』的意思。那么在iqn后面要接什么呢?通常是这样的:

iqn.yyyy-mm.<reversed domain name>:identifier

我做这个测试的时间是2012年4月份,然后我的的机器是shanker.com,反转网域写法为com.shanker, 然后,想要的iSCSI target 名称是xp_disk ,那么就可以这样写:

iqn.2012-04.com.shanker:xp_disk
这里的iqn只是一个识别代码,可以改成任意的,我后来测试过的
 

Lun 1是指这个设备共享出去的Lun Id,同一个Target Lun Id不能重复。Type=blockio是指定使用blockio的方式,也可以使用fileio,如果使用了fileio,会使用操作系统的文件缓存,如果出现掉电,可能会丢数据。使用blockio则没有这个问题。
IscsiId是这个Lun的名字,随便起一个名字就可以了。

启动iSCSI target
 
配置好/etc/iet/ietd.conf文件后,就可以启动iscsi-target了:

# service iscsi-target start

查看iSCSI target 共享出的硬盘
 
# cat /proc/net/iet/volume
 
查看客户端登录到target的情况
 
# cat /proc/net/iet/session



第二步: iSCSI initiator的设定
然后到initiator安装iscsi-initiator-utils-6.2.0.871-0.16.el5,生成的配置文件在/etc/iscsi 目录下.

# service iscsid  start

iscsi initiator主要通过iscsiadm命令管理,我们先查看提供服务的iscsi target机器上有哪些target:

# iscsiadm -m discovery  -t sendtargets -p 192.168.39.134

会发现刚才配置的那个target


# iscsiadm -m node -T iqn.1994-05.com.RedHat:e44b66e1842 -p 192.168.39.134 -l

完成这些命令后,iscsi initator会把这些信息记录到/var/lib/iscsi目录下:

/var/lib/iscsi/send_targets记录了各个target的情况,/var/lib/iscsi/nodes记录了各个target下的nodes情况。

下次再启动iscsi initator时(service iscsi start),就会自动登陆各个target上。如果想让重新手工登陆各个target,需要把/var/lib/iscsi/send_targets目录下的内容和/var/lib/iscsi/nodes下的内容全部删除掉。

 
要查看各个iscsi的信息:
 

# iscsiadm -m session -P 2




iSCSI target 的日常维护

在ISCSI中添加新硬盘
 
如果可以停止iscsi服务:


     1.在/etc/ietd.conf文件中增加新硬盘的配置;
     2.重新启动iscsi-target 服务:
    # service iscsi-target restart


     3.在target增加的新硬盘在iscsi initator端不会被自动识别,需要到iscsi客户端机器上重新识别新加的新硬盘:
    # iscsiadm -m discovery -t sendtargets -p 192.168.39.134 -l


如果不能停止iscsi服务:


     1.先查看现有的iscsi target的tid是多少:
[root@defcon iet]# cat /proc/net/iet/volume

tid:1 name:iqn.1994-05.com.RedHat:e44b66e1842

lun:1 state:0 iotype:blockio iomode:wt blocks:4194304 blocksize:512 path:/dev/sdc    

2.使用ietadm命令动态增加硬盘:
     假设我们现在要往tid=1,target name是iqn.1994-05.com.RedHat:e44b66e1842增加硬盘/dev/sdb,
     
     则执行如下命令:
     
     # ietadm --op new --tid=1 --lun=2 --params Type=blockio,Path=/dev/sdb

   
     然后再用cat /proc/net/iet/volume检查硬盘是否被加入到iscsi-target中。
   完成这个操作后,需要在initiator服务器上重启iscsi服务,然后,重新map

我们发现多了一块sdd硬盘,正式刚才target新添加的/dev/sdb



2.如果想把硬盘加到一个新建的target中,则需要先新建target,
     
     新建target执行如下命令:
     


      # ietadm --op new --tid=2 --params Name=iqn.2012-05.com.shanker:e44b66e1842
     
     命令中的tid是比以前的最大tid值大1的值。
     
     然后再把硬盘加到这个新建的target中:
     
      # ietadm --op new --tid=2 --lun=2  --params Type=blockio,Path=/dev/sdb
     
      最后不要忘记在/etc/ietd.conf文件中增加新硬盘的配置。

下面说一下Windows下的配置,点击控制面板,管理工具,打开iSCSI initiator,第一次运行会提示你是否将iSCSI服务放到开机自启动项里,这里选择是,然后在Target那里输入ip地址,点击Quick Connect,如果网络通的情况下就会发现Target并获取连接。

之后我们到磁盘管理就会看到我们的新硬盘了,如图

我们必须先到Linux系统向将分区格式化成ntfs的,Windows才能在本地使用,如图,就像使用本次磁盘一样,这样很有趣,把本次的磁盘文件通过iSCSI虚拟成本次磁盘,网挂在的磁盘上写数据其实质就是写入到虚拟机的vmdk文件当中。
       实验到此结束。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值