随着低成本硬件和简单管理需求的提高,SAN技术又焕发了第二春,而在现有的以太网上传输存储流量似乎是个好主意。
但是,随着iSCSI技术从诞生以来逐渐成熟――在多种环境中都表现良好――变换协议并不总是正确的选择。有许多因素需要考虑,而这些细节经常是部署iSCSI成功与否的关键所在。
以太网的局限
任何一个SAN所面临的最大困难都是把所有东西连接到一起的网络架构。对iSCSI来说,这个挑战就是以太技术本身。
千兆以太网络看起来似乎很不错,理论上能提供很大的带宽:将网络堆栈和操作系统的瓶颈考虑在内的话,实际可提供的带宽大约是100-120Mbps左右。
以太技术的另一个问题就是它的低效。它设计的理念以握手对话为基础,以太网需要验证每个数据包的发送,并且按惯例重复发送即将丢弃和损坏的数据包。在一个拥有众多用户、需要在许多服务器上访问各种应用的繁忙的公司网络中,很容易看到那些活动的网络流量如何消耗带宽并造成延时。再加上那些查询数据库带来的流量、流媒体、文件存储/加载和其它存储访问,最终结果都是数据传输竞争非常厉害。尽管我们可以通过将网络分段组成合理的架构来限制对存储流量的影响,所有的存储数据仍然还是需要从用户处传输过来再返回。
潜在的带宽压力在虚拟服务器的环境中被再一次放大,以太物理机上运行多台虚拟机。尤其是当服务器提供多个以太口,每个端口都被多台虚拟机共享的情况,会对服务器I/0端口产生更大的带宽需求,严重时将使交换机达到性能极限。当你将这个情况和端口上每个虚拟机带来的存储流量结合起来看时,就会发现网络性能将慢得像蜗牛。实用加载TOE的以太网可能会在某种程度上有所帮助,但是一般来说增加以太网卡会比迁移到TOE版本网络更容易些(也更便宜)。迁移到性能更高的交换机也许能提高瓶颈。
基于这些限制有可能造成的结果,在迁移到iSCSI前,预估关键点位上的带宽和延时就非常重要了。为了支持iSCSI存储流量,可能需要变更网络。比如,针对专用服务器和交换机配置大数据帧,将千兆网络分段和限制iSCSI流量都是可行的操作。另一种方法是利用软件来部署a10千兆以太网,可以有效解决问题(10G级别的以太网络实施成本还是相当高的)。
在决定正式部署前,在实验室里测试iSCSI运行性能也十分有必要。通过磁盘性能检测工具来测试存储效率,如Bonnie++1.96,IT可以对比iSCSI性能和当天使用的存储性能,看哪个效率更高一些。这也能让他们清楚在iSCSI初始化之后通过更改参数(缓存大小,帧大小等)能对性能有多大的影响。Windows管理员可以使用诸如Performance Monitor(PerfMon)等的工具来监控多个物理磁盘的工作状态。
驱动和固件的考虑
一般用驱动程序就可以同时启用iSCSI启动器(客户端系统)和iSCSI目标(存储设备)。因为他们会大大影响设备的性能和互用性,通常最好的办法是为操作系统选用最新版本的驱动程序。
通常windows 平台的iSCSI驱动都会比较受重视,相对而言,Linux系统和其它平台操作系统下的驱动就没这么丰富了。再强调一次,部署前在实验室里的测试运行能提前解决掉那些潜在问题并帮助IT选择合适的驱动版本。记得检查并更新网卡,iSCSI控制器和iSCSI存储系统的固件版本。
安全问题
典型的iSCSI采用明文协议,对传输的数据没有任何加密措施。结果是,黑客可以监听采用iSCSI传输的网络而盗取文件,或者通过替换出入iSCSI数据帧来更改文件内容,还有可能破坏文件系统而造成更多的攻击――和任何基于IP的SAN协议所有的漏洞都相似。
为了防止这些潜在安全问题,windows管理员在部署iSCSI前应该充分考虑几个可能的状况。首先是采用一定程度的网络分段来限制在主干网络上传输的存储流量。另一种经常采用的办法是让在客户端和服务器之间传输的存储数据采用虚拟私有网络来运行。这可以有效防止黑客对存储数据的“嗅探”。另外,考虑使用加密技术来增强数据安全级别也是个好办法,这可以防止黑客通过内容来攻击,哪怕是在压缩的情况下。