继续!

昨天为大家介绍了 NexentaStor CIFS 共享的设置,今天为大家介绍下 iSCSI SAN 服务的相关设置。

1.创建iSCSI 虚拟卷—— Zvole

10821989_1246389852o3iz.png
图1 NMV ”Setting“-”Disk“ 页面
如图,在NMV 的“Setting”-“Disk”页面上单击“iSCSI Target” 设定选项列表中单击 “Create” ,打开新建zvol的设定表单;
10821989_1246389820kLUP.png
图2 NMV ”Create New zvol(virtual block device)“ 设定页面
如图,在新建zvol 设定表单里
首先选择存放zvol的物理卷(ZFS 存储池),zvol实际上也是一个zfs 文件系统;
然后分别设定 zvol的名称、容量、zvol的说明批注、初始化化模式、基本记录大小(block size)、是否启用压缩、文件副本数和是否启用iSCSI 共享 这些选项/参数,最后单击"Create zvol” 创建指定的虚拟卷。
10821989_124638978502MD.png
图3 zvol创建成功后 NMV ”Setting“-”Disk“ 页面的显示!

2.设定iSCSI Target 初始化参数和服务端口组
首先在在NMV 的“Setting”-“Disk”页面上单击“iSCSI Target” 设定选项列表中单击 ”Portals“,
打开 iSCSI Portal Groups 设定表单;
10821989_12463897648aD3.png
图4 , iSCSI Portal Groups 设定表单
在表单中填写一个端口组号和服务器网卡的IP地址,然后点击“Add/Save" 完成新Portal Groups的创建。
10821989_1246389749iSoD.png
图5,新Portal Groups创建成功后将被列表在 iSCSI Portal Groups 设定表单中。

3.设定iSCSI Target 默认参数
在NMV 的“Setting”-“Disk”页面上单击“iSCSI Target” 设定选项列表中单击 ”Target“,打开相应设定表单;
10821989_1246389732fF38.png
图6,iSCSI Target 默认参数设定表单
具体的设定参数大家可以根据需要设定,我这里因为是虚拟机上的测试环境,所以就先简单的把验证模式设为”None“,其他的都保持默认设置。
单击”Save“保存,参数保存完毕后页面上方会显示一段提示文本。(提示大概会闪烁3秒钟,然后提示文明的颜色会慢慢淡去)

4.为iSCSI zvol 分配 iSCSI Target Portal Group(即设定服务端口)
在NMV 的“Setting”-“Disk”页面上单击“iSCSI Target” 设定选项列表中单击 ”View",打开iSCSI zvol 状态列表
10821989_1246389709HEe1.png
图7,iSCSI zvol 列表
如上图,大家可以看到刚才新建的iSCSI zvol 条目的“TPGT” 处现在状态是“Not Set”。
我们现在单击“zvol”列的zvol 名称(你可以注意到这是个链接),打开下图所示的页面
10821989_1246389699nFMm.png
图8,zvol 参数编辑/查看 表单
这里只有 Group Protal 一项可以设定,其它显示的都是只读参数。
选择一个Protal Group,然后单击“Save”保存。
10821989_1246389680dXzm.png
图9,iSCSI zvol 状态列表
如图,页面上方的提示,zvol设定已成功更改,现在TPGT处已经显示了刚才我们分配的Protal Group。

5.通过NMC启用COMSTAR

之前我曾经提到过,NextenaStor 的iSCSI Target 是使用COMSTAR软件实习的,但是默认COMSTAR并没有启用,所以我们要使用NMC来设定启用COMSTAR。
10821989_12463895086LMU.png
图10,通过NMC我们可以查看当前COMSTAR的启用状态

1.)在NMV界面上单击“Console” 打开NMC 窗口,输入命令“setup”,随后Setup命令的选项菜单将被显示,如下图
10821989_1246389495agQr.png
图11, NMC setup 命令选项菜单

2.)按键盘方向键,将光标移动到”iscsi“ 选项上,按回车,随后iSCSI 设定选项菜单将被显示,如下图
10821989_1246389482b4L7.png
图12,NMC iSCSI 设定选项菜单

3.)继续移动光标到”target“选项上,按回车,随后iSCSI target 设定选项菜单将被显示,如下图
10821989_1246389476Xxxz.png
图13,iSCSI Target 选项设定菜单

4.)继续移动光标到”comstar“选项上,按回车,随后COMSTAR 设定选项菜单将被显示,如下图
10821989_1246389468U71U.png
图14,COMSTAR 选项设定菜单

5.)移动光标到”enable“选项上,按回车,然后如下图所示信息将被显示,并询问你是否确认启用COMSTAR
10821989_124638945396Kz.png
图15,COMSTAR 启用确认信息
输入‘Y’,确认启用COMSTAR。
10821989_1246389444n7i3.png
图16,COMSTAR 启用成功提示

注意:
NMV软件可能有bug ,在完成以上设定后我顺便在NMC窗口中通过setup 命令选项 查看了下iSCSI Target Protal Group 列表,但是没有任何输出。
怀疑是起用COMSTAR 某些iSCSI 设定被初始化化,所以Target Protal Group 的设定被清空了!
没关系,马上重新设定下。
10821989_12463894353k7E.png
图17,NMC TPGT 设定过程
如图:图中半部分通过setup命令的逐级命令选项:iscsi->target->tpgt->show 来查看当前的tpgt列表,但是无任何输出。

在NMC 窗口中输入命令 setup ,然后足迹选择以下命令选项 iscsi->target->tpgt->create
然后根据屏幕提示输入服务端口号和服务器网卡IP ,随后我们看到NMC窗口输出了tpgt (iSCSI Target Protal Group )列表,说明新的iSCSI Target Protal Group 创建成功!

最后我们来简单测试下刚才配置的iSCSI 共享!

昨天说了现在我的Ferrari系统是Windows 7 ,自己负担了 iSCSI Initiator 软件和相关系统服务。
首先我们要在系统服务里起动 iSCSI Initiator服务。
然后在管理员工具中打开 iSCSI Initiator 配置程序。

因为之前设定iSCSI 服务参数时选择的连接验证模式是“None”,所以这里只要在Targets 页中的Quick Connect 输入iSCSI 服务器的IP,然后单击 “Quick Connect..."按钮,软件马上就自动Discovery到了NextenaStor 服务器的iSCSI接口,并自动完成连接了!
如下图:
10821989_12463893834dpp.png
点击”Done“,关闭”Quick Connect"窗口
10821989_1246389349t4iP.png

随后,在 iSCSI Initiator 配置程序选择 Volumes and Devices 选项页,单击Auto Configure,刚才我们连接的iSCSI Targets 上的磁盘卷就自动挂载到本机了!
如同:
10821989_1246389329737n.png

现在我们打开磁盘管理器,如下图:
10821989_1246389311vvI1.png
系统已经识别到iSCSI接口的磁盘,现在对它进行初始化
10821989_12463892553AhD.png
然后创建分区并格式化
10821989_1246389231GUQs.png
好了,现在我们就可以像使用本地磁盘一样操作这块iSCSI接口的磁盘了!

简单测试了下这块iSCSI磁盘的性能,从本地硬盘的一个分区 拷贝500M的NextenaStor iso 上去,
最开始的速率是50多MB/秒,很快掉到35MB/秒,最后文件完成复制前1秒的速率是20多MB/秒。

复制一个2.2G的Solaris U7 iso 上去,最开始以每秒50多MB/s 的速率迅速完成了150MB的数据复制,
iSAN-test-8.png
然后就一路掉到20MB/s 最后文件复制完成前的速率为5MB/s ,这个速率与我用HD Tach测得的数据基本相符!
iSAN-test-10.png
大家会不会觉得这样的速度很慢啊!
我个人觉得还是可以接受的!
实验的NextenaStor 服务器是在我的VirtualBox 虚拟机里运行的!我用HD Tach 测得的我的7200rpm 本本硬盘的突发速率是106.4MB/s ,平均顺序读取速率是65.5MB /s。
iSAN-test-11.png

这块iSCSI盘所对应的虚拟卷zvol 是存在于虚拟机系统中使用3块盘创建的ZFS RaidZ 存储池上的,每个磁盘对于我本本硬盘上的1个虚拟硬盘文件。(ZFS RaidZ 我们可以简单得理解为动态条带的Raid5)

也就是说,实际上我往iSCSI 磁盘上写入1个文件,系统需要先从磁盘上读取数据,再分别往同一款硬盘上的3个虚拟磁盘文件里写入一份数据,每份数据是这个文件大小的1半。其中1份数据还是另外两份数据的校验数据,需要额外的CPU运算。

一开始因为虚拟磁盘控制器用内存做缓冲,所以最初的几秒数据快速的被读取到内存中但并未真正写入磁盘文件,所以看到速率很快(50多MB/s),但是虚拟磁盘控制器所使用的缓冲内存是有限的,我估计这个值是128MB或者是更小的64MB,所以从数据开始真正写入虚拟磁盘文件开始,我的CPU占用率一下上升到了45%,我想我的硬盘应该也是出于一直疲于奔命的状态吧!

另外,真正的写操作并非只涉及到3个虚拟磁盘文件,VirtualBox 虚拟机的快照功能,针对每一个虚拟磁盘都有一个对应的快照文件,
由于VirtualBox 的自动快照功能,这些快照文件是随虚拟硬盘文件中的数据更改在实时更新的!

最后,Solaris 本身的ZFS 自动快照功能也会根据磁盘数据的变化定时生成磁盘数据的增量备份快照。

所以你看,我们简单的往这块iSCSI 磁盘上复制一个文件,其实系统绕了一大圈干了好多的工作,我似乎是在挑战系统性能的极限了!