小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两块磁盘上
- 优点:读写性能提升。
由于同一块数据A分别存储在disk0,disk1,两块磁盘上,在存取时速度都提升为原来只是一个磁盘的2倍。 - 缺点:没有容错能力。
如果disk0,disk1上两块磁盘的任意一块磁盘坏掉或数据丢失,就会导致A数据不完整,造成数据损失,破坏。
RAID1:至少需要两块磁盘disk0,disk1,数据A(A1,A2,A3,A4)先将全部数据存储在disk0上,拷贝一份给disk1。disk1就是disk0的一个镜像磁盘。
- 优点:容错能力提升2倍,读数据性能提升2倍。
如果disk0或着disk1的数据丢失或损坏,仍然在另一个磁盘上有相对完整的数据A。读的时候一块磁盘繁忙就可从另一块读,所以读性能挺升2倍。 - 缺点:写性能下降2倍。
写数据时需要将原数据copy一份,所以消耗是原来的两倍。
其他组合方式还有raid3,raid5,raid6等等……
为了能够将raid0和raid1的优缺点融合,所以出现了raid10和raid01的组合方式。
RAID10:先做1后做0.至少需要4块磁盘,允许不同组内容各坏一块盘。
- 优点:既提升了读写性能,又有容错能力。
在raid1的层次上容错能力提升,读数据性能提升。在raid0的层次上,读写性能提升。 - 缺点:如果处于raid0级别的raid1中的两块磁盘都损坏,则数据丢失。
raid01组合方式显然没有raid10组合方式好。
LINUX上做软RAID
模式化工具:mdadm [模式] [/dev/RAID设备名] [options] [用于创建软RAID的磁盘]
- -A:装配模式
-
-C:创建模式
- -n #:用于创建RAID设备个数
- -l #:RAID级别
- -a yes:自动为创建的raid设备创建设备文件
- -c (chunk-size):指定分块大小,默认512KB
- -x #:热备磁盘个数
- -F:监控模式
cat /proc/mdstat
查看当前主机的RAID madam -D /dev/md#
查看RAID具体信息
以创建一个2G的RAID0为例子:
这里必须要指出,创建RAID时的各个磁盘大小必须都拥有一样的规格,包括磁盘大小,文件格式等….这是为了保证数据同一性!
-
fdisk /dev/sda
:磁盘sda分区出两块分区sda1,sda2 - 调整分区格式为Linux raid auto
-
创建RAID0:
madam -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{1,2}
若创建的是RAID1,可查看两个分区同步:
watch -n 1 'cat /proc/mdstat'
“-n # :每隔#秒钟执行一次指定的命令” 创建后查看RAID设备的详细信息:
mdadm -D /dev/md0
- 挂载:
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)
磁盘坏了我们就将它删除:mdadm /dev/md1 -r /dev/sda3
再次查看已经删除掉了。如果我们通过什么方式又修复了
sda3
这个磁盘,又可以把它加进来:mdcdm /dev/md1 -a /dev/sda3
我们发现,这个磁盘又回来了。
到这里,我猜想,小伙伴们应该明白RAID(Redundant Access Independent Disk)独立冗于磁盘阵列的强大之处了吧!!!