RAID: 廉价冗余磁盘阵列,基于raid技术把多个硬盘从逻辑上进行组合,而内核仍然识别为一个磁盘来实现数的冗余和高写入。
早期的IDE总线接口类型写入率低,而SCSI总线又因为其价格的昂贵所以人们迫切需要一种即廉价,又能高写入的接口类型,于是RAID技术就应运而生。
RAID 技术有基于软件和硬件两种。基于软件的占用cpu的时钟周期,可靠性也不是很高。而基于硬件的RAID设备由于它由自己的内存,所以要自带电源。这样,就造成了它价格的昂贵。但对于一个企业无价的数据来说,这样的需求是必要的。
下面我们就主要讨论基于软件实现的RAID来认识RAID技术;
RAID按照其组合的方式的不同有主要有如下几种,它们根据需求而定,不分优劣。
共同学习才是最明智的选择,喜欢的话可以我的学习群64弍46衣3凌9,或加资料群69似64陆0吧3(进群备注平台名)
raid 0:最少两块磁盘,实行轮询的方式在两块磁盘上写入数据。每一个磁盘的I/O操作相对于一个磁盘减少了一半。那么写入速度也就提高了一倍。所以它提供了高性能,如果再多加几块磁盘,那么它的性能就更高了。但是这样会造成冗余的降低,因为两块或多块磁盘出现一个损坏的概率远大小一个磁盘,这也是raid 0的缺陷。所以有了raid 1的出现。
raid 1:最少两块磁盘,数据在各磁盘上都存一份。这样可以保证当一块磁盘上的 数据发生丢失时可以找回数据,但是如果我们删除某一磁盘上的数据,那么raid 1是不能找回的,因为两块磁盘是同步的。所以,不是说建立raid 1 就不需要备份了。
raid 4: 最少三块磁盘,两块磁盘用于轮询存放,第三块盘磁盘用于存放两块磁盘上的数据进行与或后的校验码。当有一个磁盘发生故障时,不至于使整个数据发生丢失。但是当一个磁盘发生损坏时要及时解决,不然由于另外两个盘每一次读取数据都要进行与或操作,所以很容易也发生故障。
raid 5:由于raid 4中的校验盘的压力过大,所以raid 5 采取了轮流作为校验盘的机制
raid 10:最少需要四个磁盘,用两两先做成raid 1 模式,然后再 把两个raid 1模式的磁盘作为raid 0 模式就可以即实现高写入率,又能实现冗余。也可以直接指定 raid 10。
下面就以raid 10 的配直方法来说明:
配直raid 10 至少要四块磁盘:
(1):根据你所要建立的raid 10 的大小,用fdisk命令把一个磁盘分出四个分区比如说我们分出的分区为:
/dev/sda5, /dev/sda6, /dev/sda7, /dev/sda8
并规定每一个分区的大小,不要格式化。
另外要改变分区的的类型为fd
然后就可以来设置RAID了。
raid命令格式如下:
mdadm [mode] [options]
mode:
Assemble :装配模式,把一个装配好的raid模式移装到别的主机运用。
Creat : 创建模式
-n:表示用几块盘
-x:几块空闲盘
-c:表示块大小
-l: level
-p:layout
Follow or Monitor : 监控模式
Group:增长模式
Manage:管理模式
--add , --fail , --remove
OPTIONS:
下面就以建立raid 10:
mdadm -C /dev/md0 -a yes -l 10 -n /dev/sda6 /dev/sda7 /dev/sda8 /dev/sda9
然后执行:partprobe /dev/sda
接着格式化md0: mke2fs /dev/md0
然后挂载到某目录下就可以了。
然后执行cat /proc/mdstat 就可以看到md0设备了。如下图
如果分区上有数据的话,上图中会行进行数据的同步,然后才会显示后一行。
这样一个raid 10 级别的组全就已经创建完成 ,我们可以用下面的命令来停止 md0设备不过先要卸载:
mdadm -S md0
当我们要重新要启用该raid 10时,需:
mdadm -A /dev/md0 /dev/sda{5,6,7,8} 要指定组成raid的磁盘或分区。
mdadm -D /dev/md0 :可以查看md0的状态。
mdadm --examine --scan :可以查看当前系统上所有的raid设备,我们可以把些设备保存在/etc/mdadm.conf中,那么它下次就可以开机自动启动。并且在删除某个raid设备时可以用 mdadm -A /dev/md0 恢复,不需再指定组成md0的分区或磁盘。
-x:指定空闲盘,我们可以用-x来指定空闲盘以使当组成有容错能力的raid其中一设备发生故障时,可以有另外一空闲盘来替补。以raid 10 为例,本身需要4个磁盘,当再加一个空白的容错盘时至少要五个盘。
我们可以以5个分区来模拟:如
mdadm -C /dev/md0 -a yes -l 10 -n 4 -x 1 /dve/sda{5,6,7,8,9}
结果如下:
我们可以用--fail来模拟一块磁盘发生故障用空闲盘来替代的情景:
我们把md1挂载到某目录下,然后拷贝一文件进去。当sda8坏掉时不影响数据的读取 。
这样就实现了raid冗余。
当我们想新增一个磁盘或分区,但不想让他成为空闲盘的时候,我们也是用
mdadm --add /dev/mda1 /dev/sda{10,11} (分区是指定任意的空闲分区)
然后,用:
mdadm -G -n 6 :就可以在以前的四块的基础上加上两块分区(磁盘),来加大 raid 的性能。
当我增加一个磁盘分区时,增加的只是物理边界的大小,而文件系统的大小还没有改变到和物理边界一样大的大小,这时我样要做如下操作才能使他们变为一样大小,真正的扩展。
我们可以执行如下作来使文件系统的大小真下的和物理空间的大小一样:
resize2fs /dev/md1 就可以把文件系统的空间真正的扩展到和物理空间一样大小 。
这才是真下的完成了raid的对磁盘空间的操作。实现冗余,提高速度。
❤提问/互动请留言,可直接在最底右下方"写留言即可"
❤如果觉得写得不错请点击“订阅”,每天更新全新的内容!
❤你们的喜欢和关注就是我最大的动力支撑!!!