Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1908580
  • 博文数量: 346
  • 博客积分: 10221
  • 博客等级: 上将
  • 技术积分: 4079
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-01 19:43
文章分类

全部博文(346)

文章存档

2012年(1)

2011年(102)

2010年(116)

2009年(127)

我的朋友

分类: LINUX

2010-12-25 23:28:20

储存区域网路(SAN)

谈到iSCSI就会先谈到储存区域网路(Storage Area Network, 简称 SAN),这是个专门用来传输磁碟资料的网路,以别于一般 TCP/IP 网路,通常预设 SAN 是使用光纤(FC,Fibre Channel)设备,不同的是 iSCSI 预设使用 Gigabit Ethernet(双交线)来作传输媒介,所以iSCSI 价格上比 Fibre Channel 低廉许多,所以这使得 iSCSI让许多中小企业能够以较低门槛就可以实现SAN的应用。
注:能够实现SAN应用有Fibre Channel,iSCSI与AoE 等等,其中以 Fibre Channel 价格最高、效能最优,而 iSCSI 是 Fibre Channel 之外较知名储存通讯协定,AoE 则是紧追在 iSCSI 的后起之秀,其实我也没有用过.
进阶学习:iSCSI 其实它也能够使用光纤来当传输媒介,但是通常为了节省费用而使用铜线。

iSCSI 介绍

iSCSI(Internet SCSI):一种主要应用在储存区域网路(SAN)通讯协定,iSCSI 将 SCSI 命令运行在 TCP/IP 网路上,用以传输磁碟资料。iSCSI 在 OSI 七层模型中属于传输层(Transport Layer)的通讯协定,提供给 iSCSI Target 与 iSCSI Initiator 之间沟通。

经由 iSCSI 技术,我们能够提供 Block-Level I/O 给 Initiator 主机,其目的不外乎是“将硬盘的排线网路化”、“把这台主机(Target 主机)幻化成另一台主机(Initiator 主机)的磁碟”以达成更大空间、更高 I/O 速度及具有冗余与高延展度的应用,类似 iSCSI 技术还有 Fibre Channel、AoE(ATA Over Ethernet)。
进阶学习:搭配 SAN 架构所应用之高阶技术之一为丛集档案系统(Cluster File System),RedHat 推广 GFS(Global FS)、SuSE 推广 OCFS2(Oracle Cluster FS)都是实际案例。

下面就SAN 中通常有两个角色“Target(服务端)”与“Initiator(客户端)”分别叙述如下:

Target_“储存设备”(Storage Device)

称为 Target 的通常是“储存设备”(Storage Device),也就是存放资料的硬盘(以硬盘阵列居多),在我们使用iSCSI时,会在 iSCSI 储存设备上去建立 LUN(Logical Unit Number)来提供给有 iSCSI Initiator 功能的主机来存取 iSCSI 储存设备。所以通俗一点讲,他就是服务端.
温馨提示:LUN 好比是个“逻辑单位磁碟”,为追求效率、冗余与延展性,这个 LUN 通常会是由数个实体磁碟(在搭配 RAID 或 LVM 技术后)所组成。

这次用来当作 iSCSI Target 主机是Centos5主机,因为Centos5本身是没有iSCSI Target的,其实别的发行版本也没有,所以我们只好手动编译iSCSI Enterprise Target.
编译 iSCSI Enterprise Target 软体

iscsitarget下载地址

http//iscsitarget.sourceforge.net/

最新的是 0.4.15 版
注意:安装要2.6.14以上内核

第一步:解压,然后进入目录
#tar -zxf iscsitarget-0.4.15.tar.gz”
#cd iscsitarget-0.4.15
#yum -y install gcc gcc-c++ kernel-devel
编译前,最好安装好上面这些包

第二步:编译程式
#make
#make install

第三步:加入到系统服务,设置开机预设启动 iscsi-target
#chkconfig –add iscsi-target
#chkconfig iscsi-target on
#/etc/init.d/iscsi-target start
注:iSCSI Target 端主机预设使用 tcp 的 3260 端口来服务,所以防火墙记的开.
#iptables -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3260 -j ACCEPT

查看服务是否启动

# ps -C ietd
PID TTY TIME CMD
2691 ? 00:00:00 ietd

第四步:iSCSI Enterprise Target Daemon 设定档

iSCSI Enterprise Target Daemon 名称 ietd 使用 /etc/ietd.conf 当作设定档,您可以在原码目录(iscsitarget-0.4.15)内的 etc 目录下找到设定范本,范本内大多是“#”字号开头的注解,有需要用到这些设定时再将注解拿掉设定调整即可。不过,可以直接使用命令来建。不过重起后就没有了.
# ietadm –op new –tid=100 –params Name=iqn.2008-02.com.php-oa.iscsi:test
# ietadm –op new –tid=100 –lun=0 –params Path=/dev/VolGroup00/test

上面这一行中的“Target iqn.2008-02.com.php-oa:iscsi:test”这是 Target 名称,称作‘iSCSI Qualified Name’(简称:iqn),这格式在 iSCSI 规格书中有详细说明
iqn.yyyy-mm.[:identifier]
格式 意义 范例

yyyy-mm 年份-月份 2001-04
reversed domain name 倒过来的网域名称 com.php-oa
identifier 识别代号 iscsi:test

LUN(Logical Unit Number),“#Lun 0 Path=/dev/sdc,Type=fileio”这一行中, Path 改成您提供的硬盘名称,此例为“Path=/dev/VolGroup00/test”。
我们可以使用像是区块装置(Block devices,例 /dev/sdc)、一般档案(regular files)、LVM 逻辑卷轴(Logical Volume)与磁碟阵列(RAID)提供给 Initiators 主机当做‘区块装置’(硬盘).

当然.将范本设定档拷贝一份到 /etc 再来设定 /etc/ietd.conf 是个不错的选择。要重起后启用,记的编辑。你不可能重起后就不要了吧.

下面是我的ietd.conf的配置

Target iqn.2008-02.com.php-oa:storage.test
Lun 0 Path=/dev/sdb,Type=fileio
Alias Test
检查启动后的iscsi

#cat /proc/net/iet/volume
tid:1 name:iqn.2008-02.com.php-oa:storage.test
lun:0 state:0 iotype:fileio iomode:wt path:/dev/sdb

FQA:
1.make[1]: cc: Command not found错误
代表着这台linux 编译相关的程式(尤其是gcc)还没安装,Linux 称这类软体为开发工具(Develop Tool),只要把‘gcc’相关这一类的开发工具都安装即可。
可以使用下面的方法安装
#yum -y install gcc gcc-c++ kernel-devel openssl-devel

2.错误讯息“chap.c:20:25: error: openssl/sha.h: No such file or directory chap.c:21:25: error: openssl/md5.h: No such file or directory”
这个是因为openssl-devel’套件尚未安装所造成。

#yum openssl-devel krb5-devel zlib-devel e2fsprogs-devel

3.错误讯息“make: *** /lib/modules/2.6.18-53.1.13.el5/build: No such file or directory. Stop.
#yum install kernel-devel

阅读(942) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~