Raid早期叫廉价冗余磁盘阵列,发展到如今也不廉价了,因此叫独立磁盘冗余阵列,他的主要目的是提升读写性能和容错能力,而RAID的主要思想是把多个相对廉价的硬盘接起来,组成一个硬盘阵列,让操做系统看起来只有一个盘,从而提高磁盘的读写性能以及容错能力.服务器
RAID又分为软RAID和硬RAID,软RAID实际上就是利用软件模拟出RAID,因此软RAID对系统的提高不明显,由于软RAID的控制基于主机上的cpu,他的读写都要通过CPU的控制,而硬RAID基于RAID自己的控制芯片.ide
而他们又分为RAID0,RAID1,RAID4,RAID5,RAID6,RAID1-0,RAID0-1.性能
RAID0:优化
至少须要两块硬盘,他的原理是把计算机本来要储存的一个文件,以必定的原理分红两部分,分别存在两块硬盘上,这样就提高了两倍的读写性能,可是其中一块磁盘坏了,数据就坏了,因此不利于存放重要的数据,建议使用如出一辙的盘
spa
RAID1:操作系统
至少须要两块硬盘,他的原理是把计算机本来要存储的一个文件,同时存在两块硬盘上,每一个硬盘各存一份,这样写性能就下降了一半,可是读性能就提升了一倍,他读数据的时候从两块盘一块儿读,但这不是他的主要目的,他的主要目的是容错,若是其中的一块盘损坏了,并不影响服务器工做,可是使用率只有50%
3d
RAID4:blog
至少须要3块盘,计算机把本来要存储的数据经过必定的计算方式分红两部分,分别存在不一样的两个磁盘中,第三个磁盘存校验码,因此读写性能都有提高,容许坏一块盘,若是损坏一块数据盘,RAID的控制芯片会根据校验码盘和剩余的一块数据盘计算出损坏的数据.磁盘利用率为(n-1)/nget
RAID5:it
在RAID4的基础上优化而来,至少三块盘,计算机要存储数据时经过必定的计算方式分别存在三块盘中,而三块盘中又分别存有校验码,任何一块盘损坏了,均可以经过其余剩余的两块盘计算出损坏盘中的数据,提高了读写性能,利用率为(n-1)/n
RAID6:
与RAID5机制相同,可是至少须要4块盘,容许一块盘损坏,利用率为(n-2)/n
2.Linux上实现软磁盘阵列
1.建立RAID1级别的磁盘阵列
a.使用fdisk给磁盘分区,这里分别建立两个10G大小的虚拟盘:
dd if=/dev/zero of=/dev/sdb bs=510 count=1(这里是格式化sdb磁盘,因为笔者以前有用过这个盘,因此先格式化了)
echo -e 'n\np\n1\n \n+10G\nn\np\n2\n \n+10G\nw' | fdisk /dev/sdb
b.格式话完成后,由于咱们是建立RAID阵列,因此磁盘的格式要选择为磁盘ID号的fd
c.建立磁盘阵列,这里是最简单的RAID1,没有热备盘
mdadn -C /dev/md0 -n 2 -l 1 /dev/sdb{1,2}
d.建立完成后查看磁盘阵列
mdadm -D /dev/md0
e.为该磁盘阵列建立文件系统
mke2fs -t ext4 /dev/md0
f.挂载该文件系统到/mnt/md0,并查看
mount /dev/md0 /mnt/md0
2.磁盘阵列建立完成了,接下来咱们模拟磁盘损坏,看RAID是否有容错能力
a.复制一些文件到/mnt/md0,并模拟/dev/sdb1磁盘损坏,看损坏一块磁盘是否影响元数据
b.模拟磁盘/dev/sdb1损坏
mdadm -f /dev/md0 /dev/sdb1
c.在去看看对数据是否有影响
cd /mnt/md0
ls
d.拔出损坏的磁盘,并查看信息
mdadm -r /dev/md0 /dev/sdb1
mdadm -D /dev/md0
e.插回原磁盘,看是否会自动备份数据
mdadm -a /dev/md0 /dev/sdb1
mdadm -D /dev/md0
注:笔者只是有限,有不对的地方或着写的很差的地方请多多指教.好吧,是我多虑了,也许都没人看...