软件RAID

  软件RAID也必须在多磁盘系统中才能实现。实现RAID1最少要拥有两块硬盘,而实现RAID5则最少要拥有三块硬盘。通常情况下,操作系统所在磁盘采用RAID1,而数据所在磁盘采用RAID5。
 

卷的类型

  ①简单卷
  简单卷由单个物理磁盘上的磁盘空间组成,它可以由磁盘上的单个区域或链接在一起的相同磁盘上的多个区域组成。可以在同一磁盘中扩展简单卷或把简单卷扩展到其他磁盘。如果跨多个磁盘扩展简单卷,则该卷就是跨区卷。
只能在动态磁盘上创建简单卷。简单卷不能包含分区或逻辑驱动器,也不能由MS-DOS或Windows2003以外的其他Windows操作系统访问。如果网络中的计算机还在运行Windows98或更早版本,那么应该创建分区而不是动态卷。
如果想在创建简单卷后增加它的容量,则可通过磁盘上剩余的未分配空间来扩展这个卷。要扩展一个简单卷,则该卷必须使用Windows2003中所用的NTFS版本格式化。同时不能扩展基本磁盘上作为以前分区的简单卷。也可将简单卷扩展到同一计算机的其他磁盘的区域中。当将简单卷扩展到一个或多个其他磁盘时,它会变成为一个跨区卷。在扩展跨区卷之后,不删除整个跨区卷便不能将它的任何部分删除。要注意的是跨区卷不能是镜像卷或带区卷。
  ②条带卷
  利用条带卷,可以将两个或者更多磁盘(最多为32块硬盘)的空余空间组成为一个卷。在向条带卷中写入数据时,数据被分割为64KB的块,并均衡地分布在阵列中的所有磁盘上。一个阵列是两个或者多个磁盘的集合。条带卷可以有效地提高磁盘的读取性能,但是它并不提供容错功能,任何一块硬盘的损坏都会导致全部数据的丢失。条带卷类似于RAID-0。
  ③跨区卷
  利用跨越卷,也可以将来自两个或者更多磁盘(最多为32块硬盘)的空余磁盘空间组成为一个卷。与条带卷所不同的是,将数据写入跨越卷时,首先填满第一个磁盘上的空余部分,然后再将数据写入下一个磁盘,依次类推。虽然利用跨越卷可以快速增加卷的空量,但是跨越卷既不能提高对磁盘数据的读取性能,也不提供任何容错功能。当跨越卷中的某个磁盘出现故障时,存储在该磁盘上的所有数据将全部丢失。
  ④镜像卷
  利用镜像卷即RAID-1卷,可以将用户的相同数据同时复制到两个物理磁盘中。如果其中的一个物理磁盘出现故障,虽然该磁盘上的数据将无法使用,但系统能够继续使用尚未损坏而仍继续正常运转的磁盘进行数据的读写操作,从而通过另一磁盘上保留完全冗余的副本,保护磁盘上的数据免受介质故障的影响。由此可见,镜像卷的磁盘空间利用率只有50%(即每组数据有两个成员),所以镜像卷的成本相对较高。要创建一个镜像卷,必须使用另一磁盘上的可用空间。动态磁盘中现有的任何卷(甚至是系统卷和引导卷),都可以使用相同的或不同的控制器镜像到其他磁盘上大小相同或更大的另一个卷。最好使用大小、型号和制造厂家都相同的磁盘作镜像卷,以避免可能产生的兼容性错误。
镜像卷可以大大地增强读性能,因为容错驱动程序同时从两个磁盘成员中同时读取数据,所以读取数据的速度会有所增加。当然,由于容错驱动程序必须同时向两个成员写数据,所以它的写性能会略有降低。镜像卷可包含任何分区(包括启动分区或系统分区),但是镜像卷中的两个硬盘都必须是Windows2003动态磁盘。
  ⑤RAID5卷
  在RAID5卷中,Windows2003通过给该卷的每个硬盘分区中添加奇偶校验信息带区来实现容错。如果某个硬盘出现故障,Windows2003便可以用其余硬盘上的数据和奇偶校验信息重建发生故障的硬盘上的数据。
由于要计算奇偶校验信息,所以RAID-5卷上的写操作要比镜像卷上的写操作慢一些。但是,RAID5卷比镜像卷提供更好的读性能。其中的原因很简单,Windows2003可以从多个磁盘上同时读取数据。与镜像卷相比RAID5卷的性价比较高,而且RAID5卷中的硬盘数量越多,冗余数据带区的成本越低。但是RAID5卷也有一些限制。第一,RAID-5卷至少需要3个硬盘才能实现,但最多也不能超过32个硬盘;第二,RAID5卷不能包含根分区或系统分区。
 
  软件RAID有三个缺点:1、占用内存空间;2、占用CPU资源;3、软件RAID程序无法将安装有操作系统的那个磁盘分区做成RAID模式。因为RAID程序是运行在操作系统之上的,所以在启动操作系统之前,是无法实现RAID功能的。也就是说,如果操作系统损坏了,RAID程序也就无法运行,磁盘上的数据就变成了一堆无用的东西,因为RAID磁盘上的数据只有实现相应RAID算法的程序才能识别并且正确读写。如果没有相应的RAID 程序,则物理磁盘上的数据仅仅是一些碎片而已,只有RAID程序才能组合这些碎片。幸好,目前大多数的RAID程序都会在磁盘上存储自己的算法信息,一旦操作系统出现了问题,或者主机硬件出现了问题,就可以将这些磁盘连接到其他机器上,再安装相同的RAID软件。RAID软件读取了存储在硬盘上固定区域的RAID信息后,便可以继续使用。

转载于:https://www.cnblogs.com/jiweilearn/p/9504019.html

### 软件RAID实现原理 软件RAID是一种通过操作系统的驱动程序或管理工具来实现的RAID技术。它不依赖于专用硬件,而是利用主机CPU和内存资源完成数据条带化、镜像复制以及奇偶校验计算等功能[^1]。这种实现方式的优点在于成本较低,因为无需额外购置昂贵的硬件控制器;然而其缺点则是可能增加服务器处理器负担,并且相较于硬件方案来说整体性能稍逊一筹。 具体而言,在Linux环境中,`mdadm` 是一种常用的命令行工具用于管理和维护基于软件RAID阵列[^5]。下面详细介绍几种常见类型的软件RAID及其工作机理: #### RAID 0 (Striping) RAID 0采用数据分片的方式将连续的数据块分布到多个物理磁盘上进行存取操作。这种方式能够显著提升读写速度但由于缺乏任何形式的数据保护措施一旦某个成员盘发生故障则整个逻辑卷上的资料都将丢失[^4]。 #### RAID 1 (Mirroring) 为了提供更高的可靠性和可用性,RAID 1通过对同一份数据制作完全相同的副本保存至两块甚至更多数量的不同硬盘上来达成目的。当任意一块源介质失效时系统仍然可以从另一处获取所需信息从而保障业务持续运转不受影响[^2]。 #### RAID 5 (Distributed Parity) 相比前两者更为复杂一些的是RAID 5模式,它不仅实现了负载均衡还引入了分布式奇偶位验证机制用来修复可能出现的小范围错误情况下的原始记录恢复需求。每当有新的输入/输出请求到达时,相应的控制模块会依据特定算法决定如何分配这些任务给各个实际存储单元同时更新关联的检验码值以便后续必要时候重新构建受损部分的内容[^3]。 ### 配置方法示例 以下是关于如何在Linux平台之上建立一个简单的RAID 0实例的操作指南片段: ```bash # 创建一个新的RAID设备/dev/md0 使用等级为0 并指定参与组合的两个分区分别是/dev/sdb 和 /dev/sdc [root@postgres ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev/sdc # 查看刚刚组建成功的阵列状态确认无误之后将其定义持久化的配置参数保存下来供下次开机自动加载识别之用 [root@postgres ~]# mdadm -D --scan > /etc/mdadm.conf ``` 以上脚本展示了基本步骤但请注意实际情况可能会有所变化需参照官方文档调整适合自己的设置选项。 ### 注意事项 尽管如此便捷易部署,但在真实世界的应用场景里还是推荐优先选用专业的硬件解决方案除非特殊原因才考虑纯软件途径毕竟后者难以兼顾极致效能表现与长期稳定性的双重目标追求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值