GetNAS Logo

FreeNAS 块级存储 iSCSI 使用入门

2015-2-5 22:29 Herald 存储管理 3,953

构建iSCSI存储,FreeNAS是一把好手,本文以为Windows 7系统连接iSCSI存储为例,向大家介绍如何在FreeNAS中创建和管理iSCSI块级存储。

虽然 iSCSI 协议早在 2003 年就已经发布,但时至今日它的热度始终没提高多少,相信大部分朋友都对他不是很了解。如果你的确是第一次听说这个技术,可以百度一下,保证你看完以后一头雾水,什么指令集啊、路由选择啊、IP存储交换资料啊。哎,想想都头大。为此,笔者特别发文一篇《什么是 iSCSI 存储?》,送给第一次接触iSCSI存储的你,敬请查阅不用客气。

现在进入正题,不过在开始之前…

创建iSCSI存储必须了解的一些概念

  1. CHAP:它是一种身份认证方法,使用一个共享秘钥和三向认证来确定是否授权系统访问存储设备,同时会周期性的重复确认会话是否被其他系统劫持。在 iSCSI 中,CHAP 身份认证initiator (客户端)执行。
  2. Mutual CHAP(双向 CHAP):CHAP 的超集,服务端和客户端互相通信验证,进一步请百度。
  3. Initiator(发起端/客户端):把被授权访问 FreeNAS 块级存储的客户端称作 Initiator。该客户端系统需要安装 initiator 发起程序才能连接 iSCSI存储。
  4. Target(目标端/服务端):FreeNAS 系统上的存储资源称为 Target。每个 target 都有唯一的名称,这个名称被称为 IQN(iSCSI Qualified Name)。
  5. Internet Storage Name Service (iSNS) 网络存储名称服务:是一种通过 TCP/IP 网络自动发现 iSCSI 设备的协议。
  6. Extent(范围?):iSCSI共享的存储空间,就像CIFS共享需要指定数据集一样,iSCSI共享需要指定Extent作为存储空间,通常在卷中创建Zvol虚拟磁盘用于Extent。
  7. Portal(门户/入口): 监听连接请求的 IP 地址和端口。
  8. LUN:逻辑单元号,用来标识 SCSI 逻辑存储设备。iSCSI 的工作方式是这样的,Initiator 发起端与 Target 目标端协商建立一个到 LUN 的模拟连接,Initiators 发起端会把 iSCSI LUN 视为原生的 SCSI 硬盘或 IDE 硬盘。注意,如果创建了多个 iSCSI LUN,则需要为每个 LUN 分别创建新的 target。

创建最简单的iSCSI存储

FreeNAS创建iSCSI看似复杂,其实只要创建一次就会发现整个过程很有规律,并没有想象中那么难。接下来,我们一起创建一个不带身份验证的iSCSI存储,并将其附加到Windows 7系统上使用。

创建过程分为以下7个步骤(步骤虽多,但每一步都非常简单):

  1. 在存储菜单中创建一个Zvol虚拟磁盘,该磁盘将用于Extent设置;
  2. 检查Target目标端全局配置;
  3. 创建“Portal”门户;
  4. “Initiator”发起端授权配置;
  5. 创建“Target”目标端;
  6. 创建“Extent”;
  7. 指定“Extent”与“Target”关联;

开始吧,先创建一个Zvol虚拟磁盘。如下图所示,主菜单点选“Storage”存储,点选“Volumes”卷子菜单,在卷列表中选择Zvol要创建在哪个数据集上,然后点击下方的“Create zvol”创建Zvol按钮。在弹出窗口中输入zvol相关信息:

  1. zvol name:虚拟磁盘的名称,可以随意设置,本例名称设置为 getnas
  2. Size for this zvol:设定虚拟磁盘的容量,注意不要忘记添加单位“GiB”,本例创建的容量为 10 GiB
  3. Force size:强制设置,通常情况下,如果FreeNAS系统的可用存储空间低于总容量的80%,系统将不允许创建 Zvol 虚拟设备,如果执意要创建,则勾选此项;本例不涉及这种情况,因此保持默认不用勾选;
  4. Compression level:压缩级别,一般不需要设置,保持默认Inherit继承即可;
  5. Sparse volume:松散卷,与VirtualBox虚拟机中创建虚拟硬盘时选择动态分配或固定分配类似,创建时不会完全占用指定的空间,在使用过程中动态的占用实际的存储空间,官方不推荐这项设置。本例不涉及此项,保持默认不勾选;
  6. Block size:块大小,点击高级模式按钮会显示此项,通常,系统会自动选择最优化的设置,如有需要可以据实设置;本例不涉及此项,保持默认设置;

设置完成,点击窗口下方“Add zvol”按钮完成虚拟磁盘创建。

20150205205922

zvol创建完成,在卷列表中会显示出新建的虚拟磁盘,如下图。

20150205211811

第二步,主菜单点选“Sharing”共享,在共享管理界面点击“Block (iSCSI)”二级菜单。先查看“Target Global Configuration”目标端全局配置,如下图所示。这里我们只需要了解一下第一项“Base Name”基本名称,系统默认的基本名称为 iqn.2011-03.org.example.istgt 这是一个标准的格式,而且使用起来没有任何问题。你也可以根据自己的偏好进行修改,比如把它改成 iqn.2015-02.org.office.istgt 。好吧,既然提到了,我们就把基本名称改成它,修改好以后点击下面的“Save”保存按钮。

基本名称格式:iqn.<date>.<domain>.<name>.istgt

20150205212140

第三步,创建“Portal”门户,如下图所示,依次点选,窗口中“IP Address”这一项下拉列表中选择FreeNAS主机的IP地址即可,选择完成点击“OK”确定即可。

20150205213506

第四步,“Initiator”发起端授权配置,如下图所示,依次点选。这一步主要用来设置可以访问iSCSI存储的主机和网络,默认两项均设置为ALL,代表所有主机和网络均可访问;

20150205213754

第五步,创建“Target”目标端,如下图所示,依次点选。“Target Name”目标端名称可以随意设置,本例为myone。“Portal Group ID”和“Initiator Group ID”分别对应着第三步和第四步创建的两项ID,直接在下拉列表中选择即可。其他均保持默认,设置完成点击“OK”完成设置。

20150205214256

第六步,创建“Extent”,如下图所示,依次点选。“Extent Name”范围名称可随意设置,本例为 myext。“Extent Type”范围类型选择“Device”设备,并在“Device”设备这一项的下拉列表中选择第一步创建的Zvol虚拟硬盘。其他选项保持默认,设置完成点击“OK”完成设置。

20150205215028

第七步,指定“Extent”与“Target”关联,如下图所示,依次点选。“LUN ID”这一项可以选择“Auto”自动,也可以在列表中选择确定的LUN ID号,本例选择自动。“Target”和“Extent”这两项分别对应第五步和第六步创建的目标端和范围,在下拉列表中分别选择即可。点击“OK”完成设置。

20150205215436

重中之重,不要忘记在FreeNAS中开启iSCSI服务。

20150205220252

经过前面七个步骤的设置,iSCSI存储就已经配置完成了,接下来我们为 Windows 7 系统配置和使用这个块级存储。点击开始菜单,在搜索框中输入 iscsi。点击打开“iSCSI 发起程序”,如下图所示。

20150205215948

在“目标”中输入FreeNAS的IP地址,本例为192.168.1.111,请根据实际信息填写。填写完成,点击右侧的“快速链接”按钮。

20150205220414

如下图所示,快速连接中的“已发现的目标”中会显示出iSCSI存储的基本名称 iqn.2015-02.org.office.istgt。点击完成按钮。

20150205220441

可以看到iSCSI发起程序中显示我们创建iSCSI存储状态为“已连接”,代表这个块设备已经连接到Windows7主机上了,不信吗?往下看。

20150205220821

开始菜单中鼠标右键点击“计算机”,在弹出菜单中点选“管理”。

20150205221047

在计算机管理工具中点击左侧菜单中的“磁盘管理”,看到了吗,出现了一块容量为10GB未初始化的磁盘。

20150205221317

鼠标右键点击下图红色箭头起始的位置,在弹出菜单中点选“初始化磁盘”

20150205221552

在弹出的初始化磁盘窗口中选择磁盘分区形式,默认MBR即可,点击确定。

20150205221706

参照下方动态图片,创建分区。

20150205221856

总结

创建iSCSI存储看似复杂,实则非常简单,相信大家只要多动手实践,就能明白其中的妙处。教程到此为止,如有疑问请在下方评论框进行提问。

本文为GetNAS.com原创,版权归上海炬树信息科技有限公司所有,未经书面授权禁止转载。

授权转载请注明来源:https://www.getnas.com/2015/02/670.html

分享按钮