龙空技术网

Elasticsearch性能调优(6):服务器硬盘的选择和设置

贵哥说Java创业 114

前言:

此时姐妹们对“服务器选择方案怎么选”都比较珍视,朋友们都需要知道一些“服务器选择方案怎么选”的相关知识。那么小编在网摘上搜集了一些对于“服务器选择方案怎么选””的相关资讯,希望同学们能喜欢,同学们快快来了解一下吧!

对于elasticsearch集群来说,硬盘的性能是非常重要的,特别是对于有大量写请求的业务场景(例如存储日志数据的集群)。因为硬盘一般是服务器上最慢的子系统,这意味着那些写入量很大的集群很容易让硬盘饱和,使它成为集群的瓶颈。

所以,如果条件允许,则请尽可能地使用SSD,它的读写性能将远远超出任何旋转介质的硬盘(如机械硬盘、磁带等)。基于SSD的elasticsearch集群节点对于查询和索引性能都有提升。

磁盘阵列(Redundant Array of Independent Disks,RAID)是一种把多块独立的磁盘按照不同方式组合起来形成一个磁盘组,提供了比单个磁盘更好的存储性能和数据备份技术。我们将组成磁盘阵列的不同方式称为RAID级别。在提供数据镜像的磁盘阵列中,用户的数据一旦发生了损坏,则可以利用备份信息把损坏的数据恢复,从而保障了用户的数据的安全性。

在用户看来,这个组成的磁盘组就像一个磁盘,用户可以对它进行分区、格式化等。总之,对磁盘阵列的操作与单个磁盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘快很多,而且可以提供自动数据备份。

RAID技术经过不断的发展,现在已拥有了从RAID0到RAID6这7种基本的RAID级别。另外,还有一些基本的RAID级别的组合形式,例如RAID10(RAID0与RAID1的组合)、RAID50(RAID0与RAID5的组合)等。不同的RAID级别代表不同的存储性能、数据安全性和存储成本,但最常用的是以下几种。

RAID0:最少需要两块磁盘,其原理是把连续的数据分散到多个磁盘上进行读写操作,这样,系统有数据请求时就可以被多个磁盘并行执行,每个磁盘执行属于自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提升磁盘的整体存取性能。因为这种模式没有冗余数据,不做备份,任何一块磁盘损坏都无法运行,所以拥有n块磁盘(同类型)的阵列在理论上读写速度是单块磁盘的n倍,但风险性也是单一磁盘的n倍。所以,RAID0是磁盘阵列种存储性能最好的,但也是安全系数最小的,所以这种模式适用于对安全性要求不高的大批量写请求场景。RAID1:通过磁盘数据镜像(备份)实现数据冗余,在成对的独立磁盘上产生互为备份的数据。因为RAID1在写数据时,需要分别写入两块硬盘中并做比较,所以在RAID1模式下写数据比RAID0慢很多,并且两块硬盘仅能提供一块硬盘的容量,所以也会造成很大的资源“浪费”。但是在读数据时,可以在两块磁盘的任意一块读取,可提升读的性能,数据的安全性也会大大提升,因为只要有一对磁盘没有同时损坏,就可以正常使用。RAID10:为RAID0和RAID1的组合模式,至少需要4块磁盘,既有数据镜像备份,也能保证较快的读写速度。缺点是成本较高。RAID5:至少需要3块磁盘,不对数据进行备份,而是把数据和与其对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和对应的数据分别被存储在不同的磁盘上。当RAID5的一个磁盘数据发生损坏时,可利用剩下的数据和相应久校验信息去恢复被损坏的数据。所以可以将RAID5理解为RAID0和RAID1的折中方案。RAID5可以为系统提供数据安全保障,但保障程度比RAID1低,磁盘空间利用率要比RAID1高。RAID5具有和RAID0相近的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作要稍慢。同时,由于多个数据对应一个奇偶校验信息,所以RAID5的磁盘空间利用率要比RAID1高,存储成本相对较低,是目前运用较多的一种解决方案。

因为在elasticsearch集群中分片一般都有备份,并且elasticsearch的原始数据都来自于关系型数据库或者日志文件,所以数据的安全性显得并不是那么重要。所以无论是使用固态硬盘还是使用机械硬盘,我们都建议将磁盘的阵列模式设置为RAID0,以此来提升磁盘的写性能。

标签: #服务器选择方案怎么选