Giám sát máy chủ và mạng lưới mesh
Cách CreateYourVPN theo dõi tình trạng máy chủ: tự kiểm tra, mạng lưới mesh gồm các kiểm tra chéo lẫn nhau giữa các máy chủ, và tự động ẩn các máy chủ không thể truy cập khỏi người dùng.
Một máy chủ có thể làm bạn thất vọng vào đúng thời điểm tệ nhất: một dịch vụ bị sập, nhà cung cấp hosting khởi động lại máy — hoặc tệ hơn, máy chủ bị chặn ở quốc gia của một người dùng và ngừng có thể truy cập được dù về mặt kỹ thuật nó vẫn đang chạy. Người dùng của bạn không bao giờ nên nhận thấy bất kỳ điều gì trong số đó. Bài học này nói về cách CreateYourVPN trông chừng máy chủ của bạn và điều gì xảy ra khi một trong số chúng gặp sự cố.
Hai lớp kiểm tra
Hệ thống nhìn vào mỗi máy chủ từ hai góc độ.
1. Máy chủ tự kiểm tra chính nó
Cứ sau vài phút, mỗi máy chủ lại báo cáo: bộ lắng nghe lưu lượng trên cổng 443 có còn sống không, và dịch vụ VPN có đang chạy không? Các số liệu từ bài 3 cũng đến kèm cùng báo cáo đó. Nếu báo cáo nói "tôi không khỏe", máy chủ sẽ nhận trạng thái "Máy chủ không khả dụng". Nếu báo cáo ngừng đến hoàn toàn, trạng thái trở thành "Không có dữ liệu từ máy chủ" — máy có thể đã bị tắt nguồn hoặc mất mạng.
2. Các máy chủ "gõ cửa" lẫn nhau
Việc tự kiểm tra không thể phát hiện trường hợp tinh vi nhất: một máy chủ tin rằng nó khỏe mạnh, nhưng từ bên ngoài không thể truy cập được — chẳng hạn, IP của nó đã bị chặn. Đó là lý do tất cả các máy chủ của bạn được nối vào một mạng lưới mesh kiểm tra chéo lẫn nhau: mỗi máy chủ định kỳ cố gắng liên lạc với mọi máy hàng xóm — giống hệt cách ứng dụng của người dùng sẽ làm.
Từ đó, một cuộc "bỏ phiếu" sẽ diễn ra:
- Một lần gõ thất bại đơn lẻ không có nghĩa gì cả — mạng có thể chỉ vừa chớp tắt. Chỉ những chuỗi thất bại liên tục mới được tính.
- Một máy chủ chỉ được đánh dấu là "Không thể tiếp cận từ máy chủ của bạn" khi nhiều máy chủ độc lập liên tục không thể liên lạc được với nó — ý kiến của một máy chủ duy nhất không phải là bản án.
- Còn có cả biện pháp bảo vệ chống lại "nhân chứng không đáng tin": nếu một máy chủ nào đó đột nhiên tuyên bố rằng nó không thấy được một nửa số hàng xóm của mình, vấn đề nhiều khả năng nằm ở chính nó — và các phiếu bầu của nó bị loại bỏ.
Đây chính xác là cơ chế bắt được các trường hợp bị chặn: nếu một máy chủ bị chặn ở một quốc gia nơi các máy chủ khác của bạn cũng đang sống, các hàng xóm từ quốc gia đó sẽ nhanh chóng ngừng liên lạc được với nó, một số phiếu đủ để thành định lượng (quorum) sẽ tích lũy, và hệ thống sẽ đánh dấu máy chủ là không thể tiếp cận. Trong khi đó, các máy chủ ở những quốc gia không bị chặn sẽ vẫn tiếp tục thấy nó — và sự khác biệt về ý kiến khiến bức tranh trở nên rõ ràng.
Điều gì xảy ra với một máy chủ có vấn đề
Các trạng thái được đưa thẳng vào cân bằng tải: các máy chủ có trạng thái "Máy chủ không khả dụng" và "Không thể tiếp cận từ máy chủ của bạn" sẽ bị loại khỏi vòng xoay — không có kết nối mới nào được gửi đến chúng, và trong đăng ký của người dùng, vị trí của chúng được thay bằng các máy chủ khỏe mạnh từ cùng những tuyến đó.
Đồng thời, hệ thống rất cẩn trọng — nó được xây dựng theo nguyên tắc "không gây hại":
- Một tuyến không bao giờ bị bỏ trống. Nếu mọi máy chủ trên một tuyến hóa ra đều "xấu", hệ thống sẽ phục vụ người dùng phương án tốt nhất hiện có thay vì một danh sách trống — nếu không, ứng dụng sẽ cho rằng các máy chủ đã biến mất và xóa chúng đi.
- Sự im lặng không phải là bản án. Trạng thái "Không có dữ liệu từ máy chủ" không tự động loại một máy chủ khỏi vòng xoay: không có dữ liệu mới, hệ thống sẽ không đưa ra động thái đột ngột nào.
Mọi thứ tự chữa lành
Không trạng thái nào "dính chặt" mãi mãi — trạng thái luôn được tính lại từ dữ liệu mới:
- máy chủ gửi lại một báo cáo khỏe mạnh → "Máy chủ không khả dụng" được gỡ bỏ;
- các hàng xóm bắt đầu liên lạc được với nó trở lại → chuỗi thất bại được đặt lại, và nhãn "Không thể tiếp cận từ máy chủ của bạn" biến mất;
- báo cáo tiếp tục đến → "Không có dữ liệu từ máy chủ" biến mất.
Hãy sửa máy chủ (hoặc chờ nó được gỡ chặn) — và nó sẽ tự đưa mình trở lại hoạt động. Không cần "bật lại" thủ công.
Xem điều này ở đâu trong bảng điều khiển
Mở thẻ của bất kỳ người dùng nào → danh sách máy chủ của họ: bên cạnh mỗi máy chủ có một chấm trạng thái, và khi có gì đó không ổn — một dòng chú thích với lý do: "Máy chủ không khả dụng", "Không thể tiếp cận từ máy chủ của bạn" (kèm theo số lượng máy chủ của bạn không thể thấy nó), hoặc "Không có dữ liệu từ máy chủ". Các dấu hiệu gián tiếp cũng xuất hiện trên thẻ máy chủ: huy hiệu "cũ" trên số liệu và "Không có dữ liệu — agent không phản hồi".
Các kiểm tra mesh cực kỳ tiết kiệm: chúng là những lần chạm thăm dò rất nhỏ với hạn mức khối lượng hàng ngày nghiêm ngặt — chúng không có tác động gì đến lưu lượng hay hiệu năng của máy chủ bạn.
Những điểm chính cần nhớ
- Hai lớp kiểm soát: một máy chủ tự kiểm tra chính nó, và các hàng xóm mesh của nó kiểm tra nó từ bên ngoài.
- Các trường hợp bị chặn được bắt bằng "bỏ phiếu" của nhiều máy chủ — không hoảng loạn vì một trục trặc đơn lẻ.
- Các máy chủ có vấn đề bị loại khỏi vòng xoay; người dùng lặng lẽ chuyển sang các máy khỏe mạnh.
- Mọi thứ tự chữa lành: ngay khi một máy chủ sống lại, nó tự động tái gia nhập.
Tiếp theo
Hạ tầng biết cách tự sửa mình, nhưng có một thứ đáng để bảo vệ riêng — cơ sở người dùng của bạn.
Multihop: chuỗi máy chủ
Cách xây dựng một inbound multihop trong CreateYourVPN: lưu lượng vào trên một máy chủ và ra từ một máy chủ khác. Tại sao bạn muốn có nó, cách tạo nó, và người dùng thấy gì.
Sao lưu: lưu và khôi phục người dùng của bạn
Bài học cuối cùng của khóa học: tại sao bạn nên sao lưu cơ sở người dùng của mình, cách thiết lập bản sao tự động lên Google Drive hoặc S3, và cách khôi phục từ một bản sao lưu.