Linux下RAID技术
- 软件RAID技术
- RAID0/RAID1/RAID5
- LVM逻辑卷磁盘管理
- PV/VG/LV
- 整合RAID和LVM的磁盘存储策略
RAID原理
- RAID是一种把多个独立的硬盘按照不同方式组合起来形成一个磁盘组,从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。不同的组织方式组成不同的RAID级别(RAID Levels).
- 数据冗余的功能是在用户数据一旦发生损坏后,利用冗余信息可以使损坏数据得以恢复,从而保障了用户数据的安全性.
- 在用户看来,组成的磁盘组就像是一个独立的整体的硬盘,对磁盘阵列的操作与单个硬盘一模一样.
RAID级别
- 目前共有7种基本的RAID级别
- 常用RAID级别是level0,level1和level5
- Linux系统中目前以MD(Multiple Devices)虚拟快设备的方式实现软件RAID,但只支持级别0,1,4,5,6,10等不同的冗余级别和组成方式,当然也能支持多个RAID阵列的层叠组成RAID1+0,RAID5+1等类型的阵列.
RAID0
RAID0通过把连续的数据拆分为区块分别写入各个磁盘上来提高存储性能,数据请求就可以被多个磁盘执行属于他自己的那部分数据请求。这种数据上的并行操作可以充分利用总路线的带宽,显著提供磁盘整体存取性.
RAID1
- RAID1它的宗旨是最大限度的保证用户数据的可用性和可修复性.
- RAID1是把用户写入硬盘的所有数据百分之百地自动复制到另外一块硬盘上.
RAID5
- RAID5不对存储的数据进行备份,而是把数据和相对应的校验数据存储到组成RAID5的各个磁盘上,并且校验数据和相对的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相对应的校验数据区恢复被损坏的数据.
RAID0+1
- 是RAID0和RAID1的组合方式,也叫做RAID10
mdadm管理软件RAID
- 在流行的Linux的发布版本中,如fedroaCore,centos,ubuntu,debian,suse linux系统中一般已经将MD驱动模块直接编译到内核中或编译为可动态加载的驱动模块。我们可以在机器启动后通过cat /proc/mdstat看内核是否已经加载MD驱动或者cat /proc/devices是否有md块设备,并且可以使用lsmod看MD是否是以模块形式加载到系统中.
- 如果Linux系统既没有将MD编译到内核也没有自动加载MD模块,则没有/proc/mdstat文件,那么需要执行命令modprobe md加载驱动模块.