Linux基础:RAID详细介绍

本文详细介绍了RAID技术的概念、不同级别的RAID特性及其应用场景。包括RAID-0、RAID-1、RAID-5、RAID-6、RAID-10等多种类型的性能、冗余能力和磁盘数量需求,并提供了软RAID的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是RAID


  RAID:Redundant Arrays of Inexpensive(Independent) Disks 1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) “A Case for Redundant Arrays of Inexpensive Disks” 多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供    

RAID


提高IO能力
        磁盘并行读写
提高耐用性
        磁盘沉余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式
        外接式磁盘阵列:通过扩展卡提供适配能力
        内接式RAID:主板集成RAID控制器
        安装OS前在BIOS里配置
        软件RAID:通过OS实现

RAID级别


RAID-0:条带卷,strip 
RAID-1: 镜像卷,mirror 
RAID-2 
RAID-5 
RAID-6 
RAID-10 
RAID-01  

RAID级别详解


RAID-0:
    读写性能提升
    可用空间:N*min(s1,s2)
    无容错能力
    最少磁盘:2,2+
RAID-1:
    读性能提升,写性能略有下降
    可用空间:1*min(s1,s2)
    有冗余能力
    最少磁盘数:2,2n
RAID-5:
    读,写性能提升
    可用空间:(N-1)*min(s1,s2)
    有容错能力:允许最多一块磁盘
    最少磁盘数:3,3+
RAID-6:
    读,写性能提升
    可用空间:(N-2)*min(S1,S2,...)
    有容错能力:允许最多2块磁盘损坏
    最少磁盘数:4,4+
RAID-10:
    读,写性能提升
    可用空间:N*min(S1,S2,...)/2 
    有容错能力:每组镜像最多只能坏一块
    最少磁盘数:4,4+
RAID-01:
    多块磁盘先实现RAID0,在组合成RAID1
JBOD:
    Just a Bunch Of Disks
    功能:将多块磁盘的空间合并一个大的连续空间使用
RAID7:
    可以理解为一个独立存储计算机,自身带有操作系统和管理工具,,可以独自运行,理论上性能最高的RAID模式
常用级别:
    RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD

软RAID


mdadm:为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等

软件RAID的实现


mdadm:模式化的工具
命令的语法格式:mdadm [mode] <raiddevice> [options] <componentdevices>
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10 
模式:
    创建:-C 
    装配:-A 
    监控:-F
    管理:-f, -r, -a
<raiddevice>: /dev/md# <component-devices>: 任意块设备

软件RAID的实现


-C:创建模式
    -n #: 使用#个块设备来创建此RAID
    -l #:指明要创建的RAID的级别
    -a {yes|no}:自动创建目标RAID设备的设备文件 -a yes[意思是初始化RAID设备]
    -c CHUNK_SIZE: 指明块大小,单位k
    -x #: 指明空闲盘的个数  
-D:显示raid的详解信息
    mdadm -D /dev/md
管理模式:
    -f: 标记指定磁盘为损坏
    -a: 添加磁盘 
    -r: 移除磁盘 
观察md的状态:cat /proc/mdstat

  例:实现RAID0【性能高,但是没有容错性,损坏一个硬盘就不能使用】
第一步:用四个硬盘,分别拿出相应的空间大小,分区时注意格式  t     :dd   if=/dev/sda  of=/dev/sdb  bs=1  count=512
第二步:mdadm -C  /dev/md0 -a yes -l0  -n 4   /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1
第三步:在一个是否生成用命令mdadm -D /dev/md0
第四步:先把UUID存起来 mdadm -Ds /dev/md0  >  /etc/mdadm.conf 
第五步:创建文件系统  mkfs.ext4   /dev/md0     blkid就可以查看了
第六步:创建一个挂载点就可以挂载了  mkdir /mnt/raid  [永久挂载/etc/fstab]   

例:实现RAID5【五个硬盘一个空闲,四个真正使用,】
第一步: mdadm -C  /dev/md5 -a yes -l5  -n4  -x1 /dev/sd{b,c,d,e}1  /dev/sd...  
第二步:先把UUID存起来 mdadm -Ds /dev/md5 >  /etc/mdadm.conf 
第三步:创建文件系统  mkfs.ext4   /dev/md5    blkid就可以查看了
第四步:创建文件系统  mkfs.ext4   /dev/md5    blkid就可以查看了
第五步:创建一个挂载点就可以挂载了  mkdir /mnt/raid  [永久挂载/etc/fstab] 

模拟磁盘故障
mdadm /dev/md5  -f  /dev/sde1[模拟sde1硬盘损坏]  [mdadm -D /dev/md5 查看情况] 

移除磁盘 
mdadm /dev/md5 –r /dev/sde1【移除sde1】mdadm /dev/md5 –a /dev/sde1【添加回来sde1】

损坏后加硬盘:mdadm /dev/md5 -a /dev/sde[添加一块/dev/sde硬盘]  【如果是硬盘直接加就行,如果是分区需要格式化还要t加......】
如果空间不够想扩展空间  【mdadm -G  /dev/md5 -n  5 -a /dev/sda3   [-G是添加,-n5代表以前是四个现在加到5个 -a 是把那个加到里面]】
【df查看的是文件系统所以看不到添加后的内存】【xfs_growfs   /mnt/raid5[xfs文件系统后面跟的是挂载点]】
【resize2fs   /dev/md5  etx4文件系统后面跟的是设备名】

软RAID配置示例


使用mdadm创建并定义RAID设备
mdadm -C  /dev/md0 -a yes -l 5 -n 3 -x 1  /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1
用文件系统对每个RAID设备进行格式化 
mke2fs -j  /dev/md0
测试RAID设备
使用mdadm检查RAID设备的状况
mdadm --detail|D /dev/md0
增加新的成员
mdadm –G /dev/md0 –n4  -a /dev/sdf1  

软RAID测试和修复


模拟磁盘故障
mdadm /dev/md0  -f  /dev/sda1
移除磁盘 
mdadm /dev/md0 –r /dev/sda1
从软件RAID磁盘修复磁盘故障
    • 替换出故障的磁盘然后开机
    • 在备用驱动器上重建分区 
    • mdadm /dev/md0  -a  /dev/sda1
mdadm、/proc/mdstat及系统日志信息  

软RAID管理


生成配置文件:mdadm –D –s  >> /etc/mdadm.conf
停止设备:mdadm –S /dev/md0
激活设备:mdadm –A –s /dev/md0 激活 
强制启动:mdadm –R /dev/md0
删除raid信息:mdadm --zero-superblock /dev/sdb1 

例: 删除RAID0
首先先取消挂载 umount /mnt/raid0 
然后在删除 rm -rf /etc/mdadm.conf[这里是创建时手工添加的]
然后停止设备  mdadm –S /dev/md0  【mdadm –A –s /dev/md0 就激活不了了,因为删除了/etc/mdadm.conf 这个文件】
然后是清除超级块mdadm --zero-superblock /dev/sdb1【或mdadm --zero-superblock /dev/sd{c,e,d}1 一下清空】
然后blkid就看不到文件系统了 ,lsblk看一下还可以看到分区
在彻底的就是用dd 清空了:dd if=/dev/zero of=dev/sdb1,dd if=/dev/zero of=dev/sdc1,dd if=/dev/zero of=dev/sde1,dd if=/dev/zero of=dev/sdd1
可以用二进制确认一下 :hexdump -c /dev/sde1 
注意:写入/etc下的文件要删除

转载于:https://blog.51cto.com/13878155/2161356

内容概要:本文档详细介绍了一个基于MATLAB实现的电力负荷预测项目,该项目运用遗传算法(GA)优化支持向量回归(SVR)和支持向量机(SVM)模型的超参数及特征选择。项目旨在解决电力系统调度、发电计划、需求侧响应等多个应用场景中的关键问题,特别是在应对高比例可再生能源接入带来的非线性、非平稳负荷预测挑战。文中涵盖了从数据接入、特征工程、模型训练到部署上线的全流程,包括详细的代码示例和GUI设计,确保方案的可复现性和实用性。 适用人群:具备一定编程基础,尤其是熟悉MATLAB语言和机器学习算法的研发人员;从事电力系统调度、电力市场交易、新能源消纳等相关领域的工程师和技术专家。 使用场景及目标:①通过构建面向小时级别的滚动预测,输出高分辨率负荷轨迹,为日内与日前滚动调度提供边际成本最小化的依据;②在负荷高峰和供给紧张时,通过价格信号或直接负荷控制实施需求侧响应,提升削峰效率并抑制反弹;③为灵活性资源(调峰机组、储能、可中断负荷)提供更清晰的出清路径,降低弃风弃光率,提升系统整体清洁度;④帮助市场主体更准确地评估边际出清价格变化,提高报价成功率与收益稳定性,同时降低由预测偏差带来的风险敞口;⑤在运维与审计场景中,对预测产生的原因进行说明,保障业务侧与监管侧的可追溯性。 阅读建议:此资源不仅提供了完整的代码实现和GUI设计,更注重于理解GA优化过程中涉及到的数据处理、特征构造、模型选择及评估等核心步骤。因此,在学习过程中,建议结合实际案例进行实践,并深入研究每个阶段的具体实现细节,特别是适应度函数的设计、超参数空间的定义以及多样性维护机制的应用。此外,关注项目中关于数据对齐、缺失值处理、特征标准化等方面的最佳实践,有助于提高模型的鲁棒性和泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值