是否有可用于生产系统的双活开源方案?

最近一直在看和实验华为基于hypermetro特性实现的块/文件双活,以文件双活I/O为例,手册中给出了写
I/O的原理图:

从实现原理上,有如下疑问:
1.  I/O 双活管理模块 作为存储侧接收和处理请求的第一个模块,对于NFS文件存储来说,这个请求一定的NFS请求,那是不是I/O双活管理模块必须能处理NFS请求呢?还是它根本就不解析这个协议类型,只是处理这个tcp/ip包,生成图中的LOG?
2. I/O双活管理模块,是一个内核模块吗?

要做成这些事情,有没有可用的开源方案,可供学习呢?

参与9
  • 匿名用户
    [此评论已删除]
    2023-07-25
  • 匿名用户
    理论上有,Block层跑DRBD,上面用RHCS+GFS做Global文件系统。也在虚拟环境实验成功过。但是,对生产环境没任何用处。谁敢用? 内蒙的?
    2023-07-25

1同行回答

waring_idwaring_id技术经理某公司
I/O 双活管理模块 作为存储侧接收和处理请求的第一个模块,对于NFS文件存储来说,这个请求一定的NFS请求,那是不是I/O双活管理模块必须能处理NFS请求呢?还是它根本就不解析这个协议类型,只是处理这个tcp/ip包,生成图中的LOG?NFS 其实是文件系统,它基于应用层面或是系统层面。主机...显示全部
  1. I/O 双活管理模块 作为存储侧接收和处理请求的第一个模块,对于NFS文件存储来说,这个请求一定的NFS请求,那是不是I/O双活管理模块必须能处理NFS请求呢?还是它根本就不解析这个协议类型,只是处理这个tcp/ip包,生成图中的LOG?

    NFS 其实是文件系统,它基于应用层面或是系统层面。主机的 IO 操作是磁盘底层的操作。这2个的级别是不一样的。处理模块能处理 NFS 请求是在控制器中集成了 NFS 协议,让其支持 NFS 文件系统而已。

  2. I/O双活管理模块,是一个内核模块吗?

    这个示意图里就是一个功能模块。log 主要用于记录读写操作,当存储数据不一致时起见证支持作用

双活的本质是要解决数据同时写入时的一致性问题,不能出现存储2端数据不一致的现象。因此双边的存储同时对外提供应用服务,单台故障时不影响业务运行(需要考虑性能情况,理论上故障时的性能是平时的2倍或以上)

开源的方案都是基于分布式存储。分布式存储通过横向扩展的方式解决性能和扩展问题。传统存储受控制器限制,性能和扩展性存在限制。

收起
零售/批发 · 2023-08-01

ChatGPT 回答

针对您的问题,我可以给出以下解答:

  1. I/O双活管理模块作为存储侧接收和处理请求的第一个模块,它主要负责处理块/文件双活的I/O请求,而不是特定协议的请求。对于NFS文件存储来说,I/O双活管理模块并不需要处理NFS请求,而是需要处理NFS请求所对应的I/O请求。因此,它主要解析的是I/O请求的相关信息,例如请求的LUN、块地址、数据长度等,然后将请求转发给相应的存储设备进行处理。
  2. I/O双活管理模块是一个内核模块,它需要与存储设备的驱动程序进行交互,以实现块/文件双活的功能。目前,开源社区中也有一些类似的软件定义存储方案,例如Ceph、GlusterFS等,它们也支持块/文件双活的功能。如果您想学习相关的知识,可以参考这些开源方案的实现原理和代码实现。

提问者

abelard2008
软件开发工程师大道云行
擅长领域: 存储灾备存储安全

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-07-25
  • 关注会员:2 人
  • 问题浏览:1668
  • 最近回答:2023-08-01
  • X社区推广