Nhiều bản ghi A trỏ đến cùng một tên miền dường như chỉ được sử dụng để triển khai DNS Round Robin như một kỹ thuật cân bằng tải giá rẻ.
Cảnh báo thông thường đối với DNS RR là nó không tốt cho tính sẵn sàng cao. Khi 1 IP ngừng hoạt động, khách hàng sẽ tiếp tục sử dụng nó trong vài phút.
Một cân bằng tải thường được đề xuất là một lựa chọn tốt hơn.
Cả hai tuyên bố đều không hoàn toàn đúng:
Khi lưu lượng truy cập là HTTP, hầu hết các trình duyệt HTML có thể tự động thử bản ghi A tiếp theo nếu trước đó không hoạt động, mà không cần tra cứu DNS mới. Đọc ở đây chương 3.1 và ở đây .
Khi có nhiều trung tâm dữ liệu tham gia, DNS RR là tùy chọn duy nhất để phân phối lưu lượng truy cập trên chúng.
Vì vậy, có đúng là, với nhiều trung tâm dữ liệu và lưu lượng HTTP, việc sử dụng DNS RR là cách DUY NHẤT để đảm bảo sự cố ngay lập tức khi một trung tâm dữ liệu ngừng hoạt động?
Cảm ơn,
Valentino
Biên tập:
- Dĩ nhiên, mỗi trung tâm dữ liệu đều có Bộ cân bằng tải cục bộ với phụ tùng nóng.
- Bạn có thể hy sinh mối quan hệ phiên cho một thất bại ngay lập tức.
- AFAIK cách duy nhất để DNS đề xuất một trung tâm dữ liệu thay vì một trung tâm dữ liệu khác là trả lời chỉ bằng IP (hoặc IP) được liên kết với trung tâm dữ liệu đó. Nếu trung tâm dữ liệu không thể truy cập được thì tất cả các IP đó cũng không thể truy cập được. Điều này có nghĩa là, ngay cả khi các trình duyệt HTML thông minh có thể thử ngay một bản ghi A khác, tất cả các lần thử sẽ thất bại cho đến khi mục nhập bộ nhớ cache cục bộ hết hạn và tìm kiếm DNS mới, tìm nạp IP hoạt động mới (tôi cho rằng DNS tự động đề xuất với trung tâm dữ liệu mới khi một lần thất bại). Vì vậy, "DNS thông minh" không thể đảm bảo chuyển đổi dự phòng ngay lập tức.
- Ngược lại, một vòng tròn DNS cho phép nó. Khi một trung tâm dữ liệu bị lỗi, các trình duyệt HTML thông minh (hầu hết trong số chúng) sẽ ngay lập tức thử các bản ghi A được lưu trong bộ nhớ cache khác nhảy đến một trung tâm dữ liệu (đang hoạt động) khác. Vì vậy, vòng tròn DNS không đảm bảo mối quan hệ phiên hoặc RTT thấp nhất nhưng dường như là cách duy nhất để đảm bảo sự thất bại tức thì khi các máy khách là trình duyệt HTML "thông minh".
Chỉnh sửa 2:
- Một số người đề xuất TCP Anycast là một giải pháp dứt khoát. Trong bài báo này (chương 6) được giải thích rằng Anycast fail-over có liên quan đến sự hội tụ BGP. Vì lý do này, Anycast có thể sử dụng từ 15 phút đến 20 giây để hoàn thành. Có thể có 20 giây trên các mạng nơi cấu trúc liên kết được tối ưu hóa cho việc này. Có lẽ chỉ các nhà khai thác CDN có thể cấp thất bại nhanh như vậy.
Chỉnh sửa 3: *
- Tôi đã thực hiện một số tra cứu và theo dõi DNS (có thể một số chuyên gia có thể kiểm tra lại) và:
- CDN duy nhất sử dụng TCP Anycast dường như là CacheFly, các nhà khai thác khác như mạng CDN và BitGravity sử dụng CacheFly. Có vẻ như các cạnh của chúng không thể được sử dụng như các proxy ngược. Do đó, chúng không thể được sử dụng để cấp dự phòng ngay lập tức.
- Akamai và LimeLight dường như sử dụng DNS nhận biết địa lý. Nhưng! Họ trả lại nhiều hồ sơ A. Từ các traceroutes dường như các IP được trả về nằm trên cùng một trung tâm dữ liệu. Vì vậy, tôi rất băn khoăn về cách họ có thể cung cấp SLA 100% khi một trung tâm dữ liệu ngừng hoạt động.