创建RAID
2017-04-07 17:01:47 0 举报
RAID,即冗余独立磁盘阵列,是一种将多个硬盘驱动器组合成一个逻辑单元的技术。通过RAID,数据可以在多个硬盘上分布存储,从而提高了数据的安全性和可靠性。RAID可以分为不同的级别,如RAID 0、RAID 1、RAID 5等,每个级别都有其特定的优势和适用场景。例如,RAID 0可以提高读写速度,但不具备冗余功能;RAID 1则提供了完全的数据冗余,但牺牲了一定的存储空间。总之,RAID是一种有效的数据存储解决方案,可以帮助用户应对各种数据安全问题。
作者其他创作
大纲/内容
set_array_info: 设置阵列超级块版本号,设置persisitent属性为保存在磁盘上。
add_new_disk:
mddev_find() --- md_alloc() --- md_probe()md_probe()函数就是在模块初始化函数md_init()中调用的blk_register_region()函数中的传入参数,熟悉blk层的同学都知道,只要在用户态创建了一个md设备,就会相应调用到内核probe()函数,而这里传入的probe()函数正是md_probe()。所以创建struct mddev结构体是由用户态触发的,而不是由内核态直接进行的.这样我们就从内核态杀到了用户态,用户态程序就是大名鼎鼎的mdadm,网上随便一搜就是一大堆人云亦云的文章,但最好的文章不是在网上,而是用命令man mdadm。用命令mdadm create来创建一个阵列,mdadm create命令最终会调用mknod()函数来创建一个/dev/md*设备,这样内核也就相应有了struct mddev结构体,这时这个结构体还是一个空结构体,空的意思就是说这个阵列没有设置属性,没有对应的物理磁盘,没有运行阵列。
对于阵列的创建流程,最关心的命令字有:SET_ARRAY_INFO 设置阵列信息ADD_NEW_DISK 添加磁盘到阵列RUN_ARRAY 运行阵列
0 条评论
回复 删除
下一页