Raid早期叫廉价冗余磁盘阵列,发展到现在也不廉价了,所以叫独立磁盘冗余阵列,他的主要目的是提高读写性能和容错能力,而RAID的主要思想是把多个相对廉价的硬盘接起来,组成一个硬盘阵列,让操作系统看起来只有一个盘,从而提升磁盘的读写性能以及容错能力.

   RAID又分为软RAID和硬RAID,软RAID实际上就是利用软件模拟出RAID,所以软RAID对系统的提升不明显,因为软RAID的控制基于主机上的cpu,他的读写都要经过CPU的控制,而硬RAID基于RAID本身的控制芯片.

   而他们又分为RAID0,RAID1,RAID4,RAID5,RAID6,RAID1-0,RAID0-1.

   RAID0:

       至少需要两块硬盘,他的原理是把计算机原本要储存的一个文件,以一定的原理分成两部分,分别存在两块硬盘上,这样就提升了两倍的读写性能,但是其中一块磁盘坏了,数据就坏了,所以不利于存放重要的数据,建议使用一模一样的盘

   RAID1:

       至少需要两块硬盘,他的原理是把计算机原本要存储的一个文件,同时存在两块硬盘上,每个硬盘各存一份,这样写性能就降低了一半,但是读性能就提高了一倍,他读数据的时候从两块盘一起读,但这不是他的主要目的,他的主要目的是容错,如果其中的一块盘损坏了,并不影响服务器工作,但是使用率只有50%

   RAID4:

       至少需要3块盘,计算机把原本要存储的数据通过一定的计算方式分成两部分,分别存在不同的两个磁盘中,第三个磁盘存校验码,所以读写性能都有提升,允许坏一块盘,如果损坏一块数据盘,RAID的控制芯片会根据校验码盘和剩余的一块数据盘计算出损坏的数据.磁盘利用率为(n-1)/n

   RAID5:

       在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

       wKiom1MKpdmxS3y8AARw6r753Hs047.jpg

   b.格式话完成后,因为我们是创建RAID阵列,所以磁盘的格式要选择为磁盘ID号的fd

   wKioL1MKqYfwe5KqAAS7vA5jL2c695.jpg


   c.创建磁盘阵列,这里是最简单的RAID1,没有热备盘

   mdadn -C /dev/md0 -n 2 -l 1 /dev/sdb{1,2}

   wKiom1MKq5CRSC0iAAE8NkyAMeY183.jpg

     d.创建完成后查看磁盘阵列

       mdadm -D /dev/md0

       wKiom1MKrC7yr_i8AAHvhrLHQLo527.jpg

   e.为该磁盘阵列创建文件系统

   mke2fs -t ext4 /dev/md0

   wKioL1MKrRnQWQ1BAAJ6pQPZj_w850.jpg

   f.挂载该文件系统到/mnt/md0,并查看

   mount /dev/md0 /mnt/md0

    wKioL1MKrbqwU4mVAADhMlrODqQ045.jpg    

2.磁盘阵列创建完成了,接下来我们模拟磁盘损坏,看RAID是否有容错能力

   a.复制一些文件到/mnt/md0,并模拟/dev/sdb1磁盘损坏,看损坏一块磁盘是否影响元数据

   wKioL1MKrynhgRHMAAQVqLtCwvY684.jpg

   b.模拟磁盘/dev/sdb1损坏

   mdadm -f /dev/md0 /dev/sdb1

   wKiom1MKsD_zxh3cAAKvp7UJJbk936.jpg

c.在去看看对数据是否有影响

   cd /mnt/md0

   ls

   wKioL1MKsKmCgjdCAAQUmwYp6GY247.jpg

d.拔出损坏的磁盘,并查看信息

   mdadm -r /dev/md0 /dev/sdb1

   mdadm -D /dev/md0

   wKiom1MKsZjAK7ASAAJ2Xrk2vvY514.jpg

e.插回原磁盘,看是否会自动备份数据

   mdadm -a /dev/md0 /dev/sdb1

   mdadm -D /dev/md0

wKiom1MKsm-h2XqPAAKcQH-qafc118.jpg

注:笔者只是有限,有不对的地方或着写的不好的地方请多多指教.好吧,是我多虑了,也许都没人看...