一、三大主流平台的iSCSI发起器模拟软件
要实现iSCSI读写,除了使用特定的硬设备外,也可通过软件方式,将服务器仿真为iSCSI的发起端或目标端,利用既有的处理器与普通的以太网络卡资源实现iSCSI的连接。
iSCSI即internet SCSI,是IETF制订的一项存储传输协议标准,用于将SCSI数据区块映像成以太网数据封包。iSCSI协议基本上是一种跨过IP网络来传输SCSI数据区块的方法,发起读写请求的来源机器设备称作Initiator(发起方),被请求的目标设备则称作Target。透过这种方式可在IP网络上以区块级模式存取大量数据。
要实现iSCSI读写,除了使用特定硬设备外,也可透过软件方式,将服务器仿真为iSCSI的发起端或目标端,利用既有的处理器与普通的以太网络卡资源实现iSCSI的连接。目前多数的iSCSI Target仿真软件多为需付费的商业软件,而iSCSI initiator则已有许多免费软件可供选用。
Microsoft iSCSI Initiator
微软提供的iSCSI发起器软件,可让Windows客户端将以太网卡仿真成iSCSI发起器,以便对网络上的iSCSI目标设备发起存取需求,建立iSCSI联机。
Microsoft iSCSI Initiator最新的版本为2.04版,可支持Windows 2000/XP/Server 2003等微软作业环境,并分别有支持x64、IA64、x86等处理器平台的版本。下载完成安装后,在Discovery选单输入iSCSI目标设备的IP或iqn地址,即可在Target选单中选择与iSCSI设备建立连接,透过IP网络存取iSCSI存储设备,还支持多路径传输。
Linux-iSCSI
有2.4/2.6两种版本Linux kernel的iSCSI Initiator,在使用时,系统中必须备妥kernel-source、kernel、gcc、perl、Apache等相关档案。下载并完成编译后,先将/etc/iscsi.conf内的iSCSI配置组态,改为符合目前使用的iSCSI目标设备的正确网址、用户名称与密码,接下来以#/etc/init.d/iscsi start启动iSCSI设备,并以fdisk指令分割磁盘,最后用mkdir与 mount指令将磁盘驱动器挂载。
Solaris iSCSI Initiator
Solaris 10已内建了iSCSI Initiator软件,包括SPARC 64、x64与IA-32等处理器平台都能支持。Sun把iSCSI相关驱动程序整合在iSCSI Device Driver and Utilities的更新程序内,目前已更新到5.10版。
使用时,先用svcadm enable svc:/network/iscsi_initiator的指令格式先行启始iSCSI Initiator,接下来的的操作主要依靠iscsiadm指令,先以iscsiadm add discovery-address指令设定目标设备地址,再用iscsiadm modify initiator-node修改与目标设备间的连接设定,然后依序使用devfsadm -c iscsi、format、newfs等指令建立新的磁盘区,最后再用mount指令将磁盘区挂载起来即可。
二、实现
(一)局域网模拟网络存储:linux iscsi store windows/linux client
在使用局域网来模拟一个网络存储源于在实际应用中,linux操作系统中的虚拟机win2008需要的iis7不能使用外部的网络连接作为网站应用程序的根目录,而且目录权限使用起来实在是复杂。
先说说环境:
服务器1:
OS : centos 5.4 x64
NET: hostonly
IP : 172.168.1.1
服务器2: vmware os , 创建于服务器1中
OS: windows 2008
NET: hostonly
IP: 172.168.1.2
安装服务器2的目的仅仅是为了使用它的iis服务器而已。对于数据的存储,文件的存储,还是希望放在主机服务器1中。
iis7的应用中,无法避免的是用户会上传很多文件,这些文件放在虚拟机中的话,对于备份、网络访问都是一个问题。而且随着文件的增多,虚拟机的虚拟文件会越来越大。
增加外部存储对于我们来说是一个不小的负担,不过如果能够虚拟一个外部存储的话,应该是一个不错的选择。
2. 让内核支持ntfs
#yum install fuse
# modprobe -l | grep fuse
/lib/modules/2.6.18-194.26.1.el5/kernel/fs/fuse/fuse.ko
安装ntfs-3g
下载 ntfs-3g
cd ntfs-3g-2010.10.2
./configure
make && make install
或者
tar xjvf ntfsprogs-2.0.0.tar.bz2
cd ntfsprogs
./configure --enable-fuse-module
make
make install
3. 分区和格式化
/dev/sdc 是用来模拟网络存储设备的一块sata 盘
fdisk /dev/sdc
L = 7 (NTFS格式)
mkfs.ntfs-3g -q /dev/sdc1
4. 创建虚拟网络设备
yum install scsi-target-untils
此会安装 tgt
service tgtd start
#创建设备
tgtadm --lld iscsi --mode target --op new --targetname iqn.om.com.internal
#增加虚拟卷
tgtadm --lld iscsi --mode logicalunit --op new --tid=1 --lun=1 -b /dev/sdc1
#创建允许访问的initiator
tgtadm --lld iscsi --mode target --op bind --tid=1 --initiator-address=17.168.1.2 (允许windows环境下加载)
5. windows 下加载iscsi
5.1 windows 2003
w2003 需要下载一个设备驱动 Microsoft iSCSI Initiator ,可以在microsoft上找到
5.2 windows 2008 已经内建
打开 Microsoft iSCSI Initiator, 在 discovery 中添加虚拟设备的地址
discovery 选项建立与iscsi 设备的连接, 在target中可以看到连接的内容:
使用Logon 登录到网络设备上。成功连接网络设备后,我们可以在设备管理器中看到系统新发现的一个磁盘设备:
这里的 (G:)就是我们的iscsi设备。当然在使用新设备前,可能还需要对这个设备指定一个盘符,如此处的 G:到此iscsi设备已经可以使用了。
6. 测试
6.1 文件测试
windows 2003 下的文件测试,我使用了一个2.8G的文件复制,从系统中复制到iscsi设备,用时5分钟,虽然不算快,但是已经可以满足我们的需要了。
6.2 iis 测试
(二)Openfiler 2.3-实验模拟iSCSI存储
Openfiler是由Linux编译而来的网络存储管理系统(属于redhat系,所以安装过程很熟悉),基于浏览器来进行配置。可以提供基于文件的存储方式NAS和基于块的存储方式SAN,以及FTP、SMB、NFS等服务。
由于很多项目如windows的cluster,Vmware Esx的HA等群集服务都需要单独的存储设备来实现,对于初学者来说很难有机会来实际操作到,Openfiler即是一种折中的方案,虽然性能不比专业存储,然而用来练手却正好。
官方网站: http://www.openfiler.com (里面有提供下载,但很慢很慢..而且容易断)
所以推荐下载地址: http://download.huihoo.com/openfiler/20081010-123.html
我安装完后的WEB界面:
详细配置过程推荐以下2篇BLOG
http://dbabc.net/archives/2010/04/07/openfiler-install.shtml
http://rickyfang.blog.51cto.com/1213/172296
因为是图形化操作,所以毫无难度,关键点在于如何创建PV及VG,并把PV加入到VG,同时转换ISCSI格式。同时,需要设置Network的ACCESS权限。
本日志由 flyinweb 于 2011-05-03 10:46:37 发表,目前已经被浏览 1384 次,评论 0 次;
作者添加了以下标签: internet SCSI,iSCSI;
引用通告:http://www.517sou.net/Article/594/Trackback.ashx
而且直接配置文件是效率最高的,通过其它驱动效率都相对较低,BDB
这个测试不太准确,看官方的测试结果:http://bind-dlz.sourceforg
为什么使用BDB时QPS这么低? 我在bind版本基本相似的环境中测试的
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱