网上关于 iSCSI 存储的解释太过专业,第一次接触的朋友理解起来会有一定难度,这里咱们尽量用更平实的语言介绍一下 iSCSI 存储。 zvol创建完成,在卷列表中会显示出新建的虚拟磁盘,如下图。 重中之重,不要忘记在FreeNAS中开启iSCSI服务。
拿硬盘来举例吧,我们都知道,作为一台电脑的主要存储设备,硬盘通过 SATA 线缆连接到电脑主板,继而可以将操作系统和各式应用软件装入其中以供我们使用。移动硬盘也是同理,只要将 USB 线缆列接到电脑上,便把资料在移动硬盘中存取。其实,iSCSI存储的原理几乎相同,但连接方式不是SATA也不是USB,而是网线!
iSCSI 存储通过网络为你的主机提供像硬盘一样的存储设备,也可以称之为“块级存储”。当然,提供给你的肯定不是实物硬盘,而是虚拟硬盘。在 windows 7 上挂接 iSCSI 存储,在使用上你几乎感觉不到它与真实的硬盘有什么差别。平时怎么使用硬盘,就可以怎样使用它,分区、格式化,甚至把 Windows 系统安装在 iSCSI 存储上引导系统启动都没有问题。
通常,在 NAS 存储上构建 iSCSI 存储是最受欢迎的方案,不论品牌 NAS 服务器还是 DIY NAS,几乎都能创建 iSCSI 存储,PS:不支持 iSCSI 功能的网络存储器不是好 NAS !以 FreeNAS 举例,创建 iSCSI 存储的数量没有限制,还可以对已创建的 iSCSI 存储执行动态扩容,给电脑挂载一块无限容量的硬盘,很美妙吧。
硬盘和 iSCSI 存储相比,硬盘不过是独立的一个硬件,本身没有任何数据保护措施,如果产生物理坏道,基本命不久矣。iSCSI 存储则不然,它是在 NAS 存储器各种强大磁盘阵列技术上构建的虚拟硬盘,只要底层的硬件没有彻底损坏,它就不会受任何影响。因此, iSCSI 存储的可靠性更高。
通常,大家会用 NAS 创建 iSCSI 存储,为诸如 VMware EXS(i) 这类虚拟化平台提供存储空间。当然,也有很多企业会采用 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”,本例创建的容量为 8 GiB;
3.Force size:强制设置,通常情况下,如果FreeNAS系统的可用存储空间低于总容量的80%,系统将不允许创建 Zvol 虚拟设备,如果执意要创建,则勾选此项;本例不涉及这种情况,因此保持默认不用勾选;
4.Compression level:压缩级别,一般不需要设置,保持默认Inherit继承即可;
5.Sparse volume:松散卷,与VirtualBox虚拟机中创建虚拟硬盘时选择动态分配或固定分配类似,创建时不会完全占用指定的空间,在使用过程中动态的占用实际的存储空间,官方不推荐这项设置。本例不涉及此项,保持默认不勾选;
6.Block size:块大小,点击高级模式按钮会显示此项,通常,系统会自动选择最优化的设置,如有需要可以据实设置;本例不涉及此项,保持默认设置;
设置完成,点击窗口下方“Add zvol”按钮完成虚拟磁盘创建。
第二步,主菜单点选“共享”,在共享管理界面点击“阻止 (iSCSI)”二级菜单。先查看“Target 全局配置”,如下图所示。这里我们只需要了解一下第一项“Base Name”基本名称,系统默认的基本名称为 iqn.2005-10.org.freenas.ctl这是一个标准的格式,而且使用起来没有任何问题。你也可以根据自己的偏好进行修改,比如把它改成 iqn.2015-02.org.office.istgt 。修改好以后点击下面的“保存”按钮。
第三步,创建“Portal”门户,如下图所示,依次点选,窗口中“IP 地址”这一项下拉列表中选择FreeNAS主机的IP地址即可,选择完成点击“确定”即可。
第四步,“Initiator”发起端授权配置,如下图所示,依次点选。这一步主要用来设置可以访问iSCSI存储的主机和网络,默认两项均设置为ALL,代表所有主机和网络均可访问;
第五步,创建“Target”目标端,如下图所示,依次点选。“Target 名称”可以随意设置,本例为myhhd。“Portal 组 ID”和“Initiator 组 ID”分别对应着第三步和第四步创建的两项ID,直接在下拉列表中选择即可。其他均保持默认,设置完成点击“确定”完成设置。
第六步,创建“Extent”,如下图所示,依次点选。“Extent 名称”可随意设置,本例为 ext。“Extent 类型”选择“设备”,并在“设备”这一项的下拉列表中选择第一步创建的Zvol虚拟硬盘。其他选项保持默认,设置完成点击“确定”完成设置。
第七步,指定“Extent”与“Target”关联,如下图所示,依次点选。“Target”和“Extent”这两项分别对应第五步和第六步创建的目标端和范围,在下拉列表中分别选择即可。点击“确定”完成设置。
经过前面七个步骤的设置,iSCSI存储就已经配置完成了,接下来我们为 Windows 7 系统配置和使用这个块级存储。点击开始菜单,在搜索框中输入 iscsi。点击打开“iSCSI 发起程序”,如下图所示。
在“目标”中输入FreeNAS的IP地址,本例为192.168.1.111,请根据实际信息填写。填写完成,点击右侧的“快速链接”按钮。如下图所示,快速连接中的“已发现的目标”中会显示出iSCSI存储的基本名称 iqn.2005-10.org.freenas.ctl。点击完成按钮。
可以看到iSCSI发起程序中显示我们创建iSCSI存储状态为“已连接”,代表这个块设备已经连接到Windows7主机上了,不信吗?往下看。
开始菜单中鼠标右键点击“计算机”,在弹出菜单中点选“管理”。
在计算机管理工具中点击左侧菜单中的“磁盘管理”,看到了吗,出现了一块容量为8GB未初始化的磁盘。在弹出的初始化磁盘窗口中选择磁盘分区形式,默认MBR即可,点击确定。
鼠标右键点击下图红色箭头起始的位置,在弹出菜单中点选“新建简单卷”
全部“下一步”,直到看到“格式化分区”如下图,“卷标”你可以默认,也可以删除名称,或修改成你喜欢的名称,我这里是直接删除了默认的卷标名称。然后直至“下一步”出现“完成”为止。
以下为对比图总结
创建iSCSI存储看似复杂,实则非常简单,相信大家只要多动手实践,就能明白其中的妙处。教程到此为止,如有疑问请在下方评论框进行提问。