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 等。

posted on 2012-12-29 13:24  refrag  阅读(1765)  评论(0编辑  收藏  举报

导航