未分类

服务器磁盘读写性能改善的一些方法(转载)

RAID

RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,真强磁盘的可用性和容错能力。目前服务器级别的计算机都支持插入多块磁盘,通过RAID技术,实现在多块磁盘上的开发读写和数据备份。假设服务器又N块磁盘

RAID0

数据从内存缓冲区写入磁盘时,根据磁盘数量分为N份,这些数据同时写入N块磁盘,使得数据整体写入速度是一块磁盘的N倍。读也是一样,但是不做数据备份,一块磁盘被破坏数据整体就被破坏,不安全。

RAID1

数据写入磁盘的时候,将一份数据同时写入两块磁盘,这样一份被破坏,就可以通过复制的方式自动修复。

RAID10

结合RAID0和RAID1两种方案,将所有磁盘,平均分成两份,数据写入使用RAID0技术同时写入这两份,这样同时实现写入的速度和安全性。

RAID3

一般情况下服务器不会出现同时损坏两块硬盘的情况,所以,将数据分成N-1份,并发写入N-1块磁盘,并在第N块磁盘记录校验数据,这样任何一块磁盘损坏都可以由其他N-1块盘恢复。但是这样会持续读写第N块盘,使得第N块盘比其他盘更加容易损坏。因此这样不可靠,很少使用。

RAID5

将校验数据螺旋地写入所有磁盘,避免重复读写同一块盘。

RAID6

RAID6和RAID6相似,但是是将数据分成N-2块,这样数据就更加安全。 RAID技术可以通过硬件实现,也可以通过软件实现,传统的关系数据库以及文件系统中RAID技术应用比较广,但大型网站比较喜欢使用的NoSQL以及分布式文件系统中,RAID使用较少

HDFS

HDFS是Hadoop分布式文件系统,可以理解为整个集群服务器实现了RAID,所以不需要磁盘实现RAID,当对文件进行处理计算的时候,通过MapReduce并发计算框架,可以启动多个计算子任务,同时读取文件的多个块(block), 在HDFS系统中有两种重要的服务器角色:NameNode(名字服务节点)和DataNode(数据存储节点)。NameNode在整个HDFS中只部署一个实例,提供元数据服务,相当于操作系统中的文件分配表(FAT),管理文件名Block的分配,维护整个文件系统的目录树结构。DataNode则部署在HDFS集群的其他所有服务器上,提供真正的数据储存业务。 和操作系统一样,HDFS对数据存储空间的管理一数据块(Block)为单位,只是比操作系统的数据块(512字节)要大得多,默认为64MB。HDFS将DataNode上的磁盘空间分为N个这样的块,供应用程序使用。 应用程序需要写文件时,首先访问NameNode,请求分配数据块,NameNode根据管理的DataNode服务器的磁盘空间,按照一定的负载均衡策略,分配若干的数据块提供应用使用。 每当应用完成一个块时,HDFS就会将这个数据块再复制两份储存在其他的DataNode上,HDFS默认同一份数据有三个副本。由此来保证数据的稳定性。

Leave a Reply

邮箱地址不会被公开。 必填项已用*标注