![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软raid
文章平均质量分 71
Configure-Handler
这个作者很懒,什么都没留下…
展开
-
mdam raid管理常见命令
mdadm reporaid基础知识:https://zhuanlan.zhihu.com/p/667925807。原创 2024-03-22 21:19:29 · 630 阅读 · 0 评论 -
软raid sync_action
在执行“检查”和“修复”,以及可能在执行“重新同步”时,md 将计算发现的错误数量。在“mismatch_cnt”中的计数是重新写入的扇区数量,或者(对于“检查”)本应该重新写入的扇区数量。由于大多数 RAID 级别以页面为单位工作,而不是以扇区为单位,因此这个数量可能会比实际错误数量大,大约是页面中扇区数量的倍数。被清理掉的逻辑发生在md_clean和md_do_sync同步完成后再下check命令的场景下。数据同步的默认单位是64K,也就是128个扇区,也就是说这个值记录的是某次IO操作尺寸。原创 2024-03-12 20:38:45 · 404 阅读 · 0 评论 -
Linux 软raid auto-detect
raid_setup函数会根据内核启动参数来设定raid自动探测相关参数,也就是说即使在编译内核时将对应的配置选项打开,也可以通过内核参数将该能力关闭。从上述描述来看,只有分区类型为0xfd且超级块类型为0.0的分区才能被自动探测并组装成raid,那如何修改分区type?答:Linux内核会扫描所有磁盘,查找分区为0xfd类型,如果不包含分区类型为0xfd的分区,0xfd类型分区链表为空。选项在编译时被打开,raid_noautodetect被初始化为0,表示需要自动探测软raid。原创 2024-03-06 10:25:04 · 533 阅读 · 0 评论 -
软raid v0.9元数据存放区域计算
的目的是为了将20971520低七位清零,形成一种64K对齐的效果,对齐之后取最后一个64KB作为元数据的存放区域,对于磁盘非64K对齐的区域软raid不进行管理。宏MD_NEW_SIZE_SECTORS用来计算元数据存放的扇区位置,传参为磁盘的扇区数x,如果磁盘大小为10G,磁盘扇区数为。,对于磁盘大小为10G的磁盘来讲,刚好保留了最后64K用来存放软raid元数据,当然也包括bitmap相关信息。,用来被保存raid superblock的总大小为64KB。假设设备的磁盘大小为10G,换算成字节。原创 2024-02-29 09:12:40 · 386 阅读 · 0 评论 -
Linux 软raid函数 - - align_to_barrier_unit_end
len的值是取到最接近BARRIER_UNIT_SECTOR_SIZE整数倍的值,然后再减去扇区的起始扇区的值,len的值就是是start_sector所属的屏障单元从start_sector到bucket末端的扇区数。所以此时,round_up的返回值为BARRIER_UNIT_SECTOR_SIZE << 1,就是1<<18,是BARRIER_UNIT_SECTOR_SIZE 的两倍。举个例子,假设要对齐的起始扇区号为7,BARRIER_UNIT_SECTOR_SIZE的值为1<<17。原创 2024-01-09 10:23:24 · 694 阅读 · 0 评论 -
Linux 软raid - - Barrier
在linux软raid中,用来处理正常IO和同步IO的并发问题,可以简单理解为专用于软raid的锁。软raid在做resync/recovery,或者配置操作时需要raise 屏障,于此同时必须暂停正常IO。barrier是可以被多次raise的一个计数器,来计算有多少个相关活动事件在发生,其中不包括正常IO。raise 屏障的条件是没有pending的IO即nr_pending=0。只有在没有人等待barrier down的情况下,才会选择raise barrier。原创 2024-01-02 22:20:11 · 822 阅读 · 0 评论