美文网首页
cephfs如何配置多主(多活)MDS

cephfs如何配置多主(多活)MDS

作者: ypdai | 来源:发表于2019-07-29 14:22 被阅读0次

    title: cephfs如何配置多主(多活)MDS

    2019/03/29 ypdai

    配置多主MDS

    MDS配置模式分为以下三种:

    • 冷备模式:同一时间,只有一个mds工作,单纯的进程备份。
    • 热备模式:同一时间,只有一个mds工作,但除了进程备份,也实时备份元数据,这样可以加快MDS故障切换时间。
    • 多主模式:多个MDS同时工作,各自管理自己负责的元数据。

    默认情况下,每个cephfs文件系统的MDS都是以冷备模式配置的。有时候为了获取更高的性能,可以启用多个活动的MDS守护进程,也就是多主模式,它们将彼此分担元数据的工作负载。

    下面主要介绍如何配置MDS多主模式。

    1、什么时候需要配置多主MDS?

    当cephfs的性能出现在MDS上时,就应该配置多个活动的MDS。通常是多个客户机应用程序并行的执行大量元数据操作,并且它们分别有自己单独的工作目录。这种情况下很适合使用多主MDS模式。

    2、开始配置MDS多主模式

    2.1、增加max_mds

    每个cephfs文件系统都有一个max_mds设置,可以理解为它将控制创建多少个主MDS。注意只有当实际的MDS个数大于或等于max_mds设置的值时,mdx_mds设置才会生效。例如,如果只有一个MDS守护进程在运行,并且max_mds被设置为两个,则不会创建第二个主MDS。

    将max_mds设置为所需的个数:

    $ ceph fs set max_mds 2
    

    2.2、配置备用MDS

    即使有多个活动的MDS,如果其中一个MDS出现故障,仍然需要备用守护进程来接管。因此,对于高可用性系统,实际配置max_mds时,最好比系统中MDS的总数少一个。

    但如果你确信你的MDS不会出现故障,可以通过以下设置来通知ceph不需要备用MDS,否则会出现insufficient standby daemons available告警信息:

    $ ceph fs set <fs> standby_count_wanted 0 
    

    2.3、绑定集群目录到指定的MDS上

    在多主MDS配置中,这些MDS可以在集群中均匀的动态的分配元数据负载。但还有一种情况就是我们需要把某个集群目录绑定到一个指定MDS上,只让这个MDS来负责这个目录的元数据处理,比如我有两个集群目录dir01、dir02,然后我配置MDS01、MDS02为双主模式同时工作,这样我就可以让MDS01负责dir01的元数据,MDS02负责dir02的元数据。这样配置好处显而易见。

    配置方式:

    $ setfattr -n ceph.dir.pin -v {mds-rank} {path-to-dir}
    

    {mds-rank}从0开始,ceph -s命令输出里面可以看到:

    # node01节点上mds-rank为0,node02节点上的mds-rank为1
    mds: ceph-2/2/2 up  {0=node01=up:active,1=node02=up:active}
    

    {path-to-dir}表示需要绑定到指定mds-rank上的集群目录。

    这样就配置好了,步骤比较简单。

    2.4、还原为单主MDS

    恢复也就两步:

    # 设置max_mds
    $ ceph fs set max_mds 1
    
    # 删除不需要的rank
    $ ceph mds deactivate {cephfs-name}:{mds-rank}
    

    注意所有的rank,包括要被移除的rank,必须先激活。这意味着必须至少有max_mds个MDS守护进程可用。

    在一段时间内,停用的rank将首先进入停止状态,同时将其负责的元数据传递给剩余的活动的MDS。这个阶段可能需要几秒钟到几分钟。

    相关文章

      网友评论

          本文标题:cephfs如何配置多主(多活)MDS

          本文链接:https://www.haomeiwen.com/subject/sxjbrctx.html