Hệ thống lưu trữ dữ liệu có tính năng khả dụng cao

405
Với sự phát triển của điện toán đám mây, các nhà cung cấp dịch vụ trên internet đã phát triển các hệ thống cho phép lưu trữ và chia sẻ dữ liệu với hiệu suất cao, độ ổn định tốt và khả năng mở rộng theo chiều ngang. Nhiều hệ thống như vậy trên thế giới được xây dựng dựa trên phần mềm LizardFS. Ngay tại Việt Nam, các hệ thống lưu trữ đang được xây dựng, với dung lượng lên đến nhiều terabyte và không ngừng mở rộng.
Lĩnh vực kỹ thuật được đề cập
Sáng chế đề cập đến hệ thống lưu trữ dữ liệu, có thể được định nghĩa bằng phần mềm, được bổ sung thêm tính năng khả dụng cao.
Tình trạng kỹ thuật của sáng chế
Với sự phát triển của điện toán đám mây, các nhà cung cấp dịch vụ trên internet đã phát triển các hệ thống cho phép lưu trữ và chia sẻ dữ liệu với hiệu suất cao, độ ổn định tốt và khả năng mở rộng theo chiều ngang. Nhiều hệ thống như vậy trên thế giới được xây dựng dựa trên phần mềm LizardFS. Ngay tại Việt Nam, các hệ thống lưu trữ đang được xây dựng, với dung lượng lên đến nhiều terabyte và không ngừng mở rộng. Ví dụ như các hệ thống điện toán đám mây, hệ thống lưu trữ phim ảnh, hoặc video thu được từ mạng lưới kết nối với các máy quay an ninh. Việc xây dựng một hệ thống lưu trữ tập trung, đáp ứng được cả về hiệu suất hoạt động, độ ổn định, có khả năng mở rộng và chi phí thấp luôn là bài toán đòi hỏi doanh nghiệp phải có lựa chọn đúng đắn ngay từ đầu.
Việc xây dựng hệ thống lưu trữ dữ liệu dựa trên phần mềm LizardFS là miễn phí, tuy nhiên phiên bản miễn phí không có tính năng khả dụng cao. Đã có giải pháp  thương mại, tạo nên tính năng khả dụng cao cho hệ thống lưu trữ dữ liệu dựa trên phần mềm LizardFS, tuy nhiên chi phí cho việc sử dụng giải pháp này là cao. Một số đơn vị xây dựng hệ thống lưu trữ dữ liệu dựa trên phần mềm LizardFS cũng đã tìm cách tự bổ sung tính năng khả dụng cao, nhưng việc xây dựng còn phức tạp, thiếu độ ổn định và khả năng linh hoạt.
Mô tả vắn tắt các hình vẽ
Mô hình triển khai có HA cho Metadata
Mô tả chi tiết sáng chế
Các thành phần hệ thống:
  • Master server: chứa metadata file(size, thuộc tính, vị trí file, thư mục, sockets, pipes, devices).
  • Shadow server: sync metadata về backup
  • Chunk servers: lưu trữ data, replicate data.
  • Client: sử dụng mfsmount process để tương tác với Master server(nhận, sửa đổi, cập nhật metadata file) và với các Chunk server(đọc ghi file theo thông tin metadata đã cung cấp).
Trên Master server chạy một service để sử dụng địa chỉ IP ảo. Trong lúc mà Master server đang dùng địa chỉ IP ảo, service cũng định kỳ điều khiển gửi tín hiệu, gọi là heartbeat, tới Shadow server, để thông báo rằng Master server vẫn đang hoạt động với một địa chỉ IP ảo. Master server đồng thời cũng điều khiển nhận heartbeat từ Shadow server. Nếu sau một khoảng thời gian nhất định mà không nhận được heartbeat gửi từ Shadow server, và nếu Master server đang không sử dụng địa chỉ IP ảo nào, thì chuyển sang sử dụng địa chỉ IP ảo để giao tiếp với các Client server đang mount dữ liệu và các Chunk server. Trường hợp Master server đang không sử dụng địa chỉ IP ảo nào và vẫn định kỳ nhận được heartbeat gửi từ Shadow server thì Master server thực hiện định kỳ việc đồng bộ metadata trên nó sao cho giống với metadata có trên Shadow server. Lúc này vai trò master đang chạy trên Shadow server.
Trên Shadow server chạy service điều khiển nhận heartbeat từ Master server. Nếu sau một khoảng thời gian nhất định mà không nhận được heartbeat gửi từ Master server, và nếu Shadow server đang không sử dụng địa chỉ IP ảo nào, thì chuyển sang sử dụng địa chỉ IP ảo để giao tiếp với các Client server và Chunk server. Trường hợp Shadow server đang không sử dụng địa chỉ IP ảo nào và vẫn định kỳ nhận được heartbeat gửi từ Master server đến, thì Shadow server thực hiện định kỳ việc đồng bộ siêu dữ liệu trên nó sao cho giống với siêu dữ liệu có trên Master server.
Client server có thể giao tiếp đến Master server và Shadow server, nếu server nào có địa chỉ IP ảo thì tiếp tục giữ trao đổi thông tin với server đấy.
Khi Client server yêu cầu nhận một tập tin, Master server hoặc Shadow server, tùy thuộc vào server nào đang sử dụng địa chỉ IP ảo, sẽ thực hiện gửi đến Client server thông tin về metadata. Client server sau đó có thể kết nối tới Chunk server đã được chỉ định để lấy dữ liệu.
Khi Client server yêu cầu ghi một tập tin, Master server hoặc Shadow server, tùy thuộc vào server nào đang sử dụng địa chỉ IP ảo để giao tiếp với Client server, sẽ thực hiện các hoạt động sau:
  • Nếu cần thiết, gửi tín hiệu đến một trong số các Chunk server để tạo ra vùng lưu trữ sẵn sàng lưu tập tin cần ghi; rồi nhận tín hiệu gửi lại từ các Chunk server thông báo việc tạo vùng lưu trữ đã thành công;
  • Gửi đến Client server thông tin metadata về các phân vùng lưu trữ đã tạo lập, Client có thể gửi tập tin để ghi vào;
  • Nhận tín hiệu gửi lại từ Client server thông báo việc ghi tập tin đã thành công.
Đối với các Chunk server, khi một trong các Chunk server thực hiện nhận tập tin và lưu trữ lại tập tin, thì các Chunk server còn lại đọc lại tập tin mới này và có thể thực hiện lưu trữ các bản dự phòng của tập tin, số lượng các bản dự phòng tùy thuộc thiết lập từ phía người quản trị.
Các bước xử lý thông tin khi đọc tập tin và khi ghi tập tin, của các Client server, Master server hoặc Shadow server và các Chunk server, là các bước thực hiện tiêu chuẩn có thể được thiết lập khi cài đặt phần mềm LizardFS trên các Master server, Shadow server và các Chunk server.
Còn các quy tắc hoạt động trong quá trình trao đổi thông tin giữa Master server và Shadow server là cần phải được bổ sung thêm vào, không có sẵn trong phần mềm LizardFS bản miễn phí.
Tóm tắt sáng chế
Sáng chế đề xuất hệ thống lưu trữ dữ liệu, có thể được định nghĩa bằng phần mềm, được bổ sung thêm tính năng khả dụng cao, gồm Client server, các Chunk server, Master server – chứa metadata về các dữ liệu có trên các Chunk server, Shadow server –  cũng chứa metadata về các dữ liệu có trên các Chunk server bằng việc sync metadata từ Master server, tất cả có kết nối thông tin với nhau. Các bước xử lý thông tin của hệ thống khi đọc và ghi thông tin theo quy trình tiêu chuẩn của các phần mềm LizardFS. Tính năng khả dụng cao được bổ sung bằng việc có cơ chế trao đổi thông tin giữa Master server và Shadow server sao cho khi một trong hai server bị lỗi thì server còn lại tiếp tục đảm nhiệm hỗ trợ Client server đọc và ghi dữ liệu trên các Chunk server.
Bùi Minh Tiền – FTEL
Tin liên quan: