Giới thiệu cấu trúc đám mây lưu trữ Seafile

Seafile nguyên bản là đám mây lưu trữ mã nguồn mở (xem thêm tại đây), bất kì cá nhân hay tổ chức đều có thể sử dụng, miễn là tuân thủ quy tắc mã nguồn mở. Hôm nay Seafile.VN Team xin giới thiệu về cấu trúc, các thành phần cấu thành đám mây lưu trữ này. Hiểu được các cấu trúc sẽ giúp bạn tiết kiệm thời gian trong việc triển khai và duy trì hệ thống đám mây lưu trữ Seafile.

Đám mây lưu trữ Seafile có hai phần chính là Seafile Server và Seafile Client. Cụ thể:

Các thành phần Seafile Server

  • Seahub: Các thành phần Web. Trong cấu trúc Seafile Server có một thành phần dịch vụ web rất nhẹ, là Python Gunicorn. Seahub hoạt động như một ứng dụng bên trong Gunicorn
  • FileServer: (trước phiên bản 3.1 được gọi là HttpServer). FileServer đảm nhiệm xử lý các dữ liệu thô trong quá trình download/upload. Do Gunicorn hoạt động kém hiệu quả trọng việc xử lý các dữ liệu có dung lượng lớn, chúng tôi thiết kế FileServer bằng ngôn ngữ lập trình C để đạt hiệu quả hơn.
  • Seafile server: seaf-server. Một tiến trình chạy nền xử lý các dịch vụ dữ liệu.
  • Ccnet server: ccnet-server. Một tiến trình chạy nền xử lý các dịch vụ mạng. CCnet hoạt động như một giao lộ giao thông. Các luồng dữ liệu giữa Server và Client hay các thành phần bên trong đều phải thông qua Ccnet. Trong quá trình phát triển, chúng tôi nhận thấy quá trình truyền dữ liệu hoạt động hiệu quả hơn khi sử dụng tiến trình Seafile.

Các thành phần Seafile Client

  • Applet: seafile-applet. Giao diện Seafile Client.
  • Seafile daemon: seafile. Một tiến trình chạy nền xử lý các dịch vụ dữ liệu.
  • Ccnet daemon: ccnet. Một tiến trình chạy nền xử lý các dịch vụ mạng.

Các hình ảnh mô tả:

Quá trình đồng bộ giữa Seafile Client và Server
seafile-sync-arch

Quá trình tương tác giữa Seafile Mobile và Server
mobile-arch

Quá trình tương tác giữa Seafile Mobile và Server với Seafile Server hoạt động phía sau Nginx/Apache
mobile-nginx-arch

Ở bài viết sau, Seafile.VN Team sẽ trình bày cách cài đặt một đám mây lưu trữ đơn giản.