【问题标题】:migrate samba domain to CTDB将 samba 域迁移到 CTDB
【发布时间】:2015-05-25 20:43:33
【问题描述】:

我正在尝试将 samba 域控制器(版本 3.6,passdb 后端 = tdbsam)迁移到具有 CTDB(相同 samba 版本)的新集群环境。 我有一个功能性的 ceph 存储和根据文档配置的 ctdbd。

但是,所有可用指南都适用于全新安装,我无法将当前数据迁移到 CTDB。

单纯的将tdb数据库恢复到CTDB是不行的,最后报错如下:

2015/05/25 22:25:04.849302 [5636]:数据库转储版本无效。 文件版本为 7308332182664266836,但预期版本为 1

使用 ltdbtool 转换 tdb 数据库也不会带来任何乐趣。

如何将 tdb samba 数据库导入 ctdb? 谢谢, 马尔科

【问题讨论】:

  • 似乎 samba 3.6 不能在 centos 6.6 上与 ctdb 2.5 一起正常工作。来自官方存储库的 Samba4 工作正常。

标签: samba migrate tdb


【解决方案1】:

首先警告几句:使用 CTDB 集群域控制器并不常见。 Clustering/CTDB 是为文件服务器制作的,这些文件服务器通常是域中的成员服务器。域控制器的主要目的是为客户端提供登录服务,并且通常使用不同的复制服务(例如,将 DB 存储在 ldap 而不是 TDB 中)。对域控制器进行群集可能会出现问题,因为整个群集需要始终如一地向客户端显示自己作为单个服务器。这可能会导致 nmbd / NetBIOS 名称解析出现问题。此外,一个问题是您需要确保在集群中所有底层用户帐户都是在具有相同用户 ID 的所有 ctdb 集群节点上创建的。

一般来说,最好的做法是尽可能将文件服务器角色与域控制器角色分开。还要记住,从 Samba 4.0 开始,现在有了 Active Directory 域控制器的功能,它在协议级别附带用户数据库的多主复制。

话虽如此,重要的是您不能随意替换 samba 和 ctdb 版本。 Samba 3.6 应该与 ctdb 2.5 一起使用,但需要针对要使用的 ctdb 版本重新编译 Samba。 IE。如果 Samba 是针对旧版本的 CTDB(如 1.0.114.X)编译的,那么这个二进制包将无法与 CTDB 2.5 一起使用。

如果您有一组工作的 samba 和 ctdb 软件包,那么将以前的安装迁移到这个新安装的过程取决于以前的安装是否也是 CTDB 集群。如果是这样,你可以这样做

ctdb getdbmap

在旧安装上然后运行

ctdb backupdb

在所有标记为 PERSISTENT 的数据库上。在您使用的新安装中

ctdb restoredb

恢复所有这些数据库。

如果之前的安装是非集群 Samba,那么您使用 ltdbtool 的提示是正确的。你必须

  • 至少从旧安装中复制重要的数据库:

    secrets.tdb passdb.tdb winbindd_idmap.tdb group_mapping.tdb account_policy.tdb share_info.tdb

  • 使用ltdbtool将它们转换为ctdb格式

  • 确保所有节点上的 ctdb 都关闭
  • 将转换后的 dbs 复制到节点号 0 上的 /var/lib/ctdb/persistent/,文件名后缀为 .0,例如`/var/lib/ctdb/persistent/secrets.tdb.0'
  • 在节点 0 上启动 ctdb
  • 在所有其他节点上启动 ctdb

之后,这些数据库应该在集群上同步。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2013-09-10
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多