High Availability (viết tắt là HA) là dịch vụ đảm bảo khả năng uptime của các Cloud Server luôn hoạt động ở mức cao theo cam kết. Trong bài này vHost sẽ chia sẻ hệ thống HA của dịch vụ Cloud Server tại vHost hoạt động như thế nào.
Để đảm bảo uptime cao, mỗi server trong một cluster hoạt động bao gồm 2 dịch vụ, bao gồm:
- HA-LRM: LRM viết tắt của Local Resources Manager, dùng để quản lý và duy trì trạng thái (state) các dịch vụ VM/Container trên server local node. Dịch vụ này sẽ cập nhật trạng thái từ manager hiện tại trong hệ thống và thực thi nhiệm vụ tương ứng.
- HA-CRM: CRM viết tắt của Cluster Resources Manager, không giống như OpenStack, hệ thống của vHost sẽ không có controller server chính và phụ mà tất cả các server trong hệ thống đều có thể là controller server. Tuy nhiên chỉ có duy nhất 1 CRM hoạt động tại một thời điểm. Trong một hệ thống có 3 node thì sẽ có 1 node là controller master, 2 node còn lại sẽ là backup controller với trạng thái là slave, trong trường hợp server master chính gặp sự cố thì 1 trong 2 server slave này sẽ được vote trở thành master server và tiếp tục nắm giữ dịch vụ quản lý CRM. CRM dùng để gửi lệnh đến các LRM, xử lý kết quả câu lệnh, và di chuyển tài nguyên tới các server node ảo hóa khác trong cùng hệ thống nếu CRM phát hiện bất kì node nào gặp sự cố. CRM cũng là node xử lý fencing trong toàn hệ thống.
Locks trong CRM và LRM
Lock được cung cấp bởi hệ thống phân phối file cấu hình trên tất cả các node (pmxcfs). Lock được dùng để đảm bảo mỗi LRM chỉ được kích hoạt duy nhất 1 lần và luôn hoạt động. LRM chỉ thực thi nhiệm vụ đối với 1 VM hoặc 1 container khi LRM đã lock thành công dịch vụ đó. Hệ thống sẽ mark 1 node thành fenced nếu có thể giành được trạng thái lock VM/Container trên server khác. Việc này đảm bảo không có bất kì server nào khác can thiệp vào VM/Container để đảm bảo không bị split-brain. Lock sẽ được quản lý bởi CRM.
Trạng thái dịch vụ CRM
Các trạng thái dịch vụ mà CRM có thể thấy bao gồm:
- Stopped: dịch vụ đã được stop thành công và được xác nhận bởi LRM. Nếu LRM phát hiện VM/Container vẫn running thì hệ thống sẽ thực thi stop dịch vụ VM/Container cho tới khi hoàn tất nhiệm vụ.
- Request_stop: hệ thống đang yêu cầu stop dịch vụ và đang chờ LRM thực thi và báo cáo lại.
- Stopping: CRM đang yêu cầu thực thi stop dịch vụ VM/CT nhưng chưa nhận báo cáo từ LRM.
- Started: VM/CT đang running, nếu LRM thấy VM/CT bị shutdown thì tự động start VM/CT lên lại. Tuy nhiên start lên bao nhiêu lần sẽ phụ thuộc vào cấu hình Start Failure Policy.
- Starting: CRM đang yêu cầu thực thi start dịch vụ VM/CT nhưng chưa nhận báo cáo từ LRM.
- Fence: là trạng thái hệ thống CRM yêu cầu cách ly 1 node ra khỏi hệ thống và tạm ngưng toàn bộ hoạt động của node này khỏi HA. Các VM/CT sẽ được tự động start lại trên server khác trong cùng hệ thống (nếu các node này còn đủ tài nguyên).
- Freeze: vui lòng không thay đổi trạng thái này. Đây là trạng thái hệ thống đang reboot 1 node hoặc đang bảo trì dịch vụ LRM trên chính node đó (ví dụ: update software).
- Ignored: là trạng thái VM/CT không được quản lý bởi HA. Nếu người dùng shutdown thì hệ thống VM sẽ bị shutdown và người dùng start lên thì VM/CT sẽ tự start lên. Vì lý do nào đó nếu node gặp sự cố, hệ thống VM/CT sẽ không tự động start lên trên server khác trong cùng cluster.
- Migrate: là trạng thái dịch vụ VM/CT đang được migrate qua server khác trong cùng cluster.
- Error: là trạng thái VM/CT bị tạm ngưng bởi vì LRM bị lỗi. Cần kiểm tra và xử lý thủ công bởi quản trị viên (administrator).
- Queued: là trạng thái VM/CT mới được add vào HA và CRM trước giờ chưa thấy trạng thái của VM/CT này bao giờ.
- Disabled: trạng thái VM/CT đã stop và ghi nhận là disabled.
Tại sao tôi đã shutdown VPS và hệ thống tự động start lên lại?
Như vậy khi khách hàng đăng ký dịch vụ Cloud VPS tại vHost thì tất cả các dịch vụ mặc định sẽ được tạo ra và đưa vào HA với trạng thái Started. Khi bất kì server nào gặp sự cố (fenced) thì hệ thống sẽ tự động start VPS này trên server khác trong cùng cluster. Việc này nhằm đảm bảo và giữ cho VM luôn hoạt động online.
Đối với nhiều công ty game online, website, hệ thống online khác…. đã shutdown VPS để bảo trì nâng cấp hệ thống trưc tiếp từ trong hệ điều hành. Tuy nhiên do VPS đang được quản lý bởi HA, vì vậy hệ thống LRM giám sát và nhận thấy VPS đang bị shutdown, ngay lập tức dịch vụ LRM đã tự động start các VPS này lên lại ngay lập tức và đảm bảo duy trì cho VPS luôn luôn online.
Để shutdown đúng cách và không bị start lên lại, Quý khách vui lòng tắt các dịch vụ bên trong VPS và thực hiện stop VPS tại trang https://members.vhost.vn
Việc nhấn Stop tại trang members.vhost.vn đồng nghĩa với việc yêu cầu hệ thống HA duy trì trạng thái VPS luôn stop, và không start lên lại trong lúc này.
Sau khi bảo trì xong hệ thống, Quý khách có thể nhấn Boot để yêu cầu HA start VPS lên lại và duy trì trạng thái VPS luôn luôn online.
Nếu Quý khách cần thêm thông tin, vui lòng liên hệ với vHost trực tiếp tại https://support.vhost.vn