Luận văn Giải pháp lưu ảnh cho ứng dụng song song truyền thông điệp chạy trong môi trường đám mây
GIẢI PHÁP LƯU ẢNH CHO ỨNG DỤNG SONG SONG TRUYỀN THÔNG ĐIỆP CHẠY TRONG MÔI TRƯỜNG ĐÁM MÂY
LÊ ĐỨC TÀI
Trang nhan đề
Lời cảm ơn
Mục lục
Danh mục
Chương 1: Giới thiệu
Chương 2: Công nghệ tính toán đám mây
Chương 3: Lưu ảnh và phục hồi
Chương 4: Lưu ảnh và phục hồi cho ứng dụng MPI trên môi trường tính toán đám mây
Chương 5 Thử nghiệm và đánh giá
Chương 6 Tổng kết và hướng phát triển
Tài liệu tham khảo
MỤC LỤC
LỜI CẢM ƠN .1
MỤC LỤC 2
Danh mục thuật ngữ, từ viết tắt .5
Danh mục các hình 6
Danh mục các bảng .8
Chương 1 Giới thiệu .9
Chương 2 Công nghệ tính toán đám mây 12
2.1 Giới thiệu công nghệ tính toán đám mây .12
2.1.1 Quá trình phát triển 12
2.1.2 Định nghĩa điện toán đám mây .14
2.1.3 Các đối tượng hoạt động trên đám mây 14
2.1.4 Các dịch vụ được cung cấp trên hệ thống đám mây 15
2.2 Một số công nghệ nền tảng 16
2.2.1 Công nghệ Web service 16
2.2.2 Công nghệ ảo hóa .19
2.3 Kiến trúc một hệ thống tính toán đám mây 22
2.4 Phân loại các hệ thống đám mây .23
2.4.1Hệ thống đám mây công cộng 23
2.4.2Hệ thống đám mây riêng 24
2.4.3Hệ thống đám mây lai 24
2.5 Một số dự án thực tế về tính toán đám mây .25
2.5.1 Amazon Elastic Compute Cloud (EC2) 26
2.5.2 Google App Engine 27
2.5.3 Microsoft Live Mesh 27
2.5.4 Sun Grid .27
2.5.5GRIDs Lab Aneka 27
Chương 3 Lưu ảnh và phục hồi .29
3.1 Một số vấn đề cơ bản 29
3
3.1.1Sơ lược về lưu ảnh .29
3.1.2 Ứng dụng của lưu ảnh 30
3.1.3 Trạng thái lưu ảnh 31
3.1.4 Vùng nhớ ổn định .34
3.1.5Dọn rác 35
3.2 Các cấp độ lưu ảnh 36
3.2.1Lưu ảnh cấp hệ điều hành .36
3.2.2Lưu ảnh trong suốt cấp người dùng 36
3.2.3Lưu ảnh không trong suốt cấp người dùng .37
3.3 Các tiêu chí đánh giá .37
3.3.1Thời gian lưu ảnh .38
3.3.2Tổng chi phí lưu ảnh 38
3.3.3 Độ trễ .38
3.4 Kỹ thuật lưu ảnh tiến trình đơn và một số cải tiến .39
3.4.1 Main memory checkpointing 41
3.4.2 Copy-on-write 43
3.4.3 Concurrent low latency 45
3.4.4 Memory exclusion 47
3.4.5 Nén dữ liệu lưu ảnh 48
3.4.6Một số dự án nổi bật .49
3.5 Các kỹ thuật lưu ảnh chương trình song song 52
3.5.1 Checkpoint based .52
3.5.2 Log-based 59
3.5.3 So ánh các phương pháp .68
3.5.4Một số dự án nổi bật .69
3.5.5 Phân tích các giải thuật .80
Chương 4 Lưu ảnh và phục hồi cho ứng dụng MPI trên môi trường tính toán đám
mây 82
4.1 Triển khai ứng dụng trên môi trường tính toán đám mây .82
4.2 Vấn đề lưu ảnh và phục hồi trên môi trường điện toán đám mây .83
4.2.1Thuận lợi trong điều kiện mới 83
4.2.2 Khó khăn trong điều kiện mới 84
4
4.3 Giải pháp của luận văn 85
4.3.1 Giới hạn phạm vi giải quyết .85
4.3.2 Giải thuật đề xuất .87
4.3.3 Hiện thực giải thuật 90
Chương 5 Thử nghiệm và đánh giá .94
5.1 Hệ thống thử nghiệm .94
5.2 Ứng dụng thử nghiệm .95
5.3 Đánh giá giải thuật 97
Chương 6 Tổng kết và hướng phát triển 99
6.1 Kết quả về lý thuyết 99
6.2 Kết quả về hiện thực .99
6.3 Hướng phát triển trong tương lai .100
TÀI LIỆU THAM KHẢO .101
17 trang |
Chia sẻ: maiphuongtl | Lượt xem: 1747 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Luận văn Giải pháp lưu ảnh cho ứng dụng song song truyền thông điệp chạy trong môi trường đám mây, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
12
Chương 2 Công nghệ tính toán đám mây
2.1 Giới thiệu công nghệ tính toán đám mây
2.1.1 Quá trình phát triển
Điện toán đám mây (cloud computing [1]) là một vấn đề đang rất được quan
tâm nghiên cứu. Tuy nhiên, nó không phải là một sự phát triển mới mang tính cách
mạng. Thực ra nó là một sự tiến hóa đã diễn ra trong suốt một vài thập kỷ như được
trình bày trong hình 2.1.
Hình 2.1: Sự phát triển hướng tới điện toán đám mây
Xu thế hướng tới điện toán đám mây bắt đầu vào cuối những năm 80 với những
khái niệm về điện toán lưới (grid computing [2]). Điện toán lưới, phổ biến với
Globus Aliance vào năm 2003, giúp cho việc phối hợp hoạt động của các hệ thống
tính toán nằm phân tán với nhau về mặt địa lý trở nên dễ dàng hơn. So với công
nghệ ra đời trước là máy tính cụm (cluster computing [4]), điện toán lưới có phạm
vi phân tán và hoạt động rộng hơn, mỗi một cluster có thể trở thành một thành phần
tính toán (node) trong hệ thống lưới. Công nghệ lưới không đòi hỏi các thành phần
13
phải có sự tương đồng với nhau về cấu trúc, năng lực xử lý. Có thể xem môi trường
lưới là một tập hợp rộng lớn các tài nguyên tính toán và có cấu trúc phân tán, không
đồng nhất, mỗi nguồn tài nguyên có thể do một tổ chức riêng biệt quản lý. Người
dùng sẽ thấy môi trường lưới như một máy chủ ảo khổng lồ với hệ thông phần cứng
và hệ điều hành bên dưới được ảo hóa bởi một hệ thống trung gian (middleware
[3]). Tuy nhiên, chính từ việc có một hạ tầng hỗn tạp nên hệ thống trung gian của
một lưới tính toán thường rất phức tạp [5] và điều này khiến cho các thao tác tạo
lập, triển khai và quản lý một dịch vụ trên môi trường lưới gặp nhiều khó khăn.
Vào những năm 90, khái niệm ảo hóa được mở rộng, vượt khỏi phạm vi các máy
chủ ảo sang những cấp độ cao hơn của sự trừu tượng hóa, đầu tiên đó là nền tảng ảo
(virtual platform), và tiếp đó là ứng dụng ảo (virtual application). Điện toán theo
nhu cầu (utility computing) cung cấp các máy cụm (cluster) theo yêu cầu để làm
nền tảng ảo cho các ứng dụng.
Và tiếp ngay sau đó là phần mềm như một dịch vụ (software as a service – SaaS)
ra đời và phổ biến trong năm 2001, cung cấp cho người sử dụng các dịch vụ phần
mềm trực tuyến. Điểm chung của điện toán theo nhu cầu và SaaS là người dùng có
thể dễ dàng tùy chọn định mức sử dụng của mình và cũng chỉ phải trả phí cho định
mức này mà thôi.
Khái niệm điện toán đám mây (cloud computing [1]) được phát triển từ điện
toán lưới, điện toán theo nhu cầu và SaaS. Trong môi trường đám mây, các tài
nguyên điện toán như máy chủ, có thể được định hình động hoặc được cắt nhỏ từ cơ
sở hạ tầng phần cứng nền và trở nên sẵn sàng tiếp nhận tải công việc. Thế mạnh của
hệ thống đám mây nằm ở khả năng quản lý cơ sở hạ tầng cùng với sự trưởng thành
và tiến bộ của công nghệ ảo hóa để quản lý và sử dụng tốt hơn các tài nguyên vật lý
thông qua sự tự động hóa việc cung cấp, tạo bản sao, cân bằng tải công việc, giám
sát và xử lý yêu cầu thay đổi hệ thống.
Các ứng dụng chạy trên môi trường đám mây sẽ nằm tại các trung tâm dữ liệu
có tính mở rộng rất lớn, trong đó các tài nguyên điện toán có thể được cung cấp
động và được chia sẽ để đạt được hiệu quả về kinh tế, và có thể được truy cập từ bất
14
cứ đâu thông qua các thiết bị được kết nối mạng. Sự phổ biến của các thiết bị di
động thông minh, kết nối không dây tốc độ cao và các giao diện Web 2.0 phong phú
đã biến mô hình điện toán đám mây qua mạng không chỉ trở thành hiện thực mà còn
là một cách để giảm mức độ phức tạp của hạ tầng công nghệ thông tin.
2.1.2 Định nghĩa điện toán đám mây
Có rất nhiều định nghĩa được đưa ra theo nhiều góc nhìn khác nhau về một hệ
thống tính toán đám mây [28]. Với mục tiêu xác định các bản chất thực sự của một
hệ thống đám mây, giáo sư Rajkumar Buyya [22] đã đưa ra một định nghĩa khá
hoàn chỉnh như sau:
“Điện toán đám mây là một dạng hệ thống song song phân tán bao gồm tập
hợp các máy chủ ảo kết nối với nhau, các máy chủ ảo này được cấp phát tự động và
thể hiện như một hay nhiều tài nguyên tính toán độc lập dựa trên sự đồng thuận ở
mức dịch vụ (service-level agreement) được thiết lập thông qua quá trình đàm phán
giữa người sử dụng và nhà cung cấp.”
Điện toán đám mây rõ ràng là một hướng phát triển mới của các trung tâm dữ
liệu (data center). Các máy chủ trong trung tâm dữ liệu mới này được ảo hóa bằng
các công nghệ ảo hóa và được cấp phát động tùy theo nhu cầu sử dụng tài nguyên
của người dùng để thỏa mãn một sự đồng thuận cụ thể ở mức dịch vụ. Sự đồng
thuận này được thiết lập và có thể sử dụng như một dịch vụ có thể mở rộng
(composable service) thông qua công nghệ web 2.0.
2.1.3 Các đối tượng hoạt động trên đám mây
Hình 2.2 mô tả các đối tượng và các hoạt động cũng như mối quan hệ của
chúng trên hệ thống đám mây.
15
Hình 2.2: Các đối tượng hoạt động trên đám mây [23]
Các dịch vụ trên đám mây điện toán được những nhà cung cấp dịch vụ
(service provider – SP) xây dựng và cung cấp cho người dùng thông qua các giao
diện dựa trên Internet (Internet-base). Các hệ thống đám mây hướng tới việc chuyển
hoạt động cấp phát nền tảng tính toán được yêu cầu về cho các dịch vụ ở host. Các
cơ sở hạ tầng này được cung cấp như một dịch vụ bởi các nhà cung cấp cơ sở hạ
tầng (infrastructure provider – IP). Chính điều này làm tăng độ linh động và giảm
chi phí cho những nhà cung cấp dịch vụ khi triển khai dịch vụ cho khách hàng.
2.1.4 Các dịch vụ được cung cấp trên hệ thống đám mây
Tùy theo loại năng lực được cung cấp, ta có thể chia các dịch vụ được cung
cấp trên hệ thống đám mây thành ba dạng như sau
2.1.4.1 Cơ sở hạ tầng như một dịch vụ (Infrastructure as a Service – IaaS)
Những nhà cung cấp cơ sở hạ tầng quản lý một tập hợp lớn các tài nguyên tính
toán như các bộ lưu trữ hay bộ xử lý. Thông qua các công nghệ ảo hóa, các tài
nguyên này có thể được chia nhỏ, gán hay thay đổi kích thước một cách linh động
để xây dựng một hệ thống theo kiểu ad-hoc tùy thuộc vào nhu cầu của khách hàng,
mà ở đây là các nhà cung cấp dịch vụ.
16
2.1.4.2 Nền tảng như một dịch vụ (Platform as a Service – PaaS)
Các hệ thống đám mây thay vì chỉ cung cấp cơ sở hạ tầng như một dịch vụ, nó
còn có thể đưa ra thêm một tầng trừu tượng hóa để cung cấp nền tảng phần mềm
cần thiết cho các hệ thống có thể thực thi được. Kích thước của tài nguyên phần
cứng tùy thuộc vào yêu cầu của các dịch vụ cần thực thi và được tạo ra một các
trong suốt.
2.1.4.3 Phần mềm như một dịch vụ (Software as a Service – SaaS)
Cuối cùng, còn có những dịch vụ hướng tới phục vụ trực tiếp cho các nhu cầu
đa dạng của người dùng được triển khai trên đám mây điện toán. Đây là một sự lựa
chọn thay thế cho việc thực thi một ứng dụng trên cục bộ. Một ví dụ có thể thấy
được của dạng dịch vụ này là các ứng dụng văn phòng trực tuyến.
2.2 Một số công nghệ nền tảng
2.2.1 Công nghệ Web service
Web service là một công nghệ được sử dụng rộng rãi để triển khai mô hình
SOA vào thực tế, nó đưa ra mô hình liên lạc, trao đổi giữa ứng dụng với ứng dụng
trên cơ sở ngôn ngữ đặc tả XML. Web Service là nền tảng của hệ thống đám mây,
cung cấp giao diện tương tác với người dùng.
Web Service sử dụng ngôn ngữ Web Services Description Language (WSDL)
để mô tả nội dung và cách sử dụng service; sử dụng protocol SOAP để trao đổi các
thông điệp giữa các Web service.
Sử dụng ngôn ngữ đặc tả Universal Description, Discovery and Integration
(UDDI) để cho phép các nhà cung cấp Web service đăng ký service của mình và
cho phép người sử dụng Web service tìm được nhà cung cấp thỏa điều kiện mong
muốn.
Ngoài ra, còn một số chuẩn về định nghĩa và triển khai chất lượng dịch vụ của
Web service đang được xây dựng như WS-Security, WS-Reliable Messaging, WS-
Coordination, và WS-Transaction,…
17
Ưu điểm của dịch vụ Web so với các công nghệ khác:
Dịch vụ Web là độc lập với nền tảng và ngôn ngữ (platform-independent và
language-independent), bởi vì nó sử dụng ngôn ngữ chuẩn XML. Nghĩa là,
chương trình chạy trên máy khách có thể được lập trình bằng C++ và chạy
trên hệ điều hành Windows, trong khi dịch vụ Web được viết bằng Java và
chạy trên Linux.
Hầu hết các dịch vụ Web dùng giao thức HTTP để trao đổi thông điệp (như:
service request và response). Điều này cho phép ta có thể xây dựng các ứng
dụng ở phạm vi toàn cầu dùng Internet làm phương tiện truyền thông
Nhược điểm khi dùng dịch vụ Web:
Hiệu quả: Bởi vì mọi dữ liệu trao đổi với dịch vụ Web đều dùng XML nên
chắc chắn sẽ cồng kềnh và kém hiệu quả hơn so với các ứng dụng sử dụng
mã nhị phân. Tuy nhiên với sự tăng tốc mạnh mẽ của công nghệ máy tính
điện tử, tốc độ và hiệu quả của các ứng dụng dựa trên dịch vụ web ngày càng
được cải thiện.
Tính phong phú: Hiện tại, các dịch vụ Web mới chỉ cung cấp một vài dạng
dịch vụ cơ bản.
Phần tiếp theo sẽ trình bày tóm tắt về các khái niệm liên quan đến web service.
2.2.1.1 SOA
SOA là một hướng tiếp cận mới trong kiến trúc phần mềm ứng dụng, trong đó,
một ứng dụng được cấu thành từ một tập các thành phần độc lập, phân tán, phối hợp
hoạt động với nhau được gọi là các service.
Điểm mấu chốt của SOA là các chức năng của service được công bố dưới dạng
một giao diện chuẩn. Chi tiết cài đặt cụ thể các chức năng được che dấu, và người
dùng dịch vụ cũng không cần quan tâm đến; người dùng chỉ gọi sử dụng các chức
năng của dịch vụ thông qua các phương thức công bố trên giao diện.
18
Cùng với sự hỗ trợ của các dịch vụ cơ bản như lập lịch truy xuất tài nguyên
(scheduler service), chỉ mục (index service), tìm kiếm tài nguyên (discovery
service),… ứng dụng có thể xác định thời gian thực thi của các dịch vụ có chức
năng giống nhau từ nhiều nguồn, từ đó chọn ra cái tốt nhất để sử dụng, đáp ứng nhu
cầu của ứng dụng.
2.2.1.2 SOAP
SOAP (giao thức truy cập đối tượng giản đơn) là giao thức triệu gọi các đối
tượng dựa trên nền giao thức HTTP và định dạng XML. Giao thức SOAP cho phép
các thành phần đối tượng và ứng dụng Internet có thể dễ dàng trao đổi với nhau
thông qua chuẩn HTTP. Nói cách khác, SOAP là giao thức được xây dựng dựa trên
giao thức sẵn có HTTP. Nếu như HTTP chỉ cung cấp cơ chế gửi nhận (get/post) dữ
liệu thô một cách thuần túy thì SOAP sẽ giúp ta nhận gửi dữ liệu theo mô hình
XML có cấu trúc và dễ xử lý hơn.
2.2.1.3 WSDL
WSDL là một dạng ngôn ngữ XML dùng để mô tả một Web Service. Một tài
liệu WSDL cung cấp các thông tin cần thiết cho một máy khách (client) có thể
tương tác với Web Service.
Cấu trúc tài liệu WSDL
Gốc của một tài liệu WSDL là các phần tử (element) định dạng. Gồm có 4 phần
tử sau:
Data types: Các kiểu chính của thông tin được chuyển đổi.
Operations : Các endpoint dịch vụ hay các chức năng mà muốn hỗ trợ
Messages : Các loại thông điệp gửi/nhận
Message formats : Định dạng của thông điệp
2.2.1.4 UDDI
UDDI (Universal Description, Discovery and Integration) được đưa ra vào năm
2000, xuất phát từ dự đoán trong tương lai người sử dụng các dịch vụ web sẽ liên
19
lạc với các nhà cung cấp thông qua một hệ thống môi giới. Bất kì người nào cần
một dịch vụ, sẽ liên lạc với dịch vụ môi giới này và lựa chọn dịch vụ thích hợp.
Thực thể danh bạ (directory) UDDI là một tập tin XML dùng để mô tả doanh
nghiệp và các dịch vụ mà doanh nghiệp đó cung cấp.
2.2.2 Công nghệ ảo hóa
Ảo hóa chính là khái niệm về việc các tài nguyên điện toán có thể được tạo ra
với một mức độ uyển chuyển và linh hoạt rất cao mà không đòi hỏi người dùng phải
có kiến thức chuyên sâu về các tài nguyên vật lý nằm ở dưới. Trong một môi trường
ảo hóa, các môi trường điện toán có thể được tạo ra, thay đổi kích thước, hoặc di
chuyển một cách linh động khi nhu cầu biến đổi. Ảo hóa cung cấp những lợi thế
quan trọng trong việc chia sẻ, quản lý và cô lập (khả năng cho phép nhiều người
dùng và ứng dụng có thể chia sẻ các tài nguyên vật lý mà không gây ra ảnh hưởng
lẫn nhau) trong một môi trường điện toán đám mây. Công nghệ ảo hóa không chỉ
giới hạn ở máy chủ. Ảo hóa còn được áp dụng rất thích hợp đối với lưu trữ, kết nối
mạng và ứng dụng. Ba phương pháp triển khai ảo hóa chính và một số ứng dụng có
thể được liệt kê như sau :
Mô phỏng hệ thống (system emulation) : Phương pháp này xây dựng nên
một môi trường máy ảo mô phỏng tất cả các tài nguyên phần cứng. Hệ điều
hành cài trên các máy ảo sẽ sử dụng tài nguyên phần cứng thông qua lớp mô
phỏng này thay vì sử dụng trực tiếp các phần cứng trên máy thật. Một số sản
phẩm như VMware ( Microsoft Virtual PC
(
spx), và Parallels ( tiếp cận theo hướng này.
Paravirtualization : Các hệ điều hành chạy trên các máy ảo được điều chỉnh
để nhận ra rằng nó đang chạy trong một trình siêu quản lý (hypervisor) ảo
hóa. Phương pháp này không tiến hành mô phỏng các phần cứng nên sẽ thực
thi tốt hơn và gần với tốc độ thật hơn. Kỹ thuật này được áp dụng trong Xen
20
( và User-Mode Linux
(
Ảo hóa mức hệ điều hành (OS level virtualization) : Kỹ thuật này thực hiện
việc chạy nhiều thể hiện (instance) của hệ điều hành trên máy thật, mỗi thể
hiện được cô lập và chạy trên một môi trường an toàn. Có thể kể đến các đại
diện như FreeBSD jails ( và Solaris10 zones
(
Trong phần lớn các trường hợp, ảo hóa máy chủ được sử dụng bởi một bộ
công cụ siêu quản lý (hypervisor/ Virtual Machine Monitor - VMM) để chỉ định và
phân tách một cách logic các tài nguyên vật lý. Bộ siêu quản lý cho phép các hệ
điều hành khách (GuestOS), chạy trên máy ảo tin rằng nó đang chạy trên phần cứng
thật sự mà không biết rằng các hệ điều hành khác cũng đang cùng chia sẻ phần cứng
đó. Mỗi hệ điều hành khách được bảo vệ khỏi những hệ điều hành khác mà không
bị tác động bởi bất cứ sự bất ổn nào hoặc bởi các vấn đề cấu hình của các hệ điều
hành khác. Có hai kiểu hypervisor chính : bare-metal và hosted.
2.2.2.1 Bare-metal hypervisor
Trong kiến trúc này, lớp phần mềm hypervisor chạy trực tiếp trên nền tảng
phần cứng của máy chủ, không thông qua bất kì một hệ điều hành hay một nền tảng
nào khác. Qua đó, các hypervisor này có khả năng điều khiển, kiểm soát phần cứng
của máy chủ. Đồng thời, nó cũng có khả năng quản lý các hệ điều hành chạy trên
nó. Nói cách khác, các hệ điều hành sẽ chạy trên một lớp nằm phía trên các
hypervisor dạng bare-metal.
Một số ví dụ về các hệ thống bare-metal hypervisor như là: Oracle VM,
VMware ESX Server, IBM's POWER Hypervisor (PowerVM), Microsoft's Hyper-
V (6/2008), Citrix XenServer…
21
Hình 2.3: Bare-metal hypervisor
2.2.2.2Hosted hypervisor
Kiến trúc này sử dụng một lớp hypervisor chạy trên nền tảng hệ điều hành, sử
dụng các dịch vụ được hệ điều hành cung cấp để phân chia tài nguyên tới các máy
ảo. Ta xem hypervisor này là một lớp phần mềm riêng biệt, do đó thì các hệ điều
hành khách của máy ảo sẽ nằm trên lớp thứ 3 so với phần cứng máy chủ.
Một số hệ thống hypervisor dạng Hosted có thể kể đến như VMware Server,
VMware Workstation, Microsoft Virtual Server…
Hình 2.4: Hosted hypervisor
22
2.3 Kiến trúc một hệ thống tính toán đám mây
Về tổng quan, ta có thể chia kiến trúc một hệ thống đám mây thành bốn tầng
như thể hiện ở hình 2.5 [22].
Hình 2.5: Kiến trúc một hệ thống tính toán đám mây [22]
Tầng đáy của đám mây là tầng các dịch vụ cơ sở hạ tầng. Ở đây, chúng ta thấy
một tập hợp các tài sản vật lí như các máy chủ, các thiết bị mạng và các đĩa lưu trữ
được đưa ra như là các dịch vụ được cung cấp cho người tiêu dùng. Tầng core
middleware cung cấp các dịch vụ nền tảng để triển khai hệ thống đám mây. Ngoài
các công nghệ ảo hóa được sử dụng để tạo ra chế độ phân phối các nguồn tài
nguyên theo yêu cầu, các dịch vụ về quản lý, theo dõi, QoS… cũng được cung cấp
ở tầng này. Tầng user-level middleware cung cấp cho ngưởi sử dụng hệ thống khả
năng truy cập sử dụng các tài nguyên trên đám mây điện toán thông qua các giao
diện web 2.0 dựa trên trình duyệt phong phú, hay các thư viện lập trình song song
phân tán. Trên cùng là tầng dịch vụ ứng dụng chứa các ứng dụng chạy trên nền tảng
đám mây.
23
2.4 Phân loại các hệ thống đám mây
Trong thực tế, các hệ thống đám mây được triển khai rất đa dạng để phù hợp
với nhu cầu sử dụng của từng tổ chức cụ thể. Nhìn chung, ta có thể chia hệ thống
đám mây ra thành ba loại như hình 2.6.
Hình 2.6: Các loại điện toán đám mây
2.4.1 Hệ thống đám mây công cộng (public cloud)
Các đám mây công cộng là các dịch vụ đám mây được một bên thứ ba (người
bán) cung cấp. Chúng nằm ngoài hệ thống mạng của tổ chức và chúng được lưu trữ
đầy đủ và được nhà cung cấp đám mây quản lý.
Các đám mây công cộng cố gắng cung cấp cho người tiêu dùng các thành
phần công nghệ tối ưu nhất, cho dù đó là phần mềm, cơ sở hạ tầng ứng dụng hoặc
cơ sở hạ tầng vật lý. Nhà cung cấp đám mây chịu trách nhiệm về cài đặt, quản lý,
cung cấp và bảo trì các thành phần này. Khách hàng chỉ chịu phí cho các tài nguyên
nào mà họ sử dụng, vì thế cái chưa sử dụng được loại bỏ.
Tất nhiên điều này liên quan đến chi phí. Các dịch vụ này thường được cung
cấp với "quy ước về cấu hình" nghĩa là chúng được phân phối với ý tưởng cung cấp
các trường hợp sử dụng phổ biến nhất. Các tùy chọn cấu hình thường là một tập hợp
con nhỏ hơn so với những gì mà chúng đã có nếu nguồn tài nguyên đã được người
dùng kiểm soát trực tiếp. Một điều khác cần lưu ý là kể từ khi người dùng có quyền
24
kiểm soát cơ sở hạ tầng, các quy trình đòi hỏi tuân thủ quy định an ninh chặt chẽ và
điều này không phải lúc nào cũng thích hợp cho các đám mây chung.
2.4.2 Hệ thống đám mây riêng (private cloud)
Các đám mây riêng là các dịch vụ đám mây được xây dựng trong hệ thống của
doanh nghiệp. Những đám mây này tồn tại bên trong tường lửa công ty và chúng
được doanh nghiệp quản lý.
Các vấn đề khó khăn và chi phí của việc thiết lập một đám mây riêng đôi khi
có thể có chiều hướng ngăn cản việc xây dựng và sử dụng hệ thống loại này. Ngoài
ra chi phí hỗ trợ hoạt động liên tục của đám mây riêng có thể vượt quá chi phí của
việc sử dụng một đám mây công cộng.
Các đám mây riêng đưa ra nhiều lợi thế hơn so với loại công cộng. Việc kiểm
soát chi tiết hơn trên các tài nguyên khác nhau sẽ tạo thành một đám mây mang lại
cho công ty tất cả các tùy chọn cấu hình có sẵn. Ngoài ra, các đám mây riêng là lý
tưởng khi các kiểu công việc được thực hiện có các yêu cầu về an ninh và quản lý
không phù hợp cho một đám mây công cộng.
2.4.3 Hệ thống đám mây lai (hybrid cloud)
Các đám mây lai là một sự kết hợp của các đám mây công cộng và riêng.
Những đám mây này thường do doanh nghiệp tạo ra và các trách nhiệm quản lý sẽ
được phân chia giữa doanh nghiệp và nhà cung cấp đám mây công cộng. Đám mây
lai sử dụng các dịch vụ có trong cả không gian công cộng và riêng.
Các đám mây lai là câu trả lời khi một công ty cần sử dụng các dịch vụ của cả
hai đám mây riêng và công cộng. Theo hướng này, một công ty có thể lựa chọn đám
mây công cộng hay riêng dựa trên các mục tiêu và nhu cầu của các dịch vụ cần triển
khai. Một đám mây lai được xây dựng tốt có thể phục vụ các quy trình nhiệm vụ
quan trọng của doanh nghiệp yêu cầu cao về tính ổn định, an toàn, cũng như những
ứng dụng không quan trọng.
Hạn chế chính với đám mây này là sự khó khăn trong việc tạo ra và quản lý có
hiệu quả một giải pháp như vậy. Hệ thống phải có thể tiếp nhận được và cung cấp
25
các dịch vụ lấy từ các nguồn khác nhau như thể chúng có chung nguồn gốc, hay
phức tạp hơn là hỗ trợ tương tác giữa các thành phần riêng và chung. Do đây là một
khái niệm kiến trúc tương đối mới trong điện toán đám mây, nên cách hiện thực và
các công cụ hỗ trợ mô hình này vẫn còn được nghiên cứu.
2.5 Một số dự án thực tế về tính toán đám mây
Các phân tích của giới công nghiệp đã cho thấy sự ảnh hưởng ngày càng lớn
của công nghệ điện toán đám mây vào toàn bộ nền công nghiệp tính toán
(computing industry). Theo một nghiên cứu mới đây của Merrill Lynch [22], điện
toán đám mây được trông đợi sẽ mang lại cơ hội tạo ra 160 tỷ USD cho thị trường
bao gồm 95 tỷ trong kinh doanh và xây dựng ứng dụng và 65 tỷ còn lại trong quảng
cáo trực tuyến. Một nghiên cứu khác của Morgan Stanley cũng đã khẳng định tính
toán đám mây là một trong các xu hướng công nghệ nổi bật. Với những thay đổi
trong giới công nghiệp đó, ngày càng có nhiều mô hình nền tảng cloud được xây
dựng, vài tổ chức học thuật và công nghiệp cũng đã bắt đầu nghiên cứu tỉ mỉ và
phát triển các công nghệ cũng như cơ sở hạ tầng cho điện toán đám mây. Một vài
kết quả của các tổ chức học thuật có thể kể đến như Virtual Workspaces [24],
OpenNebula [32]. Phần tiếp theo sẽ giới thiệu sáu nền tảng Cloud được hiện thực
theo hướng công nghiệp được so sánh trong bảng 2.1.
26
Bảng 2.1: So sánh một vài dự án Cloud nổi bật [22]
2.5.1 Amazon Elastic Compute Cloud (EC2)
Dự án EC2 [33] cung cấp một môi trường tính toán ảo để người dùng có thể
chạy các ứng dụng trên Linux. Người dùng EC2 có thể tự tạo một máy ảo mới,
được gọi là Amazone Machine Image (AMI) chứa các ứng dụng, thư viện, dữ liệu
và các cấu hình thích hợp hoặc có thể chọn AMI từ một thư viện có sẵn. Sau đó,
người sử dụng phải upload AMI này lên Amazon Simple Stogre Service (S3) để có
thể sử dụng được. Amazon EC2 sẽ tính phí dựa trên thời gian hoạt động của máy ảo
người dùng và Amazon S3 sẽ tính phí trên khối lượng dữ liệu gởi và nhận.
27
2.5.2 Google App Engine
Google App Engine [34] cho phép người dùng chạy các ứng dụng web viết
bằng ngôn ngữ Python. Ngoài việc hỗ trợ các thư viện Python chuẩn, Google App
Engine còn hỗ trợ một số API về lưu trữ dữ liệu, quản lý tài khoản Google, dịch vụ
email… Bên cạnh đó Google App Engine còn hỗ trợ giao diện quản trị qua web cho
người dùng dễ dàng quản lý các ứng dụng web đang chạy. Hiện tại Google App
Engine đang cho sử dụng miễn phí với dung lượng lưu trữ lên đến 500 MBs và có
khoảng 5 triệu lượt truy cập mỗi tháng.
2.5.3 Microsoft Live Mesh
Microsoft Live Mesh [35] hướng tới việc cung cấp cho người dùng một nơi
lưu trữ dữ liệu, ứng dụng tập trung và có thể truy xuất được bằng nhiều loại thiết bị
(có thể là máy tính hay điện thoại di động) từ bất kỳ đâu trên thế giới. Người dùng
có thể truy xuất đến dữ liệu hay ứng dụng của mình thông qua Web-based Live
Desktop hay từ chính các thiết bị của mình bằng cách cài đặt phần mềm Lite Mesh
lên thiết bị đó. Mỗi người dùng sẽ có một mật khẩu bảo vệ và chứng thực thông qua
Windows Live Login trên kênh truyền sử dụng SSL để bảo vệ.
2.5.4 Sun Grid
Sun network.com (Sun Grid) [36] cho phép người dùng chạy các ứng dụng
Solaris OS, Java, C, C++ và FORTRAN. Đầu tiên người dùng phải xây dựng ứng
dụng của mình trên môi trường phát triển cục bộ đã được cấu hình lại sao cho giống
với trên hệ thống Sun Grid . Sau đó, người dùng phải đóng gói toàn bộ các tập tin
liên quan đến ứng dụng và upload lên Sun Grid. Cuối cùng, người dùng có thể thực
thi và theo dõi ứng dụng đó trên Sun Grid thông qua một web portal hay các API.
Sau khi ứng dụng chạy xong, người dùng có thể tải kết quả về để xem.
2.5.5 GRIDs Lab Aneka
GRIDs Lab Aneka [25] là một nền tảng hướng dịch vụ dựa trên .NET nhằm
xây dựng một lưới tính toán cho doanh nghiệp (enterprise Grid). Nó được thiết kế
để hỗ trợ nhiều mô hình ứng dụng, nhiều giải pháp lâu dài và bảo mật, cũng như
28
nhiều giao thức giao tiếp để một vài lựa chọn ưu tiên có thể được thay đổi bất kỳ
khi nào mà vẫn không ảnh hưởng đến hệ thống Aneka sẵn có. Để tạo ra một lưới
cho doanh nghiệp, nhà cung cấp dịch vụ chỉ cần cấu hình chạy một thể hiện Aneka
container có chứa các dịch vụ yêu cầu lên các máy tính được lựa chọn. Aneka còn
hỗ trợ SLA để người dùng có thể đặc tả các yêu cầu QoS như deadline hay budget.
Người dùng có thể truy xuất Aneka từ xa thông qua Gridbus broker [26].