build议:为虚拟化存储configuration10GbE NAS堆栈

我会尽我所能去努力,所以它不被视为一个购物清单。

通过HP MSA2012fc入门套件(采用基于Brocade的HP Class B SAN交换机),我们已经成功运行开发/testingESXi环境一段时间,并安装了几台Dell PE2950III服务器。 这对我们来说工作得非常好,但是在开发/testing中,它提供了关于正常运行时间/性能的各种警告。

无论如何,开发/testing平台所取得的成功已经促使人们要求更多的“生产就绪”的虚拟化平台。 我们现在正在起草这些build议。

然而,现有堆栈中的一个抱怨是缺乏对其他虚拟化技术(HyperV,Xen等)的支持,因为SAN LUN被完全分配和格式化为VMFS。 这是我们被告知需要克服的问题,但是,通常情况下,没有迹象表明HyperV / Xen被采用(我们并不是特别想浪费“昂贵的”存储资源,通过分配LUN来达到这个目的将不会被使用)。

因此,我们目前的思路是放弃传统的光纤SAN,转而使用10GbE交换机(可能是高端的HP ProLiant DL380p Gen8),运行NFS和Samba / CIFS守护进程Cisco Nexus 5000/5500系列)。

理由是,ESXi负责人可以谈论NFS,而HyperV负责人可以谈论CIFS,但两者最终都指向相同的XFS / RAID1 + 0卷。

现在,我还不够绿色,认为10GbE能够让磁头和磁盘之间的I / O吞吐量真正达到10吉比特,但我不知道从期望看到的各种开销NFS和CIFS实现(以及在多个主机尝试与之通信时可能会发生的任何其他位)。

尽pipe如此,我希望至less能够接近直连磁盘的持续磁盘读/写速度,尽可能多的主机。 看到各种驱动器制造商的网站,我大致预计这是在140-160MB / s的标记(如果我走了,请让我知道)。

什么build议/准则/进一步阅读任何人都可以提供有关Linux / NFS / Samba或10GbE交换机configuration, 可能有助于实现这一点?

我明白从纯块存储转向更灵活的愿望。

但是,如果现在有几种存储设备软件产品可用,我将避免使用直接的Linux存储堆栈。 Linux方法可以工作,但缺乏pipe理特性/支持,XFS调整( 这里和这里 )以及它不是专用存储操作系统的事实都是缺点。

除此之外,XFS / RHEL代码维护者的一些烦人的问题以及一个影响系统平均负载的令人讨厌的内核错误,以及您描述的Linux组合变得不太吸引人。

一个纯粹的Linux 可以用来达到这个目的,但是这个设置肯定会超出规范,并且可能会使用深奥的解决scheme,比如Linux上的ZFS或者没有准备好的黄金时段的 Btrfs 。 以后的更多细节。

我经常这样做,select在基于ZFS的存储上使用NFS,而不是像HP P2000arrays这样的入门级SAN。 我使用L2ARC(读取)和ZIL(写入)SSD和DRAMcaching设备来扩充ZFS安装。 另外,我已经使用10GbE这种types的设置了四年。

目前我将专注于NexentaStor ,因为这是我大部分时间使用的设备软件。

我已经构build了许多基于HP ProLiant的ZFS存储系统,从一体化的VMware主机到独立的DL380存储“设备”,到完整的多pathSAS连接到级联存储JBOD单元( 前面和后面 )。

NexentaStor和NFS / CIFS。

Nexenta支持将文件和数据块存储到外部系统。 我可以使用24个磁盘池,并为需要本地数据块存储的主机提供iSCSI存储,为我的VMware ESXi基础架构提供NFS,向less数Windows客户端提供CIFS。 这个空间被有效利用,并被雕刻出游泳池的存储空间。 如没有人造盖帽。 压缩是透明的,并且在虚拟机场景中有很大的帮助(在线路上移动较less)。

10GbE可以帮助您,但这取决于您向虚拟化主机展示的内容。 他们会成为1GbE还是10GbE?

基准:

我将运行通过10GbE连接到NexentaStor SAN的ESXi主机上运行的访客虚拟机的快速testing。

这是一个6磁盘arrays。 (在HP D2600机箱 – 600GB 15k SAS中)

[root@Test_VM /data]# iozone -t1 -i0 -i1 -i2 -r1m -s6g Iozone: Performance Test of File I/O Run began: Mon Feb 11 18:25:14 2013 Record Size 1024 KB File size set to 6291456 KB Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s6g Output is in Kbytes/sec Children see throughput for 1 initial writers = 128225.65 KB/sec Children see throughput for 1 readers = 343696.31 KB/sec Children see throughput for 1 random readers = 239020.91 KB/sec Children see throughput for 1 random writers = 160520.39 KB/sec 

这是一个繁忙的16磁盘arrays(在HP D2700机箱 – 300GB 10k SAS)。

 [root@Test_VM2 /data]# iozone -t1 -i0 -i1 -i2 -r1m -s4g Iozone: Performance Test of File I/O Run began: Mon Feb 11 16:33:53 2013 Record Size 1024 KB File size set to 4194304 KB Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s4g Output is in Kbytes/sec Children see throughput for 1 initial writers = 172846.52 KB/sec Children see throughput for 1 readers = 366484.00 KB/sec Children see throughput for 1 random readers = 261205.91 KB/sec Children see throughput for 1 random writers = 152305.39 KB/sec 

来自同一运行的I / Ographics千兆/秒和IOPS度量。

在这里输入图像描述

使用为Hyper-V主机提供CIFS存储的Linux主机是不合理的,并且绝对不被Microsoft支持。 当您谈论像关键业务基础架构虚拟化一样重要的事情时,您肯定希望获得供应商支持。

您将需要为Hyper-V服务器提供更传统的iSCSI或光纤通道存储,或者如果您计划运行Windows 2012,则可以使用Windows 2012存储服务为您的主机提供iSCSI。

另一种可能是运行Windows 2012或Nexenta作为VMWare基础架构中的虚拟客户,为您的Hyper-V guest虚拟机提供iSCSI。 这不是最高性能的configuration,但它也不错。 由于您的Hyper-V占用空间很小,因此无需专用LUN即可达到最大的灵活性。

否则,您需要完全虚拟化您的LUN,如HP LeftHand SAN。 使用LeftHand,磁盘不专用于LUN。 相反,所有LUN都是分散在所有磁盘上的。 这听起来有点奇怪,但它是一个很好的产品。

这可能部分是因为我在这里的背景和经验,但我不推荐自制的服务器解决scheme来存储可能被视为“生产”或“企业”环境的虚拟机。

我正在考虑可以提供SAN解决scheme的主stream存储供应商,但有一对高可用性NAS负责人以受支持的,可authentication的方式将基础文件系统作为NFS / CIFS导出。