小c学Linux(6)--RAID和LVM之RAID

raid有软硬之分,此篇为学习篇,实际操作以软raid为例

首先,我们要明确LVM(logic volume manage)逻辑卷管理 跟RAID(Redundant Access Independent Disk)独立冗于磁盘阵列的区别:

  • LVM:LVM是软件的卷管理方式
  • RAID:RAID是磁盘保护的方法

RAID

RAID(Redundant Access Independent Disk)名为独立冗于磁盘阵列,顾名思义,它是一种磁盘阵列,是针对多个磁盘的,组织磁盘的方式。一句话总结:它是将多个磁盘组织成一个设备使用。

多个磁盘组合在一起对外看起来像是一个磁盘设备,因此多个磁盘有不同的组合方式,我们称之为level-级别。


RAID0:至少需要两块磁盘disk1,disk2,数据A(A1,A2,A3,A4)按一定的存储方式分别存储在a1,a2两块磁盘上
小c学Linux(6)--RAID和LVM之RAID

  • 优点:读写性能提升。
    由于同一块数据A分别存储在disk0,disk1,两块磁盘上,在存取时速度都提升为原来只是一个磁盘的2倍。
  • 缺点:没有容错能力。
    如果disk0,disk1上两块磁盘的任意一块磁盘坏掉或数据丢失,就会导致A数据不完整,造成数据损失,破坏。

RAID1:至少需要两块磁盘disk0,disk1,数据A(A1,A2,A3,A4)先将全部数据存储在disk0上,拷贝一份给disk1。disk1就是disk0的一个镜像磁盘。
小c学Linux(6)--RAID和LVM之RAID

  • 优点:容错能力提升2倍,读数据性能提升2倍。
    如果disk0或着disk1的数据丢失或损坏,仍然在另一个磁盘上有相对完整的数据A。读的时候一块磁盘繁忙就可从另一块读,所以读性能挺升2倍。
  • 缺点:写性能下降2倍。
    写数据时需要将原数据copy一份,所以消耗是原来的两倍。

其他组合方式还有raid3,raid5,raid6等等……

为了能够将raid0和raid1的优缺点融合,所以出现了raid10和raid01的组合方式。


RAID10:先做1后做0.至少需要4块磁盘,允许不同组内容各坏一块盘。
小c学Linux(6)--RAID和LVM之RAID

  • 优点:既提升了读写性能,又有容错能力。
    在raid1的层次上容错能力提升,读数据性能提升。在raid0的层次上,读写性能提升。
  • 缺点:如果处于raid0级别的raid1中的两块磁盘都损坏,则数据丢失。

raid01组合方式显然没有raid10组合方式好。


LINUX上做软RAID

模式化工具:mdadm [模式] [/dev/RAID设备名] [options] [用于创建软RAID的磁盘]

  • -A:装配模式
  • -C:创建模式

    1. -n #:用于创建RAID设备个数
    2. -l #:RAID级别
    3. -a yes:自动为创建的raid设备创建设备文件
    4. -c (chunk-size):指定分块大小,默认512KB
    5. -x #:热备磁盘个数
  • -F:监控模式

cat /proc/mdstat查看当前主机的RAID
madam -D /dev/md#查看RAID具体信息


以创建一个2G的RAID0为例子:

这里必须要指出,创建RAID时的各个磁盘大小必须都拥有一样的规格,包括磁盘大小,文件格式等….这是为了保证数据同一性!

  1. fdisk /dev/sda :磁盘sda分区出两块分区sda1,sda2
  2. 调整分区格式为Linux raid auto
  3. 创建RAID0:madam -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{1,2}

    若创建的是RAID1,可查看两个分区同步:watch -n 1 'cat /proc/mdstat'
    “-n # :每隔#秒钟执行一次指定的命令”

  4. 创建后查看RAID设备的详细信息:mdadm -D /dev/md0

  5. 挂载:mount /dev/md0 /mnt/md0

同理用/dev/sda{3,4}创建RAID1:/dev/md1
因为RAID1有容错能力,允许坏掉一块磁盘,mdadm命令可以让我们模仿某一块磁盘坏掉:mdadm /dev/md1 -f /dev/sda3然后使用madam -D /dev/md1查看md1磁盘阵列状态,可以发现工作的sda3已坏掉,但另一块磁盘仍然在active(工作)(我这里之前实验的时候是用的dm-3)
小c学Linux(6)--RAID和LVM之RAID
磁盘坏了我们就将它删除:mdadm /dev/md1 -r /dev/sda3再次查看小c学Linux(6)--RAID和LVM之RAID已经删除掉了。如果我们通过什么方式又修复了sda3这个磁盘,又可以把它加进来:mdcdm /dev/md1 -a /dev/sda3
小c学Linux(6)--RAID和LVM之RAID

我们发现,这个磁盘又回来了。


到这里,我猜想,小伙伴们应该明白RAID(Redundant Access Independent Disk)独立冗于磁盘阵列的强大之处了吧!!!