如何利用RAID技术保障服务器无故障运行

问:作为一名社区学院的技术人员,我正在考虑对我们的IT基础架构进行升级。我打算使用Microsoft的Hyper-V来部署虚拟化环境,淘汰一些独立的服务器。目前我拥有一个4TB的NAS存储系统,它也同时支持iSCSI,而且可以用于测试。我想部署一个由两台Windows Server 2008 R2组成的集群,基于iSCSI存储。但是我有一些问题想咨询。

首先,iSCSI是否支持像RAID一样被分区?我所拥有的这台支持iSCSI的NAS设备不允许通过iSCSI协议访问RAID之上的数据。所以,我如果建立一个3TB的Raid组,那么通过iSCSI方式就只能访问剩余的那1TB的空间。这种做法在更加高端一些的iSCSI存储中是否存在呢?我推断应该是不存在的。

还有,在我当前的基础架构中,iSCSI存储是一个单点故障点,在一个需要保证99%可靠度的服务器网络中,我很担心这一点。所以,有没有办法能够将两台iSCSI存储做成一个Cluster呢?如果不行,那么我应该怎么解决iSCSI存储单点故障导致的服务器不可访问的问题呢?

答:首先,说法有些问题。确实存在既支持NAS(NFS和 CIFS)又支持iSCSI协议访问的存储设备,但是并不存在所谓的"iSCSI NAS"。你其实是同时在使用iSCSI(块级别)和NAS(文件级别)的访问方式来访问存储系统。例如,像Microsoft Exchange这样的应用程序可能使用iSCSI的块级别访问方式来访问一个存储系统所提供的LUN,而这个LUN同时又被这台存储系统用来存放NFS 和CIFS数据,尽管这台存储系统的其他分区被用于其它服务器的文件系统存储空间。

类似的,底层的存储系统依赖于RAID来对磁盘故障进行保护,这方面,不同的厂商有不同的配置参数。有些方案可以允许配置成RAID1(镜像),其他的存储系统可能允许配置成RAID5(条带加校验),其他可能还允许被配置为RAID6(双校验)。

底层的存储空间被抽象为LUN或者Volume,然后通过块接口提供给服务器进行访问,块接口包括:SAS、 iSCSI、FC、FCoE等等,或者通过某种文件系统来提供给服务器访问,这就是NAS方式了。

假设,你的系统有12块512GB的磁盘,你可以创建一个3TB的RAID5组(6 x 512GB+1校验盘),然后将整个RAID组抽象成一个LUN。此时你还剩下一个1TB的RAID1组(4 x 512GB),和一块Hot Spare热备盘。为了高性能,你可以使用15K转速的SAS磁盘来创建供iSCSI访问的LUN,然后用7.2K转速的SAS或者SATA盘来作为NAS访问空间。

至于iSCSI存储的单点故障问题,那取决于你使用了什么存储系统,它是如何被配置的。大多数的用于小型企业的存储系统提供了SAS、iSCSI、FC或者NAS功能,而且具有双冗余控制器、电源、风扇、热备磁盘选项、快照以及多RAID级别支持。所以,它们可以被配置为具有高冗余性的方式,从而避免单点故障。如果你担心整个存储设备称为一个单点故障,那么你可以在两个独立的存储系统之间实现数据的镜像或者复制以保证更高的可用性,但是随之而来的是成本也会升高。