一、准备环境
硬件要求非常简单,两台x86
pc即可。cpu不低于300mhz,内存不小于512mb,带至少一个以太网络接口,这些条件对今天的pc来说,都不算难。有一点要稍微注意的,就是其
中一台pc要有尚未创建分区的磁盘空间,最好是有两颗硬盘。另外两台pc之间要有网络连接。
操作系统就选大家最熟悉的windows系列,这样你找来的pc连装系统的时间都省了,但注意不要用64位版本。如果是windows
2000,要有sp4或更高版本的补丁包;如果windows xp,要安装至少sp2补丁包;如果是windows 2003,需要sp1补丁包。
注意windows不能是域控制器,tcp/ip也要设置成静态的,不能是dhcp。ip地址没有特别要求,只要两台pc可以互相ping通就可以。
检查windows上是否有“microsoft .net framework version 1.1 redistributable
package”这个包。windows2003自带这个包,如果是windows其它版本,而且没装这个包,可以到微软的网站下载安装。
以上准备工作完成之后,就可以正式开始diy我们的iscsi存储设备了。选有剩余磁盘空间的那台pc做iscsi target设备(就是存储设备端),另外一台做iscsi initiator(就是主机端)。
二、安装软件
可以实现iscsi target功能的软件有很多,这里推荐datacore sanmelody 2.0.1。这个软件不是免费的,但是可以在线申请一个30天的试用授权,足够我们的手工实验用了。
在这
里填一个很简单的表格,再点页面下面的“download
now”按钮就可以下载了。注意email地址要如实填写,因为那个30天试用授权是通过你填的这个email地址送到的。正常情况下,在下载完
sanmelody安装包之前,包含授权文件的邮件就会送到。不过有时候在线自动处理程序没法处理你填写的信息,就会转交给人工处理,那样授权文件就可能
第二天才送到。授权文件是一个“.lic”后缀的文件,收到后保存到一个本地目录,就可以安装sanmelody了。
安装过程会弹出一个对话框,要求提供授权文件。
选择“yes”之后,在浏览窗口中选择前面保存的那个“.lic”文件。
如果授权文件不正确,sanmelody会弹出如下的对话框,并停止安装。
如果授权文件正确,就会出现下面这个确认框。你只要闭着眼睛点“yes”就行了。
接下来的步骤一路选“next”,除非你想把sanmelody安装到特殊的目录,但是当提示配置isns的时候要选“no”,免得被一些没必要的东东分散注意力。
当出现下面这个组件选择的对话框时,不管里面有几个组件,统统选中。反正也不用花银子。
之后的过程中,sanmelody会安装若干未经微软数字签名的驱动程序。不用担心,只管统统选“yes”。
除了安装这些driver,sanmelody还会触发windows系统安装一些软设备,一般用缺省选项,windows自己就可以自动完成安装工作。
如果看到下面这个提示框,就说明iscsi target驱动已经安装成功了。
安装完成后,安装程序会要求重新启动系统,这时候尽量按要求立即重新启动。重新启动后,右下角会出现datacore的图标,表示sanmelody已经在运行了。
右键单击这个图标,会看到如下图的操作选项。因为我们是使用测试授权,就没必要激活(activate)了。
在这里单击“open computer
management”打开的实际是windows的mmc管理窗口。不过其中除了windows自带的那些mmc插件,会多出一个“datacore
sanmelody”。双击它并耐心等待大概一分钟,就会看到sanmelody的所有配置插件。
至此sanmelody安装大功告成,具体配置工作在下一个部分交待。接下来要安装initiator端,也就是另外一台pc。相比
target软件,initiator的软件更多,这里推荐微软的microsoft iscsi initiator 2.01(build
1748)
下载这个包的url太长了,就不在这里列了。只要到微软的网站上搜索“iscsi
initiator”,就很容易找到这个包的下载链接。可下载的安装包有三个,因为我们使用的是32位的pc,所以要下载名字中有“x86fre”的那
个。其它两个都是给64位windows用的。
安装microsoft iscsi initiator的过程非常简单。完全遵照缺省,一路点“next”,最后按提示重启系统。因为实在是太简单了,就不放截屏了。
至此,两台pc的安装过程就都完成了。下面进入配置连接部分。
三、配置连接
我们先来配置initiator端。双击桌面上的microsoft iscsi initiator图标,打开配置界面。为了防止你桌面上的东东比较多,还是放个图标的截图在这里。
先点选配置界面中“discovery”配置页。并点击target portals框下方的“add”按钮。
在弹出的对话框里填入另外一台pc(就是安装datacore
sanmelody的那台)ip地址,然后点“ok”关闭对话框。我个人还喜欢到“advanced…”选项中,把“local
adapter”和“source ip”的设置由“default”改为“microsoft iscsi
initiator”和本机ip。不过一般情况下,不改这些设置也不影响正常连接。
如果地址正确,两主机通讯正常,在target portals框里,就会出现sanmelody那台pc的信息。这时就可以向iscsi target登陆了。
点选“targets”页面,选中targets框中出现的项目,然后点击页面下方的“log on…”按钮,连接就建立完成了。
建立连接后,target状态会由“inactive”变成“connected”。
至此,我们在这台pc上要做的配置工作就都完成了。下面换到target端,也就时sanmelody这台pc进行设置。
首先要用windows自带的磁盘管理器创建一个新的空间,用做iscsi存储空间。磁盘管理创建分区的过程需要注意两个地方。一是不要指定盘
符,二是不要格式化。这样的分区才能被sanmelody作为逻辑空间,提供给iscsi
initiator使用。下面两个截图,就是这两个需要注意的地方。其他的过程都跟创建普通分区没什么区别,相信大家都不会碰到问题了。
创建分区之后,下面进行sanmelody的配置。首先要做的就是启动sanmelody服务。
点选“storage server”,并单击启动sanmelody服务的按钮,稍等片刻,等到下方的状态栏中显示“running”时,服务就启动完成了。
启动服务之后,我们要将刚刚创建的空间纳入sanmelody的管理。操作步骤是右键单击右上角框中本主机的名字,选择“protect
all
volumes”。这时右下角框中会出现刚才创建的分区。你的环境中,可能右下角只有一个卷的信息,而且没有小手托着。没关系,如果前面你只创建了一个未
格式化的分区,那这样的信息就是正常的。
如果右下角的图标是红色的,说明信息还没有生效,要单击工具栏中的“apply configuration”图标
令其生效。
接下来,我们要在sanmelody中创建virtual volumes(虚拟卷,相当于磁盘阵列中的逻辑磁盘)。为了简单起见,我们就不使用sanmelody的nmv功能了,这样虽然失去了在线扩展能力,但配置过程会简单许多。
选中下图中左侧窗口的virtual volumes图标,然后点选工具栏中“new virtual volume”图标
来创建一个新的虚拟卷。
虚拟卷是由sanmelody所管理的未格式化空间组成的,在你的环境中,可能只有一个空间可以选择,点中这个空间,然后点添加按钮即可。
虚拟卷的图标跟未格式化空间的图标不同,下面有一个像网络一样的标识,样子很像windows中的网络盘的图标。
跟前面一样,如果配置过程中看到有红色的图标,就按一下工具栏的apply按钮,令其生效。原则上,我们每做一步配置操作,都应该按一下那个按钮。就像我在写这个文档的时候,每写几行就按一下ctrl+s一样。
熟悉磁盘阵列配置的朋友都知道,做完了逻辑磁盘,下面该做主机映射了。很多磁盘阵列的缺省映射是所有主机,但是sanmelody不一样,因为iscsi是基于以太网络的,如果缺省设置的安全性太低,显然面临的风险会比scsi或者fc的更大。
建立映射的第一步是创建application server,也就是前端应用主机(sanmelody认为自己是磁盘阵列,不是主机)。
点选“application server”,单击工具栏中新建应用主机的图标 就会弹出下面这个对话框。
随便输入一个名字,点“ok”即可。回到mmc界面后,右键单击这个刚刚创建的应用主机,选“properties”来添加那台initiator pc的信息。
在你的环境中,可能只有一个iscsi通道,没关系,只管选中点击向上箭头,添加到应用主机的可用通道。如果下面的框中没有出现任何可选连接,就需要检查另外一台pc的iscsi initiator是否正常工作,确认iscsi连接已经建立并登陆成功。
其实这一步骤的作用,就是给sanmelody所识别到的远端iscsi设备起个名字。下面的步骤才是真正建立映射关系。
在mmc界面中选中“application servers”,单击工具栏的“map new virtual volume”图标
建立映射。
在弹出的窗口中,选中刚刚创建的虚拟卷和远端iscsi通道,单击向右按钮。这样就建立了该虚拟卷和该iscsi通道的连接映射。
回到mmc界面,单击工具栏的apply按钮令所有配置生效。我们的配置工作,至此就大功告成了。
为了进一步确认,可以到initiator那台pc上运行磁盘管理器,并重新扫描磁盘。看是否有新的磁盘出现。如果看到要求磁盘签名的窗口弹出,恭喜你!说明你可以开始使用这台iscsi存储设备了。
四、i之初体验
作为存储设备,我们首先关心的就是它的性能。对我们刚刚搭建起来的这个iscsi存储设备,也可以用性能测试软件考察一下。当然,如果你的pc配置很低,网络连接又是百兆以太网,那性能肯定不会太好。但作为体验,还是会有感性收获的。
性能测试软件我推荐iometer。理由有三:第一是完全免费,网络上很容易找到;第二是完全绿色,不需要安装;第三是使用起来比较方便,测试结果也基本比较准确。
关于iometer的使用介绍就不多说了,网络上有很多非常好的指南,这里只补充两点。
一般情况下,iometer的out standing i/o越大,测试结果就越好,很多人喜欢用16甚至64,但在这个环境里,用4或者8就可以达到很好的性能。
在iometer中可以设置测试的起始和终止扇区,也就是划定测试空间范围。应该尽量让这个范围与target
pc的内存容量一致或更小,从而保证后端磁盘不会严重影响测试结果。举例来说,如果运行sanmelody的pc内存有1.5gb,就要把测试范围设定为
start=0,size=2048(2048个扇区正好是1gb)
如果还想进一步提高性能,可以尝试用网卡远厂的驱动程序替换windows自带的驱动。最常见的主板集成的网卡是intel pro1000,对这个网卡而言,在intel网站上下载的最新驱动程序就比windows驱动性能高很多。
windows注册表里也有一些设置可以提高sanmelody的性能。在
hkey_local_machinesystemcurrentcontrolsetservicesdcscacheparameters中,有四个
变量都会影响target端的性能表现。在我的环境中,这四个变量的设置分别是:ioqueuecount=64;ioqueuesize=
0x00010000(32mb);readahead=4;writesizestop=0x00020000。大家也可以尝试其它的参数来使性能达到
更优。
肯于钻研的朋友还可以利用我们搭建起来的这个环境研究一下iscsi协议。
网上有很多iscsi协议分析工具,我推荐ethereal,理由有二:
第一是完全免费,连源码都是公开的;
第二是支持windows平台,是我见过的windows平台上最强的分析工具。下载地址嘛,直接去就可以找到。