Bài toán 2: cung cấp tài nguyên tính toán trên hệ thống cloud với tiêu chí tiết kiệm năng lượng: .... Các thuật ngữ hay dùng Tên thuật ngữ bằng tiếng Anh Ý nghĩa Infrastructure-as-a-Ser
Trang 1Mục lục
I GIỚI THIỆU 4
1 Điện toán đám mây là gì ? 4
2 Quản lý tài nguyên trên môi trường điện toán đám mây 5
3 Các thách thức của quản lý tài nguyên trên môi trường điện toán đám mây 5
4 Bài toán 1: Cung cấp tài nguyên tính toán cho các yêu cầu Batch-job và đặt chỗ 6
5 Bài toán 2: cung cấp tài nguyên tính toán trên hệ thống cloud với tiêu chí tiết kiệm năng lượng: 7
II TÌNH HÌNH NGHIÊN CỨU LIÊN QUAN 9
1 So sánh điện toán đám mây và tính toán lưới 9
2 Các phần mềm xây dựng hạ tầng điện toán đám mây (cloud computing) 12
III.KẾT LUẬN 14
IV.Tài liệu tham khảo 14
Trang 2Các thuật ngữ hay dùng
Tên thuật ngữ bằng tiếng Anh Ý nghĩa
Infrastructure-as-a-Service (IaaS) Hạ tầng như là dịch vụ: là môi trường điện
toán đám mây cung cấp các dịch vụ của tạo, hủy, thuê bao, thực thi các máy ảo (Virtual Machine) chứa ứng dụng của người dùng, đồng thời trên IaaS còn có các dịch vụ lưu trữ, quản lý, tính phí,…
Platform-as-a-Service (PaaS) Là môi trường điện toán đám mây dưới
dạng engine (như là Goolge AppEngine [1]) cho phép chúng ta phát triển ứng dụng chạy trên hạ tầng phân bố trải rộng trên nhiều bộ xử lý
Software-as-a-Service (SaaS) Phần mềm như là dịch vụ: là ứng dụng
dưới dạng dịch vụ trên nền điện toán đám mây IaaS cho nhiều người sử dụng thông qua Internet
Trang 3DANH MỤC HÌNH
Hình 1 giải thuật đặt các máy ảo tiết kiệm năng lượng [11] 8 Hình 2 Giải thuật lập lịch máy ảo dựa trên công suất [13] 8 Hình 3: So sánh hệ thống đ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ụ 9 Hình 4: So sánh kiến trúc của Grid và Cloud 10
DANH MỤC BẢNG
Bảng 1 Các tiêu chí so sánh Grids và Clouds 10
Trang 4MỘT NGHIÊN CỨU VỀ QUẢN LÝ TÀI
NGUYÊN TRONG MÔI TRƯỜNG
ĐIỆN TOÁN ĐÁM MÂY
Nguyễn Quang Hùng hungnq2@gmail.com
I GIỚI THIỆU
1 Điện toán đám mây là gì ?
Thuật ngữ điện toán đám mây (ĐTĐM) với tên “Compute Cloud” hay phổ biến
là “Cloud computing” là khái niệm mới và có nhiều cách định nghĩa Định nghĩa về điện toán đám mây (Cloud computing) sẽ tùy thuộc vào cách chúng ta khai thác, nó có thể được xem như là một dịch vụ tiện ích cần thiết thứ năm (bên cạnh bốn dịch vụ tiện ích trong sinh hoạt là điện, nước, điện thoại, gas) Công nghệ đa nhân (multicore) và công nghệ ảo hóa (virtualization) phát triển đã hình thành cách thức sử dụng mới – cho phép chạy nhiều hệ điều hành trên cùng một máy vậy lý Đồng thời kết hợp với sự phát triển nhanh của các kỹ thuật phần mềm trên nền tảng Internet – đặc biệt là các chuẩn mở về Web services (như SOAP, RESTful, XML, WSDL) Sự hội tụ này đã dẫn đến khái niệm mới trong nhánh tính toán phân bố là điện toán đám mây Do khái niệm về điện toán đám mây được hiểu theo các nghĩa khác nhau, chúng ta có thể hiểu điện toán đám mây là khả năng cung cấp tài nguyên (tính toán – CPU, bộ nhớ vật lý, không gian lưu trữ, v v…)
và phần mềm (kèm theo bản quyền phần mềm) theo nhu cầu dưới dạng tính tiền theo thời gian sử dụng (pay-as-you-go)
Hiện có ba định nghĩa được chấp nhận trong cộng đồng nghiên cứu về điện toán đám mây, chúng là các định nghĩa của Rajkumar Buyya (2009) [1], Ian Foster, et.al (2008 & 2010) [2] & [3] Ngoài ra vẫn còn các định nghĩa khác về điện toán đám mây [4]…
- Theo Ian Foster, et.al (2008) [2]: “…cloud là dạng Infrastructure-as-a-Service (IaaS) cloud, như là Amazon EC2 Ở đó, hạ tầng IT được triển khai trong datacenter của nhà cung cấp cloud dưới dạng các máy ảo…”
- Theo Rajkumar Buyya (2009) [1]: “…một cloud là dạng hệ thống song song
và phân bố bao gồm tập các máy tính được ảo hóa và kết nối lại với nhau, chúng (các máy tính ảo này) được cung cấp động và xuất hiện dưới dạng các
Trang 5tài nguyên tính toán thống nhất dựa trên thỏa thuận mức dịch vụ (service-level agreements) thỏa thuận giữa nhà cung cấp dịch vụ và khách hàng
- Theo [3], bổ sung định nghĩa ở [2] khi đưa thêm yếu tố tính kinh tế (economies of scale) và tài nguyên gồm power, storage, platform, và dịch vụ được trừu tượng hóa, ảo hóa, co dãn động và quản lý để cung cấp cho người dùng qua Internet
Về phân loại, các hệ thống cloud có thể xếp vào ba loại, theo [4]:
- Infrastructure-as-a-Service (IaaS): ví dụ: hệ thống Amazon EC2 [5] và S3 [8]
- Platform-as-a-Service (PaaS): ví dụ: Google AppEngine [7]
- Software-as-a-Service (SaaS): ví dụ: Gmail, SalesForce,…
- Data-as-a-Service (DaaS): ví dụ: Strikeiron.com, Kognitio.com, thực ra cũng có vài ý kiến khác xếp DaaS vào dạng SaaS
2 Quản lý tài nguyên trên môi trường điện toán đám mây
Quản lý tài nguyên trên môi trường điện toán đám mây (cloud computing) có chức năng cung cấp các tài nguyên tính toán (như CPU, bộ nhớ…) hay tài nguyên lưu trữ (storage) theo yêu cầu của người sử dụng Công nghệ điện toán đám mây được thúc đẩy bởi mô hình kinh tế - tính tiền người dung theo thời gian họ dùng: dùng bao nhiêu trả bấy nhiêu (pay-as-you-go) Ví dụ: người dùng có thể thuê 2 - 3 giờ máy để chạy một ứng dụng tạm thời trên Amazon EC2
3 Các thách thức của quản lý tài nguyên trên môi trường điện toán đám mây
Đứng ở mỗi góc nhìn khác nhau bài toán quản lý tài nguyên cho Cloud đặt ra các thách thức khác nhau:
- Ở góc nhìn nhà cung cấp hạ tầng cloud (Infrastructure-as-a-Service): có hai vấn
đề mà tôi sẽ trình bày cụ thể bên dưới
- Ở góc nhìn của nhà cung cấp dịch vụ (một loại ứng dụng nào đó) cho người dùng đầu cuối: ví dụ một công ty ABC cung cấp dịch vụ tài chính trên môi trường Internet Thách thức đặt ra với họ là họ hạ thấp nhất chi phí thuê bao tài nguyên của nhà cung cấp hạ tầng Cloud để chạy ứng dụng, nhưng đồng thời vẫn đáp ứng chất lượng dịch vụ đối với người dùng cuối
- Ở góc nhìn người dùng: người dùng muốn thuê tài nguyên đáp ứng tiêu chí ràng buộc về chất lượng đã ràng buộc với nhà cung cấp dịch vụ hoặc hạ tầng cloud (thể hiện bằng SLA – Service Level Agreement)
Trang 6Trong bài viết này, tôi khảo sát hai bài toán (problem) được xác định trong việc quản lý tài nguyên cho môi trường điện toán đám mây Trong từng bài toán, tôi khảo sát một vài hướng tiếp cận :
- Bài toán 1: thách thức trong việc cung cấp (provision) tài nguyên cho cả hai loại : các yêu cầu cho công việc best-effort (các chương trình mô phỏng yêu cầu tính toán hiệu năng cao (HPC batch-job)) và các yêu cầu đặt chỗ trên cùng một hệ thống
- Bài toán 2: quản lý tài nguyên hiệu quả về năng lượng điện tiêu thụ của cả Data center
4 Bài toán 1: Cung cấp tài nguyên tính toán cho các yêu cầu Batch-job và đặt chỗ
Trong việc cung cấp tài nguyên (tính toán), thường là nhu cầu sử dụng trong thời gian ngắn (vài giờ) Chúng ta xét vài trường hợp sử dụng tài nguyên sau:
- “một nhà khoa học cần một số lượng lớn các máy tính để chạy một chương trình giả lập (mô phỏng) trong vài giờ”,
- “một giảng viên ở trường Đại học cần một cluster của 10 nút để dạy thực hành MPI”,
- “một công ty cần nơi để hosting website của công ty có thể mở rộng (scale
up/down) theo lưu lượng người dùng)”
Vấn đề là cùng một tiêu chí tối ưu không thể áp dụng cho cả hai trường hợp : batch-job (để chạy ứng dụng mô phỏng) và đặt chỗ (cho trường hợp lớp học MPI)
Các hướng tiếp cận:
o Dựa trên máy ảo (VM-based approaches) : Virtual Clusters (Nishimura et al, Yamasaki et al, Nimbus toolkit,…)
o Dựa trên lô (Batch-jobs approaches) : PBS, SGE, Condor,…
o Mô hình thuê bao (Lease based approaches) : Borja Sotomayor (2010) [8] [9]
So với những mô hình khác thì mô hình cung cấp tài nguyên tính toán sử dụng trừu tượng
là máy ảo và “lease” có nhiều ưu điểm hơn các tiếp cận khác và đã được khẳng định ở [10] [8] [9]
Mô hình thuê bao tài nguyên (Lease-based Model)
Mô hình thuê bao (Lease-based Model) trong môi trường ảo hóa dùng máy ảo được
đề xuất bởi Borja Sotomayor [9]
Trang 7- Lease: tương tự khái niệm lease đã được dùng trong Computer Network Ví dụ: trong Networking, lease có thể là bandwidth trong mạng; hay lease có thể là tài nguyên
phần cứng thô trong datacenter,…
- Có hai nhân tố: nhà cung cấp (lessor – resource provider và lessee - resource
consumer)
- VM-based leases: nếu quan tâm đến các overheads đến các máy ảo (ví dụ: thời gian truyền ảnh máy ảo đến nơi thực thi, thời gian khởi động máy ảo – có thể lên đến 10 phút/6 GB VM image/mạng 100Mbps) Do đó yêu cầu đặt ra là làm thế nào để mô hình hóa chính xác & lập lịch chúng hiệu quả (efficiently)
- Do hai yêu cầu Best-effort (BE) và Advance Reservation (AR) đôi khi mâu thuẫn nhau Ví dụ: nếu chấp nhận nhiều AR vô điều kiện thì có thể sẽ làm các yêu cầu BE chờ vô thời hạn; còn nếu trong BE không có chính sách nhường tài nguyên (preempt) thì sẽ làm giảm số lượng AR được chấp nhận (chưa cần lập lịch)
Mô hình thuê bao tài nguyên của B Sotomayor (2010) [9] được mô tả như sau:
- Lease là khái niệm trừu tượng
- Máy ảo là hiện thực cho đối tượng được thuê bao (leased)
- Tập trung vào một miền quản trị
- Hướng hiệu năng cao
- Hỗ trở cả hai loại best-effort và đặt chỗ (advanced reservation)
- Các best-effort job có thể nhường cho yêu cầu đặt chỗ
5 Bài toán 2: cung cấp tài nguyên tính toán trên hệ thống cloud với tiêu chí tiết kiệm năng lượng:
Với chủ sở hữu của hệ thống cloud (các data-centers) thì họ muốn giảm chi phí vận hành
hệ thống, trong đó tiền điện là chi phí không nhỏ Các data-center thường tiêu thụ một lượng điện rất lớn và tăng mạnh (theo một dự báo của Ủy ban năng lượng của Mỹ), điều này đồng nghĩa với việc khí thải CO2 sẽ thải ra môi trường nhiều gây nhiều hậu quả (global warming) 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 [11][12]
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, ví dụ: một số giải thuật lập lịch nhận biết năng lượng đến từ [11][13]…
Trang 8Hình 1 giải thuật đặt các máy ảo tiết kiệm năng lượng [11]
Hình 2 Giải thuật lập lịch máy ảo dựa trên công suất [13]
Trang 9II TÌNH HÌNH NGHIÊN CỨU LIÊN QUAN
1 So sánh điện toán đám mây và tính toán lưới
Phần này trình bày tóm lược so sánh của điện toán đám mây (Cloud computing) và tính toán lưới (Grid computing) dựa trên tài liệu so sánh của Ian Foster, et.al., (2008) [2] Tôi có đưa vào một số ý kiến đánh giá của cá nhân trong hình vẽ và bảng các tiêu chí so sánh chức năng, nhiệm vụ và mục tiêu của quản lý tài nguyên trong Grids và Clouds
Hình 3 bên dưới 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 3: So sánh hệ thống đ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ụ
Hình 4 so sánh kiến trúc Grid và kiến trúc Cloud:
Trang 10Hình 4: So sánh kiến trúc của Grid và Cloud
Bảng 1: sau so sánh Grid và Cloud qua một số thuộc tính đặc trưng liên quan đến chức
năng và nhiệm vụ của quản lý tài nguyên dành cho hai hệ thống:
Bảng 1 Các tiêu chí so sánh Grids và Clouds
Tiêu chí (criteria) Grids Clouds
Quản lý tài nguyên
- Mô hình tính toán
(Compute model)
- Quản lý batch-job:
+ Portable Batch System (PBS), Condor, Sun Grid Engine (SGE), LSF,…
+ chủ yếu ở hệ thống xếp hàng (queuing system)
- chia sẻ tài nguyên cho tất
cả người dùng lúc cao điểm (cả triệu người dùng)
của dữ liệu
Dữ liệu rất lớn (Tbytes) trên
hệ thống vốn có của người dùng, khi truyền qua mạng
sẽ tốn rất nhiều thời gian
Trang 11- Data locality - Even harder than Cloud
- Shared data stores on NFS/GPFS/PVFS/Luster
- Need scheduler to be data-aware
Hardly Google’s MapReduce on Google File System Need scheduler to be data-aware
- Combining compute
and data management
- In progress of works on schedulter data-aware Not yet
- Virtualization - Not need as much as Cloud
on Virtualization
- Needs Virtualization
- Monitoring
- Mostly physical resource - Hard to fully monitor
resources and services on cloud systems
- Provenance
- Built-in workflows systems:
Chimera, Swift, Keepler, Tavena,…
- More difficult than in Grids
- Programming Models
- Similar to parallel &
distributed computing: MPI, MPICH-G2, GridRPC, Pop-C++,…
- MapReduce
- Mash-up and scripting
- Security Models
- Across many VOs
- Single Sign-On - Clouds mostly is
dedicated data centers belong to one
orgranization
- SSL based
-
Trang 122 Các phần mềm xây dựng hạ tầng điện toán đám mây (cloud computing)
Hiện nay các lĩnh vực liên quan đến Cloud computing đã trở thành những chủ đề quan trọng và sự được quan tâm trong các hội nghị khoa học về song song và phân bố nổi tiếng trên thế giới Cloud computing cũng hình thành cộng đồng nghiên cứu đông trải rộng từ Mỹ, Châu Âu, Châu Á, Úc (nhóm Nimbus Toolkit, nhóm CloudLab,…) Các hướng nghiên cứu chính của Cloud gồm: (i) hướng nghiên cứu xây dựng hạ tầng Cloud theo mô hình “Infrastructure as a Service” (IaaS) - giống hoặc tương tự Amazon Elastic Computing Cloud (Amazon EC2) , các công cụ phổ biến như là EUCALYPTUS , Nimbus Toolkit , OpenNebulla ; (ii) hướng nghiên cứu xây dựng Cloud dưới dạng
“Platform as a Service” (PaaS) – ví dụ Google AppEngine là một dạng này, cho phép người dùng với tài khoản của Google có khả năng tạo các ứng dụng trên nền tảng MapReduce và BigTable ; (iii) hướng nghiên cứu xây dựng mô hình dịch vụ phần mềm trên Cloud kiểu “Software as a Service” (SaaS) – mô hình này khác dạng truyền thống ở điểm số lượng người dùng rất lớn (toàn cầu) và nó có khả năng đàn hồi theo số lượng người dùng – bởi hạ tầng bên dưới của nó lại là một Cloud IaaS Nhóm phát triển ứng dụng hiện đa dạng và thu hút sự quan tâm của cả các cộng đồng khác như các ứng dụng trong lĩnh vực công nghệ sinh học, ví dụ: dự án ScienceCloud
Sự kết hợp giữa hạ tầng Cloud mức “Infrastructure as a Service” (IaaS) và SaaS cho phép chúng ta phát triển khái niệm gọi là “Computing as a Service” (CaaS) Khái niệm CaaS này là một hệ thống các dịch vụ (dạng Web service) cung cấp dịch vụ tính toán theo nhu cầu sử dụng của người dùng Đối với người sử dụng khi sử dụng hệ thống (có khả năng CaaS) này thì các yêu cầu về bảo mật, fault-tolerant, load-balancing, software provisioning, Service Level Agreement (SLA), .v v được cung cấp (cho các người dùng) Verizon là một doanh nghiệp thương mại cung cấp khả năng dịch vụ tính toán (CaaS) với tính năng bảo mật, đảm bảo tính sẳn sàng 100% Nhưng Verizon chưa đề cập đến vấn đề cung cấp phần mềm trên Cloud
Đánh giá về các bộ khung phần mềm xây dựng Cloud IaaS thì EUCALYPTUS là một khung (framework) làm việc mã nguồn mở cho Cloud computing dưới dạng IaaS EUCALYPTUS cung cấp các giao diện tương thích với các thư viện lập trình API sẳn có của Amazon EC2 và Amazon S3 Hiện tại EUCALYPTUS chưa cung cấp tính năng như bảo mật trong khi một CaaS sẽ phục vụ cho hàng ngàn người dùng với dữ liệu riêng tư cao, hoặc chức năng quản lý người dùng, các ảnh của máy ảo (virtual machine image), giao diện cung cấp chức năng giám sát (monitoring) cho từng người dùng và cho người quản trị hệ thống chưa hoàn thiện và còn khá đơn giản EUCALYPTUS cũng không được trang bị Cloud gateway để giao tiếp với hệ thống Cloud khác EUCALUPTUS còn thiếu
sự hỗ trợ cho các phần mềm quản lý cluster thông dụng như Portable Batch System (PBS), SunGrid Engine (mà chỉ hỗ trợ Rocks cluster) EUCALYPTUS hiện được phát