Phương pháp này cho phép bạn nâng cấp hệ thống Zimbra sử dụng hệ điều hành mới hơn, phiên bản Zimbra mới hơn.

Gỉa sử hệ thống của bạn hiện tại bao gồm:

– 2 LDAP server.

– 2 proxy server.

– 2 MTA server.

– 2 Mailbox server.

Bạn có thể vừa thực hiện inplace upgrade cho LDAP, Proxy, MTA server và thực hiện rolling upgrade cho mailbox server nếu muốn.

Qúa trình upgrade nói chung theo các bước sau đây:

1. LDAP server

– Cài đặt zimbra ldap server với cùng phiên bản Zimbra hiện tại trên server mới với OS mới.

– Thêm ldap server mới này vào cluster.

– Trỏ các server khác về ldap server mới này và loại bỏ các ldap server cũ.

– Nâng cấp ldap server mới lên phiên bản Daffodil.

2. Proxy server

– Cài đặt và cấu hình Daffodil proxy server.

– Chuyển hướng traffic về Daffodil proxy server mới này.

– Loại bỏ các proxy server cũ.

3. MTA server

– Cài đặt và cấu hình Daffodil MTA server.

– Chuyển hướng traffic về Daffodil MTA server mới này.

– Loại bỏ các MTA server cũ.

4. Mailbox server

– Cài đặt Daffodil mailbox server mới.

– Tùy chỉnh mailbox server.

– Migrate account.

– Loại bỏ các mailbox server cũ.

Hướng dẫn này cho phép migrate cấu hình NG module. Khách hàng không dùng NG module sẽ bỏ qua các bước liên quan đến NG module.

Các yêu cầu và thiết lập mạng.

Phương pháp này đòi hỏi bạn cài đặt một hệ thống mới với các hostname mới. Hệ thống mạng cũng cần đáp ứng, cho phép kết nối giữa hệ thống mới và cũ. Tên gọi của hệ thống mới và cũ như sau:

8.8.15/9.0.0 Nodes:

LDAP – #.old.ldap.com

Proxy – #.old.proxy.com

MTA – #.old.mta.com

Mailbox – #.old.mailbox.com

Daffodil (v10) Nodes:

LDAP – #.new.ldap.com

Proxy – #.new.proxy.com

MTA – #.new.mta.com

Mailbox – #.new.mailbox.com

Quy trình cài đặt các server mới, bạn tham khảo tại đây

Nâng cấp LDAP

Kiểm tra tính tương thích giữa hệ điều hành mới và phiên bản Zimbra hiện tại. Nếu muốn dùng hệ điều hành mới nhất, bạn nên tiến hành inplace upgrade cho LDAP node trước.

Để tiến hành kích hoạt chế độ LDAP MMR, bạn cần lấy password ldap hiện tại, với quyền 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

Kích hoạt MMR.

Trên ldap server cũ, với quyền zimbra:

/opt/zimbra/libexec/zmldapenable-mmr -s 1 -m ldap://new.ldap.com:389/
zmcontrol restart

Câu lệnh trên cho ldap server cũ (hiện tại) biết rằng nó sẽ hoạt động ở chế độ mmr với sid = 1 và có 1 master khác trong pool là new.ldap.com đang lắng nghe ở cổng 389.

Cài đặt ldap server mới

Trên ldap server mới new.ldap.com, tải phiên bản Zimbra giống với phiên bản đang sử dụng trên ldap server cũ. tiến hành cài đặt ./install.sh với các tùy chọn sau: zimbra-ldap, zimbra-snmp

# Cài đặt
./install.sh

# Chọn cài ldap
Install zimbra-ldap [Y] Y
Install zimbra-logger [Y] N
Install zimbra-mta [Y] N
Install zimbra-dnscache [Y] N
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] N
Install zimbra-apache [Y] N
Install zimbra-spell [Y] N
Install zimbra-convertd [Y] N
Install zimbra-memcached [Y] N
Install zimbra-proxy [Y] N
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

Chương trình cài đặt sẽ vào chế độ cấu hình

Chọn 1 vào common configuration, chọn option 2 và 4 để cấu hình ldap kết nối với ldap server cũ

1) Common Configuration:
  2) Ldap master host: <old.ldap.com>
  4) Ldap Admin password: <ldap_root_password>
  Select, or 'r' for previous menu [r] r   

Nếu không còn dấu * là kết nối thành công, chọn r để trở về màn hình chính, chọn 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

Chọn 4 Ldap replication type: đổi thành mmr

Please enter the LDAP replication type (replica, mmr) [replica] mmr

Cập nhật mật khẩu cho các tài khoản ldap với mật khẩu đã lấy từ ldap server cũ.

** 6) Ldap replication password: Not Verified
** 7) Ldap postfix password: Not Verified
** 8) Ldap amavis password: Not Verified
** 9) Ldap nginx password: Not Verified

Sau khi kết nối đồng bộ thành công, tiến hành kiểm tra thử.

Trên server ldap cũ, lấy attribute zimbraZimletUserPropertiesMaxNumEntries của 1 user test nào đó:

zmprov ga <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries
#name test-user@domain.com
zimbraZimletUserPropertiesMaxNumEntries: 150

Cập nhật attribute này trên server ldap cũ:

zmprov ma <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries 160

Trên ldap server mới, kiểm tra xem đã có update hay chưa:

zmprov -l ga <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries

Tiến hành đổi atrribute này về giá trị cũ, trên server mới:

zmprov ma <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries 150

Trên server cũ, kiểm tra xem giá trị có được đổi về như cũ không:

zmprov -l ga <test-user@domain.com> zimbraZimletUserPropertiesMaxNumEntries

Tiến hành tương tự cho các ldap server mới khác.

Định tuyến LDAP traffic về ldap server mới và nâng cấp ldap server mới lên Daffodil:

Cấu hình Proxy cũ, MTA cũ, mailbox cũ, LDAP mới dùng LDAP server mới. Bạn có thể phân tải các server dùng các ldap server mới khác nhau trong cluster, ví dụ:

Server A
su - zimbra
zmlocalconfig -e ldap_master_url="ldap://1new.ldap.com:389 ldap://2new.ldap.com:389"
zmlocalconfig -e ldap_url="ldap://1new.ldap.com:389 ldap://2new.ldap.com:389"
zmcontrol restart

Server B
su - zimbra
zmlocalconfig -e ldap_master_url="ldap://2new.ldap.com:389 ldap://1new.ldap.com:389"
zmlocalconfig -e ldap_url="ldap://2new.ldap.com:389 ldap://1new.ldap.com:389"
zmcontrol restart

Nếu xuất hiện lỗi: Unable to start TLS: SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed when connecting to ldap master. Tiến hành tắt các thông số sau trên các server để bỏ qua bước xác minh ldap:

zmlocalconfig -e ldap_starttls_required=false
zmlocalconfig -e ldap_starttls_supported=0
zmlocalconfig -e ssl_allow_untrusted_certs=true
zmcontrol restart

Sau khi đã điều chỉnh sử dụng ldap server mới, gỡ bỏ ldap server cũ

/opt/zimbra/libexe/installer/install.sh -u

Tiến hành nâng cấp lần lượt từng ldap server mới lên Daffodil:

Download phiên bản Daffodil về, chạy script cài đặt ./install.sh

Do you wish to upgrade? [Y] Y
Install zimbra-archiving [N] N
Install zimbra-onlyoffice [N] N
Install chat and video features [N] N
Install zimbra-logger[Y] N
Install zimbra-mta[Y] N
Install zimbra-dnscache[Y] N
Install zimbra-store[Y] N
Install zimbra-apache[Y] N
Install zimbra-spell[Y] N
Install zimbra-convertd[Y] N
Install zimbra-memcached[Y] N
Install zimbra-proxy[Y] N
Install zimbra-onlyoffice[Y] N
Install zimbra-license-tools[Y] N
Install zimbra-license-extension[Y] N
Install zimbra-network-store[Y] N
Install zimbra-modern-ui[Y] N
Install zimbra-modern-zimlets[Y] N
Install zimbra-zimlet-document-editor[Y] N
Install zimbra-zimlet-classic-document-editor[Y] N
Install zimbra-patch[Y] N
Install zimbra-mta-patch[Y] N
Install zimbra-proxy-patch[Y] N
Install zimbra-rabbitmq-server[Y] N
Installing:
zimbra-core
zimbra-ldap
zimbra-snmp
zimbra-ldap-patch
The system will be modified. Continue? [N] Y

Nhập license key mới cho phiên bản 10.1. Nếu có cấu hình gì cần thay đổi, cập nhật, chương trình cài đặt sẽ hiển thị dấu ****, bạn cung cấp thông tin phù hợp.

Cài đặt Proxy server mới

Bạn có thể bắt đầu cài đặt zimbra proxy server mới, bạn cũng có thể tiến hành inplace upgrade cho proxy server cũ nếu hệ điều hành hiện tại hỗ trợ Daffodil và bạn không muốn đổi OS. Các dịch vụ cần cài đặt là zimbra-proxy, zimbra-snmp, và zimbra-memcached, zimbra-license-daemon. Các proxy server mới sẽ được thêm vào hệ thống nhưng traffic chưa đi qua các proxy mới này. Bạn sẽ tiến hành kiểm tra, cấu hình tùy biến và sau đó tái định tuyến traffic qua proxy server mới, loại bỏ proxy server cũ.

Trên proxy server mới, tiến hành tải Daffodil về, chạy file cài đặt ./install.sh

Do you agree with the terms of the software license agreement? [N] Y

Select the packages to install
Install zimbra-ldap [Y] N
Install zimbra-logger [Y] N
Install zimbra-mta [Y] N
Install zimbra-dnscache [N] Y
Install zimbra-snmp [Y] N
Install zimbra-store [Y] N
Install zimbra-apache [Y] N
Install zimbra-spell [Y] N
Install zimbra-convertd [N] N
Install zimbra-memcached [N] Y
Install zimbra-proxy [N] Y
Install zimbra-archiving [N] N
Install zimbra-license-daemon [N] Y
Installing:
zimbra-memcached
zimbra-proxy
This system will be modified. Continue [N] Y
Configuration section

Trong main menu, chọn 1 common configuration. Bạn cần thay đổi ldap master host, ldap password, điều chỉnh timezone.

Main menu

1) Common Configuration:
+Hostname: localhost
+Ldap master host: new.ldap.com
+Ldap port: 389
+Ldap Admin password: set
+LDAP Base DN: cn=zimbra
+Store ephemeral attributes outside Ldap: no
+Secure interprocess communications: yes
+TimeZone: (GMT-08.00) Pacific Time (US & Canada)
+IP Mode: ipv4
+Default SSL digest: sha256

2) zimbra-proxy: Enabled
+Enable POP/IMAP Proxy: TRUE
+IMAP server port: 7143
+IMAP server SSL port: 7993
+IMAP proxy port: 143
+IMAP SSL proxy port: 993
+POP server port: 7110
+POP server SSL port: 7995
+POP proxy port: 110
+POP SSL proxy port: 995
******* +Bind password for nginx ldap user: Not Verified
+Enable HTTP[S] Proxy: TRUE
+Web server HTTP port: 8080
+Web server HTTPS port: 8443
+HTTP proxy port: 80
+HTTPS proxy port: 443
+Proxy server mode: https

3) Enable default backup schedule: yes
s) Save config to file
x) Expand menu
q) Quit

Select, or 'r' for previous menu [r] 2

Chọn 2 zimbra-proxy, thiết lập password cho Bind password for Nginx ldap user.

Chọn r để trở về main menu, tiếp tục các bước cài đặt khác bình thường.

Tái định hướng proxy traffic

Tiến hành thay đổi cấu hình NAT trên firewall hoặc DNS record để định hướng traffic về proxy server mới.

Lưu ý quan trọng về DNS:

Nếu bạn đang sử dụng DNS nội bộ, cần đảm bảo rằng bạn chuyển DNS về hệ thống mới, ví dụ:

# Cấu hình dnsmasq cho hệ thống cũ:
address=/ldap8.zimilab.com/192.168.88.8
ptr-record=8.88.168.192.in-addr.arpa,ldap8.zimilab.com
address=/proxy8.zimilab.com/192.168.88.9
ptr-record=9.88.168.192.in-addr.arpa,proxy8.zimilab.com
address=/mail8.zimilab.com/192.168.88.10
ptr-record=10.88.168.192.in-addr.arpa.mail8.zimilab.com
address=/mail.zimilab.com/192.168.88.9 #người dùng truy cập mail.zimilab.com sẽ được trỏ về proxy8 server.
mx-host=zimilab.com,mail.zimilab.com,10


# Cấu hình dnsmasq cho hệ thống mới sau khi đã chuyển proxy và mta server về hệ thống mới.
address=/ldap8.zimilab.com/192.168.88.8
ptr-record=8.88.168.192.in-addr.arpa,ldap8.zimilab.com
address=/proxy8.zimilab.com/192.168.88.9
ptr-record=9.88.168.192.in-addr.arpa,proxy8.zimilab.com
address=/mail8.zimilab.com/192.168.88.10
ptr-record=10.88.168.192.in-addr.arpa.mail8.zimilab.com
#
address=/ldap10.zimilab.com/192.168.88.11
ptr-record=11.88.168.192.in-addr.arpa,ldap10.zimilab.com
address=/proxy10.zimilab.com/192.168.88.12
ptr-record=12.88.168.192.in-addr.arpa,proxy10.zimilab.com
address=/mail10.zimilab.com/192.168.88.13
ptr-record=13.88.168.192.in-addr.arpa,mail10.zimilab.com
#
address=/mail.zimilab.com/192.168.88.13 #chuyển mail.zimilab.com đến proxy10 mới
mx-host=zimilab.com,mail.zimilab.com,10

Sử dụng mail.zimilab.com trong thiết lập public service host và virtual hostname, smtp banner.

# Thiết lập publice service host
zmprov md domain.com zimbraPublicServiceHostname mail.domain.com
zmprov md domain.com zimbraPublicServiceProtocol https
zmprov md domain.com zimbraPublicServicePort 443
# Thiết lập virtual hostname
zmprov md domain.com zimbraVirtualHostname mail.domain.com
# Thiết lập mtamyhostname (smtp banner)
zmprov mcf zimbraMtaMyHostname mail.domain.com

Gỡ bỏ proxy server cũ

Sau khi xác nhận traffic đã đi qua proxy server mới và hoạt động tốt, gỡ bỏ proxy server cũ

/opt/zimbra/libexec/installer/install.sh -u

Cài đặt MTA trên server mới

Các bước thực hiện tương tự cho proxy server. Tải zimbra Daffodil, cài đặt zimbra-mta, zimbra-snmp, zimbra-dnscache. Nếu bạn không chạy dns server (như dnsmasq, bind trên mta server) thì bạn nên cài thêm zimbra-cached.

Select the packages to install
Install zimbra-ldap [Y] n
Install zimbra-logger [Y] n
Install zimbra-mta [Y] Y
Install zimbra-dnscache [Y] Y
Install zimbra-snmp [Y] n
Install zimbra-store [Y] n
Install zimbra-apache [Y] n
Install zimbra-spell [Y] n
Install zimbra-memcached [Y] n
Install zimbra-proxy [Y] n
Checking required space for zimbra-core
Installing:
zimbra-core
zimbra-mta
zimbra-dnscache
The system will be modified. Continue? [N] y
Installing packages

Chương trình cài đặt và vào menu cấu hình. Chọn 1 để vào common configuration

Common configuration
1) Hostname: new.mta.com
2) Ldap master host: UNSET
3) Ldap port: 389
4) Ldap Admin password: UNSET
5) LDAP Base DN: cn=zimbra
6) Store ephemeral attributes outside Ldap: no
7) Secure interprocess communications: yes
8) TimeZone: Africa/Monrovia
9) IP Mode: ipv4
10) Default SSL digest: sha256

Chọn 2 và 4 để cấu hình ldap master host là new.ldap.com và ldap admin password bạn đã có ở trên.

zmlocalconfig -s zimbra_ldap_password

Chọn 8 để thiết lập timezone cho đúng.

Chọn r để quay trở lại main menu, chọn 2 vào Mta configuration

Mta configuration
1) Status: Enabled
2) Enable Spamassassin: yes
3) Enable Clam AV: yes
4) Enable OpenDKIM: yes
5) Notification address for AV alerts: admin@example.domain.com
6) Bind password for postfix ldap user: UNSET
7) Bind password for amavis ldap user: UNSET
Select, or 'r' for previous menu [r]

Chọn 6,7 để thiết lập bind password for postfix ldap user, amavis ldap user. Bạn có thể thay đổi email nhận AV alert.

Chuyển hướng MTA traffic

Cấu hình các thông số tùy biến khác như bạn đã làm trên MTA cũ. Một số thông số quan trọng như:

a. Update zimbraMailTrustedIP
b. Update zimbraHttpThrottleSafeIps
c. Check zimbraMtaMyNetworks (subnet should already be included) at the server level
d. Check zmocalconfig for admin@<fqdn_of_this_host>, change to admin@hostname.com
zmlocalconfig -e ldap_master_url="ldap://1new.ldap.com:389 ldap://2new.ldap.com:389"
zmlocalconfig -e ldap_url="ldap://1new.ldap.com:389 ldap://2new.ldap.com:389"

Sau khi kiểm tra thử, bạn có thể chuyển hướng traffic đến MTA server mới này (chỉnh NAT trên firewall, DNS record, v.v…).

Trên server mailbox cũ, với quyền zimbra chạy lệnh sau để cho mailbox server cũ biết sẽ dùng mta server mới nào để gửi email đi:

zmprov ms old.mailbox.com zimbraSmtpHostname new.mta.com

Sau khi chắc chắn traffic qua MTA server mới đã thông suốt, tiến hành gỡ bỏ MTA server cũ, với quyền root:

/opt/zimbra/libexec/installer/install.sh -u

Để hiểu hơn về các thông số liên quan đến việc điều hướng traffic giữa proxy/mta và mailbox server, bạn tham khảo thêm tại đây.

Cài đặt Mailbox server mới

Đến lúc này, hệ thống đã dùng LDAP, Proxy và MTA Daffodil mới, trong khi vẫn dùng Mailbox server cũ. Bạn tiến hành cài thêm các Mailbox server mới. Thực hiện tương tự với archiving server nếu bạn đang có archiving server.

Trên Mailbox server mới, tải file cài đặt Daffodil, chạy ./install.sh và cài đặt các gói sau: zimbra-snmp, zimbra-store, zimbra-apache, zimbra-spell, zimbra-convertd. Nếu có archive thì cài zimbra-archiving trên 1 server giống mailbox server. Cài logger trên 1 mailbox server.

Do you agree with the terms of the software license agreement? [N] Y
Install zimbra-ldap [Y] N
Install zimbra-logger [Y] Y
Install zimbra-mta [Y] N
Install zimbra-dnscache [Y] N
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y
Install zimbra-spell [Y] Y
Install zimbra-convertd [Y] Y
Install zimbra-memcached [Y] N
Install zimbra-proxy [Y] N
Install zimbra-archiving [N] N
WARNING
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
FOUND: libreoffice-1:4.2.8-0ubuntu4
zimbra-store package check complete.
Installing:
zimbra-core
zimbra-logger
zimbra-snmp
zimbra-store
zimbra-apache
zimbra-spell
zimbra-modern-ui
zimbra-convertd
The system will be modified. Continue? [N]Y

Nếu bạn đã cài zimbra-license-daemon trên Proxy/MTA node thì không cần cài trên mailbox node. Chương trình sẽ hỏi bạn node nào bạn đã cài LDS. Nhập tên hostname của Proxy/mta server mới.

Chương trình sẽ cài đặt các gói và hiển thị menu cấu hình. Bạn cần cấu hình ldap master host và ldap admin password.

Main menu
1) Common Configuration:
+Hostname: new.mailbox.com
******* +Ldap master host: UNSET
+Ldap port: 389
******* +Ldap Admin password: UNSET
+LDAP Base DN: cn=zimbra
+Store ephemeral attributes outside Ldap: no
+Secure interprocess communications: yes
+TimeZone: UTC
+IP Mode: ipv4
+Default SSL digest: sha256

Bạn cũng cần cấu hình smtp host về mta server mới và admin password sử dụng password hiện tại và kích hoạt license 10.1.

3) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@zimbrasystems.com
******* +Admin Password UNSET
+Enable automated spam training: yes
******* +SMTP host: UNSET

Sau khi hoàn tất cấu hình, chương trình sẽ tiếp tục hoàn tất phần cài đặt. Các mailbox server mới sẽ được thêm vào Proxy, bạn có thể tạm thời gỡ bỏ các mailbox server mới khỏi Proxy list cho đến khi đảm bảo các mailbox server mới này sẵn sàng hoạt động.

Cài đặt chứng thư số

Copy các file trong thư mục /opt/zimbra/ssl/zimbra/commercial/ trên mailbox server cũ sang mailbox server mới. Thiết lập permission thuộc zimbra user, sau đó với quyền root trên mailbox server mới chạy:

/opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt commercial_ca.crt

Lập lại các bước trên cho các mailbox server mới.

Hoàn tất cài đặt

Bạn cần hoàn tất thêm các bước sau

Cập nhật ssh key

Tạo ssh key trên toàn bộ server.

zmsshkeygen

Sau khi đã tạo ssh key trên toàn bộ server, tiến hành đồng bộ các key trên các server. Chờ server này hoàn thành rồi mới làm đến server khác.

zmupdateauthkeys

Bật hiển thị thống kê

Kiểm tra các server mới có zimbraLogHostname đang trỏ về logger host mới (là một trong các mailbox server mới)

zmprov gacf | grep zimbraLogHostname

Nếu chưa đúng thì thiết lập:

zmprov mcf zimbraLogHostname new.mailbox.server

Để hiển thị các thông số thống kê trong màn hình quản trị admin, file cấu hình syslog cần được chỉnh sửa:

Trên mỗi server, với quyền root chạy: /opt/zimbra/libexec/zmsyslogsetup

Trên logger host, bạn cần bật syslog hoặc rsyslog để log thống kê từ các server:

Bỏ comment trên các dòng sau trong file /etc/rsyslog.conf

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

Restart rsyslog

systemctl restart rsyslog

Chạy loggerinit trên logger host với quyền zimbra:

/opt/zimbra/libexec/zmloggerinit

Bật spam/ham traning trên MTA server

Chạy zmlocalconfig -e zmtrainsa_cleanup_host=TRUE trên MTA server mới đầu tiên.

Trên proxy server mới, kiểm tra đảm bảo zimbraReverseProxyUpstreamLoginServers trỏ về các mailbox server mới. Nếu không, tiến hành cập nhật cho phù hợp

zmprov ms `zmhostname` zimbraReverseProxyUpstreamLoginServers new.mailbox.server

Đến giai đoạn này bạn có thể login riêng rẽ vào từng mailbox server mới và cũ qua port 7071 để quản lý riêng tính năng NG hay Daffodil Network Edition trên từng server.

Cài đặt NG migration tool và xuất dữ liệu NG.

Công cụ NG migration này được thiết kế để di chuyển cấu hình NG module. Công cụ này cần được cài đặt trên tất cả mailbox server, kể cả server mới và cũ. Nếu bạn không dùng các NG module thì có thể bỏ qua bước này.

Tải về và cài đặt NG migration tool:

# Trên Redhat
yum clean metadata
yum check-update
yum install zimbra-modules-porter

# Trên Ubuntu
apt-get update
apt-get install zimbra-modules-porter

Di chuyển cấu hình HSM

Zimbra 10.1 đã hỗ trợ Unified Storage. Tức là các mailbox server có thể dùng chung 1 storage (ví dụ như 1 S3 bucket) và bạn không cần phải di chuyển các blob này (blobless migration) khi thêm, xóa các mailbox server.

Việc các blob trong primary và secondary storage được di chuyển hay không sẽ phụ thuộc vào 2 thông số là:

zimbraMailboxMoveSkipBlobs = TRUE tức Blob data sẽ bị bỏ qua khi di chuyển (không di chuyển blob).

zimbraMailboxMoveSkipHsmBlobs = TRUE tức Primary store blob sẽ được di chuyển, HSM (secondary) store blob sẽ bị bỏ qua không di chuyển.

Ví dụ bạn đang dùng Primary và Secondary store trên ổ đĩa cứng bình thường, bạn cần thiết lập:

zmprov mcf zimbraMailboxMoveSkipBlobs FALSE
zmprov mcf zimbraMailboxMoveSkipHsmBlobs FALSE

Nếu Primary store là ổ cứng, còn Secondary store là S3:

zmprov mcf zimbraMailboxMoveSkipBlobs FALSE
zmprov mcf zimbraMailboxMoveSkipHsmBlobs TRUE

Xuất cấu hình HSM

Với quyền Zimbra, thực hiện trên mailbox server mới

zmmodulesport system export --modules=hsm --filename=hsm-data --server=old.mailbox.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/hsm-export.log

Thay đổi các thông số như –server cho từng mailbox server cũ. Kiểm tra log file xem đã thành công hay chưa.

Một file hsm-data.tgz sẽ được tạo ra trong thư mục /opt/zimbra/tmp/modules/hsm/

Import cấu hình HSM

Trước khi import cấu hình HSM. Bạn cần tạo đúng các thư mục hsm trên mailbox server mới như trên mailbox server cũ. Với quyền zimbra trên mailbox server mới:

zmmodulesport system import --modules=hsm --filename=hsm-data --server=new.mailbox.com --username=admin@domain.com --password=admin_passwd >> /opt/zimbra/log/hsm-import.log

Thay đổi –server cho từng mailbox server mới. Kiểm tra log file xem đã thành công hay chưa.

Di chuyển cấu hình Backup

Công cụ này chỉ giúp xuất cấu hình backup liên quan đến các COS. Bạn có thể dựa trên thông tin trong file cấu hình được xuất ra để cấu hình lại trên các server mailbox mới. Với quyền Zimbra trên mailbox server cũ:

zmmodulesport system export --modules=backup --filename=backup-data --server=old.mailbox.com --username=admin@old.mailbox.com --password=admin_passwd >> /opt/zimbra/log/br-export.log

Thay đổi –server với các mailbox server cũ tương ứng. Sau khi có file cấu hình, bạn tham khảo nội dung file và đăng nhập vào các server mailbox mới, phần Config > Global settings > Backup/restore, dưới Select users for backup > domain and cos, click vào add cos để chọn các cos được backup.

Di chuyển delegated admin

Bạn có thể tự cấu hình lại các delegated admin trên hệ thống mới. Nếu bạn dùng NG module, bạn có thể xuất cấu hình delegated admin và import vào hệ thống mới. Với quyền zimbra trên mailbox server mới:

zmmodulesport system export --modules=admin --filename=admin-data --server=old.mailbox.com --username=admin@old.mailbox.com --password=admin_passwd >> /opt/zimbra/log/da-export.log

Tiến hành import delegated admin, với quyền zimbra trên mailbox server mới:

zmmodulesport system import --modules=admin --filename=admin-data --server=new.mailbox.com --username=admin@new.mailbox.com --password=admin_passwd >> /opt/zimbra/log/da-import.log

Bạn có thể kiểm tra khi login vào mailbox server mới (cổng 7071 theo IP mailbox server mới), các account đã được gán quyền delegated admin.

Di chuyển cấu hình Mobile

Với quyền zimbra trên mailbox server mới:

zmmodulesport system export --modules=mobile --filename=mobile-data --server=old.mailbox.com --username=admin@old.mailbox.com --password=admin_passwd >> /opt/zimbra/log/mobile-export.log

Tùy biến và testing các server mới

Tạo mới vài account test trên server mới. Login vào account test để gửi nhận email giữa các account test. Test POP, IMAP, Mobile.

Tái định tuyến traffic về MTA, Proxy mới 

Cấu hình Firewall NAT, DNS record để định tuyến dữ liệu về MTA, Proxy mới.

Cấu hình COS để các account tạo mới sẽ được đặt trên các server mới (và loại bỏ các mailbox server cũ).

# Lấy zimbraid của mailbox server mới, thay new.mailbox.com bằng các server mailbox mới tương ứng.
zmprov gs new.mailbox.com zimbraId
zmprov gs old.mailbox.com zimbraId
# Cập nhật các COS với các giá trị zimbraid mới này. Thay <newzimbraID> bằng thông số đã lấy ở lệnh trên.
for c in $(zmprov gac); do zmprov mc $c +zimbraMailHostPool <newzimbraId>; done;
# Loại bỏ oldzimbraId cho các COS này.
for c in $(zmprov gac); do zmprov mc $c -zimbraMailHostPool <oldzimbraId>; done;

Di chuyển account

Các việc cần tiến hành:

1. Xuất dữ liệu Drive

2. Di chuyển account từ mailbox server cũ sang mailbox server mới sử dụng zmmboxmove command.

3. Import mobile data

4. Import drive data

Nếu bạn không dùng Drive thì có thể bỏ bước 1 và 4.

Xuất dữ liệu Drive

Trên hệ thống mới, cần đảm bảo có đủ dung lượng storage cho dữ liệu Drive.

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

Thay thế các –server với các mailbox server cũ tương ứng.

Migrate account.

Sử dụng lệnh zmmboxmove để di chuyển các account test ban đầu. ví dụ:

zmmboxmove -a <user-account@domain.com> -f <old.server.com> -t <new.server.com> --sync

Lệnh trên cho 1 account, bạn có thể dùng script để di chuyển đồng thời nhiều account. Sau khi move thử thành công 1 vài account, bạn tiến hành,ví dụ:

for account in $(zmprov -l gaa -s <old.server.com>); do zmmboxmove -a $account -f <old.server.com> -t <new.server.com> --sync; done
for calaccount in $(zmprov -l gacr); do zmmboxmove -a $calaccount -f <old.server.com> -t <new.server.com> --sync; done

Lệnh trên lấy các account hiện có trên từng old.server.com (bạn thay lần lượt bằng các server mailbox cũ) và di chuyển sang server mailbox mới tương ứng.

Sau khi di chuyển xong các account, ta di chuyển các distribution list.

for l in $(zmprov gadl); do zmprov mdl $l zimbraMailHost new.server.com; done

Tiến hành xóa dữ liệu trên server cũ sau khoảng 1 tuần xác nhận server mới đã chạy tốt.

for account in $(zmprov -l gaa); do zmpurgeoldmbox -a $account -s old.server.com; done

Bạn có thể viết script để di chuyển các account này, lưu ý luôn dùng screen khi thực hiện.

Tạo  thư mục chứa thông tin, với quyền root

mkdir /migrate
chown zimbra.zimbra /migrate
su - zimbra
cd /migrate

Tạo script migrate.sh trong /migrate với nội dung sau, gán quyền thực thi cho script:

#!/bin/bash
For account in `cat /migrate/user.list` do
echo "processing account ${account}…"
zmmboxmove -a ${account} -f <oldmail.server.com> -t <newmail.server.com> --sync
done

Tạo purge.sh script trong /migrate với nội dung sau, gán quyền thực thi cho script:

#!/bin/bash
For account in `cat /migrate/user.list` do
echo "processing account ${account}…"
zmpurgeoldmbox -a ${account} -s <old.mailbox.com>
done

Tạo user.list với các account, chỉnh sửa, chia nhỏ nhóm các account nếu bạn cần thực hiện migrate theo từng cụm.

zmprov -l gaa -s <old.server.com> | sort -d > /migrate/user.list

Tiến hành chạy các script

# Chạy migrate.sh script
/migrate/migrate.sh
# Xem trạng thái chạy của script
zmmboxmovequery
# Chạy purge.sh script sau khi xác nhận các mailbox đã được move xong
/migrate/purge.sh

Import mobile data

Trên server mới, với quyền zimbra

zmprov md domain.com +zimbraMobileBlockedDevices "*"

Trên server mới, với quyền zimbra, chỉ cần làm 1 lần cho toàn hệ thống vì các cấu hình liên quan đến domain.

zmmodulesport system import --modules=mobile --filename=mobile-data1 --server=new.mailbox.com --username=admin@new.mailbox.com --password=admin_passwd >> /opt/zimbra/log/mobile-import.log

Import Drive data

Trên server mới, với quyền zimbra thiết lập:

zmprov md domain.com +zimbraMobileBlockedDevices "*"
zmprov mcf +zimbraMobileBlockedDevices "*"
zmmailboxdctl restart

Tiến hành import mobile data. Trên server mới. Thay thế new.server.com bằng các mailbox server mới tương ứng có chứa các account tương ứng. Bạn có thể edit filename để chọn các account tương ứng.

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

Loại bỏ server cũ

Uninstall zimbra trên các mailbox server cũ.

Trên server mới, loại bỏ các ldap server cũ:

zmprov ds old.ldap.com

Cập nhật convertd URL, trên server mới gõ lệnh:

zmprov mcf zimbraConvertdURL 'http://new.mailbox.com:7047/convert'

Khi xóa server cũ, logger hostmap sẽ không tự động cập nhật. Bạn kiểm tra và nếu cần thiết thì tiến hành gỡ bỏ server cũ khỏi log map.

zmloggerhostmap
zmloggerhostmap -d old old.server.com
zmloggerhostmap -d old.server.com old.server.com

Gỡ bỏ zimbra docs.

Nếu bạn chạy zimbra docs trên một server riêng, bạn có thể gỡ bỏ server này khỏi LDAP trong Daffodil 10.1

zmprov ds docs.server.com