Trong thực tế, một hệ thống phân tán chia sẻ dữ liệu gặp nhiều rủi rõ liên quan đến tính sẵn sàng của dữ liệu đƣợc lƣu trữ. Việc nay thƣờng xảy ra khi máy lƣu trữ bị lỗi, làm cho các chức năng của hệ thống không thực hiện đƣợc hoặc thực hiện thiếu chính xác. Ứng dụng mô hình nhân bản dữ liệu trên môi trƣờng lƣới, LindaX có khả năng nhân bản dữ liệu (tạo lập bản sao), định vị và quản lý các bản sao đó. 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ý này tới các máy chủ lƣu trữ khác theo một giải thuật định trƣớc. Với hệ thống LindaX, giải thuật sẽ là ƣu tiên các tệp tin đƣợc truy xuất nhiều nhất.
RLS một dịch vụ phân tán, cho phép xác định vị trí bản sao trên lƣới dữ liệu, đồng thời có khả năng tự động cập nhật thông tin trạng thái của bản sao sau một khoảng thời gian ấn định trƣớc. Bản sao đƣợc tạo ra để nâng cao hiệu năng truy cập và tính sẵn dùng.
Mục đích tạo bản sao là để làm giảm trễ truy cập, tăng tính địa phƣơng của dữ liệu, tăng hiệu năng, khả năng mở rộng, và tính chịu lỗi của các ứng dụng phân tán. Hệ thống sử dụng bản sao cần có kỹ thuật xác định vị trí của chúng.
Bài toán định vị bản sao có thể đƣợc phát biểu nhƣ sau: “cho một định danh lôgic duy nhất của dữ liệu mong muốn, xác định vị trí vật lý một hoặc nhiều bản sao của dữ liệu này”. Trong bản Globus Toolkit 4, các nhà phát triển đã xây dựng một dịch vụ định vị bản sao RLS – Replica Location Service. Đây là hệ thống lƣu trữ và cung cấp truy cập tới thông tin về vị trí vật lý của các bản sao.
Thiết kế RLS tập trung vào vấn đề chủ yếu của hệ thống phân tán quy mô lớn: tính mở rộng, tính tin cậy và tính bảo mật, hƣớng tới các hệ thống có thể có hàng chục triệu khoản mục dữ liệu, hàng chục hoặc hàng trăm bản sao, hàm trăm lần cập nhật trong một giây và hàng trăm, hàng nghìn hệ thống lƣu trữ, cần độ tin cậy và tính bảo mật cao.
Hình 2.11 trình bày kịch bản trong đó ứng dụng sử dụng RLS cùng các thành phần khác của lƣới nhằm mục đích xác định vị trí tốt nhất để truyền dữ liệu mong muốn.
29
Hình 2.11 – Kịch bản lựa chọn dữ liệu theo tiêu chí của ứng dụng 2.4.1 Đặc điểm
Có hai khái niệm cần phải nhắc lại ở đây, đó là:
Tên tệp lôgic LFN – Logical File Name thể hiện định danh của nội dung dữ liệu mong muốn. Chức năng của RLS là xác định vị trí lƣu trữ vật lý của nội dung chỉ ra bởi LFN.
Tên tệp vật lý PFN – Physical Logical Name giống nhƣ địa chỉ URL, chứa đƣờng dẫn cụ thể tới tệp trên lƣới dữ liệu. Nó chỉ ra tệp đó đƣợc lƣu trữ trên máy nào? Giao thức truy cập là gì? Nằm trong thƣ mục nào trên máy đó?
RLS phải thỏa mãn các yêu cầu sau:
Bản sao có tính chỉ đọc: RLS chỉ quản lý tệp không thay đổi hoặc thay đổi không thƣờng xuyên, đƣợc định danh duy nhất dƣới các phiên bản khác nhau. Đặc điểm này thỏa mãn một lƣợng lớn ứng dụng hƣớng dữ liệu. Ví dụ, trong tổ chức khoa học, dữ liệu đƣợc chuẩn bị, ghi chú thích, sau đó xuất bản tới cộng đồng. Sau khi xuất bản, nội dung của tệp không thể thay đổi.
Phạm vi sử dụng: hệ thống phải có khả năng trải rộng trên hàng trăm miền, quản lý khoảng 50 triệu tệp lôgic và 500 triệu bản sao vật lý.
Hiệu năng: hệ thống phải có khả năng hỗ trợ khoảng 1000 truy vấn và 200 lần cập nhật trên một giây. Thời gian hồi đáp trung bình phải ít hơn 10 miligiây, và thời gian hồi đáp truy vấn trung bình không đƣợc vƣợt quá 5 giây.
Bảo mật: RLS quan tâm nhiều nhất tới bảo vệ tính riêng tƣ và toàn vẹn của thông tin tồn tại và vị trí dữ liệu, trong khi đó các hệ thống lƣu trữ đơn lẻ bảo vệ tính riêng tƣ và toàn vẹn nội dung dữ liệu.
30
Tính nhất quán: RLS không hỗ trợ khung nhìn nhất quán hoàn toàn đối với tất cả bản sao, theo nghĩa nếu một truy vấn RLS trả lại cho máy khách tập con của các bản sao, hoặc danh sách bản sao có chứa lỗi (Ví dụ: bản sao không thực sự tồn tại) thì máy khách có thể thực thi kém hiệu quả, nhƣng không gây lỗi cho toàn bộ hệ thống.
Tính tin cậy: lỗi xảy ra ở một miền không làm ảnh hƣởng tới toàn bộ hoạt động của hệ thống. Hỏng hóc của một RLS ở xa không ảnh hƣởng tới truy cập đến các bản sao địa phƣơng.
2.4.2 Kiến trúc của dịch vụ định vị bản sao
Kiến trúc của dịch vụ quản lý bản sao phải đảm bảo đƣợc yêu cầu thực thi trên môi trƣờng phân tán cao lƣới. Có nhiều tổ chức tham gia vào lƣới dữ liệu. Mỗi tổ chức nằm ở một miền riêng biệt, phân tán về mặt địa lý so với các miền khác. Mỗi miền có tên khác nhau. Dịch vụ định vị bản sao RLS cho phép mỗi tổ chức xây dựng máy chủ định vị bản sao nằm phạm vi tổ chức. RLS cũng cung cấp cơ chế kết hợp thông tin từ nhiều máy chủ riêng rẽ bằng kỹ thuật đánh chỉ mục, giúp cho ngƣời sử dụng lƣới dữ liệu có thể thực hiện tìm kiếm trên phạm vi nhiều tổ chức. Nhờ đó, thay vì tìm kiếm thông tin trên từng máy chủ định vị bản sao, ngƣời sử dụng chỉ tìm kiếm qua một số ít các đầu mối. Trong kiến trúc RLS, máy chủ định vị bản sao cục bộ cho từng miền đƣợc gọi là LRC – Local Replica Catalog. Máy chủ thực hiện nhiệm vụ đánh chỉ mục các LRC , đóng vai trò đ ầu mối, giao diện truy xuất của ngƣời sử dụng đƣợc gọi là RLI – Replica Location Index. Thông qua RLI, nguời sử dụng có thể tìm đến các LRC một cách dễ dàng. LRC phục vụ nguời dùng cục bộ trong tổ chức, còn RLI phục vụ ngƣời sử dụng trên phạm vi toàn bộ lƣới. Mối quan hệ giữa LRC và RLI đƣợc minh họa trong Hình2.12
31
Nhƣ vậy, trên phạm vi toàn lƣới dữ liệu, dịch vụ RLS đƣợc triển khai dƣới dạng một tập các LRC phân tán tại các node dữ liệu và một số RLI đánh chỉ mục cho các LRC. Với cách tổ chức nhƣ thế này, RLS cho phép nhà thiết kế triển khai lƣới dữ liệu thỏa thuận về tính phân tán và điều khiển bằng cách quyết định xem trên toàn lƣới có bao nhiêu RLI? Các RLI đánh chỉ mục cho những LRC nào? Đánh chỉ mục cho tất cả hay chỉ đánh chỉ mục bộ phận?…
Thêm vào đó, do tính chất động của lƣới dữ liệu nên tài nguyên có thể thay đổi bất cứ lúc nào. Thông tin thay đổi trong LRC phải đƣợc phản ánh trong các RLI. Dịch vụ RLS cũng hỗ trợ một số cơ chế cập nhật thông tin lan truyền từ LRC đến RLI.
Nhƣ vậy, kiến trúc của RLS giúp nhà phát triển lƣới dữ liệu xây dựng cơ chế tổ chức định vị linh hoạt, thoả thuận về tính nhất quán, dung lƣợng, tính tin cậy, chi phí cập nhật, chi phí truy vấn…
2.4.3 Kho định vị bản sao cục bộ LRC
LRC lƣu giữ thông tin về các bản sao của một tổ chức cụ thể. LRC có một số chức năng nhƣ:
Về nội dung: lƣu trữ ánh xạ giữa tên tệp lôgic bất kỳ với tên tệp vật lý tƣơng ứng trên hệ thống lƣu trữ.
Về truy vấn: đáp ứng đƣợc các truy vấn:
o Cho một LFN, tìm tập các PFN tƣơng ứng với LFN đó.
o Cho một PFN, tìm tập các LFN tƣơng ứng với PFN đó.
Về tính toàn vẹn cục bộ: quản lý tính toàn vẹn giữa nội dung của tên lôgic với nội dung thực sự đƣợc lƣu trên các hệ thống lƣu trữ.
Về bảo mật: thông tin trong LRC có thể liên quan đến điều khiển truy cập, vì thế hỗ trợ kỹ thuật chứng thực và xác nhận khi xử lý yêu cầu từ xa.
Về sự lan truyền trạng thái: LRC thƣờng xuyên gửi thông tin trạng thái, thông tin về sự thay đổi các ánh xạ tới RLI, bằng cách sử dụng thuật toán lan truyền trạng thái.
2.4.4 Chỉ mục định vị bản sao RLI
LRC chỉ lƣu trữ thông tin định vị bản sao tại các tổ chức, chỉ phục vụ ngƣời sử dụng trong phạm vi tổ chức đó. Nó không hỗ trợ ngƣời dùng truy vấn nhiều tổ chức cùng một lúc. Để hỗ trợ khả năng này, phải xây dựng cấu trúc đánh chỉ mục.
Thông tin chỉ mục trong dịch vụ định vị bản sao đƣợc lƣu dƣới dạng một tập các RLI, mỗi RLI bao gồm tập bản ghi gồm hai trƣờng (LFN, con trỏ tới LRC). Có thể định nghĩa nhiều cấu trúc dịch vụ định vị bản sao với các đặc tính hiệu năng khác nhau, bằng cách thay đổi số RLI và mức độ dƣ thừa, phân đoạn trong RLI. Một RLI có thể đánh chỉ mục cho một phần hoặc toàn bộ các LRC (Hình 2.13).
32
Hình 2.13 – RLS hai tầng
Hình 2.14 – Một hình trạng RLS phân cấp
RLI có thể đánh chỉ mục cho RLI khác (Hình 2.14). Nhƣ vậy, cấu trúc đánh chỉ mục trên toàn bộ lƣới dữ liệu đƣợc tổ chức theo hình cây phân cấp. Đặc trƣng của cây chỉ mục bao gồm độ rẽ nhánh và độ sâu phụ thuộc vào yêu cầu của từng lƣới dữ liệu cụ thể.
Dựa trên kỹ thuật dƣ thừa, phân đoạn và trạng thái mềm, có thể chỉ ra các yêu cầu đối với một nút chỉ mục định vị bản sao toàn cục RLI nhƣ sau:
Truy cập từ xa an toàn: RLI phải hỗ trợ chứng thực, xác nhận, tính toàn vẹn, tính tin cậy, và phải triển khai quyền điều khiển truy cập cục bộ trên thông tin mà nó quản lý.
Lan truyền trạng thái: RLI phải có khả năng nhận thông tin mô tả trạng thái do các LRC gửi đến định kỳ.
Truy vấn: RLI phải trả lời truy vấn tới bản sao của một LFN cụ thể bằng cách trả về vị trí vật lý của LFN đó hoặc thông báo rằng LFN không nằm trong chỉ mục hiện thời, trong trƣờng hợp không tìm thấy.
Trạng thái mềm: RLI phải ấn định thời gian hết hạn đối với thông tin lƣu trữ trong chỉ mục. Nếu một mục gắn liền với một LRC không nhận đƣợc thông tin trạng thái cập nhật từ LRC trong khoảng thời gian ấn định, RLI phải loại bỏ mục đó.
Phục hồi khi lỗi xảy ra: RLI không đƣợc phép chứa thông tin trạng thái bền vững về các bản sao. Nó phải khôi phục nội dung sau sự cố chỉ bằng cách sử dụng cập nhật trạng thái động từ các LRC.
33
2.5 Bảo mật trên lưới dữ liệu
Lƣới là môi trƣờng chia sẻ dữ liệu phân tán, với nhiều tài nguyên và cộng đồng ngƣời dùng tham gia. Làm thế nào để chứng thực nguồn gốc dữ liệu, chứng thực ngƣời dùng, bảo vệ dữ liệu khỏi truy nhập bất hợp pháp là những câu hỏi mà bảo mật trên lƣới dữ liệu phải trả lời.
Có những vấn đề bảo mật mới chƣa từng gặp trong công nghệ bảo mật hiện tại cho hệ thống tính toán phân tán truyền thống. Ví dụ, tính toán song song đòi hỏi nhiều tài nguyên tính toán, dẫn tới nhu cầu thiết lập các mối quan hệ bảo mật, không đơn giản chỉ giữa khách và chủ, mà giữa hàng trăm tiến trình thực hiện trên môi trƣờng lƣới. Ngoài ra, cần có chính sách bảo mật liên miền cho lƣới, các công nghệ điều khiển truy nhập giữa các miền khác nhau cũng phải đƣợc hỗ trợ.
Ứng dụng có thể đòi hỏi bất cứ chức năng nào trong các chức năng cơ bản của bảo mật nhƣ: chứng thực, điều khiển truy nhập, toàn vẹn, bí mật. Khi phát triển kiến trúc bảo mật lƣới, cũng cần phải lựa chọn giải pháp để đáp ứng đƣợc đòi hỏi của các đặc tính rất riêng của lƣới:
Đăng nhập một lần
Giấy ủy nhiệm ngƣời dùng
Tích hợp các giải pháp bảo mật địa phƣơng
Cơ sở hạ tầng giấy ủy nhiệm, giấy chứng nhận thống nhất Các thành phần trong kiến trúc bảo mật trên lƣới dữ liệu phải bao gồm:
Thực thể: bao gồm chủ thể và đối tƣợng. Chủ thể là ngƣời dùng và ứng dụng. Đối tƣợng là tài nguyên có sẵn nhƣ kho dữ liệu, dịch vụ trên lƣới phục vụ ứng dụng.
Giấy chứng nhận: là giải pháp cho yêu cầu thống nhất định danh của thực thể, bao gồm định danh của ngƣời dùng và tài nguyên. Cơ chế này giúp giảm bớt thời gian chứng thực khi thực hiện tính toán. Có hai loại giấy chứng nhận: giấy chứng nhận ngƣời dùng và giấy chứng nhận tài nguyên.
Giao thức: là quy ƣớc đƣa ra cho hoạt động bảo mật trong môi trƣờng lƣới, bao gồm các cơ chế đăng nhập một lần, định vị tài nguyên.
Hiện tại, có nhiều kiến trúc bảo mật trên lƣới, nhƣng phổ biến và đƣợc dùng rộng rãi nhất là cơ sở hạ tầng bảo mật GSI – Grid Security Infrastructure[14] của cộng đồng Globus. GSI đƣợc xây dựng dựa trên cơ sở hạ tầng khóa công khai PKI.
Để mỗi một thực thể có một định danh duy nhất, GSI đƣa ra khái niệm giấy ủy nhiệm lƣới, là một cặp gồm giấy chứng nhận và một khóa mã hóa còn gọi là khóa bí mật. Giấy chứng nhận một thực thể là kết nối giữa tên định danh của thực thể đối với khóa bí mật của họ. Sự kết nối này đƣợc thực hiện nhờ chữ kí điện tử của bên thứ ba đáng tin cậy gọi là nhà thẩm quyền.
Trong GSI, các thực thể xác thực nhau qua cơ chế bắt tay ba bƣớc. Khi truy xuất bất kỳ nguồn dữ liệu nào, ngƣời dùng phải thực hiện các bƣớc sau:
34
Trình cho tài nguyên giấy chứng nhận để chứng tỏ mình là ngƣời sử dụng thực sự có thẩm quyền trên lƣới
Tài nguyên cũng phải trình ra một giấy chứng nhận, để ngƣời dùng tin tƣởng
đây là tài nguyên thực sự đã đƣợc chứng nhận, không phải là giả mạo
Khi tin tƣởng nhau, quá trình truy xuất tài nguyên đƣợc diễn ra.
Hiện tại, GSI đƣợc triển khai trong một số mạng lƣới: lƣới thông tin năng lƣợng của NASA - Nasa Information Power Grid, NSF PACI Grid.
Dịch vụ bảo mật trên lƣới dữ liệu phải có khả năng tự động hóa quá trình trên. Ngƣời sử dụng phải trở nên trong suốt với những gì diễn ra trong giao thức bắt tay ba bƣớc. Họ không đƣợc có ý niệm gì về giấy chứng nhận, hoặc giấy ủy nhiệm. Lƣới dữ liệu cần cung cấp cho ngƣời dùng một giao diện bảo mật thống nhất, trong đó ngƣời sử dụng đƣợc xác định bằng hai thông tin là tài khoản và mật khẩu truy cập. Giải pháp kho lƣu trữ dữ liệu MyProxy[15] do cộng đồng phát triển Globus đƣa ra đã giải quyết đƣợc vấn đề này.
Do đặc thù của lƣới nên vấn đề dung hòa giữa chính sách sử dụng tài nguyên của cộng đồng ngƣời dùng với chính sách sử dụng tài nguyên của những nhà cung cấp mà bản thân họ cũng tham gia vào cộng đồng, cần đƣợc giải quyết triệt để. Mô hình CAS – Community Authorization Service[16]dùng trong cơ sở hạ tầng lƣới Globus là một trong những kiến trúc cho phép giải quyết vấn đề này. Với CAS, chủ tài nguyên quy định chính sách sử dụng đối với tài nguyên của mình. Nhà thẩm quyền của CAS quy định quyền hạn sử dụng đối với từng ngƣời tham gia lƣới. Kết hợp hai chính sách này tạo ra quyền sử dụng thực của ngƣời dùng đối với tài nguyên.
2.6 Thư viện lập trình lưới Java Cog Kit
Java Cog Kit là bộ dụng cụ phát triển lƣới, ánh xạ giữa công nghệ Java và Globus Toolkit, cho phép các nhà phát triển xây dựng các ứng dụng lƣới bằng ngôn ngữ Java. Java Cog kit đƣợc lựa chọn để phát triển lƣới bởi một số lý do sau đây:
Tối đa hóa tính động, khả năng mở rộng và tái sử dụng phần mềm
Ngôn ngữ Java là độc lập hệ điều hành và các nền tảng phát triển, do vậy nó tƣơng thích với môi trƣờng không đồng nhất nhƣ lƣới. Ngoài ra nó cung cấp nhiều thƣ viện cho phép phát triển các ứng dụng mạng, các kỹ thuật liên tác JASS, JINI, CORBA, IIOP…