本文档适用于 Zimbra Daffodil 版本 10.0 和 10.1.0。
许可证
Synacor, Inc.,2022-2023
© 2022-2023 Synacor, Inc. Zimbra Daffodil (v10) 单节点 NG 模块滚动升级迁移指南
本作品已获得 Creative Commons 许可归因-相同方式共享 4.0 国际许可,除非您与其他许可协议 Synacor, Inc. 另有规定。要查看此许可证的副本,请访问 http://creativecommons.org/licenses/by-sa/4.0或写信给 Creative Commons,邮政信箱 1866,山景城,CA 94042,美国。
Synacor, Inc.,2022-2023
埃利科特街 505 号,A39 室
布法罗, 纽约 14203
US
Zimbra Daffodil (v10.1) 中引入的许可更改
Zimbra Daffodil (v10.1) 开始引入了新的许可系统,该系统允许更灵活地管理许可证并启用未来的细粒度功能附加组件。
添加了名为许可证守护程序服务 (LDS) 的新服务,它是支持许可证管理所需的服务。
在开始迁移之前,请参阅Zimbra Daffodil (v10.1) 许可部分并查看更改。
简介
本指南提供使用滚动升级方法将 8.8.15/9.0.0 单节点 NG 服务器迁移到 Zimbra Collaboration Daffodil (v10) 的步骤。
此方法不支持迁移带有/不带有 Zimbra Suite Plus (ZSP)设置的8.8.15-FOSS。要迁移此类设置,请参阅就地升级指南.
Zimbra Collaboration 在与 NG 模块一起安装时会安装以下模块:
-
分层存储管理。
-
备份和恢复。
-
移动 - ActiveSync。
-
设备管理 - ABQ。
-
委派管理员。
-
驾驶。
-
连接。
| 仅运行最新补丁版本的 Zimbra Collaboration 8.8.15 和 9.0.0 版本支持迁移。 |
| 此迁移方法不支持迁移带/不带 Zimbra Suite Plus (ZSP) 设置的 8.8.15-FOSS。 |
| 此迁移实用程序当前不支持 Zimbra Connect / Chat 数据的迁移。 |
|
执行这些步骤时,建议在测试环境中进行测试并确保有备份以防万一。 此外,本指南的创建步骤可以一次性完成,也可以在不同的维护时段内完成。
概述
在此方法中,我们利用 Zimbra 服务器将多个系统集群在一起的能力来添加包含最新版本的新系统,迁移帐户数据,然后弃用现有系统。
此方法适合您,如果:
-
您想要迁移到新硬件、数据中心或云,和/或更改操作系统。
-
您想要有限的停机时间。
-
您想要在迁移之前测试配置和设置。
-
您想要维护帐户完整性。
受众
本迁移指南假定您对系统管理概念和任务有透彻的了解,并且熟悉电子邮件通信标准、安全概念、目录服务和数据库管理。
使用滚动升级方法进行迁移
使用滚动升级方法的能力允许极其灵活地管理和升级 ZCS 服务器。 由于 ZCS 服务器独立于操作系统,因此此迁移方法允许使用具有更新或不同操作系统的相同 ZCS 版本来添加和升级新的 LDAP、MTA、代理和邮箱服务器。
以下是此方法涉及的步骤:
-
创建新服务器。
-
在生产服务器上启用 MMR。
-
使用当前生产版本和新服务器上的所有模块进行安装,这将启动 LDAP 复制。
-
将生产服务器指向新的 LDAP 并弃用现有的 LDAP 模块。
-
将新服务器升级到 Daffodil。
-
定制并测试新服务器。
-
将生产连接重定向到新服务器。
-
迁移帐户。
-
弃用生产服务器。
为了协助这一转变,LDAP 服务器向后兼容,这意味着旧的代理、MTA 和邮箱服务器可以针对更新的 LDAP 运行。可能会发生许多不同的情况,最好在开始任何升级之前确定需要什么。
| 仅运行最新补丁版本的 Zimbra 8.8.15 和 9.0.0 版本支持将 NG 数据迁移到 Daffodil (v10)。 |
| 如果您使用 Zimbra Connect 或 Chat,请注意,目前不支持迁移这些模块。请联系 Zimbra 支持或销售人员获取指导。 |
本节将详细介绍 NG 迁移工具以及如何迁移 NG 配置。没有 NG 模块运行的客户可以继续执行这些步骤,但将跳过所有 NG 迁移步骤。
先决条件和网络注意事项
为了支持滚动升级迁移模型,需要创建一个新系统。创建新系统时,您将需要使用新的主机名并构建系统以满足您当前和未来的需求。此外,还需要考虑网络。网络速度和可靠性在这些系统之间至关重要,特别是在数据中心或不同位置之间进行迁移时。如果这些系统之间存在防火墙,则需要确保这些服务器可以通过 HTTP/S、SSH、LMTP、SMTP、LDAP 等进行通信。有关所有节点内通信端口的更多信息,请参阅Zimbra 使用的默认端口.
在开发本文档时,我们做了一些假设,即个人对网络、故障排除以及如何设置 Zimbra 实例有基本的了解。 本文档假设正在使用标准安装,但在生产系统上执行步骤之前,建议详细检查、在测试环境中进行测试,并确保在开始迁移之前有备份。
在新服务器
上设置 MMR 并安装服务 为了更好地理解,我们将在整个指南中使用以下示例:
-
8.8.15/9.0.0 服务器 -old.server.com
-
Daffodil (v10) -new.server.com
此部分将在当前生产服务器 (old.server.com) 上启用 MMR,然后将添加新系统 (new.server.com)使用当前的 ZCS 版本来制作一个双服务器集群。完成此安装中的以下步骤后,old.server.com将使用 new.server.com 上的 LDAP 服务,并且old.server.com上的 LDAP 服务将被禁用。
| 这不会影响 NG 模块,因为启用模块的属性位于old.server.com邮箱存储上,并被列为可用 zimlet。由于 NG 未安装在new.server.com邮箱存储上,new.server.com服务器将忽略 NG zimlet 配置。 |
在开始此过程之前,您需要使用当前 Zimbra 版本和 Daffodil (v10) 支持的操作系统版本创建一个新系统。该系统应具有支持当前和未来增长所需的环境配置(CPU、内存等)。
| 操作系统 (OS) 是特定于服务器的要求,不需要与当前生产服务器的版本相同。 |
在启用 MMR 之前,您需要从old.server.com获取现有密码,以便在new.server.com上安装期间使用。请保存这些密码,因为我们在配置 LDAP MMR 设置时需要它们。
-
作为
zimbra用户,执行以下命令:
$ zmlocalconfig -s ldap_amavis_password ldap_bes_searcher_password ldap_nginx_password ldap_postfix_password ldap_replication_password ldap_root_password zimbra_ldap_password
一个常见问题是 LDAP 端口被阻止。请确保服务器之间可以访问端口 389。
启用 MMR
一旦您设置了 new.server.com 服务器并获得了所需的密码信息,就可以在当前的生产系统上启用 MMR,这需要重新启动 LDAP 服务。
-
维护时段- 约 5 分钟
-
作为一个
zimbra用户,在当前生产服务器上执行以下命令 -old.server.com:
$ /opt/zimbra/libexec/zmldapenable-mmr -s 1 -m ldap://new.server.com:389/ zmcontrol restart
请参考此指导有关在现有单节点主服务器上启用多主复制的更多信息。
安装和同步 LDAP 复制
在 new.server.com 服务器上,下载 ZCS 的当前生产版本和活动许可证文件。请参阅下载页面获取 ZCS 版本构建。 下载完成后,解压并运行./install.sh使用许可证文件。
| 需要安装所有 Zimbra 组件以及 LDAP 模块才能利用自动配置集群的安装脚本。 |
./install.sh -l /path/license.xml
| 不要安装任何 NG 模块,zimbra-network-modules-ng、zimbra-chat、Zimbra Drive 或 Connect此时。在下面的部分中,new.server.com将升级到 Daffodil (v10),它已更新功能以替换这些组件。 |
以下是典型安装的概述:
Do you agree with the terms of the software license agreement? [N] Y
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-dnscache [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-convertd [Y]
Install zimbra-memcached [Y]
Install zimbra-proxy [Y]
Install zimbra-archiving [N]
Install zimbra-drive [Y] N
Install zimbra-imapd (BETA - for evaluation only) [N]
Install zimbra-network-modules-ng [Y] N
Install zimbra-chat [Y] N
安装程序将进入配置部分,您需要在其中将这个新实例配置到生产服务器。此过程不会影响您当前的生产环境。
-
选择 1 -通用配置,然后配置选项 2 和 4。输入后,系统将验证new.server.com 是否可以连接到old.server.com.
1) Common Configuration:
2) Ldap master host: <old.server.com>
4) Ldap Admin password: <ldap_root_password>
Select, or 'r' for previous menu [r] r
-
系统将验证两个 LDAP 之间的连接,如果成功,将返回不带 ** 的连接。
-
选择r返回然后选择2 zimbra-ldap.
2 zimbra-ldap.
1) Status: Enabled
2) Create Domain: yes
3) Domain to create: Domain.com
4) Ldap replication type: replica
5) Ldap root password: set
** 6) Ldap replication password: Not Verified
** 7) Ldap postfix password: Not Verified
** 8) Ldap amavis password: Not Verified
** 9) Ldap nginx password: Not Verified
-
选择4LDAP 复制类型:并更改为mmr:
Please enter the LDAP replication type (replica, mmr) [replica] mmr
-
然后,您需要使用从生产服务器old.server.com:
** 6) Ldap replication password: Not Verified ** 7) Ldap postfix password: Not Verified ** 8) Ldap amavis password: Not Verified ** 9) Ldap nginx password: Not Verified
-
获取的密码来更新所有其他组件的密码,最后,您需要更新第 7 节zimbra-store 中的管理员密码使用现有的管理员密码:
7) zimbra-store: Enabled
** 4) Admin Password UNSET
| 上述菜单项并不完整,可能会根据要安装的所选组件而有所不同。但根据环境设置,可能会有或多或少的要求和其他自定义,但启用 MMR 需要上述 LDAP 配置。 |
安装完成后,可以通过在old.server.com上更新测试用户的属性来检查复制,然后验证更改new.server.com。然后将属性恢复为new.server.com 上的原始配置然后在old.server.com 上验证更改.
-
获取当前配置:
zmprov ga <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries
#name test-user@domain.com
zimbraZimletUserPropertiesMaxNumEntries: 150
-
更新old.server.com 上的配置然后在old.server.com 上验证更改__ZSEP_9f7__ new.server.com.
-
在old.server.com上,以
zimbra用户身份执行此命令:
-
zmprov ma <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries 160
-
在new.server.com上,以
zimbra用户身份执行此命令:
zmprov -l ga <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries
-
Restore Configuration onnew.server.com然后验证old.server.com.
-
上的更改 在new.server.com上,执行此命令
zimbra用户:
-
zmprov ma <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries 150
-
在old.server.com上,以
zimbra用户身份执行此命令:
zmprov -l ga <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries
笔记:-l调用需要从配置的 LDAP 获取属性。如果-l不使用,服务器将从服务器的缓存中获取属性。
将新服务器升级到 Zimbra Collaboration Daffodil (v10)
此阶段包含两个步骤,均需要停机:
-
配置old.server.com以在上使用新的 LDAPnew.server.com.
-
将new.server.com升级到 Zimbra 协作 Daffodil (v10)。
一旦第一步完成,old.server.com的功能相同,只是它将使用new.server.com.
上的 LDAP 第二步将升级new.server.com 上的组件Zimbra Collaboration Daffodil (v10),同时提供安装唯一的 Office 和更新的聊天和视频功能的选项。升级完成后,new.server.com LDAP 将具有新架构,并且old.server.com将配置为使用将运行 Daffodil (v10) 的更新后的 LDAP。
配置生产系统 (old.server.com) 以使用新的 LDAP
-
维护时段- 约 5 分钟
从 MMR 副本更新中删除现有 LDAPldap_master_url和ldap_url在两个系统上都指向new.server.com.
-
作为
zimbra用户在两台服务器上执行以下命令:
su - zimbra zmlocalconfig -e ldap_master_url="ldap://new.server.com:389" zmlocalconfig -e ldap_url="ldap://new.server.com:389"
-
在old.server.com上,从
zimbraServiceEnable和zimbraServiceInstalled:
zmprov ms <old.zimbra.com> -zimbraServiceEnabled ldap -zimbraServiceInstalled ldap
-
中删除 LDAP 在两台服务器上重新启动 zimbra 服务:
zmcontrol restart
-
重新启动两台服务器后,old.server.com现在正在使用 LDAPnew.server.com。由于我们从启用的服务列表中删除了生产 LDAP,因此它仍然可以运行,但未被使用。在old.server.com上,您可能需要通过运行以下命令来停止生产 LDAP:
ldap stop
注意:new.server.com当前具有自签名证书。
管理 UI 在两个系统上运行,并将反映系统上安装的版本。登录old.server.com并new.server.com管理 UI 并验证您是否可以访问、查看和编辑服务器、用户和 COS 配置。
如果在任一系统上启动服务器时出现以下错误,则意味着 DNS 中存在问题,主机名或 zmhostname 不匹配,或者 zmlocalconfig 中的密码设置不正确。另外,如果在上述步骤 2 中未删除old.server.comLDAP,则会导致此错误。
Failed to start slapd. Attempting debug start to determine error.
6425fca4 daemon: bind(7) failed errno=99 (Cannot assign requested address)
6425fca4 slap_open_listener: failed on ldap://hostname:389
安装签名证书
从old.server.com 复制/opt/zimbra/ssl/zimbra/commercial/中的文件到new.server.com.
确保权限设置为zimbra在所有文件上。
以 root 用户身份执行以下命令:
/opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt commercial_ca.crt
Update SSH Keys
要配置 ssh 访问以在 old.server.com 和new.server.com之间同步帐户数据,需要在每台服务器上生成 ssh 密钥,然后每台服务器需要同步其他服务器的 ssh 密钥。要创建 ssh 密钥,请运行zmsshkeygen作为两个系统上的 zimbra 用户:
zmsshkeygen
生成密钥后,通过在两个服务器上运行zmupdateauthkeys来同步密钥:
zmupdateauthkeys
密钥更新立即生效,无需重新启动服务器。请参阅指南了解更多信息。
状态:在此阶段,两台服务器运行相同的版本,但old.server.com指向新的 LDAP。除 LDAP 之外的所有活动均发生在old.server.com。在new.server.com上,代理、MTA 和邮箱服务正在运行且可访问,但处于空闲状态。可以通过new.server.comMTA 和代理传递数据来测试安装,这些服务器会将连接重定向到帐户所在的服务器。管理 UI 也可以在两个系统上访问。 old.server.com 将包含 NG 模块,而new.server.com则不会。因此,所有帐户都需要使用old.server.com管理 UI 进行管理。
添加 OnlyOffice 存储库
在系统上添加 OnlyOffice 存储库。
| 如果您不使用 Zimbra Docs 或升级到 Daffodil (v10) 后不打算使用它,则可以跳过本节。 |
以下是步骤。以root用户身份执行命令
-
RHEL 7
$ cat > /etc/yum.repos.d/zimbra-onlyoffice.repo <<EOF
[zimbra-onlyoffice]
name=Zimbra Onlyoffice RPM Repository
baseurl=https://repo.zimbra.com/rpm/onlyoffice/rhel7
gpgcheck=1
enabled=1
EOF
$ yum --disablerepo=* --enablerepo=zimbra-onlyoffice clean metadata
$ yum check-update --disablerepo=* --enablerepo=zimbra-onlyoffice --noplugins
-
RHEL 8
$ cat > /etc/yum.repos.d/zimbra-onlyoffice.repo <<EOF
[zimbra-onlyoffice]
name=Zimbra Onlyoffice RPM Repository
baseurl=https://repo.zimbra.com/rpm/onlyoffice/rhel8
gpgcheck=1
enabled=1
EOF
$ yum --disablerepo=* --enablerepo=zimbra-onlyoffice clean metadata
$ yum check-update --disablerepo=* --enablerepo=zimbra-onlyoffice --noplugins
-
UBUNTU 18
$ cat > /etc/apt/sources.list.d/zimbra-onlyoffice.list << EOF deb [arch=amd64] https://repo.zimbra.com/apt/onlyoffice bionic zimbra deb-src [arch=amd64] https://repo.zimbra.com/apt/onlyoffice bionic zimbra EOF $ apt-get update
-
UBUNTU 20
$ cat > /etc/apt/sources.list.d/zimbra-onlyoffice.list << EOF deb [arch=amd64] https://repo.zimbra.com/apt/onlyoffice focal zimbra deb-src [arch=amd64] https://repo.zimbra.com/apt/onlyoffice focal zimbra EOF $ apt-get update
将 new.server.com 升级到 Daffodil (v10)
-
维护时段- 大约 60 分钟
是时候将 new.server.com 升级到 Daffodil (v10) 了。
-
下载Daffodil (v10) 包到new.server.com并运行
install.sh脚本。 -
安装程序将询问您是否要升级并列出所有已卸载的软件包。对于 Daffodil 将有两个zimbra-onlyoffice用于文档编辑和聊天和视频用于聊天和视频通话。以下是升级屏幕的概述:
Do you wish to upgrade? [Y] Y Install zimbra-archiving [N] n Install zimbra-onlyoffice [N] y Install chat and video features [N] n Installing: zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-convertd zimbra-memcached zimbra-proxy zimbra-onlyoffice zimbra-license-tools zimbra-license-extension zimbra-network-store zimbra-modern-ui zimbra-modern-zimlets zimbra-zimlet-document-editor zimbra-zimlet-classic-document-editor zimbra-patch zimbra-mta-patch zimbra-proxy-patch zimbra-ldap-patch zimbra-rabbitmq-server The system will be modified. Continue? [N] Y -
如果安装过程中有任何配置需要修改,则会显示配置提示,其中包含“**”。每个安装的情况都会有所不同,但大多数情况下是由密码问题引起的,需要使用本文档开头的步骤从 old.server.com 获取该密码。
zimbra-ldap: Enabled +Create Domain: no +Ldap root password: set +Ldap replication password: set +Ldap postfix password: set +Ldap amavis password: set +Ldap nginx password: set ******* +Ldap Bes Searcher password: Not Verified -
提供所需信息后,完成升级。
注意:启用 MMR 后,OpenLDAP 不支持禁用 MMR。因为我们使用 MMR 作为移动到另一台服务器的方法,一旦old.server.comLDAP 已被删除,new.server.comLDAP 将开始在 zimbra.log 中报告连接错误。除了过多记录到 zimbra.log 之外,这对新 LDAP 没有任何影响。为了防止此日志填满,我们建议通过创建以下 crontab 条目每隔一两个小时清除一次日志记录:
*/2 0 * * * sed -i -e '/ldap_start_tls failed\|rc -1 retrying/d' /var/log/zimbra.log
状态:升级完成后,new.server.com 上的所有模块均已升级为 Daffodil (v10)。这意味着 old.server.com 现在使用支持向后兼容性的 Daffodil (v10) LDAP 服务器。new.server.com上的所有其他组件均处于空闲状态。
定制、配置和测试 Daffodil (v10) 系统
是时候完成 new.server.com 的配置、自定义和测试了。访问 new.server.com 或 old.server.com 的主机名将引导您进入服务器上的登录页面。访问帐户会将用户重定向到该帐户所在的服务器。访问管理 UI 将使用户登录到所选服务器管理页面。对于管理用户界面,new.server.com将具有 Daffodil (v10) 经验,并且old.server.com主机名将具有 NG 经验。
| 我们建议使用服务器所属的管理 UI 版本来管理帐户,以确保更改得到识别。此外,Daffodil (v10) UI 会报告某些服务已关闭并且没有备份。对于服务来说,这是可以理解的,因为我们没有配置服务器来相互报告其状态,因为old.server.com系统将被弃用。 |
由于原服务器的主机名发生变化,需要将登录URL添加到域虚拟主机列表中。这可以通过进入管理 UI,然后选择域 → 编辑 <域> → 虚拟主机来完成.
您也可以通过命令添加虚拟主机。作为zimbra用户,执行命令:
zmprov md <Domain.com> +zimbraVirtualHostname <hostname>
安装NG迁移工具并导出NG数据
| 不使用NG模块的客户可以跳过此步骤。 |
NG 迁移实用程序旨在将 NG 相关配置和数据迁移到 Daffodil (v10) 系统。仅当前正在使用的组件需要导出数据。
| 导出/导入命令中使用的管理员用户是服务器上的全局管理员。 |
| 从 Daffodil (v10) 邮箱服务器执行所有数据导出和导入命令。 |
下载并安装迁移工具
迁移实用程序包可在 Zimbra 的公共存储库中获取。
以下是在 Daffodil (v10) 服务器上下载并安装迁移实用程序的步骤。
-
在 RHEL/CentOS 系统上,以root 身份执行:
yum clean metadata yum check-update yum install zimbra-modules-porter
-
在 Ubuntu 系统上,以root 身份执行:
apt-get update apt-get install zimbra-modules-porter
安装成功后,出现一条命令zmmodulesport将在服务器上可用。
迁移 HSM 配置
| 不使用 HSM 或使用非 S3 卷的客户可以跳过此步骤。 |
设置卷至关重要,并且对于每个客户来说都是不同的,但这也是您可以重新考虑卷配置的时候。
zmmodulesport工具能够将old.server.com中的 HSM 配置复制到new.server.com中,并且根据存储类型,每次迁移都会有所不同。
以下是我们迁移数据时需要使用的属性的详细信息以及它们设置为时的行为TRUE:
-
zimbraMailboxMoveSkipBlobs:Blob 数据将在移动中排除。 -
zimbraMailboxMoveSkipHsmBlobs:主存储 blob 将被移动。将跳过 HSM(辅助)blob。
根据您的主存储和辅助存储设置,迁移 HSM 数据和帐户的步骤会有所不同。请根据您的存储设置参阅以下指南:
主存储 - 内部 |辅助存储 - 外部
以下是此设置的详细信息:
-
您正在使用 NG HSM。
-
主存储设置在内部存储上。
-
辅助存储设置在外部 S3 存储上。
您必须设置zimbraMailboxMoveSkipBlobs属性为FALSE和zimbraMailboxMoveSkipHsmBlobs属性为TRUE在启动帐户迁移之前在全局配置级别上。
zmprov mcf zimbraMailboxMoveSkipBlobs FALSE
zmprov mcf zimbraMailboxMoveSkipHsmBlobs TRUE
| 在Daffodil (v10.1)服务器上运行此命令。 |
此配置将移动主数据,但 S3 卷中的所有数据将被跳过。
主存储和辅助存储 - 外部
以下是此设置的详细信息:
-
您正在使用 NG HSM。
-
主存储和辅助存储设置在外部 S3 存储上。
您必须设置属性zimbraMailboxMoveSkipBlobs至TRUE在启动帐户迁移之前在全局配置级别上。
zmprov mcf zimbraMailboxMoveSkipBlobs TRUE
此配置将跳过移动主存储和辅助存储数据。
主存储和索引存储 - 内部 |辅助存储 - 外部
以下是此设置的详细信息:
-
您正在使用 NG HSM。
-
主存储和索引存储设置在内部存储上。
-
辅助存储设置在外部 S3 存储上。
你必须设置zimbraMailboxMoveSkipHsmBlobs至TRUE在全局配置级别运行:
zmprov mcf zimbraMailboxMoveSkipHsmBlobs TRUE
此配置将移动主数据和索引数据,但将跳过 S3 卷中的所有数据。
在移动数据之前,需要将卷配置迁移到#.new.mailbox.com服务器使用zmmodulesport。此功能允许您选择使用现有卷或将 Blob 数据移动到新卷。
导出 HSM 数据
-
作为
zimbra用户,在new.mailbox.com服务器上执行此命令:
su - zimbra zmmodulesport system export --modules=hsm --filename=hsm-data --server=old.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/hsm-export.log
A 文件hsm-data.tgz将在/opt/zimbra/tmp/modules/hsm/ 中创建.
导入 HSM 数据
-
作为
zimbra用户,执行以下命令 #new.mailbox.com 服务器:
su - zimbra zmmodulesport system import --modules=hsm --filename=hsm-data --server=new.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/hsm-import.log
使用zmmodulesport将覆盖管理卷在new.server.com 上使用old.server.com服务器的设置。要重新设计新的 Daffodil 卷,我们建议导入old.server.com设置,然后修改配置以满足您当前的需求。为了防止数据丢失,不建议删除或更改当前包含数据的卷上的配置。
|
迁移备份和恢复配置
迁移实用程序仅在 COS 启用/禁用备份和恢复功能时提供信息。
导出备份数据
-
作为
zimbra用户,执行以下命令:
su - zimbra zmmodulesport system export --modules=backup --filename=backup-data --server=old.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/br-export.log
将在/opt/zimbra/tmp/modules/backup/导入备份数据内创建文件.
backup-data.tgz
| 无法通过该实用程序导入备份和恢复配置。您必须手动更新系统上的域/用户的配置。 |
| Daffodil (v10) 和 NG 备份包含不同的格式,您将无法直接使用 Daffodil (v10) 备份和恢复功能来恢复 NG 备份。此外,如果 NG 备份用于灾难恢复以外的任何用途,我们建议将 NG 备份复制到存档位置。 Zimbra 创建了一个工具,允许恢复消息数据,仅用于审核和恢复目的。 |
手动检查备份配置:
-
提取导出的backup-data.tgz文件。
-
在解压后的目录中,打开 json 文件,查看Enabled值的 COS。
-
登录 new.server.com 的管理控制台。
-
转到配置 → 全局设置 → 备份/恢复.
-
在选择要备份的用户 → 域和 COS下,单击添加 COS按钮,并在 json 文件中添加已启用备份的 COS。
-
如果有多个 COS,请重复步骤。单击“保存”。
设置备份配置后,将为每晚迁移的任何新帐户创建完整备份。当当天迁移目标帐户后,可以手动执行备份。
迁移委派管理配置
使用 NG 委派管理的客户可以在 Daffodil 管理 UI 中迁移或手动配置管理员。
导出委派管理数据
-
作为
zimbra用户,执行以下命令:
su - zimbra zmmodulesport system export --modules=admin --filename=admin-data --server=old.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/da-export.log
A 文件admin-data.tgz将在/opt/zimbra/tmp/modules/admin/ 中创建.
导入委派管理数据
-
作为
zimbra用户,执行以下命令:
su - zimbra zmmodulesport system import --modules=admin --filename=admin-data --server=new.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/da-import.log
委派管理权限仅应用于创建它的版本这意味着委派管理员能够登录new.server.com中的管理 UI,但在迁移或手动设置权限之前不会拥有任何权限。设置权限后,委派管理员将需要登录old.server.com管理 NG 模块,或new.server.com管理 Daffodil 模块。基本帐户信息可以由任一服务器管理,但我们建议使用帐户所在服务器的管理 UI。
迁移移动数据
如果未使用针对移动设备的 ABQ 规则和共享文件夹支持,您可以跳过迁移部分,但请查看设备迁移部分,以确保您了解迁移后的行为变化。
移动数据由移动设备的 ABQ 规则和共享文件夹配置组成,是可在帐户之前迁移的 LDAP 属性。
导出移动数据
-
作为
zimbra用户,执行以下命令:
su - zimbra zmmodulesport system export --modules=mobile --filename=mobile-data --server=old.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/mobile-export.log
A 文件mobile-data.tgz将在/opt/zimbra/tmp/modules/mobile/.
-
内创建 要批量导出移动数据,请创建一个文件accounts-file.txt,其中包含以新行分隔的帐户的电子邮件地址。导出多个批次时,请确保在--filename参数中使用不同的文件。以
zimbra用户身份执行此命令。:
zmmodulesport system export --modules=mobile --accounts=/path/to/accounts-file.txt --filename=mobile-data1-batch1 --server=server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/mobile-export-batch1.log
这将在下创建一个文件mobile-data1-batch1.tgz __ZSEP_9f7__/opt/zimbra/tmp/modules/mobile.
设备迁移
将帐户从old.server.com移动到new.server.com时,活动同步模块将被更新,这将导致同步令牌重置。对于大多数设备,它会识别帐户重新同步请求并重新加载帐户,而无需用户执行任何操作。某些较旧的设备可能需要重新创建配置文件。
由于同步的数据量较大,某些环境中的 CPU 和 IO 可能会出现峰值。要延迟设备同步,您可以在邮箱移动之前禁用选定帐户的移动同步:
zmprov ma account@domain zimbraFeatureMobileSyncEnabled FALSE
然后,一旦移动帐户,您可以通过错开启用这些帐户的时间来启用这些帐户的移动同步,以确保设备重新同步时不会影响用户的体验。
| 这只是一个建议,每个环境都不同。系统管理员可以选择满足其环境限制的最佳方法。 |
| 应与迁移过程并行执行以下步骤。 完成这些步骤后,继续执行迁移帐户中描述的下一组迁移任务。 |
定制和单元测试
每个环境都不同,但您需要配置您的环境以支持 new.server.com,即发送出站邮件的能力。
以下是您应该执行的一些测试:
-
在new.server.com 上创建几个帐户.
-
登录到其中一个新帐户并向其他新帐户发送和接收邮件。
-
将测试帐户从old.server.com到new.server.com(有关步骤,请参阅下一节)。
-
从 new.server.com 上的代理到两个系统上的帐户的客户端同步(IMAP、POP、COS、Mobile 等)。
花时间测试和自定义新的用户体验,以确保当您将流量重定向到新的 MTA 和代理时不会出现任何问题。
将 MTA、代理流量重定向到 Daffodil (v10) 服务器 new.server.com
-
维护时段- 15 分钟。
将 MTA 和代理流量定向到 new.server.com 服务器。在此转换期间,Web 用户可能会看到轻微的延迟,并且可能需要重新加载浏览器,因为 https/http 流量将被重定向。
如果所有其他客户端使用的主机名未更改,则它们不应遇到任何同步问题。如果主机名更改,则所有客户端都需要使用新主机名重新配置。
我们还建议通过执行以下步骤配置 COS 以在新系统上创建新帐户:
-
从 new.server.com 获取 zimbraID:
zmprov gs new.server.com zimbraId
使用获取的 zimbraID 并更新所有 COS:
for c in $(zmprov gac); do zmprov mc $c zimbraMailHostPool <zimbraId>; done;
zimbraMailHostPool支持多种设置,并且应包含服务器 zimbraId。上述脚本将删除设置,然后将其重置为new.server.comzimbraId。
|
| 继续上一节,本部分介绍迁移过程的下一阶段. |
迁移帐户
本节将介绍如何将帐户数据从old.server.com迁移到new.server.com。此迁移可以包含以下步骤:
-
导出 Zimbra 驱动器数据。
-
将邮箱帐户从old.server.com迁移到new.server.com使用 zmmboxmove 命令。
-
导入 Zimbra 移动数据。
-
导入 Zimbra 驱动器数据。
| 如果您不使用 Zimbra Drive,则可以跳过步骤 #1 和 #4。 |
导出 Zimbra Drive 数据
如果正在使用 Zimbra Drive,则可以根据迁移计划导出所有或选定帐户的数据。我们建议在移动帐户之前导出数据,以确保迁移所有最新文件。
-
为什么 zmmboxmove 不迁移 Zimbra Drive 数据?
Zimbra Drive for 8.8.15 和 9 将其数据存储在帐户外部。驱动器迁移工具会将驱动器数据迁移到帐户的公文包中,以便更好地管理和数据所有权。
以下是迁移 Zimbra Drive 数据时的建议:
-
确保您已配置足够的可用存储空间new.server.com位于/opt/zimbra/分区,用于在导出和导入过程中容纳驱动器数据。例如,如果您有 10GB 的云端硬盘数据,建议配置 30GB 的可用空间。
-
如果您的云端硬盘数据量较大,强烈建议批量导出和导入。
-
作为
zimbra用户,执行以下命令:
-
su - zimbra zmmodulesport account export --modules=drive --filename=drive-data --server=old.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/drive-export.log
一个文件drive-data.tgz将在其中创建/opt/zimbra/tmp/modules/drive/.
-
要批量导出云端硬盘数据,请创建一个文件accounts-file.txt,其中包含以换行符分隔的帐户的电子邮件地址。导出多个批次时,请确保在--filename参数中使用不同的文件。以
zimbra用户身份执行此命令:
su - zimbra zmmodulesport account export --modules=drive --accounts=/path/to/accounts-file.txt --filename=drive-data-batch1 --server=old.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/drive-export.log
一个文件驱动器数据batch1.tgz将在/opt/zimbra/tmp/modules/drive/.
| 内创建 此时不会显示导入命令,因为我们必须在导入之前迁移帐户。该命令将在下面适当的时间提供。 |
账户迁移
| 成功迁移将自动启用配置文件new.server.com. |
是时候从old.server.com 移动帐户了至new.server.com使用zmmboxmove命令。此命令将对new.server.com 上的所有帐户(用户和系统)执行 .
su - zimbra
zmmboxmove -a <user-account@domain.com> -f <old.server.com> -t <new.server.com> --sync
对于使用 S3 存储的系统,一旦帐户移动,您将需要使用--ngMigration标志来更新 blob 定位器。
su - zimbra
zmmboxmove -a <user-account@domain.com> -f <old.server.com> -t <new.server.com> --sync --ngMigration
成功移动后,迁移脚本将更新用户 LDAP 以指向new.server.com。当用户登录时,他们将访问新系统上的数据,如果用户当前已登录,他们将收到一条消息,要求他们重新加载浏览器。对于使用主动同步的设备,启用同步后,客户端将收到重新同步请求并重新同步帐户。对于所有其他客户端,他们不应遇到任何同步问题。
要获取服务器上所有用户的列表:
zmprov -l gaa -s <new.server.com>
要获取服务器上所有日历帐户的列表:
zmprov -l gacr -s <new.server.com>
这zmmboxmove命令一次移动一个邮箱,但可以编写脚本来移动
回滚到账户数据old.server.com出于任何原因,更新zimbraMailHost和zimbraMailTransport这会将用户重定向回old.server.com 上的帐户.
|
zmprov ma <user-account@domain.com> zimbraMailHost old.server.com
zmprov ma <user-account@domain.com> zimbraMailTransport lmtp:old.server.com:7025
| 恢复到old.server.com时,托管在new.server.com上时传送到帐户的任何数据都将丢失。 |
LDAP 中存在但尚未创建的帐户在移动时将收到以下错误:
zmmboxmove -a <user-account@domain.com> -f old.server.com -t new.server.com
An error occurred: system failure: Account user@domain.com does not have a mailbox on server new.server.com
通过运行以下命令更新zimbraMailHost和zimbraMailTransport属性来手动更新帐户:
zmprov ga user@domain.com zimbraMailHost new.server.com zimbraMailTransport lmtp:new.server.com:7025
迁移所有帐户后,就可以使用zimbraMailHost更新通讯组列表了new.server.com。修改并运行以下命令以更新所有现有 DL
for l in $(zmprov gadl); do zmprov mdl $l zimbraMailHost new.server.com; done
建议清除old.server.com 上的用户数据一旦所有数据都已验证并且帐户在new.server.com上投入使用。进行清除时,将删除old.server.com上的所有数据,包括驱动器数据。这可以根据您的业务需求在帐户移动后数小时、数天或数周内完成,并且可以通过运行以下命令来完成:
zmpurgeoldmbox -a user@domain.com -s old.server.com
如果执行了无斑点移动,请将zimbraMailboxMoveSkipBlobs设置为 FALSE:
zmprov mcf zimbraMailboxMoveSkipBlobs FALSE
如果正在使用无斑点移动,则更新zimbraMailboxMoveSkipBlobs需要在从old.server.com 删除所有帐户后完成.
|
导入移动数据
对于 NG Mobile,如果您已将 ABQ 模式设置为严格并且在允许的设备中更新了任何设备NG 服务器上的列表,将移动数据导入到new.server.com服务器后,更新zimbraMobileBlockedDevices以允许同步允许的设备:
-
作为
zimbra用户,在new.server.com 上执行此命令设置zimbraMobileBlockedDevices在域级别:
su - zimbra zmprov md domain.com +zimbraMobileBlockedDevices "*"
-
作为
zimbra用户,在new.server.com 上执行此命令设置zimbraMobileBlockedDevices在全球层面:
su - zimbra zmprov mcf +zimbraMobileBlockedDevices "*"
-
作为一个
zimbra用户,执行以下命令:
su - zimbra zmmodulesport system import --modules=mobile --filename=mobile-data1 --server=new.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/mobile-import.log
-
要批量导入手机数据,请在--filename中指定正确的文件。以
zimbra用户身份执行此命令。:
su - zimbra zmmodulesport system import --modules=mobile --filename=mobile-data1-batch1 --server=new.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/mobile-import.log
| 导入后,使用NG 移动密码功能的用户必须在移动设置中更新其 zimbra 帐户的密码。 |
导入 Zimbra 驱动器数据
在开始导入之前,建议增加文件上传大小和身份验证令牌生命周期。
默认值为zimbraFileUploadMaxSize是 10MB (10485760) 并且zimbraAdminAuthTokenLifetime是 12 小时 (12h)。
如果要将zimbraFileUploadMaxSize值增加到 100MB,请指定该值(以字节为单位)并更新zimbraFileUploadMaxSize邮箱服务器上的属性。
在 COS 层面,如果您想将zimbraAdminAuthTokenLifetime值增加到 24 小时,请将值指定为24h并更新zimbraAdminAuthTokenLifetime邮箱服务器上的属性。
su - zimbra
zmprov mcf zimbraFileUploadMaxSize 104857600
zmprov mc default zimbraAdminAuthTokenLifetime 24h
重新启动邮箱服务以使更改生效:
su - zimbra
zmmailboxdctl stop
将帐户移动到new.server.com后,通过在old.server.com:
su - zimbra
zmmodulesport account import --filename=drive-data --modules=drive --server=new.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/drive-import.log
-
上执行以下命令导入 Drive 数据要批量导入 Drive 数据,请在__ZSEP_9f7__ --文件名。以
zimbra用户身份执行此命令:
su - zimbra zmmodulesport account import --filename=drive-data-batch1 --modules=drive --server=new.server.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/drive-import-batch1.log
删除旧生产服务器 old.server.com
此时,new.server.com现在正在管理 100% 的负载,而old.server.com服务可以停止。通过运行以下命令停止 old.server.com 上的所有服务:
su - zimbra
zmcontrol stop
允许new.server.com与old.server.com 一起运行一段时间服务已停止,以允许用户报告任何问题。一旦您认为删除old.server.com是安全的,请运行:
cd /opt/zimbra/libexec/installer/
./install.sh -u
从 new.server.com LDAP 树中删除 old.server.com
-
删除old.server.com服务器条目。在new.server.com:
su - zimbra zmprov ds old.server.com
-
上执行此命令 更新转换后的 URL。在new.server.com 上执行此命令:
su - zimbra zmprov mcf zimbraConvertdURL 'http://new.server.com:7047/convert'
-
删除服务器时,loggerhost 映射条目不会被删除。检查是否有与old.server.com相关的任何过时条目。在new.server.com 上执行此命令:
zmloggerhostmap
-
如果在上述命令的输出中发现任何陈旧条目,请执行此命令将其删除:
zmloggerhostmap -d old old.server.com zmloggerhostmap -d old.server.com old.server.com
删除 Zimbra 文档
如果您在单独的节点上运行 Zimbra 文档,则可以在执行以下操作后从 Daffodil (v10) LDAP 树中删除服务器详细信息升级。
以zimbra用户身份执行此命令:
su - zimbra
zmprov ds docs.server.com