3.2.1 Cho phép Upload/Download dữ liệu lên lưới
Các chức năng của hệ thống lƣu trữ và chia sẻ LindaX đều dựa trên hai thao tác chính là upload và download tệp. Ngƣời dùng sẽ thông qua giao diện web làm trung gian để thực hiện việc upload dữ liệu của mình, lƣu trữ lên các máy chủ của hệ thống. Sau khi upload thành công, ngƣời dùng sẽ có một giao diện để quản lý không gian lƣu trữ của mình, có thể chọn một hoặc nhiều dữ liệu để chia sẻ với bạn bè bằng đƣờng dẫn logic của dữ liệu đó, đƣờng dẫn này đƣợc sinh ra khi upload thành công.
Khi muốn download một tệp tin nào đó từ hệ thống lƣu trữ, ngƣời dùng chỉ việc dán đƣờng dẫn logic lên trình duyệt web, hệ thống sẽ phân tích đƣờng dẫn này và trả lại cho ngƣời dùng đƣờng dẫn vật lý của dữ liệu đó. Đây là đƣờng dẫn ngƣời dùng sử dụng để tải dữ liệu về, theo cơ chế phần quyền khác nhau mà tốc độ tải về của dữ liệu là khác nhau. Đƣờng dẫn vật lý đƣợc tạo ra và quản lý trên các máy lƣu trữ.
3.2.2 Quản lýkhông gian lưu trữ
Hệ thống lƣu trữ và chia sẻ dữ liệu LindaX sẽ cung cấp cho mỗi ngƣời dùng một tài khoản, tƣơng ứng với mỗi tài khoản là một không gian lƣu trữ riêng của ngƣời đó. Sau khi đăng nhập, ngƣời dùng sẽ có một giao diện quản lý không gian lƣu trữ của mình. Ngƣời dùng có thể quản lý các thông tin cá nhân của mình nhƣ tên hiển thị, mật khẩu, ảnh đại diện hay một số thông tin khác.
Cũng thông qua giao diện đó, ngƣời dùng có thể xem các thông tin về các tệp tin của mình, quản lý các tệp tin theo kiểu thƣ mục, tìm kiếm tệp tin theo các tiêu chi khác nhau, đổi tên hay xóa các tệp tin của mình, v.v..Mỗi ngƣời dùng sẽ có không gian lƣu trữ khác nhau, tùy theo các lớp ngƣời dùng do hệ thống quy định.
3.2.3 Tạo lập và quản lý bản sao
Ứng dụng công nghệ lƣới, hệ thống lƣu trữ có khả năng tạo lập và quản lý các bản sao. Các bản sao có tác dụng làm dữ liệu của hệ thống trở nên sẵn dùng và tăng khả năng truy cập. Quá trình tạo các bản sao là quá trình sao chép một phiên bản của tệp vật lý tới các máy chủ lƣu trữ khác theo giải thuật ở đây là ƣu tiên tạo lập bản sao cho các dữ liệu có tần suất sử dụng cao. Các bản sao đƣợc tạo ra có vai trò nhƣ nhau trong hệ thống mà không có sự phân biệt hay ƣu tiên nào. Nhờ vậy, dữ liệu sẽ luôn sẵn sàng cho việc tải về trong bất kỳ trƣờng hợp nào.
42
Ngoài việc tạo lập bản sao, hệ thống cần có một cơ chế để quản lý các bản sao này. Khi ngƣời dùng có yêu cầu download một tệp nào đó, module quản lý bản sao sẽ lựa chọn cho ngƣời dùng một tệp vật lý trên máy chủ xác định trong số các bản sao của tệp logic đó. Việc bản sao nào đƣợc lựa chọn là theo các tiêu chí để có tốc độ cao nhất đối với ngƣời dùng.
3.2.4 Quản trị các nút lưu trữ
Hệ thống lƣu trữ của LindaX là dựa trên công nghệ lƣới dữ liệu. Công nghệ lƣới cho phép kết nối nhiều nguồn tài nguyên khác nhau làm nên một hệ thống lƣu trữ gần nhƣ là không có giới hạn, mỗi một tài nguyên lƣu trữ trong lƣới đƣợc gọi là một nút lƣu trữ. Chính vì khả năng mở rộng và cho phép kết nạp thêm các nút lƣu trữ nhằm gia tăng hiệu năng lƣu trữ, hệ thống cần phải có khả năng theo dõi và quản lý các nguồn lƣu trữ này. Công việc này phải thỏa mãn những yêu cầu sau:
Việc kết nạp thêm nút lƣu trữ phải dễ dàng và nhanh chóng, đảm bảo hệ thống luôn có năng lực lƣu trữ tối đa.
Dữ liệu đƣợc lƣu trữ trên nút lƣới không đƣợc vƣợt quá dung lƣợng lƣu trữ của chính nút lƣu trứ đó.
Các nút lƣu trữ phải luôn ở trong trạng thái sẵn sàng khi có yêu cầu đẩy dữ liệu lên nút, tránh trƣờng hợp kết nối bị gián đoạn trong khi truyền.
Việc cấu trúc và phân bố dữ liệu trên nút lƣu trữ phải hợp lý, tiện cho việc theo dõi và thống kê tài nguyên.
Chất lƣợng của quá trình upload và download dữ liệu phụ thuộc rất nhiều vào tải của nút lƣu trữ. Khi nút chủ lƣu trữ có quá nhiều yêu cầu tới, tốc độ của quá trình truyền tệp sẽ bị giảm đáng kể, thậm chí gây tắc nghẽn và làm hệ thống ngừng đáp ứng. Do vậy, việc phân tải công việc cho nhiều nút trong lƣới lƣu trữ là cần thiết để hệ thống có thể hoạt động với hiệu năng cao nhất.
43
3.3 Kịch bản sử dụng
3.3.1 Upload
Hình 3.2 – Kịch bảnupload
(1.1)Yêu cầu upload tệp
(1.2)Gọi module upload tệp trên HeadNode (2.1)Chọn nút lƣu trữ để thực hiện upload (2.2)Gửi thông tin nút lƣu trữ về ứng dụng (2.3)Gọi công cụ upload của ứng dụng
(3) Quá trình upload giữa ngƣời dùng và DataNode (4.1)Trả lại kết quả upload cho ứng dụng
(4.2)Trả lại kết quả upload cho HeadNode
(5.1)Cập nhật thông tin lên RLS (5.2)Cập nhật thông tin DataNode DB (6.1)Hiển thị kết quả cho ngƣời dùng (6.2)Cập nhật thông tin tệp vừa upload (7.1)Gửi yêu cầu tạo bản sao
(7.2)Gọi dịch vụ điều khiển tạo bản sao (8.1)Tạo bản sao
(8.2)Tạo bản sao
Tầng ứng dụng web Tầng lƣu trữ luới
44
Quá trình Upload một tệp tin lên lƣới dữ liệu gồm có 4 giai đoạn chính:
1. Ngƣời dùng sử dụng giao diện của ứng dụng web, gửi yêu cầu muốn upload một tệp tin lên HeadNode. HeadNode tiếp nhận yêu cầu upload của ứng dụng, khởi tạo một ID-Grid- File là định danh của duy nhất của dữ liệu trên lƣới dữ liệu, gọi đến dịch vụ quản lý tài nguyên trên các DataNode.
2. Các DataNode gửi trả lại các thông tin liên quan đến DataNode đó nhƣ URL, Status, Disk Info, v.v… HeadNode dựa trên giải thuật chọn DataNode của mình, quyết định chọn 1 máy chủ để lƣu trữ dữ liệu, gửi trả về ngƣời dùng một giao diện để thực hiện việc upload lên nút lƣu trữ đƣợc chọn.
3. Quá trình upload dữ liệu thành công, DataNode sẽ gọi đến dịch vụ định vị bản sao RLS
trên HeadNode để HeadNode cập nhật vào cơ sở dữ liệu của mình, xác định ID-Grid-File đã đƣợc lƣu thành công trên DataNode với đƣờng dẫn tuyệt đốitƣơng ứng.
4. Cuối cùng, ngƣời dùng sẽ đƣợc trả về kết quả upload là một liên kết, trỏ đến dữ liệu trong không gian lƣu trữ cá nhân của mình (đặt tại ứng dụng) và dùng liên kết này để chia sẻ dữ liệu với ngƣời khác. Liên kết này có chứa ID-Grid-File để hỗ trợ cho việc download dữ liệu này từ lƣới dữ liệu.
Quá trình upload diễn ra là hoàn toàn giữa ngƣời dùng và máy chủ dữ liệu, chỉ có các cơ chế quản lý là do ứng dụng web và HeadNode quản lý. Song song với các giai đoạn trên, HeadNode liên tục trả về thông tin upload tệp tin để ứng dụng web hiển thị cho ngƣời dùng thông qua thanh tiến trình upload.
3.3.2 Download
Quá trình Download một tệp tin sẽ gồm 4 giai đoạn chính nhƣ sau
1. Ngƣời dùng gửi yêu cầu download là một liên kết logic đến ứng dụng web. Nhƣ đã nói ở quá trình Upload, liên kết này có chứa ID-Grid-File của tệp tin trên lƣới.
2. Ứng dụng web sẽ tiến hành kiểm tra tính hợp lệ của link logic này và xác định cơ chế download tƣơng ứng với từng lớp ngƣời dùng. Sau đó, ứng dụng web sẽ truyền ID-Grid- File đến HeadNode. Tại đây, HeadNode sẽ truy vấn dịch vụ định vị bản sao RLS để xác định danh sách các nút lƣu trữ chứa tệp yêu cầu. Dựa trên kết quả từ dịch vụ quản lý tài nguyênđể xác định máy cho phép download tệp tốt nhất.
3. Khi chọn đƣợc máy chủ lƣu trữ, HeadNode trả lại cho ứng dụng web đƣờng dẫn vật ký trỏ tới tệp thực cho ứng dụng web. Đồng thời lúc này, HeadNode cũng gửi yêu cầu chuẩn bị module download tới DataNode, máy chủ lƣu trữ sẽ chuẩn bị các cơ chế để đợi ứng dụng web kích hoạt quá trình truyền tệp.
4. Ứng dụng web sau khi nhận đƣợc liên kết thực, tiến hành trả lại cho ngƣời dùng. Ngƣời dùng sẽ kích hoạt việc download bằng cách truy cập vào liên kết này.
Quá trình download diễn ra cũng hoàn toàn không phụ thuộc vào ứng dụng web và HeadNode. Quá trình này chỉ diễn ra giữa máy của ngƣời dùng và máy lƣu dữ liệu.
45
Hình 3.3 – Kịch bản download
(1)Yêu cầu download bằng link logic (2)Kiểm tra tính hợp lệ
(3)Truy vấn link vật lý (4)Truy vấn dịch vụ RLS
(5.1)Chọn nút lƣu trữ để download (5.2)Gọi module download trên DataNode (6) Trả lại trang download, trỏ với nút lƣu trữ (7) Kích hoạt quá trình download
Tầng ứng dụng web Tầng lƣu trữ luới
46
Module Download đƣợc thiết kế theo hai kỹ thuật dựa trên hai lớp ngƣời dùng chính là kỹ thuật đẩy dòng dữ liệu về máy ngƣời dùng và kỹ thuật cho phép tiếp xúc trực tiếp với tệp
3.3.2.1 Kỹ thuật đẩy dòng dữ liệu về máy người dùng
Ngƣời dùng khi download một tệp tin từ lƣới dữ liệu thực chất là đƣợc một module kiểm soát quá trình download này. Module này có nhiệm vụ đọc dữ liệu từ tệp trên đĩa cứng của nút lƣu trữ sau đó ghi dữ liệu đọc đƣợc lên đối tƣợng response và trả về cho ngƣời dùng. Ngƣời dùng sẽ nhận đƣợc dòng dữ liệu và lƣu vào máy của mình.
Với kỹ thuật này, nút lƣu trữ hoàn toàn kiểm soát đƣợc quá trình truyền tệp và đƣa ra các chính sách hạn chế ngƣời dùng, bao gồm:
Hạn chế tốc độ download
Cho phép hay không cho phép tính năng resume
Không cho phép download đa luồng
Hạn chế 1 IP download song song nhiều tệp
Nhƣ vậy, module download sẽ chỉ đơn giản là gọi đến module này, tùy theo lớp ngƣời dùng trên DataNode mà không phải chuẩn bị gì thêm cả.
3.3.2.2 Kỹ thuật cho phép tiếp xúc trực tiếp với tệp
Kỹ thuật này dựa trên việc tạo ra một symbolic link trên DataNode, tại một thƣ mục có thể truy cập đƣợc qua giao thức web. Trong khi đó, các tệp tin đƣợc lƣu trữ trên DataNode là hoàn toàn bảo mật. Khi DataNode nhận đƣợc yêu cầu chuẩn bị download, nút lƣu trữ sẽ tạo ra một symbolic link tại thƣ mục trên, đƣờng dẫn tới symbolic link này đƣợc trả về cho ngƣời dùng với tƣ cách là link vật lý (truy cập trực tiếp đến tệp tin thực sự nằm trên lƣới). Khi ngƣời dùng kích hoạt đƣờng dẫn đƣợc cung cấp, về bản chất họ đã đƣợc phép tải trực tiếp trên hệ thống lƣu trữ nhƣng không đƣợc cung cấp chính xác vị trí của tệp tin thực trên lƣới dữ liệu.
Với kỹ thuật này, module của LindaX xây dựng sẽ không quản lý luồng dữ liệu tải về của ngƣời dùng. Nút lƣu trữ truyền dữ liệu tới ngƣời dùng hoàn toàn độc lập với hệ thống. Symbolic link sau khi đƣợc sinh ra sẽ bị xóa sau 2 giờ không sử dụng. Đây là khoảng thời gian thích hợp để ngƣời dùng thực hiện thao tác resume. Việc quản lý và xóa các symbolic link cũng đƣợc thực hiện độc lập để giảm tải cho tiến trình download, upload trên máy lƣu trữ.
47
3.4 Xây dựng tầng lưu trữ
Hình 3.4 – Sơ đồ bố trí vật lý tầng lưu trữ lưới
Tầng lƣu trữ của LindaX có sử dụng một số thành phần đƣợc cung cấp bởi bộ công cụ Globus Toolkit 4.0.2. Ngoài ra, hệ thống còn cài đặt các dịch vụ bổ sung phù hợp với mục đích lƣu trữ và chia sẻ tệp, hỗ trở sử dụng đƣợc cho nhiều ứng dụng khác nhau. Tầng lƣu trữ đƣợc bố trí logic chia làm 3 tầng phía dƣới:
Tầng nền: xác định tài nguyên cơ bản tạo nên lƣới lƣu trữ dữ liệu, bao gồm các hệ thống lƣu trữ, hệ thống máy tính, hạ tầng mạng và bộ các sơ sở dữ liệu.
Tầng kết nối: dịch vụ trong tầng này liên quan đến vấn đề truyền thông và chứng thực. Đây là các dịch vụ hỗ trợ bởi Globus Toolkit 4 và đƣợc triển khai trên cơ sở tài nguyên và chức năng của tầng nền.
Tầng dịch vụ: Các dịch vụ cụ thể cung cấp cho hệ thống lƣu trữ và chia sẻ tệp. Các chức năng ở tầng giao tiếp ngƣời dùng sẽ triệu gọi các dịch vụ ở tầng này khi hệ thống vận hành. Tầng dịch vụ triển khai các chức năng phù hợp với một hệ thống chia sẻ dữ liệu, ứng dụng các thành phần đƣợc cung cấp từ bộ công cụ Globus Toolkit 4.
HeadNode RLS – Dịch vụ định vị bản sao Chứng thực ngƣời dùng, cấp proxy Quản lý DataNode DataNode Ánh xạ ngƣời dùng GridFTP
Quản lý thông tin tài nguyên
48
Hình 3.5 – Sơ đồ bố trí logic của tầng lưu trữ lưới
Trong đó
Tầng dịch vụ gồm các dịch vụ lập lịch cho việc upload, dịch vụ tạo bản sao, dịch vụ định vị bản sao, dịch vụ quản lý nút lƣu trữ, dịch vụ điều khiển truyền tệp.
Tầng kết nối sẽ triển khai dịch vụ truyền tệp tin GridFTP, cơ chế chứng thực CA, ánh xạ ngƣời dùng lƣới, quản lý thƣ mục.
Tầng nềngồm hệ thống lƣu trữ, các hệ thống máy tính, hạ tầng mạng và cơ sở dữ liệu
3.4.1 Nút giao dịch (HeadNode)
HeadNode là máy chủ điều khiển tầng lƣu trữ dữ liệu. Máy chủ này đƣợc cài đặt các dịch vụ cơ bản của lƣới và các dịch vụ điều khiển, quản lý toàn bộ tầng lƣới. HeadNode có nhiệm vụ điều khiển quá trình truyền tệp giữa các máy lƣu trữ, quản lý thông tin của các máy lƣu trữ và quản lý bản sao của các tệp vật lý trên hệ thống. HeadNode đƣợc cài đặt cơ chế chứng thực tài nguyên và một chứng thực ngƣời dùng lƣới cho toàn bộ hệ thống. Để một máy chủ đủ điều kiện trở thành HeadNode thì nó phải đảm bảo:
Đƣợc cài đặt hệ điều hành Linux/Unix.
Globus Toolkit cài đặt mặc định (phiên bản 3.0 trở về sau).
MySQL client.
Có thể kết nối và sử dụng một máy chủ MySQL (có tài khoản và đƣợc cấp quyền đầy đủ).
Đƣợc cài đặt Apache Tomcat (phiên bản 5.5 trở về sau). Ngƣời dùng Tomcat không nhất thiết phải là ngƣời dùng trên lƣới.
JavaSE đƣợc bổ sung gói bảo mật Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 5.0.
Hệ thống đã tham gia vào một lƣới tính toán
Có thể kết nối và sử dụng một máy chủ MyProxy (đã đƣợc cấp tài khoản) Trong đó •Dịch vụ Upload •Dịch vụ chọn máy chủ Download •Dịch vụ quản lý nút lƣu trữ •Dịch vụ tạo bản sao •Dịch vụ định vị bản sao •Dịch vụ điều khiển truyền tệp
Tầng dịch vụ •Dịch vụ truyền tệp GridFTP •Cơ chế chứng thực CA •Ánh xạ ngƣời dùng lƣới •Quản lý thƣ mục Tầng kết nối •Hệ thống lƣu trữ •Các hệ thống máy tính •Hạ tầng mạng •Cơ sở dữ liệu Tầng nền
49
Thƣ mục Config: chứa những tệp cấu hình của hệ thống (nhƣ tệp config.xml chứa thông số cấu hình của từng HeadNode).
Thƣ mục Logs: chứa các tệp tin log lƣu lại các hoạt động của hệ thống.
Thƣ mục Scripts: chứa những tệp tin kịch bản, cấu hình các dịch vụ của hệ thống, bao gồm: sql script để tạo hay thao tác trên cơ sở dữ liệu, setup-datanode.rsl là chuỗi mô tả công việc hỗ trợ cho việc nhận tự động các DataNode, resourcemonitor.sh là các shell script đƣợc triển khai trên các DataNode để lấy thông tin cấu hình.
Hình 3.6 – Cây thư mục trên HeadNode
Ngoài ra, do tại cùng một thời điểm có rất nhiều ngƣời sử dụng hệ thống, những ngƣời dùng này sẽ tác động đến các nút lƣu trữ (tài nguyên lƣới) thông qua ánh xạ với một tài khoản duy nhất trên lƣới để sử dụng các dịch vụ mà lƣới cung cấp. Tài khoản này cần phải có proxy hợp lệ, do proxy có thời gian hợp lệ hữu hạn nên cần phải tạo lại proxy một cách định kỳ. Chính vì vậy, HeadNode phải đƣợc cài đặt module quản lý proxy.
3.4.2 Module điều khiển truyền tệp
Tác vụ truyền dữ liệu đối với một hệ thống nhƣ Linda là tác vụ chiếm nhiều tài nguyên và đóng vai trò quan trọng nhất. Dữ liệu đƣợc truyền tải có thể là thông tin, lời triệu gọi đến một chức năng của hệ thống hoặc quá trình tải tệp tin. Quá trình truyền tải tệp tin chiếm phần lớn lƣợng dữ liệu đƣợc truyền. Trong hệ thống LindaX có 2 hình thức truyền tệp khác nhau:
Truyền dữ liệu giữa ngƣời dùng và máy chủ lƣu trữ trong quá trình upload, download tệp.