为啥服务器要做RAID?那就该从RAID是什么开始说起:RAID(Redundant Array of Inexpensive Disks)即廉价磁盘冗余阵列,是将多个磁盘组成一个阵列,使它们在逻辑上成为一个磁盘,从而拥有提高系统的可靠性、安全性、相应速度和提高可用性等特点。数据安全是服务器最基本的需求,但任何磁盘都存在故障的可能性。如果一个磁盘故障,那么将会导致数据的永久丢失或者系统瘫痪。因而,为了保证服务器数据的可靠性和安全性,就需要利用RAID技术来实现数据的冗余存储和备份。
那么,服务器该怎么选择合适的RAID呢?首先,需要优先搞清楚RAID的分类和各自的特点,RAID技术可以分为以下几种:RAID0(条带化)、RAID1(镜像)、RAID5(分布式奇偶校验)、RAID6(双分布式奇偶校验)、RAID10(RAID1+0);在我们的实践里一般常用的是RAID0、RAID1和RAID10。
RAID0又叫“条带化”,是将数据分成块状,依次存储在多个磁盘上,同时利用多个磁盘的读写速度来提高数据访问的速度。但是,RAID0不具备数据的冗余备份功能,一个磁盘故障就会导致数据完全丢失。此方案适用于那些对数据备份要求不高但需要高速读取的服务器,比如说点播服务器,换了磁盘,影片我们还可以重新下发。
RAID1又叫“镜像”,是将磁盘进行镜像复制,通过向两个磁盘同时写入相同的数据,可以实现数据的冗余存储和备份,当其中一个磁盘出现故障时,另外一个磁盘中依旧保留了完整的数据。RAID1实现简单,就是对系统IO的影响比较大,同时磁盘利用率也不高,容量能力与单个磁盘容量相同。此方案整体成本高,但是保险系数高,适用所有服务器类型,保证运行。
RAID10又叫“RAID1+0”,是最为常用的多磁盘方案之一。它是将RAID1和RAID0技术结合起来,将多个磁盘分组,每组内采用RAID1的方式进行备份;然后,在这些RAID1组之间采用RAID0的方式进行条带化,提高系统的读写性能,同时提高数据的冗余备份效果。这个比较土豪,一般用在大型和控制严格的项目上,也适用于所有服务器类型。
说了这三个RAID的好处,本着公平公正、清晰透明的原则,也还得说说他们的缺点,RAID技术的缺点主要有以下几点:
第一个就是数据写入速度比单个磁盘慢,要求高速读写的,就慎重考虑考虑;
第二个就是需要更多的硬件资源,成本较高,一块好磁盘,着实也不便宜;
第三个是RAID技术只能应对硬件层面的故障,无法应对软件或逻辑层面的故障;没有万能的对策,只有万能的问题。
所以做不做RAID,或者说做哪个RAID,其实还是要根据实际情况来的,考虑项目的规模、应用场景的需求、投入的成本等方面。