Trong điện toán đám mây, chuyển đổi dự phòng là khái niệm định tuyến lại lưu lượng truy cập đến hệ thống dự phòng nếu hệ thống ban đầu không thể truy cập được. Phiên bản điện toán Linode hỗ trợ chuyển đổi dự phòng thông qua tính năng Chia sẻ IP. Điều này cho phép hai Phiên bản điện toán chia sẻ một địa chỉ IP duy nhất, một địa chỉ đóng vai trò chính và một địa chỉ đóng vai trò phụ. Nếu Phiên bản điện toán chính không còn khả dụng, địa chỉ IP dùng chung sẽ được định tuyến liền mạch đến Phiên bản điện toán phụ (chuyển đổi dự phòng). Khi phiên bản chính trực tuyến trở lại, tuyến địa chỉ IP sẽ được khôi phục (dự phòng).
Tại sao tôi nên triển khai chuyển đổi dự phòng?
Khi lưu trữ các dịch vụ dựa trên web, tổng thời gian hoạt động và tính khả dụng của các dịch vụ đó cần được cân nhắc quan trọng. Luôn có khả năng Phiên bản điện toán của bạn không thể truy cập được, có thể do lưu lượng truy cập tăng đột biến, sự cố cấu hình nội bộ của chính bạn, thiên tai hoặc bảo trì theo kế hoạch (hoặc ngoài kế hoạch). Khi điều này xảy ra, mọi trang web hoặc dịch vụ được lưu trữ trên phiên bản đó cũng sẽ ngừng hoạt động. Chuyển đổi dự phòng cung cấp cơ chế bảo vệ dịch vụ của bạn trước một điểm lỗi duy nhất.
Thuật ngữ tính sẵn sàng cao mô tả các kiến trúc ứng dụng web giúp loại bỏ các điểm lỗi duy nhất, cung cấp khả năng dự phòng, giám sát và chuyển đổi dự phòng để giảm thiểu thời gian ngừng hoạt động cho người dùng của bạn. Việc thêm giải pháp cân bằng tải vào cơ sở hạ tầng ứng dụng của bạn thường là thành phần chính để đảm bảo tính sẵn sàng cao. Các giải pháp được quản lý, như NodeBalancers của Linode, kết hợp cân bằng tải với chuyển đổi dự phòng địa chỉ IP tích hợp. Tuy nhiên, các giải pháp tự lưu trữ như nginx hoặc haproxy không bao gồm tính năng chuyển đổi dự phòng IP tích hợp. Nếu hệ thống chạy phần mềm cân bằng tải gặp phải thời gian ngừng hoạt động, toàn bộ ứng dụng sẽ ngừng hoạt động. Để ngăn chặn điều này, bạn cần có một máy chủ bổ sung chạy phần mềm cân bằng tải và cơ chế chuyển đổi dự phòng địa chỉ IP. Trên nền tảng Linode, điều này được thực hiện thông qua tính năng Chia sẻ IP và một số cấu hình phần mềm bổ sung.
Ghi chú
Đối với nhiều ứng dụng sản xuất, bạn có thể muốn xem xét một công cụ cân bằng tải vượt xa khả năng chuyển đổi dự phòng cơ bản. NodeBalancers của Linode kết hợp cân bằng tải với chuyển đổi dự phòng tích hợp. Nếu bạn đang sử dụng phần mềm cân bằng tải tự lưu trữ, chẳng hạn như NGINX hoặc HAProxy, trên Phiên bản điện toán của riêng mình, thì bạn phải sử dụng tính năng Chia sẻ IP để cung cấp khả năng chuyển đổi dự phòng cho các địa chỉ IP.
Tính sẵn sàng chia sẻ IP
Trong nền tảng của Linode, chuyển đổi dự phòng được định cấu hình bằng cách trước tiên bật Chia sẻ IP, sau đó định cấu hình phần mềm trên cả Phiên bản điện toán chính và phụ. Tính khả dụng của Chia sẻ IP thay đổi tùy theo trung tâm dữ liệu. Xem lại danh sách bên dưới để tìm hiểu trung tâm dữ liệu nào hỗ trợ Chia sẻ IP và cách triển khai tính năng này.

Ghi chú
- Nếu một trung tâm dữ liệu được đánh dấu là đang nâng cấp mạng, khách hàng có thể gặp phải sự cố khi bật Chia sẻ IP và định cấu hình chuyển đổi dự phòng. Đối với các Phiên bản điện toán đã bật Chia sẻ IP, tính năng này vẫn hoạt động như dự kiến. Sau khi hoàn tất nâng cấp mạng, Chia sẻ IP sẽ được hỗ trợ thông qua phương thức mới (BGP). Xem lại tài liệu về kế hoạch nâng cấp cơ sở hạ tầng mạng của chúng tôi để tìm hiểu thêm về những thay đổi này.
- Chuyển đổi dự phòng IP cho các địa chỉ IP VLAN được hỗ trợ trong mọi trung tâm dữ liệu có sẵn Vlan. Tính năng này không phụ thuộc vào tính năng Chia sẻ IP của Linode mà phụ thuộc vào phần mềm chuyển đổi dự phòng dựa trên ARP, chẳng hạn như keepaliving.
Phương pháp chuyển đổi dự phòng địa chỉ IP
- Dựa trên ARP (phương pháp cũ): Hỗ trợ IPv4. Phương pháp này hiện đang được loại bỏ dần. Vì nó dựa trên ARP nên khách hàng có thể đặt cấu hình trên Phiên bản điện toán của mình bằng phần mềm hỗ trợ VRRP (Giao thức dự phòng bộ định tuyến ảo), chẳng hạn như keepaliving. Thực hiện theo các hướng dẫn trong hướng dẫn được lưu giữ.
- Dựa trên BGP (phương pháp mới): Hỗ trợ các phạm vi định tuyến IPv4 (công khai và riêng tư) và IPv6 (/64 và /56). Điều này hiện đang được triển khai trên toàn đội của chúng tôi cùng với việc nâng cấp cơ sở hạ tầng mạng theo kế hoạch của chúng tôi. Vì nó được triển khai bằng định tuyến BGP nên khách hàng có thể định cấu hình nó trên Phiên bản điện toán của mình bằng lelastic (công cụ riêng của Linode) hoặc phần mềm như FRR, BIRD hoặc GoBGP.
Ghi chú
Mặc dù keepaliving không được sử dụng trực tiếp để chuyển đổi dự phòng nhưng bạn vẫn có thể sử dụng vrrp_scripts để kiểm tra tình trạng. Bạn có thể làm như vậy nếu muốn giữ lại một số chức năng được giữ nguyên hiện có khi di chuyển sang phương pháp chuyển đổi dự phòng dựa trên BGP.
Định cấu hình chuyển đổi dự phòng
Các hướng dẫn trong hướng dẫn này cho phép bạn định cấu hình chuyển đổi dự phòng bằng cách sử dụng Chia sẻ IP và công cụ lelastic, một công cụ do Linode cung cấp dựa trên GoBGP tự động hóa phần lớn cấu hình. Mặc dù leelastic cho phép nhiều triển khai chuyển đổi dự phòng cơ bản, nhưng bạn có thể cân nhắc sử dụng FRR hoặc bất kỳ ứng dụng khách BGP nào khác nếu việc triển khai của bạn nâng cao hơn. Xem Định cấu hình chuyển đổi dự phòng IP qua BPG bằng FRR.
Ghi chú
Nếu trung tâm dữ liệu của bạn hỗ trợ phương thức cũ (ARP), thay vào đó hãy sử dụng Hướng dẫn định cấu hình chuyển đổi dự phòng IP bằng cách sử dụng. Hướng dẫn đó cũng nên được sử dụng khi thiết lập chuyển đổi dự phòng cho các địa chỉ IP VLAN.
Nếu bạn đã bao gồm các phiên bản điện toán của mình trong một nhóm vị trí, thì nhóm đó cần sử dụng Chống mối quan hệ làm Loại mối quan hệ để phân bổ chúng trong trung tâm dữ liệu. Loại mối quan hệ ngược lại, Mối quan hệ đặt các phiên bản tính toán gần nhau về mặt vật lý, đôi khi trên cùng một máy chủ. Điều này đánh bại mục đích thất bại.
Để định cấu hình chuyển đổi dự phòng, hãy hoàn thành từng phần sau.
- Đăng nhập vào Trình quản lý đám mây.
- Xác định hai Phiên bản điện toán nào sẽ được sử dụng trong thiết lập chuyển đổi dự phòng của bạn. Cả hai đều phải được đặt trong cùng một trung tâm dữ liệu. Nếu cần, hãy tạo ngay các Phiên bản điện toán đó và cho phép chúng khởi động hoàn toàn.
Ghi chú
Để hỗ trợ phương thức BGP chia sẻ và chuyển đổi dự phòng IP mới này, Phiên bản điện toán của bạn phải được chỉ định một địa chỉ IPv6. Đây không phải là vấn đề đối với hầu hết các trường hợp vì địa chỉ IPv6 được chỉ định trong quá trình triển khai. Nếu Phiên bản điện toán của bạn được tạo trước khi địa chỉ IPv6 được gán tự động và bạn muốn bật Chia sẻ IP trong trung tâm dữ liệu sử dụng chuyển đổi dự phòng dựa trên BGP, hãy liên hệ với Bộ phận hỗ trợ Linode.
- Tắt Trình trợ giúp mạng trên cả hai trường hợp. Để biết hướng dẫn, hãy xem hướng dẫn Trình trợ giúp mạng.
- Trong số các địa chỉ IP được chỉ định cho Phiên bản điện toán của bạn, hãy xác định địa chỉ IP nào bạn muốn sử dụng làm IP dùng chung. Bạn có thể muốn thêm địa chỉ IPv4 hoặc dải IPv6 (/64 hoặc /56) bổ sung vào một trong các phiên bản vì điều này tránh mất kết nối tạm thời đối với các ứng dụng có thể đang sử dụng địa chỉ IP hiện có của bạn. Xem hướng dẫn Quản lý địa chỉ IP để biết hướng dẫn. Mỗi địa chỉ IPv4 bổ sung có giá 2 USD mỗi tháng.
- Trên Phiên bản điện toán không được gán địa chỉ IP bạn đã chọn ở bước trước, hãy thêm địa chỉ IPv4 hoặc dải IPv6 đó làm IP chia sẻ bằng tính năng Chia sẻ IP của Linode. Xem Quản lý địa chỉ IP để biết hướng dẫn cách định cấu hình chia sẻ IP.
Cảnh báo
Khi Chia sẻ IP được bật cho một địa chỉ IP, tất cả kết nối tới địa chỉ IP đó sẽ bị mất ngay lập tức cho đến khi nó được định cấu hình trên Lelastic, FRR hoặc công cụ định tuyến BGP khác. Đây không phải là vấn đề khi thêm địa chỉ IP mới nhưng cần được cân nhắc nếu bạn đang bật Chia sẻ IP trên địa chỉ IP hiện có đang được sử dụng tích cực.
2. Thêm IP chia sẻ vào cấu hình mạng
Điều chỉnh tệp cấu hình mạng trên mỗi Phiên bản điện toán, thêm địa chỉ IP dùng chung và khởi động lại dịch vụ.
- Đăng nhập vào Phiên bản điện toán bằng SSH hoặc Lish.
2. Thêm địa chỉ IP được chia sẻ vào tệp cấu hình mạng của hệ thống. Trong hướng dẫn phân phối bên dưới, hãy mở tệp được chỉ định bằng trình soạn thảo văn bản (chẳng hạn như nano hoặc vim) và thêm các dòng được cung cấp vào cuối tệp đó. Khi làm như vậy, hãy thực hiện các thay thế sau:
- [shared-ip]: Địa chỉ IPv4 bạn đã chia sẻ hoặc địa chỉ trong dải IPv6 mà bạn đã chia sẻ. Bạn có thể chọn bất kỳ địa chỉ nào từ phạm vi IPv6. Ví dụ: trong phạm vi 2001:db8:e001:1b8c::/64, địa chỉ 2001:db8:e001:1b8c::1 có thể được sử dụng.
- [Prefix]: Đối với địa chỉ IPv4, hãy sử dụng 32. Đối với địa chỉ IPv6, hãy sử dụng 56 hoặc 64 tùy thuộc vào kích thước của phạm vi bạn đang chia sẻ.
Ghi chú
Xem lại tệp cấu hình và xác minh rằng địa chỉ IP được chia sẻ chưa xuất hiện. Nếu có, hãy xóa các dòng liên quan trước khi tiếp tục.
- Ubuntu 18.04 LTS và mới hơn: Sử dụng netplan. Toàn bộ tệp cấu hình được hiển thị bên dưới, mặc dù bạn chỉ cần sao chép lệnh
lo:
directive
File: /etc/netplan/01-netcfg.yaml

Để áp dụng các thay đổi, hãy khởi động lại phiên bản hoặc chạy:
sudo netplan apply
Debian và Ubuntu 16.04 (và cũ hơn): Sử dụng ifupdown. Thay thế [giao thức] bằng inet cho IPv4 hoặc inet6 cho IPv6.

Để áp dụng các thay đổi, hãy khởi động lại phiên bản hoặc chạy:
nmcli con add type dummy ifname shared
iếp theo, thêm địa chỉ IP được chia sẻ (hoặc các địa chỉ) của bạn và hiển thị giao diện mới. Chạy các lệnh bên dưới, thay thế [giao thức] bằng ipv4 cho IPv4 hoặc ipv6 cho IPv6 (ngoài việc thay thế [shared-ip] và [prefix])
nmcli con mod dummy-shared [protocol].method manual [protocol].addresses [shared-ip]/[prefix] nmcli con up dummy-shared
Vì giao diện loopback không được sử dụng nên bạn cũng phải thêm tùy chọn -allifs vào lệnh lelastic (được thảo luận trong phần riêng bên dưới).
3. Cài đặt và cấu hình Leastic
iếp theo, chúng ta cần định cấu hình phần mềm chuyển đổi dự phòng trên mỗi Phiên bản điện toán. Đối với điều này, tiện ích lelastic được sử dụng. Để có nhiều quyền kiểm soát hơn hoặc cho các trường hợp sử dụng nâng cao, hãy làm theo hướng dẫn trong Định cấu hình chuyển đổi dự phòng IP qua BPG bằng hướng dẫn FRR thay vì sử dụng leastic.
- Đăng nhập vào Phiên bản điện toán bằng SSH hoặc Lish.
- Cài đặt lelastic bằng cách tải xuống bản phát hành mới nhất từ kho lưu trữ GitHub, trích xuất nội dung của tệp đã lưu trữ và di chuyển tệp thực thi lelastic vào một thư mục trong PATH của bạn. Bạn có thể sử dụng quy trình tương tự này để cập nhật lelastic, đảm bảo khởi động lại dịch vụ lelastic (chi tiết ở bước sau) để hoàn tất nâng cấp. Trước khi cài đặt hoặc cập nhật leelastic, hãy xem lại trang phát hành và cập nhật biến phiên bản với số phiên bản mới nhất.
version=v0.0.6
curl -LO https://github.com/linode/lelastic/releases/download/$version/lelastic.gz
gunzip lelastic.gz
chmod 755 lelastic
sudo mv lelastic /usr/local/bin/
Ghi chú
CentOS/RHEL: Nếu chạy một bản phân phối có bật SELinux (chẳng hạn như hầu hết các bản phân phối CentOS/RHEL), bạn cũng phải đặt loại tệp SELinux thành bin_t.
Sudo chcon -t bin_t /usr/local/bin/lelastic
- Tiếp theo, chuẩn bị lệnh cấu hình định tuyến BGP thông qua lelastic. Thay thế [id] bằng ID tương ứng với trung tâm dữ liệu của bạn trong bảng trên và [vai trò] bằng chính hoặc phụ. Bạn không cần chạy lệnh này vì nó được định cấu hình như một dịch vụ theo các bước sau
lelastic -dcid [id] -[role] &
Ghi chú
CentOS/RHEL: Vì địa chỉ IP được chia sẻ được định cấu hình trên giao diện eth0 cho các bản phân phối NetworkManager (như CentOS/RHEL), nên bạn phải thêm tùy chọn -allifs vào lệnh lelastic.
- Tạo và chỉnh sửa tệp dịch vụ bằng nano hoặc vim.
sudo nano /etc/systemd/system/lelastic.service
- Dán nội dung sau vào rồi lưu và đóng tệp. Thay thế $command bằng lệnh lelast mà bạn đã chuẩn bị ở bước trước.
File: etc/systemd/system/lelastic.service
Description= Lelastic
After=network-online.target
Wants=network-online.target [Service]
Type=simple
ExecStart=/usr/local/bin/$command
ExecReload=/bin/kill -s HUP $MAINPID [Install]
WantedBy=multi-user.target
- Áp dụng các quyền chính xác cho tệp dịch vụ.
sudo chmod 644 /etc/systemd/system/lelastic.service
- Bắt đầu và kích hoạt dịch vụ lelastic.
sudo systemctl start lelastic
sudo systemctl enable lelastic
Bạn có thể kiểm tra trạng thái của dịch vụ để đảm bảo nó đang chạy (và xem bất kỳ lỗi nào)
sudo systemctl status lelastic
Nếu cần, bạn có thể dừng và vô hiệu hóa dịch vụ để dừng chức năng chuyển đổi dự phòng trên Phiên bản điện toán cụ thể.
sudo systemctl stop lelastic
sudo systemctl disable lelastic
Kiểm tra dự phòng
Sau khi được định cấu hình, địa chỉ IP dùng chung sẽ được định tuyến đến Phiên bản điện toán chính. Nếu phiên bản đó không thể truy cập được, địa chỉ IP dùng chung sẽ tự động được định tuyến đến phiên bản phụ (chuyển đổi dự phòng). Sau khi phiên bản chính trực tuyến trở lại, địa chỉ IP dùng chung sẽ được khôi phục về phiên bản đó (dự phòng).
Nếu muốn, cả hai phiên bản có thể được cấu hình với cùng một vai trò (cả chính hoặc cả phụ). Điều này ngăn chức năng quay lại dự phòng, nghĩa là địa chỉ IP được chia sẻ không được khôi phục về hệ thống ban đầu, ngay cả khi hệ thống ban đầu trực tuyến trở lại.
Bạn có thể kiểm tra chức năng chuyển đổi dự phòng của IP được chia sẻ bằng các bước bên dưới.
- Sử dụng một máy không phải hai Phiên bản điện toán trong cấu hình chuyển đổi dự phòng (chẳng hạn như máy cục bộ của bạn), ping địa chỉ IP dùng chung.
ping [shared-ip]

Ghi chú
Nếu bạn đang chia sẻ địa chỉ IPv6 thì máy mà bạn đang chạy lệnh ping phải có kết nối IPv6. Không phải tất cả ISP đều có chức năng này.
- Tắt phiên bản điện toán chính hoặc dừng dịch vụ kém linh hoạt trên phiên bản đó. Khi dịch vụ đã dừng hoặc phiên bản đã tắt nguồn hoàn toàn, địa chỉ IP dùng chung sẽ được chuyển đến phiên bản phụ.
sudo systemctl stop lelastic
- Xác minh rằng IP được chia sẻ vẫn có thể truy cập được bằng cách chạy lại lệnh ping. Nếu ping thành công, chuyển đổi dự phòng sẽ hoạt động như dự kiến.