在理想情况下,无论是对于关键业务应用需求,还是对于诸如开发、测试、磁盘到磁盘备份以及灾难恢复等应用需求,当需要更多存储空间时,大家首先想到的就是去购买最新技术的企业级存储设备。但在很多现实的情况下,由
>于预算等方面的原因,购买新设备的欲望往往无法得到满足。所以很多时候,IT人员也不得不针对并不太强大甚至是旧的存储系统来做文章。这里我们就教给大家一些自己动手做iSCSI阵列的方法。
>DIY iSCSI阵列
>如果你的IT架构中有空闲的服务器以及SCSI磁盘柜,那么你就完全可以通过添加一个并不昂贵的iSCSI target程序来把它们配置成为一个iSCSI磁盘阵列。即便你必须购买一些磁盘,估计一个2TB的阵列总共花费也只有大约3万元左右就可以了。你构建的新iSCSI阵列可以运行在Windows或Linux操作系统之上,这样你就可以在你的新服务器上像iSCSI逻辑驱动器一样分配空间给文件服务。
>有的时候你也可以这样DIY阵列来作为一种权宜之计。很多时候,你已经向领导提交了购买新磁盘存储阵列的申请,但在等待领导审批的时候,也许你的Exchange服务器已经没有空间可用了,这时你就可以使用一台服务器、一个SCSI磁盘柜以及一个下载的WinTarget软件副本轻松的将存储添加到服务器上。
>也许你会觉得通过一台服务器来构建iSCSI磁盘阵列的做法有些古怪。其实很多市场上的iSCSI磁盘阵列产品,包括诸如LeftHand Networkl和MPC等一些著名厂商的产品,都是使用了标准的Xeon主板。自然,基于服务器的阵列并不具备冗余的磁盘控制器,但是一个好的RAID控制器和iSCSI target软件的组合,同样能够实现与品牌产品性能相当的iSCSI阵列。
>一旦你将iSCSI target软件加入到一台Windows或Linux服务器,你就可以创建逻辑磁盘或LUN(Logical Unit Numbers,逻辑单元数)。大多数拥有企业级磁盘阵列的人都会创建RAID设置,然后划分为很多个LUN给他们的服务器,它们都有权访问底层的操作系统,这提供了很大的灵活性。大多数的iSCSI target软件都允许你创建虚拟的LUN作为你服务器上面现有文件系统的文件对象(file object),或者将一个卷、分区或其他没有格式的磁盘空间转变为LUN。
>文件LUN可以充分利用诸如压缩(compression)、快照(snapshots)等特性,你也可以使用第三方的程序(如Double-Take或WANsync)来做复制(replication)。当主机服务器的卷都已经被添满后,你只要通过简单的几次鼠标点击就可以扩展一个基于文件的LUN,而扩展一个分区或物理磁盘却是一项相比大得多的工程。特别是,如果你想在自己的开发环境中尝试一种自制的iSCSI阵列,那么基于文件的LUN是非常适合的,而且从测试服务器上删除你不再使用的LUN还可以获得很多的自由空间。
>从更底层来分析,通过主机操作系统的文件系统来运行你的iSCSI I/O所带来的附加代价是——基于文件的LUN会比分区LUN更慢。尤其是当你为了其他文件或LUN而使用你的基于文件的LUN卷时,这种情况会更明显。精简自动配置(thin provisioning)可以让你在一个5TB的磁盘阵列中创建出10个1TB的LUN,因为它只有在写入内容的时候才使用磁盘空间。尽管可以通过使用LUN装载稀少的文件,来使得你自制的阵列模拟高端SAN阵列的精简自动配置特性,而且这好像也很有诱惑力,但我们的忠告是——这将会创建出非常碎小的LUN文件,并且对性能会有较大影响。
>而且,在文件LUN数据上使用其他的文件系统过滤器(如防病毒软件或CDP应用等),也不是什么好主意。防病毒程序会将LUN数据误解为病毒,从而使得你的系统运行如同蜗牛一样慢。举例来说,如果你服务器的G卷是LUN,有使用者将感染病毒的文件存放到该驱动器中,而iSCSI服务器上又装有防病毒软件,那么整个G驱动器将会被检查隔离,而不仅仅是被感染病毒的文件。所以,如果你使用单个的卷来做文件服务或基于文件的LUN,你最好是想办法不要让文件LUN接受病毒扫描,而只在装备LUN的服务器上运行防病毒程序。
>市场上各厂商销售的阵列都是运行各自的私有软件,它们一般不会轻易受到日常病毒、蠕虫等的影响,这种固件升级之间的间隔时间要比Windows服务器补丁之间升级间隔长很多。另外,由于当你对自制的阵列进行补丁修补的时候,你必须关掉所有主机服务器使用的逻辑驱动器,所以这也就意味着你使用自制阵列会比使用市场上买到的专职阵列具有更长的停机维护时间。
>自制的iSCSI安全吗?
>尽管iSCSI规范定义了如何使用IPsec在加密的链接上发送协议,但是大多数厂商并没有实现这一选项功能部分。如果你使用在TCP/IP堆栈中支持IPsec的Windows Server或Linux分发来构建iSCSI阵列,那么iSCSI target软件将会使用那个堆栈,IPsec就可以对在你的服务器和磁盘阵列之间传输的数据进行加密,或者可以通过验证证书授权的形式来确保只有那些应该访问磁盘阵列上LUN的服务器才能够访问,这比通常的CHAP(Challenge-Handshake Authentication Protocol,挑战握手验证协议)鉴定要更具有安全性。
>不过,IPsec的缺点是,所有的加密和解密都要吞噬CPU频率周期。我们使用于iSCSI减负载的TOE以及iSCSI HBA等并不支持IPsec减负载(IPsec off-load)。尽管包括Intel和3Com在内的主要网卡厂商都已经使得10/100安全NIC支持IPsec,但我们在市场上能见到的千兆以太网(G