在vSphere环境中设置iSCSI
一旦建立起了iSCSI环境,我们就可以开始vSphere的设置。针对软件或硬件initiator,设置的方法会有所不同。我们先来看看软件initiator的设置。
基于软件initiator的设置:vSphere中内建的软件iSCSI initiator被当做一个存储适配器,要启用这个适配器,用户必须在一个vSwitch上(虚拟交换机)创建一个VMkernel端口组。vSphere凭借这个VMkernel接口与iSCSI目标端连接。所有主机与目标存储之间的网络流量都必经过虚拟交换机(vSwitch)上的这个VMkernel接口。每个vSwitch上的VMkernel接口数量可以大于一个。这个VMkernel接口也被用于VMotion、容错(fault-tolerance)日志传输以及连接NFS存储设备。当需要使用VMkernel接口做上面提到的多种用途时,我们强烈建议用户为iSCSI连接创建一个独立的vSwitch,并使用专用的VMkernel接口;而且还应该将两个物理网卡同时绑定到这个vSwitch上,以便保证容错性或实施多路径配置。如果环境中同时拥有多个网卡和多个VMkernel接口,那么应该确保iSCSI VMkernel接口被绑定在正确的那个网卡上。更多信息可参考VMware的iSCSI SAN配置指南。
在设置了vSwitch和VMkernel接口之后,我们就可以配置软件iSCSI适配器了。在vSphere客户端界面选择“配置/存储适配器”,会看到“软件iSCSI适配器”显示出来,选择它,并点击属性配置。在总标签栏(General tab)下,我们可以启用适配器,并配置CHAP认证(强烈建议做CHAP配置)。在动态搜索(Dynamic Discovery tab)标签栏下,我们可以通过添加目标设备的IP地址自动搜索iSCSI目标端设备;另一个方法是通过在静态搜索栏(Static Discovery tab)下,手动输入目标设备的名字,输入这些信息之后,返回到存储适配器的界面,然后点击“重新扫描”按钮进行设备搜索,即可找到我们需要的iSCSI目标端设备。
基于硬件initiator的设置:这个过程与设置软件initiator相似,只是不需要使用VMkernel网络,所以有些步骤可以跳过。TOE适配器是一个特殊的网络适配器,但它却可以在存储适配器界面显示。选择该适配器,单击并设置属性。在这里,属性的设置原则跟软件initiator类似,通过在总标签栏(General tab)、动态搜索(Dynamic Discovery tab)标签栏、静态搜索栏(Static Discovery tab)中输入恰当的信息。需要注意的是,在总标签栏中,我们还需要为TOE适配器分配一个固定的IP地址,因为此时TOE设备并不依赖VMkernel网络。
在设置好initiator之后,应该可以顺利搜索到目标iSCSI存储设备,然后以VMFS卷的格式将其映射给前端主机。具体步骤是选择一个主机,点选“设置标签栏”,然后选择存储,点击“添加存储”之后进入一个向导界面,磁盘类型选择“Disk/LUN”,表示这是一个基于块的存储设备。(如果使用基于网络文件系统的存储设备,则选择添加“NFS磁盘存储设备“)。进入下一个界面,在可用设备列表中选择所需的iSCSI目标端设备,为其添加一个卷名,然后设定块的大小。这个过程走完,我们就完成了新VMFS数据卷的创建,可以随时使用了。
vSphere环境使用iSCSI存储的最佳实践
一旦完成了iSCSI磁盘设备的配置,虚拟机就可以使用它们了。下面罗列的一些关于iSCSI存储系统的最佳实践,有助于我们在使用过程中获得最佳的性能和可用性。
iSCSI存储系统的性能表现与网络的健康程度和利用率密切相关,为了追求最佳的效果,准备一个独立的网络环境,完全隔离iSCSI数据流是必要的。
每台ESX server主机只能配置一个软件initiator。为iSCSI连接配置vSwitch时,可以利用多个物理网络端口形成冗余结构。如果想正确的配置多路径,还要确保VMkernel接口与vSwithc中的网络端口有正确的绑定关系。
确保iSCSI vSwitch的网络端口与一个独立的网络交换机连接,以降低网络单点故障所带来的影响。
vSphere支持存储协议中使用jumbo frames(巨帧),但是jumbo frames的优势只在一些非常特殊的环境中才能发挥出来,比如I / O的尺寸非常大的数据流。此外,后端的存储系统必须能够处理较大的吞吐量,比如RAID组中磁盘的数量大于等于15个,否则我们将看不到任何效果。如果I / O尺寸太小或者磁盘数量不够,那么使用jumbo frames的效果会很差,甚至感觉不到任何性能的提升。在某些环境下,jumbo frames还可能会造成性能的衰减,所以在启用jumbo frames之前和之后做两次性能测试,比较jumbo frames产生的影响是必要的。还有一个需要注意的问题是,整个连接环节中,每一个端到端的组件都必须支持并且打开jumbo frames功能,包括物理网络端口和网络交换机、vSwitch(虚拟交换机)、VMkernel端口、以及iSCSI目标端。其中任何一个环节没有设置jumbo frames,jumbo frames都不会起作用。
使用最新的Paravirtual SCSI总线控制器(PVSCSI)作为虚拟机的磁盘控制器,可以带来最大的吞吐带宽和性能,超过传统上常用的标准LSI Logic以及BusLogic总线控制器。如果I/O的压力很小,那么LSI Logic总线控制器是最佳选择。
设置高级多路径(advanced multipathing)功能可以获得更好的性能,进入iSCSI存储卷的属性界面,点击路径管理,就可以配置路径的选择策略,多路径驱动既可以是VMware自带的,也可以是第三方多路径插件。当使用软件initiator的时候,我们可以在一个vSwitch虚拟交换机上创建两个VMkernel接口,并各分配一个物理网络端口,一个是Active状态,另一个是Unused状态;使用命令“esxcli”将一个VMkernel端口绑定到第一个网络端口,另一个VMkernel端口绑定到第二个网络端口上。用“循环使用(Round Robin)”的路径切换策略代替“修复/最近使用(Fixed or Most Recently Used (MRU))”策略,通常会获得更好的性能。不过,如果虚拟机上运行的是MSCS(Microsoft Cluster Server),则要避免使用“循环策略(Round Robin)”。