DIY iSCSI存储服务器全攻略
本攻略仅供初学者以亲自动手的方式,建立对iSCSI技术的感性认识。不包括iSCSI详细理论和产品评测等内容。本攻略分四部分:
1. 准备环境 2 安装软件 3 .配置连接 4. i之初体验
一、准备环境
硬件要求非常简单,两台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天的试用授权,足够我们的手工实验用了。
在http://www.datacore.com/products/prod_SANmel_trynow_form.asp这里填一个很简单的表格,再点页面下面的“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的所有配置插件。 #p#page_title#e#
至此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所管理的未格式化空间组成的,在你的环境中,可能只有一个空间可以选择,点中这个空间,然后点添加按钮即可。
#p#page_title#e#虚拟卷的图标跟未格式化空间的图标不同,下面有一个像网络一样的标识,样子很像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。大家也可以尝试其它的参数来使性能达到更优。 #p#page_title#e#
肯于钻研的朋友还可以利用我们搭建起来的这个环境研究一下iSCSI协议。
网上有很多iSCSI协议分析工具,我推荐Ethereal,理由有二:
第一是完全免费,连源码都是公开的;
第二是支持Windows平台,是我见过的Windows平台上最强的分析工具。下载地址嘛,直接去http://www.ethereal.com/download.html就可以找到。