Tài liệu này mô tả cách thêm một trung tâm dữ liệu (còn gọi là khu vực) vào một trung tâm dữ liệu hiện có.
Những điều cần cân nhắc trước khi thêm một trung tâm dữ liệu
Trước khi cài đặt thêm một trung tâm dữ liệu, bạn phải hiểu cách định cấu hình máy chủ SymasLDAP, ZooKeeper, Cassandra và Postgres trên các trung tâm dữ liệu. Bạn cũng phải đảm bảo rằng các cổng cần thiết được mở giữa các nút trong hai trung tâm dữ liệu.
- SymasLDAP
Mỗi trung tâm dữ liệu đều có máy chủ SymasLDAP riêng được định cấu hình với tính năng sao chép đã bật. Khi cài đặt trung tâm dữ liệu mới, bạn phải định cấu hình SymasLDAP để sử dụng tính năng sao chép và bạn phải định cấu hình lại máy chủ SymasLDAP trong trung tâm dữ liệu hiện có để sử dụng tính năng sao chép.
- ZooKeeper
Đối với tài sản
ZK_HOSTS
cho cả hai trung tâm dữ liệu, hãy chỉ định địa chỉ IP hoặc tên DNS của tất cả các nút ZooKeeper từ cả hai trung tâm dữ liệu, theo cùng một thứ tự và đánh dấu mọi nút bằng giá trị sửa đổi ":observer". Các nút không có đối tượng sửa đổi:observer
được gọi là "voter" (người bỏ phiếu). Bạn phải có số lượng "người bỏ phiếu" là số lẻ trong cấu hình của mình.Trong cấu trúc liên kết này, máy chủ ZooKeeper trên máy chủ 9 là máy quan sát:
Trong tệp cấu hình mẫu bên dưới, nút 9 được gắn thẻ bằng công cụ sửa đổi
:observer
để bạn có 5 cử tri: Nút 1, 2, 3, 7 và 8.Đối với thuộc tính
ZK_CLIENT_HOSTS
cho mỗi trung tâm dữ liệu, hãy chỉ định địa chỉ IP hoặc tên DNS của chỉ các nút ZooKeeper trong trung tâm dữ liệu, theo cùng một thứ tự, cho tất cả các nút ZooKeeper trong trung tâm dữ liệu. - Cassandra
Đối với
CASS_HOSTS
cho mỗi trung tâm dữ liệu, hãy đảm bảo rằng bạn chỉ định tất cả địa chỉ IP Cassandra (không phải tên DNS) cho cả hai trung tâm dữ liệu. Đối với trung tâm dữ liệu 1, trước tiên, hãy liệt kê các nút Cassandra trong trung tâm dữ liệu đó. Đối với trung tâm dữ liệu 2, trước tiên, hãy liệt kê các nút Cassandra trong trung tâm dữ liệu đó. Liệt kê các nút Cassandra theo cùng một thứ tự cho tất cả các nút Cassandra trong trung tâm dữ liệu.Tất cả các nút Cassandra phải có hậu tố ":d,r"; ví dụ: "ip:1,1 = trung tâm dữ liệu 1 và giá đỡ/vùng có thể truy cập 1 và "ip:2,1 = trung tâm dữ liệu 2 và giá đỡ/vùng có thể truy cập 1.
Ví dụ: "192.168.124.201:1,1 192.168.124.202:1,1 192.168.124.203:1,1 192.168.124.204:2,1 192.168.124.205:2,1 192.168.124.206:2,1"
Nút đầu tiên trong giá đỡ/vùng sẵn sàng 1 của mỗi trung tâm dữ liệu sẽ được dùng làm máy chủ gốc. Trong mô hình triển khai này, chế độ thiết lập Cassandra sẽ có dạng như sau:
-
Postgres
Theo mặc định, Edge sẽ cài đặt tất cả các nút Postgres ở chế độ chính. Tuy nhiên, khi có nhiều trung tâm dữ liệu, bạn sẽ định cấu hình các nút Postgres để sử dụng tính năng sao chép chính-dự phòng. Nhờ đó, nếu nút chính gặp lỗi, nút dự phòng có thể tiếp tục phân phát lưu lượng truy cập. Thông thường, bạn sẽ định cấu hình máy chủ Postgres chính trong một trung tâm dữ liệu và máy chủ dự phòng trong trung tâm dữ liệu thứ hai.
Nếu trung tâm dữ liệu hiện có đã được định cấu hình để có 2 nút Postgres chạy ở chế độ chính/dự phòng, thì trong quy trình này, hãy huỷ đăng ký nút dự phòng hiện có và thay thế bằng một nút dự phòng trong trung tâm dữ liệu mới.
Bảng sau đây cho thấy cấu hình Postgres trước và sau cho cả hai trường hợp:
Trước Sau Nút Postgres chính duy nhất trong dc-1
Nút Postgres chính trong dc-1
Nút Postgres ở chế độ chờ trong dc-2
Nút Postgres chính trong dc-1
Nút Postgres ở chế độ chờ trong dc-1
Nút Postgres chính trong dc-1
Nút Postgres ở chế độ chờ trong dc-2
Huỷ đăng ký nút Postgres dự phòng cũ trong dc-1
- Yêu cầu về cổng
Bạn phải đảm bảo rằng các cổng cần thiết được mở giữa các nút trong hai trung tâm dữ liệu. Để xem sơ đồ cổng, hãy xem phần Yêu cầu về cổng.
Cập nhật trung tâm dữ liệu hiện có
Khi thêm một trung tâm dữ liệu, bạn cần thực hiện các bước để cài đặt và định cấu hình các nút trung tâm dữ liệu mới, đồng thời phải cập nhật các nút trong trung tâm dữ liệu ban đầu. Bạn cần thực hiện những sửa đổi này vì bạn đang thêm các nút Cassandra và ZooKeeper mới vào trung tâm dữ liệu mới. Các nút này phải có thể truy cập vào trung tâm dữ liệu hiện có và bạn phải định cấu hình lại SymasLDAP để sử dụng tính năng sao chép.
Tạo tệp cấu hình
Dưới đây là các tệp cấu hình im lặng cho hai trung tâm dữ liệu, trong đó mỗi trung tâm dữ liệu có 6 nút như minh hoạ trong phần Cấu trúc liên kết cài đặt. Lưu ý rằng tệp cấu hình cho dc-1 sẽ thêm các chế độ cài đặt bổ sung vào:
- Định cấu hình SymasLDAP để sao chép trên 2 nút SymasLDAP.
- Thêm các nút Cassandra và ZooKeeper mới từ dc-2 vào tệp cấu hình cho dc-1.
# Datacenter 1 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP1 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=1 LDAP_PEER=$IP7 APIGEE_LDAPPW=secret MP_POD=gateway-1 REGION=dc-1 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1 $IP7:2,1 $IP8:2,1 $IP9:2,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
# Datacenter 2 IP1=IPorDNSnameOfNode1 IP2=IPorDNSnameOfNode2 IP3=IPorDNSnameOfNode3 IP7=IPorDNSnameOfNode7 IP8=IPorDNSnameOfNode8 IP9=IPorDNSnameOfNode9 HOSTIP=$(hostname -i) MSIP=$IP7 ADMIN_EMAIL=opdk@google.com APIGEE_ADMINPW=Secret123 LICENSE_FILE=/tmp/license.txt USE_LDAP_REMOTE_HOST=n LDAP_TYPE=2 LDAP_SID=2 LDAP_PEER=$IP1 APIGEE_LDAPPW=secret MP_POD=gateway-2 REGION=dc-2 ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9" # Must use IP addresses for CASS_HOSTS, not DNS names. CASS_HOSTS="$IP7:2,1 $IP8:2,1 $IP9:2,1 $IP1:1,1 $IP2:1,1 $IP3:1,1" SKIP_SMTP=n SMTPHOST=smtp.example.com SMTPUSER=smtp@example.com SMTPPASSWORD=smtppwd SMTPSSL=n SMTPPORT=25 SMTPMAILFROM="My Company <myco@company.com>" |
Thêm trung tâm dữ liệu mới
Hãy làm theo quy trình bên dưới để cài đặt một trung tâm dữ liệu mới.
Trong quy trình này, các trung tâm dữ liệu có tên như sau:
- dc-1: trung tâm dữ liệu hiện có
- dc-2: trung tâm dữ liệu mới
Cách thêm một trung tâm dữ liệu mới:
- Trên dc-1, hãy chạy lại setup.sh trên các nút Cassandra ban đầu bằng tệp cấu hình dc-1 mới có chứa các nút Cassandra từ dc-2:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile1
- Trên dc-1, hãy chạy lại setup.sh trên nút Máy chủ quản lý:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile1
Nếu bạn đang sử dụng Tính năng kiếm tiền, hãy chạy lại lệnh thiết lập tính năng kiếm tiền:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1
- Trên dc-2, hãy cài đặt
apigee-setup
trên tất cả các nút. Hãy xem phần Cài đặt tiện ích Edge apigee-setup để biết thêm thông tin. - Trên dc-2, hãy cài đặt Cassandra và ZooKeeper trên các nút thích hợp:
/opt/apigee/apigee-setup/bin/setup.sh -p ds -f configFile2
- Trên dc-2, hãy chạy lệnh tạo lại trên tất cả các nút Cassandra, chỉ định tên khu vực của dc-1:
/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassIP rebuild dc-1
Bạn chỉ cần truyền tên người dùng và mật khẩu nếu đã bật tính năng xác thực JMX cho Cassandra.
- Trên dc-2, hãy cài đặt Máy chủ quản lý trên nút thích hợp:
/opt/apigee/apigee-setup/bin/setup.sh -p ms -f configFile2
- Trên nút Máy chủ quản lý trong dc-2, hãy cài đặt
apigee-provision
, thao tác này sẽ cài đặt tiện íchapigee-adminapi.sh
:/opt/apigee/apigee-service/bin/apigee-service apigee-provision install
- Trên dc-2, hãy cài đặt các Tuyến đường và Trình xử lý thông báo trên các nút thích hợp:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f configFile2
- Trên dc-2, hãy cài đặt Qpid trên các nút thích hợp:
/opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile2
- Trên dc-2, hãy cài đặt Postgres trên nút thích hợp:
/opt/apigee/apigee-setup/bin/setup.sh -p ps -f configFile2
- Thiết lập Postgres chính/dự phòng cho các nút Postgres. Nút Postgres trong dc-1 là nút chính và nút Postgres trong dc-2 là máy chủ dự phòng.
- Trên nút chính trong dc-1, hãy chỉnh sửa tệp cấu hình để đặt:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Bật tính năng sao chép trên máy chủ chính mới:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
- Trên nút dự phòng trong dc-2, hãy chỉnh sửa tệp cấu hình để đặt:
PG_MASTER=IPorDNSofDC1Master PG_STANDBY=IPorDNSofDC2Standby
- Trên nút dự phòng trong dc-2, hãy dừng máy chủ rồi xoá mọi dữ liệu Postgres hiện có:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
rm -rf /opt/apigee/data/apigee-postgresql/
Nếu cần, bạn có thể sao lưu dữ liệu này trước khi xoá.
- Định cấu hình nút dự phòng trong dc-2:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
- Trên nút chính trong dc-1, hãy chỉnh sửa tệp cấu hình để đặt:
- Trên dc-1, hãy cập nhật cấu hình phân tích và định cấu hình các tổ chức.
- Trên nút Máy chủ quản lý của dc-1, hãy lấy UUID của nút Postgres:
apigee-adminapi.sh servers list -r dc-1 -p analytics -t postgres-server \ --admin adminEmail --pwd adminPword --host localhost
UUID xuất hiện ở cuối dữ liệu được trả về. Lưu giá trị đó.
- Trên nút Máy chủ quản lý của dc-2, hãy lấy UUID của nút Postgres như trong bước trước. Lưu giá trị đó.
- Trên nút Máy chủ quản lý của dc-1, hãy xác định tên của các nhóm người tiêu dùng và phân tích. Nhiều lệnh dưới đây yêu cầu thông tin đó.
Theo mặc định, tên của nhóm phân tích là "axgroup-001" và tên của nhóm người dùng là "consumer-group-001". Trong tệp cấu hình im lặng cho một khu vực, bạn có thể đặt tên cho nhóm phân tích bằng cách sử dụng thuộc tính
AXGROUP
.Nếu bạn không chắc chắn về tên của nhóm người dùng và nhóm phân tích, hãy dùng lệnh sau để hiển thị các nhóm đó:
apigee-adminapi.sh analytics groups list \ --admin adminEmail --pwd adminPword --host localhost
Lệnh này trả về tên nhóm phân tích trong trường name và tên nhóm người tiêu dùng trong trường consumer-groups.
- Trên nút Máy chủ quản lý của dc-1, hãy xoá máy chủ Postgres hiện có khỏi nhóm phân tích:
- Xoá nút Postgres khỏi nhóm người dùng:
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u UUID \ -Y --admin adminEmail --pwd adminPword --host localhost
Nếu dc-1 được định cấu hình để có 2 nút Postgres chạy ở chế độ chính/dự phòng, hãy xoá cả hai nút:
apigee-adminapi.sh analytics groups consumer_groups datastores remove \ -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" \ -Y --admin adminEmail --pwd adminPword --host localhost
- Xoá nút Postgres khỏi nhóm phân tích:
apigee-adminapi.sh analytics groups postgres_server remove \ -g axgroup-001 -u UUID -Y --admin adminEmail \ --pwd adminPword --host localhost
Nếu dc-1 được định cấu hình để có 2 nút Postgres chạy ở chế độ chính/dự phòng, hãy xoá cả hai nút:
apigee-adminapi.sh analytics groups postgres_server \ remove -g axgroup-001 -u UUID1,UUID2 -Y --admin adminEmail \ --pwd adminPword --host localhost
- Xoá nút Postgres khỏi nhóm người dùng:
- Trên nút Máy chủ quản lý của dc-1, hãy thêm các máy chủ Postgres chính/dự phòng mới vào nhóm phân tích:
- Thêm cả hai máy chủ Postgres vào nhóm phân tích:
apigee-adminapi.sh analytics groups postgres_server \ add -g axgroup-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
Trong đó, UUID_1 tương ứng với nút Postgres chính trong dc-1 và UUID_2 tương ứng với nút Postgres dự phòng trong dc-2.
- Thêm các máy chủ PG vào nhóm người tiêu dùng dưới dạng máy chủ chính/dự phòng:
apigee-adminapi.sh analytics groups consumer_groups datastores \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1,UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
- Thêm cả hai máy chủ Postgres vào nhóm phân tích:
- Thêm các máy chủ Qpid từ dc-2 vào nhóm phân tích:
- Trên nút Máy chủ quản lý của dc-1, hãy lấy UUID của các nút Qpid trong dc-2:
apigee-adminapi.sh servers list -r dc-2 -p central -t qpid-server \ --admin adminEmail --pwd adminPword --host localhost
UUID xuất hiện ở cuối dữ liệu được trả về. Lưu các giá trị đó.
- Trên nút Máy chủ quản lý của dc-1, hãy thêm các nút Qpid vào nhóm phân tích (chạy cả hai lệnh):
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_1" --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g axgroup-001 -u "UUID_2" --admin adminEmail \ --pwd adminPword --host localhost
- Trên nút Máy chủ quản lý của dc-1, hãy thêm các nút Qpid vào nhóm người dùng (chạy cả hai lệnh):
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_1" \ --admin adminEmail --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups consumer_groups consumers \ add -g axgroup-001 -c consumer-group-001 -u "UUID_2" \ --admin adminEmail --pwd adminPword --host localhost
Nếu bạn đang sử dụng Kiếm tiền, hãy thêm các nút Qpid vào nhóm MINT trên nút Máy chủ quản lý của dc-1:
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_1 --admin adminEmail \ --pwd adminPword --host localhost
apigee-adminapi.sh analytics groups qpid_server \ add -g mxgroup001 -u UUID_2 --admin adminEmail \ --pwd adminPword --host localhost
- Trên nút Máy chủ quản lý của dc-1, hãy lấy UUID của các nút Qpid trong dc-2:
- Huỷ đăng ký và xoá máy chủ dự phòng Postgres cũ khỏi dc-1:
- Huỷ đăng ký máy chủ dự phòng Postgres dc-1 hiện có:
apigee-adminapi.sh servers deregister -u UUID -r dc-1 \ -p analytics -t postgres-server -Y --admin adminEmail \ --pwd adminPword --host localhost
Trong đó, UUID là nút Postgres dự phòng cũ trong dc-1.
- Xoá máy chủ dự phòng Postgres dc-1 hiện có:
apigee-adminapi.sh servers delete -u UUID \ --admin adminEmail --pwd adminPword --host localhost
- Huỷ đăng ký máy chủ dự phòng Postgres dc-1 hiện có:
- Trên nút Máy chủ quản lý của dc-1, hãy lấy UUID của nút Postgres:
- Cập nhật các keyspace Cassandra bằng hệ số sao chép chính xác cho hai trung tâm dữ liệu. Bạn chỉ phải chạy bước này một lần trên bất kỳ máy chủ Cassandra nào trong một trong hai trung tâm dữ liệu:
- Khởi động tiện ích
cqlsh
Cassandra:/opt/apigee/apigee-cassandra/bin/cqlsh cassandraIP
- Thực thi các lệnh CQL sau tại dấu nhắc "cqlsh>" để đặt các cấp độ sao chép cho các không gian khoá Cassandra:
ALTER KEYSPACE "identityzone" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
ALTER KEYSPACE "system_traces" WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc-1': '3','dc-2': '3' };
- Xem các keyspace bằng cách sử dụng lệnh:
SELECT * FROM system_schema.keyspaces;
- Thoát
cqlsh
:exit
- Khởi động tiện ích
- Chạy lệnh
nodetool
sau trên tất cả các nút Cassandra trong dc-1 để giải phóng bộ nhớ:/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup
Bạn chỉ cần truyền tên người dùng và mật khẩu nếu đã bật tính năng xác thực JMX cho Cassandra.
- Đối với mỗi tổ chức và mỗi môi trường mà bạn muốn hỗ trợ trên các trung tâm dữ liệu:
- Trên nút Management Server (Máy chủ quản lý) của dc-1, hãy thêm MP_POD mới vào Tổ chức:
apigee-adminapi.sh orgs pods add -o orgName -r dc-2 -p gateway-2 \ --admin adminEmail --pwd adminPword --host localhost
Trong đó, gateway-2 là tên của nhóm cổng như được xác định bằng thuộc tính MP_POD trong tệp cấu hình dc-2.
- Thêm Trình xử lý tin nhắn mới vào tổ chức và môi trường:
- Trên nút Management Server của dc-2, hãy lấy UUID của các nút Message Processor trong dc-2:
apigee-adminapi.sh servers list -r dc-2 -p gateway-2 \ -t message-processor --admin adminEmail --pwd adminPword --host localhost
UUID xuất hiện ở cuối dữ liệu được trả về. Lưu các giá trị đó.
- Trên nút Management Server của dc-1, đối với mỗi Message Processor trong dc-2, hãy thêm Message Processor vào một môi trường cho tổ chức:
apigee-adminapi.sh orgs envs servers add -o orgName -e envName \ -u UUID --admin adminEmail --pwd adminPword --host localhost
- Trên nút Management Server của dc-2, hãy lấy UUID của các nút Message Processor trong dc-2:
- Trên nút Management Server của dc-1, hãy kiểm tra tổ chức:
apigee-adminapi.sh orgs apis deployments -o orgName -a apiProxyName \ --admin adminEmail --pwd adminPword --host localhost
Trong đó apiProxyName là tên của một API proxy được triển khai trong tổ chức.
- Trên nút Management Server (Máy chủ quản lý) của dc-1, hãy thêm MP_POD mới vào Tổ chức:
Nếu bạn đang sử dụng Kiếm tiền, hãy cài đặt nút Kiếm tiền trong DC2.
Chạy lệnh thiết lập MINT trong các nút Máy chủ quản lý và Trình xử lý tin nhắn trong DC2:
/opt/apigee/apigee-setup/bin/setup.sh -p mo -f mint_configFile1