目录
7.1 服务器及RAID磁盘阵列介绍
RAID将一组硬盘连结起来,组成一个阵列,以避免单个硬盘损坏而带来的数据损失,同时亦提供了单个硬盘高的可用性及容错性。常见的组合方式有:RAID0、RAID1、RAID5、RAID6、RAID01、RAID10。
7.1.1 RAID0
RAID俗称“条带”,它将两个或多个硬板组成一个逻辑硬盘,容量是所有硬盘之和,因为是多个硬盘组合成一个,故可并行写操作,写入速度提高,但方式硬盘数据没有冗余,没有容错,一旦一个物理硬盘损坏,所有数据均丢失。因而,RAID0适合对数据量大,但安全性要求不高的场景,比如音像、视频文件的的存储等,如图7.1所示。
RAID0 具有低成本、高读写性能、 100% 的高存储空间利用率等优点,但是它不提供数据冗余保护,一旦数据损坏,将无法恢复。 因此, RAID0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。
7.1.2 RAID1
RAID1俗称“镜像”,它最少由两个硬盘组成,且两个硬盘上存储的数据均相同,以实现数据冗余。RAID1读操作速度有所提高,写操作理论上与单硬盘速度一样,但由于需要同时写入所有硬盘,实际上稍微下降。
RAID1 与 RAID0 刚好相反,是为了增强数据安全性使两块 磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。 RAID1 拥有完全容错的能力,但实现成本高。 RAID1 应用于对顺序读写性能要求高以及对数据保护极为重视的应用,如对邮件系统的数据保护。
7.1.3 RAID5
RAID5 最少由三个硬盘组成,它将数据分散存储于阵列中的每个硬盘,并且还伴有一个数据校验位,数据位与校验位通过算法能相互验证,当丢失其中的一位时,RAID控制器能通过算法,利用其它两位数据将丢失的数据进行计算还原。因而 RAID5 最多能允许一个硬盘损坏,有容错性。最常使用的就是RAID5这种方式
RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。 RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
7.1.4 RAID6
RAID6 是在 RAID5 的基础上改良而成的,RAID6 再将数据校验位增加一位,所以允许损坏的硬盘数量也由 RAID5 的一个增加到二个。由于同一阵列中两个硬盘同时损坏的概率非常少,所以,RAID6 用增加一块硬盘的代价,换来了比RAID5 更高的数据安全性
RAID6 不仅要支持数据的恢复,还要支持校验数据的恢复,因此实现代价很高,控制器的设计也比其他等级更复杂、更昂贵。 RAID6 思想最常见的实现方式是采用两个独立的校验算法,假设称为 P 和 Q ,校验数据可以分别存储在两个不同的校验盘上,或者分散存储在所有成员磁盘中。当两个磁盘同时失效时,即可通过求解两元方程来重建两个磁盘上的数据。
RAID6 具有快速的读取性能、更高的容错能力。但是,它的成本要高于 RAID5 许多,写性能也较差,并有设计和实施非常复杂。因此, RAID6 很少得到实际应用,主要用于对数据安全等级要求非常高的场合。它一般是替代 RAID10 方案的经济性选择。
7.1.5 RAID1+0
RAID1+0 是先将数据进行镜像操作,然后再对数据进行分组,RAID1在这里就是一个冗余的备份阵列,而 RAID0则负责数据的读写阵列。至少要四块盘,两块做raid0,另两块做 raid1,RAID 10 对存储容量的利用率和 RAID 1 一样低,只有 50%.
Raid1+0方案造成了 50%的磁盘浪费,但是它提供了 200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同- Raid1 中,就能保证数据安全性、RAID 10 能提供比 RAID5 更好的性能。这种新结构的可扩充性不好
7.2 阵列卡介绍
阵列卡的全称叫磁盘阵列卡是用来做 RAID的。磁盘阵列是一种把若干硬磁盘驱动器按照一定要求组成一个整体,整个磁盘阵列由阵列控制器管理的系统。
7.2.1 阵列卡接口类型
接口类型目前主要有几种:IDE接口、SCS接口、SATA接口和 SAS 接口
- IDE接口
- IDE 的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体"集成在一起的硬盘驱动器。把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容,对用户而言,硬盘安装起来也更为方便。IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。
- IDE 代表着硬盘的一种类型,但在实际的应用中,人们也习惯用 IDE 来称呼最早出现IDE 类型硬盘 ATA-1,这种类型的接口随着接口技术的发展已经被淘汰了,而其后发展分支出更多类型的硬盘接口,比如 ATA、UItra ATA、DMA、Ultra DMA 等接口都属于 IDE 硬盘。此外,由于 IDE 口属于并行接口,因此为了和 SATA 口硬盘相区别,IDE 口硬盘也叫 PATA口硬盘。
- SCSI接口
- SCSl 的英文全称为“Small Computer System Interface”(小型计算机系统接口),是同 IDE 完全不同的接口,IDE 接口是普通 PC 的标准接口,而 SCSI并不是专门为硬盘设计的接口,是一种广泛应用于小型机上的高速数据传输技术。SCSl接口具有应用范围广、多任务、带宽大、CPU 占用率低,以及支持热插拔等优点,但较高的价格使得它很难如IDE硬盘般普及,因此 SCSI硬盘主要应用于中、高端和高档工作站中。SCSI硬盘和普通 IDE硬盘相比有很多优点:接口速度快,并且由于主要用于服务器,因此硬盘本身的性能也比较高,硬盘转速快,缓存容量大,CPU占用率低,扩展性远优于IDE 硬盘,并且支持热插拔。
- SATA接口
- 使用 SATA(Serial ATA)口的硬盘又叫串口硬盘,是目前 PC 硬盘的主流。2001年,由 Intel、APT、Dell、IBM、希捷、迈拓这几大厂商组成的 Serial ATA 委员会正式确立了SerialATA 1.0 规范,2002年,虽然串行 ATA 的相关设备还未正式上市,但 Serial ATA 委员会已抢先确立了 Serial ATA2.0 规范。Seria ATA采用串行连接方式,串行 ATA 总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。
- 串口硬盘是一种完全不同于并行 ATA 的硬盘接口类型,由于采用串行方式传输数据而知名。相对于并行 ATA 来说,就具有非常多的优势。首先,Serial ATA 以连续串行的方式传送数据,一次只会传送1位数据。这样能减少 SATA 接口的针脚数目,使连接电缆数目变少,效率也会更高。实际上,SeralATA 仅用四支针脚就能完成所有的工作,分别用于连接电缆、连接地线、发送数据和接收数据,同时这样的架构还能降低系统能耗和减小系统复杂性。其次,Serial ATA 的起点更高、发展潜力更大,Serial ATA 1.0 定义的数据传输率为150MB/S,这比并行 ATA(即 ATA133)所能达到 133MB/s 的最高数据传输率还高,而在Serial ATA2.0 的数据传输率达到 300MB/S,SATARevision 3.0 可达到 750 MB/s 的最高数据传输率。
- SAS接口
- SAS 是新一代的 SCSI技术,和现在流行的 SeriaI ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。SAS 是并行 SCSI接口之后开发出的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,提供与串行 ATA (Serial ATA,缩写为 SATA)硬盘的兼容性。
- SAS 的接口技术可以向下兼容 SATA。SAS 系统的背板(Backpanel)既可以连接具有双端口、高性能的 SAS 驱动器,也可以连接高容量、低成本的 SATA 驱动器。因为 SAS 驱动器的端口与 SATA 驱动器的端口形状看上去类似,所以 SAS 驱动器和 SATA 驱动器可以同时存在于一个存储系统之中。但需要注意的是,SATA 系统并不兼容 SAS,所以 SAS 驱动器不能连接到 SATA 背板上。由于 SAS 系统的兼容性,IT 人员能够运用不同接口的硬盘来满足各类应用在容量上或效能上的需求,因此在扩充存储系统时拥有更多的弹性,让存储设备发挥最大的投资效益。
- 串行 SCSI是点到点的结构,可以建立磁盘到控制器的直接连接。具有以下特点:
- 更好的性能
- 点到点的技术减少了地址冲突以及菊花链连结的减速:
- 为每个设备提供了专用的信号通路来保证最大的带宽:
- 全双工方式下的数据操作保证最有效的数据吞吐量;
- 简便的线缆连结
- 更细的电缆搭配更小的连接器
- 更好的拓展性
- 可以同时连接更多的磁盘设备
- 更好的性能
7.2.2 阵列卡的缓存
缓存(Cache)是 RAID 卡与外部总线交换数据的场所,RAID 卡先将数据传送到缓存,再由缓存和外边数据总线交换数据。它是 RAID 卡电路板上的一块存储芯片,与硬盘盘片相比,具有极快的存取速度,实际上就是相对低速的硬盘盘片与相对高速的外部设备(例如内存)之间的缓冲器。缓存的大小与速度是直接关系到 RAID 卡的实际传输速度的重要因素,大缓存能够大幅度地提高数据命中率从而提高 RAID 卡整体性能。多数 RAID 卡都配备了-定数量的内存作为高速缓存使用。不同的 RAID 卡出厂时配备的内存容量不同,一般为几兆到数百兆容量不等,这取决于磁盘阵列产品的应用范围。
Write Through 和 Write Back 是阵列卡缓存的两种使用方式,也称为透写和回写。WriteThrough 也是 RAID 阵列卡的默认模式。当选用 wite through 方式时,系统的写磁盘操作并不利用阵列卡的 Cache,而是直接与磁盘进行数据的交互。而 write Back方式则利用阵列 Cache 作为系统与磁盘间的二传手,系统先将数据交给 Cache,然后再由 Cache 将数据传给磁盘。
7.3 构建软RAID磁盘阵列
首先为 linux 服务器添加 4块 SCS| 硬盘,使用 mdadm 软件包,构建 RAID5 磁盘阵列提高磁盘存储的性能和可靠性。
1、构建磁盘阵列
(1)安装mdadm 工具
在 CentOS7.3 系统中mdadm 工具由mdadm-3.4-14.el7.x86 64软件包提供,执行rpm-galgrep mdadm 命令査看系统中是否安装 mdadm 工具。若系统内未安装 mdadm 工具,可使用 RPM 或 YUM 方式安装
(2)准备用于 RAID 阵列的分区
为 Linux 服务器添加 4 块 SCSI 硬盘。使用 fdisk 工具各划分出一块 2GB 的分区,依次为/devsdb1、/dev/sdc1、/dev/sdd1、/dev/sde1,将分区的类型 ID 均更改为 fd。fd 分区类型对应“Linux raid autodetect”,表示支持用于 RAID 磁盘阵列。
下面以/dev/sdb磁盘为例进行分区操作演示
创建完4个分区后,执行fdisk -l |grep '/dev'查看分区结果
(3)创建 RAID 设备
使用 mdadm 命令创建 RAID,执行以下命令即可创建名称为 md0 的 RAID5.。
上述命令中所用到参数的作用如下所示。
- -C:等同于 create,表示新建:
- -v:显示创建过程中的信息;
- /dev/md0:创建RAID5的名称;
- -a,--auto:表示通知mdadm是否创建文件,并分配一个未使用的次设备号,后面跟yes代表如果什么设备文件没有存在的话就自动创建;
- -n:指定使用几块硬盘创建RAID,n4表示使用4块硬盘创建RAID;
- -l:指定RAID级别,l5表示创建RAID5;
- /dev/sd[bcde]1:指定四块磁盘分区
查看RAID5创建结果
(4)创建并挂载文件系统
2、RAID 阵列管理及设备恢复
(1)扫描查看磁盘阵列信息
参数解释:
- D:detail的缩写,打印一个或多个磁盘阵列的详细信息;
- v:对正在发生的事情显示更详细的信息
- s:扫描/proc/mdstat中的阵列设备列表
(2)建立配置文件
为了方便日后启动/停止 RAID 阵列,可以创建一个配置文件来进行管理
(3)启动和停止进行测试
(4)实现故障恢复