linux-raid (二) faulty 和 multipath

本文简要介绍了Linux RAID中的'faulty'模块,用于模拟磁盘读写错误进行测试,以及'multipath'的实现方式,包括对请求的分配、磁盘添加与移除的管理。

源文件
        linux/drivers/md/faulty.c
        linux/drivers/md/multipath.h
        linux/drivers/md/multipath.c

linux-raid 之 faulty

个人对它兴趣不大,这里简单记录一下介绍。

faulty 模块实现了 fautly-device-simulator personality for md:

复制代码
    The "faulty" module allows for a block device that occasionally returns
    read or write errors.  It is useful for testing.

    MODULE_DESCRIPTION("Fault injection personality for MD")
    MODULE_ALIAS("md-personality-10")
    MODULE_ALIAS("md-faulty")
    MODULE_ALIAS("md-level--5")

    config MD_FAULTY
        tristate "Faulty test module for MD"
        depends on BLK_DEV_MD
        help
            The "faulty" module allows for a block device that occasionally returns
            read or write errors.  It is useful for testing.
复制代码


linux-raid 之 multipath (deprecated)

md multipath 已经不开发了 (not under active development),使用 multipath 应该看 dm-mpath。这里只是简单了解一下 mpath 的一种实现:


multipath_make_request:对请求的分配可以看出,multipath 对 path 的管理是很简单的,即尝试第 1 个可用的 path,来分配 IO。如果 IO 失败了,则加入 retry list,后由 multipathd 来重试 IO 操作
multipath_add_disk:add 不能随便添加,只能是向固定大小的 multipaths 数组的空 slot 中添加 rdev;并不能增大 multipaths 槽的大小
multipath_remove_disk:从 multipaths 数组中找到对应 slot,设置其 rdev 为 NULL

md multipath 没有什么复杂的策略和管理机制,比如轮转、IO balance 等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值