Hình 12. Kiến trúc đám mây lai phân tán (Theo Lakshmanan 2009)
Tóm lại, tính toán đám mây vẫn là một kiểu mô hình/kiến trúc tính toán cần một thời gian dài nữa để hoàn thiện. Trong tương lai gần, tính toán đám mây có thể xuất hiện dưới nhiều hình thức. Một kịch bản khả thi là doanh nghiệp có thể sử
trong khi đó một số ứng dụng khác sẽ được phân tán trên một vài private cloud, chúng được tối ưu hóa cho các ứng dụng cụ thể.
CHƯƠNG 3 :
SO SÁNH GIỮA GRID COMPUTING VÀ CLOUD COMPUTING 3.1 Mô hình hệ thống phân bố
So sánh Cloud và Grid về kích thước (scale), hướng ứng dụng (application oriented) hay hướng dịch vụ (services oriented). Qua hình 3, chúng ta thấy hệ thống lưới là những hệ thống phân bố (distributed systems) bắt đầu từ hướng ứng dụng về sau chuyển sang hướng dịch vụ. Các chuẩn như Open Grid Service Archtiectures (OGSA) cũng đề xuất các dịch vụ mức kiến trúc cho các chức năng của hệ thống lưới. Trục tung thể hiện kích thước (scale) và trục hoành thể hiện tính hướng ứng dụng hay hướng dịch vụ.theo hai trục: trục tung thể hiện kích thước (scale) và trục hoành thể hiện tính hướng ứng dụng hay hướng dịch vụ.
Hình 13: So sánh điện toán đám mây và hệ thống lưới về kích thước (scale) và tính hướng ứng dụng hay hướng dịch vụ
- Xây dựng theo hướng phục vụ cho dự án, trong đó hệ thống tiết kiệm chi phí các đơn vị dịch vụ theo giờ trên hệ thống CPU.
- Tập trung vào việc tích hợp các tài nguyên để tạo ra máy tính lớn, tăng cường khả năng tính toán của hệ thống, thích hợp cho các dự án trong môi trường học thuật như đại học, viện nghiên cứu. Mô hình này đã được ứng dụng rộng rải nhiều nơi trên thế giới. Có nhiều nỗ lực để xây dựng một Grid kinh tế cho cở sở hạ tầng Grid toàn cầu, nó hỗ trợ thương mại, đàm phán, cung cấp dịch vụ theo nhu cầu sử dụng, khả năng rủi ro, chi phí và sở thích của người sử dụng.
-Ví dụ: TeraGrid là một hình thức thương mại của Grid, gia tăng của sức mạnh tính toán, nó sử dụng hàng chục Grid khác nhau từ các viện nghiên cứu trong cùng một quốc gia. Khi một tổ chức nào đó gia nhập vào TeraGrid có thể truy cập đến các Girds khác và đồng thời có thể sử dụng tài nguyên, kết quả thí nghiệm…trên hệ thống Grid này.
- Khách hàng phải trả tiền cho nhà cung cấp dịch vụ trên cơ sở tài nguyên mà họ có sử dụng (ví dụ như điện).
- Hướng đến các dịch vụ hỗ trợ cho các doanh nghiệp, là một nguồn lợi to lớn thu hút được nhiều tập đoàn lớn tham gia vào nghiên cứu để phát triển như: Google, Yahoo, Amazon,… Clouds hỗ trợ khả năng mở rộng hệ thống mang tính kinh tế, tức là người sử dụng có thể triển khai với hệ thống ngày một lớn hơn với chi phí phù hợp.
-Ví dụ: EC2 của Amazon (tính theo giờ tiêu thụ), S3 của Amazon (tính theo GB- tháng lưu trữ). Các tiềm năng hiện của có là các trung tâm dữ liệu lớn của các tập đoàn Amazon, IBM, Sun, Google ..v.v. Người dùng trong tương lai chỉ cần một thẻ tín dụng đã có thể truy cập theo nhu cầu đến hàng 100.000 bộ xử lý ngang qua hàng chục trung tâm dữ liệu trải khắp thế giới.
3.3 Mô hình kiến trúc
Hình 14: Mô hình kiến trúc tính toán lưới và điện toán đám mây
GRID COMPUTING CLOUD COMPUTING
Grids cung cấp các giao thức và dịch vụ ở 5 lớp khác nhau:
- Lớp Connectivity: định nghĩa các giao tiếp và chứng thực cốt lõi cho quá trình giao tác an toàn và dễ dàng qua mạng. - Lớp Resource: định nghĩa các giao thức công bố, khám phá, đàm phán, giám sát, kế toán và thanh toán chi phí cho các hoạt động trên các tài nguyên riêng biệt.
- Lớp Collective: nắm giữ sự tương tác ngang qua các tập tài nguyên, dịch vụ thư mục cho phép giám sát và khám phá ra các tài nguyên tổ chức ảo.
- Lớp Application: bao gồm các ứng dụng người dùng được xây dựng trên đầu của các giao thức.
Clouds có thể được hiện thực trên nhưng công nghệ Grids đã tồn tại hàng thập niên nhưng hướng vào kiến trúc 4 lớp sau:
- Lớp Fabric: gồm các tài nguyên phần cứng
- Lớp Unified Resource: chứa các tài nguyên được trừu tượng hóa để có thể xuất hiện đồng nhất với người dùng. - Lớp Platform: thêm vào một tập các công cụ, phần mềm và dịch vụ trên lớp Unified Resource.
- Lớp Application: là lớp chứa các ứng dụng chạy trên Clouds.
3.4 Mô hình lập trình
GRID COMPUTING CLOUD COMPUTING
- Mô hình lập trình trong môi trường Grids không có các khác biệt về cơ bản so với các môi trường lập trình song song và phân bố truyền thống. Mục đích chính của
- Grids là các ứng dụng khoa học đòi hỏi khả năng mở rộng cao, mở rộng đến khối lượng tài nguyên lớn và thực thi vừa nhanh vừa hiệu quả, do dó các chương trình cần phải hoàn tất một cách chính xác nên phải xem xét đến độ tin cậy và khả năng kháng lỗi trong môi trường Grids.
• MPICH-G2 • GridRPC
• Các hệ thống Workflow • WSRF
- Mô hình theo MapReduce, là một mô hình lập trình song song nhằm vào các hệ thống với khối lượng dữ liệu lớn, được xây dựng dựa trên hai từ khóa chính là “map” và “reduce”:
• “Map”: cung cấp thao tác cụ thể lên một tập dữ liệu và sinh ra một tập dữ liệu mới.
• “Reduce”: ngược lại sẽ thu gom các dữ liệu lại
“Hadoop”: hiện thực mã nguồn mở của MapReduce và đang được quan tâm. - Kịch bản: Java Script, PHP, Python.
3.5 Quản lý tài nguyên
GRID COMPUTING CLOUD COMPUTING
- Mô hình tính toán: sử dụng mô hình tính toán bó (batch-scheduled compute model) cùng với một bộ quản lý tài nguyên cục bộ như PBS, Sun Grid Engine, Condor để quản lý tài nguyên tại các vị trí khác nhau. Với phương thức quản lý này. Grids không thể phục vụ tốt cho các chương trình yêu cầu nhiều bộ xử lý và thực thi trong thời gian dài.
- Mô hình dữ liệu: tập trung vào dữ liệu đa được quan tâm từ sớm, chẳng hạn như Data Grid đã được thiết kế dành riêng cho các ứng dụng tập trung lớn trên dữ liệu. Do đó, Grids không cần
- Mô hình tính toán: Các người dùng được sử dụng tài nguyên đồng thời mặc dù phải đảm bảo được chất lượng dịch vụ cho người sử dụng. Đây cũng là một trong những thách thức của Clouds về khả năng mở rộng và khi số lượng người dùng lớn.
- Mô hình dữ liệu: Mô hình dữ liệu của Cloud, hệ thống MapReduce của Google chạy trên đỉnh của hệ thống tập tin Google (khối nhân rộng của dữ liệu). → sử dụng mềm dẻo hơn.
hình dữ liệu như Clouds thay vào đó nó đã có mô hình chuyên biệt để sử dụng. - Cơ chế ảo hóa: không quan trọng, mặc dù có một số hệ của Ganglia sử dụng rộng rãi như hệ thống giám sát, Grids không dựa vào công nghệ ảo hóa nhiều như Clouds, nhưng để đảm bảo được tính riêng tư cho các tổ chức ảo trên tài nguyên thì công nghệ ảo hóa cũng được sử dụng trong lưới chẳng hạn như Nimbus, sử dụng tài nguyên không mạnh mẽ bằng Cloud
- Cơ chế ảo hóa: được xem là then chốt trong điện toán đám mây. Công nghệ ảo hóa cung cấp mức trừu tượng thiết yếu cho việc hợp nhất tài nguyên nhằm đạt được mục tiêu này. Đồng thời ảo hóa còn cho phép mỗi ứng dụng có thể được đóng gói (encapsulate) để có thể cấu hình, triển khai, bắt đầu, di chuyển, tạm dừng, tiếp tục, dừng hẳn, ..v.v. và vì vậy cung cấp tính độc lập, khả năng quản lý, bảo mật tốt hơn.
- Khó khăn để có được một mức độ cao trong việc giám sát → tự bảo trì.
3.6 Mô hình bảo mật
GRID COMPUTING CLOUD COMPUTING
Grids hạn chế hơn về tính bảo mật • GSI (hạ tầng an ninh lưới)
Clouds hầu như bao gồm các trung tâm dữ liệu (data center) chuyên dụng thuộc về cùng một tổ chức, nó mang tính đồng nhất:
• Mô hình đơn giản và kém an toàn • Sử dụng các hình thức SSL và dạng thức Web
• Một thách thức chưa được giải quyết trong các đám mây
Điểm chung: Tính toán lưới và điện toán đám mây khác nhau ở nhiều phương diện
nhưng cùng chia sẻ nhiều mục tiêu chung khác nhau. Điện toán đám mây thực sự phát triển hơn so tính toán lưới, nhưng nó dựa trên nền tảng của tính toán lưới.
CHƯƠNG 4 :
QUẢN LÝ TÀI NGUYÊN ẢO TRONG ĐIỆN TOÁN ĐÁM MÂY 4.1 Công nghệ ảo hóa
Ảo hóa đã cách mạng hóa công nghệ trung tâm dữ liệu thông qua một tập hợp các kỹ thuật và các công cụ tạo điều kiện thuận lợi cho việc cung cấp và quản lý động trung tâm dữ liệu của cơ sở hạ tầng (IaaS). Ảo hóa có thể được định nghĩa là sự trừu tượng hóa các tài nguyên máy tính. Cho phép tách biệt riêng tách biệt người sử dụng và ứng dụng về những đặc tính phần cứng chuyên biệt của các hệ thống mà họ sử dụng để thực hiện các công việc của máy tính.
GIẢI PHÁP TRUYỀN THỐNG GIẢI PHÁP ẢO HÓA
Giảm chi phí đầu tư phần cứng: để đáp ứng những yêu cầu không ngừng về việc triển khai, phát triển các dịch vụ và ứng dụng mới, các tổ chức cần phải tiếp tục tăng thêm số lượng máy chủ. Tuy nhiên, khi càng nhiều máy chủ thì những vấn đề khó khăn lại càng rõ hơn:
• Chi phí tăng: việc mua thêm máy chủ mới sẽ bao gồm chi phí mua máy chủ và các loại chi phí khác: nguồn điện, cooling, không gian đặt máy chủ trong,…
• Hiệu quả đầu tư thấp: với mỗi một máy chủ dành riêng cho một ứng dụng x86 (tải thấp) sẽ làm năng suất hoạt động của CPU chỉ khoảng 5- 15%.
• Giảm khả năng quản lý: khó quản lý hơn khi ngày càng nhiều máy chủ và ứng dụng trong một môi trường phức tạp với nhiều loại hệ điều hành, những phần cứng, những loại máy chủ khác nhau.
• Hiệu quả công việc giảm: nhân viên IT sẽ tập trung nhiều thời gian hơn
Giải pháp ảo hóa giải quyết vấn đề về chi phí và năng suất hoạt động của máy chủ bằng việc giảm chi phí phần cứng và vận hành, sử dụng tối ưu nguồn tài nguyên thông qua ảo hóa. Đồng thời cũng giúp triển khai các máy chủ nhanh chóng, dễ dàng và tự động quản lý các tài nguyên trong máy chủ tối ưu hơn: • Đơn giản hóa việc quản lý hạ tầng
bằng cách quản lý tập trung.
• Tự động hóa việc quản lý các nguồn tài nguyên máy chủ giúp các nhân viên IT không còn tốn quá nhiều thời gian vào việc quản lý các máy chủ mà sẽ tập trung vào những ứng dụng và dịch vụ mới mang lại lợi ích cho người dùng và tổ chức.
• Giảm chi phí trang bị các thiết bị mới như máy chủ, nguồn, hệ thống làm lạnh... bằng việc tăng hiệu quả hoạt động của các máy chủ hiện tại.
cho việc triển khai máy chủ, cấu hình, giám sát và bảo trì. Vì vậy không còn tập trung nhiều vào các hoạt động, các dự án giúp nâng cao cấp độ hạ tầng thông tin.
Ảo hóa khả năng chạy nhiều hệ điều hành khác nhau trong một máy vật lý, cùng chia sẻ tài nguyên vật lý và là cách thức để thực hiện việc quản lý tài nguyên trong điện toán đám mây. Điện toán đám mây và ảo hóa còn giúp tối ưu hóa tài nguyên về mặt sử dụng năng lượng, sử dụng theo yêu cầu và kèm theo khả năng mở rộng linh hoạt.
Hình 15. Khái niệm trừu tượng máy ảo thực hiện ứng dụng, hệ điều hành,
đồng bộ phần cứng trên các máy ảo khác nhau.
4.2 Phân tầng trong kiến trúc ảo hóa4.2.1 Tầng ảo hóa 4.2.1 Tầng ảo hóa
Nhiệm vụ của tầng này sẽ phân vùng tài nguyên vật lý của máy chủ vật lý thành nhiều máy ảo nhằm đáp ứng các khối lượng công việc thực hiện khác nhau.
máy ảo nghĩ rằng nó hoàn toàn sở hữu tài nguyên vật lý (Như ổ đĩa, Ram và bộ xử lý …).
Trong phương pháp mô phỏng phần cứng, phần mềm dùng để ảo hóa (thường được biết đến là một Hypervisor) trình diễn môi trường phần cứng được mô phỏng mà các hệ điều hành khách hoạt động trên đó. Môi trường phần cứng được mô phỏng này thường ám chỉ phần mềm điều khiển máy ảo hay VMM (Visual Virtual Machine Manager).
VMM tạo ra một môi trường phần cứng được chuẩn hóa trên đó hệ điều hành khách cư trú và tương tác. Do hệ điều hành máy ảo (Guest OS) và VMM tạo ra một gói thống nhất, gói này có thể được chuyển từ máy này sang máy khác, mặc dù các cấu hình vật lý của hệ thống mà gói chạy trên đó có thể khác. Hypervisor cư trú giữa VMM và phần cứng vật lý chuyển yêu cầu tài nguyên từ VMM sang máy chủ vật lý.
Công nghệ thực thi ở đây chính là ảo hóa phần cứng. Phương pháp ảo hóa này được hiểu là các ứng dụng chạy trên một hệ điều máy ảo (Guest OS) hoàn toàn biệt lập với ít nhất một hệ điều máy ảo đang hoạt động, một hệ điều hành chạy trên mỗi VMM. Các VMM đều lưu trú trên một Hypervisor ảo.
Trình điều khiển máy ảo phải cung cấp cho máy ảo một “ảnh” của toàn bộ hệ thống, bao gồm BIOS ảo, không gian bộ nhớ ảo, và các thiết bị ảo. Trình điều khiển máy ảo cũng phải tạo và duy trì cấu trúc dữ liệu cho các thành phần ảo (đặc biệt là bộ nhớ), và cấu trúc này phải luôn được cập nhật cho mỗi một truy cập tương ứng được thực hiện bởi máy ảo.
4.2.2 Máy ảo
Công nghệ máy ảo cho phép quản lý tài nguyên dễ dàng và mềm dẻo để quản lý nguồn tài nguyên trong các môi trường điện toán đám mây, Nó cải thiện việc sử dụng các nguồn tài nguyên như vậy bằng cách ghép nhiều máy ảo trên một máy chủ.
Máy ảo được phân ra làm hai tầng: • Tầng hệ điều hành máy ảo • Tầng ứng dụng người sử dụng
Các ứng dụng chạy triển khai của người sử dụng sẽ chạy trên nền tảng hệ điều hành máy ảo (Guest OS) và hệ điều hành máy ảo chạy trên môi trường máy ảo.
4.3 Lập lịch và quản lý tài nguyên ảo
Quản lý tài nguyên ảo cho hệ thống gồm hai công việc chính: • Lập lịch biểu cho các máy ảo (Virtual Machine Scheduling) • Quản lý cho các máy ảo (Virtual Machine Management)
4.3.1 Lập lịch các máy ảo
Power aware scheduling: các công việc được định thời theo cách thức giảm thiểu tối đa lượng nhiệt tổng thể trong các trung tâm dữ liệu. Thay vì giảm năng lượng cho các máy chủ, chiến lược này sẽ làm giảm năng lượng phục vụ cho các hoạt động làm mát trung tâm dữ liệu.
Themal aware scheduling: các công việc được định thời theo cách thức nhằm giảm công suất của các máy chủ vì phần lớn việc xử lý các công việc đều diễn ra ở các máy chủ.
Do đó, một xu hướng khác trong việc quản lý tài nguyên là năng lượng hiệu quả (Energy-efficient resource management) : Green Cloud. Trong việc cung cấp tài nguyên thì bài toán lập lịch tiết kiệm/nhận biết năng lượng được xây dựng:
Giải thuật nguồn điện dựa trên định thời trên các máy
(Efficient Resource Management for Cloud Computing Environments)
Việc sử dụng hệ thống dùng bộ xử lý nhiều core sẽ tiêu tốn năng lượng ít hơn so với các hệ thống dùng bộ xử lý. Giải thuật nguồn điện dựa trên định thời trên các máy ảo trên minh họa cho việc tối ưu hóa việc sử dụng năng lượng trong các trung tâm dữ liệu.
4.3.2 Quản lý máy ảo
Công việc liên quan đến quản lý máy ảo Image bằng cách bật, tắt máy ảo một cách hợp lý. Với một chiến lược hợp lý, những máy không sử dụng sẽ dùng kỹ thuật tắt máy động (dynamic shutdown techniques) để tắt và bật lại khi cần thiết. Có
Hình 16. Kỹ thuật tắt máy động trong quản lý máy ảo
(Efficient Resource Management for Cloud Computing Environments)
CHƯƠNG 5 :
HIỆN TRẠNG ĐIỆN TOÁN ĐÁM MÂY Ở VIỆT NAM