'''' & $ % ỦY BAN NHÂN DÂN TP HCM SỞ KHOA HỌC & CÔNG NGHỆ TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH & TRUYỀN THÔNG BÁO CÁO NGHIỆM THU MÔ HÌNH TÍNH TOÁN HIỆU NĂNG CAO GIÁ RẺ CHO CÁC TRƯỜNG ĐẠI[.]
' ỦY BAN NHÂN DÂN TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN SỞ KHOA HỌC & CÔNG NGHỆ KHOA MẠNG MÁY TÍNH & TRUYỀN THƠNG $ BÁO CÁO NGHIỆM THU MƠ HÌNH TÍNH TỐN HIỆU NĂNG CAO GIÁ RẺ CHO CÁC TRƯỜNG ĐẠI HỌC TS Phạm Văn Hậu THÀNH PHỐ HỒ CHÍ MINH & THÁNG 10/2015 % ' ỦY BAN NHÂN DÂN TP.HCM TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN SỞ KHOA HỌC & CƠNG NGHỆ KHOA MẠNG MÁY TÍNH & TRUYỀN THƠNG $ BÁO CÁO NGHIỆM THU MƠ HÌNH TÍNH TỐN HIỆU NĂNG CAO GIÁ RẺ CHO CÁC TRƯỜNG ĐẠI HỌC CHỦ NHIỆM ĐỀ TÀI CƠ QUAN CHỦ TRÌ (ký tên/đóng dấu xác nhận) (ký tên/đóng dấu xác nhận) THÀNH PHỐ HỒ CHÍ MINH & THÁNG 10/2015 % Tóm tắt nội dung Nhu cầu tính tốn hiệu cao để giải tốn lớn ln ln tồn Tuy nhiên, việc triển khai giải tốn thực khơng phải lúc thuận lợi Trong đó, khó khăn bật chi phí để sở hữu, trì tảng tính tốn hiệu cao theo cách truyền thống thường tốn Gần đây, với việc xuất điện toán đám mây, đa dạng nhà cung cấp loại dịch vụ, xem giải pháp lý tưởng nhằm thay mơ hình ứng dụng cơng nghệ thơng tin truyền thống Ở đó, người ứng dụng cơng nghệ thơng tin th tài ngun tính tốn cần thiết Trong thực tế, cơng nghệ chấp nhận ngày rộng rãi Tuy nhiên, việc ứng dụng điện tốn đám mây khơng phải lúc thuận lợi Thật vậy, với băng thông Internet tại, việc phải tải lượng lớn liệu từ người sử dụng lên dịch vụ điện toán đám mây tốn thời gian chi phí Ngồi ra, số khác lại lo ngại vấn đề an ninh thông tin sử dụng dịch vụ điện tốn đám mây cơng cộng Chính lý trên,trào lưu sử dụng điện tốn máy mây riêng (private cloud) ngày phổ biến Mà có lợi hết có lẽ mơ hình kết hợp điện toán đám mây riêng chung (hay rộng dịch vụ từ nhiều nhà cung cấp dịch vụ) Tuy nhiên, nhiều chuẩn giao tiếp (API) khác nhà cung cấp dịch vụ sử dụng làm cho việc triển khai ứng dụng nhiều nhà cung cấp dịch vụ gặp nhiều khó khăn Hay nói cách khác, tính portability cooperability ứng dụng ĐTĐM thấp Đề tài này, nhắm đến việc giải vấn đề sau: • Xây dựng chế làm tăng tính portability cooperation ứng dụng TTHNC tảng ĐTĐM Một cách cụ thể, xây dựng công cụ triển khai tự động dịch vụ TTHNC tảng ĐTĐM Ở đó, người dùng cần tạo đặc tả dịch vụ cluster, công cụ xây dựng tự động hố q trình triển khai Các đặc điểm bật công cụ: Hỗ trợ nhiều tảng ĐTĐM khác nhau, điều làm tăng tính portability ứng dụng Hiện tại, triển khai thành công Google Cloud, Amazon cloud, TryStack, OpenStack, HP-Cloud ii Hỗ trợ triển khai dịch vụ lúc nhiều tảng ĐTĐM khác Điều đặc biệt có ý nghĩa giải pháp sử dụng nhiều tảng ĐTĐM Có thể dễ dàng sử dụng để triển khai dịch vụ khác ngồi dịch vụ TTHNC Chúng tơi thử nghiệm việc triển khai kịch thực hành an tồn thơng tin Thoả mãn tính dễ sử dụng mở rộng • Chúng tơi muốn xác định tính khả thi việc triển khai cluster ảo tảng điện toán đám mây xây dựng máy tính cấu hình yếu Mục đích nhắm đến xác định loại tốn giải mơi trường cluster ảo Điều có ý nghĩa trường đại học, viện nghiên cứu khơng có nhiều tài ngun tính tốn Chúng tơi cài đặt phần mềm ĐTĐM thực nhiều thực nghiệm vấn đề Abstract The demand for high-performance computing to solve large problems always exist However, applying high performance computing is not always easy One of the biggest challenges is high total cost of ownership Recently, with the emergence of cloud computing , with a diversity of service providers as well as service types, is considered to be the ideal solution for replacing traditional model for applying information technology The computing resources make available as needed (on-demand basis) In practice, cloud computing is more and more widely accepted However, the application of cloud computing is not always favorable Indeed, with the current Internet bandwidth, having to load a large amount of data from users to cloud services is quite costly both in terms of time and money Besides, the co-existing of several cloud computing standards make it difficult to deploy computing service on cloud In addition, information security is also an issue when using public cloud computing services For all the reasons mentioned above, adopting private cloud model becomes more and more popular We believe that the hybrid model that combines the public and private cloud (or several public cloud) would bring most benefit In the context of this project, we want to build a tool that deploies automatically virtual cluster services on cloud computing platform Users simply create the cluster service specification and the tool will handle the deployment process One of the key features of the tool is portability More precisely, the service specification once created is usable to deploy service on any cloud platforms Another key feautre of the tool is multi-cloud support in which the tool is able to deploy one service on multiple cloud platforms In addition, through this project we also want to determine the feasibility of deploying a virtual cluster on low-cost computers If yes, we want to identifying the class of problems can be solved on this virtual cluster environment Mục lục Tổng quan tình hình nghiên cứu 1.1 Tổng quan tính tốn hiệu cao 1.2 Các mơ hình TTHNC 1.3 Thảo Luận Khảo sát công cụ triển khai dịch vụ tảng điện toán đám mây 2.1 Giới thiệu 2.2 Quản lý dòng đời dịch vụ 10 2.2.1 Các công cụ quản lý ĐTĐM thông dụng 11 2.2.2 Tuỳ biến máy ảo với Cloud-init 11 2.2.3 Amazon CloudFormation 13 2.2.4 Google Cloud Deployment Manager 20 2.2.5 Microsoft Azure automation 23 2.2.6 TOSCA 24 2.2.7 Thảo luận 24 Kiến trúc chương trình quản lý dịch vụ TTHNC tảng ĐTĐM 3.1 27 Mô tả yêu cầu 27 3.1.1 Dòng đời dịch vụ 28 3.1.2 Yêu cầu công cụ xây dựng 28 3.2 Kiến trúc tổng quan góc nhìn nhà phát triển 30 3.3 Mô tả chi tiết hệ thống 30 3.3.1 service template 30 i MỤC LỤC ii 3.3.2 Bộ tuỳ biến (deployment template) 36 3.3.3 resource provisioning 36 3.3.4 Bộ quản lý cấu hình 38 3.3.5 Dịch vụ giám sát 42 3.4 Bộ phận quản lý người dùng 43 3.5 Các phần mềm dùng cho tính tốn cụm 43 3.5.1 Giới thiệu chung cluster 43 3.5.2 Cách thức triển khai số cluster middleware thông dụng 44 Triển khai thử nghiệm kết 4.1 4.2 50 Các đánh giá hệ thống triển khai dịch vụ 50 4.1.1 Cài đặt 50 4.1.2 Kết tổng quan 50 4.1.3 Một số đánh giá sơ hiệu hệ thống 51 Thiết kế toán kiểm thử hiệu cluster ảo tảng máy có cấu hình thấp 51 4.3 4.4 4.2.1 Thời gian triển khai cluster 53 4.2.2 Giới thiệu benchmark 54 4.2.3 Kiểm thử ứng dụng thực tế 54 Triển khai thử nghiệm 55 4.3.1 setup môi trường 55 4.3.2 Cấu hình dịch vụ Identity 57 4.3.3 Cấu hình dịch vụ Glance 58 4.3.4 Cấu hình dịch vụ Computing 59 4.3.5 Cài Dashboard 60 Các toán hiệu hệ thống 61 4.4.1 Thời gian triển khai 61 4.4.2 Kết benchmark 62 4.4.3 Các toán Hadoop MapReduce 71 Kết luận kiến nghị 73 A Nghiên cứu tổng quan điện toán đám mây 79 A.1 Vài nét sơ lược lịch sử điện toán đám mây 79 MỤC LỤC iii A.2 Các mơ hình triển khai ĐTĐM 81 A.2.1 ĐTĐM dùng riêng (Private cloud) 81 A.2.2 ĐTĐM cộng đồng (Community cloud) 81 A.2.3 Mơ hình ĐTĐM cơng cộng (Public cloud) 82 A.2.4 Mơ hình ĐTĐM lai (Hybrid cloud) 84 A.3 Các mơ hình dịch vụ điện tốn đám mây 84 A.3.1 Giới thiệu chung 84 A.3.2 Họat hoạt động loại hình dịch vụ 85 A.3.3 Phạm vi kiểm soát tài nguyên khách hàng nhà cung cấp dịch vụ 88 A.3.4 Kiến trúc mơ hình dịch vụ SaaS 89 A.3.5 Kiến trúc mơ hình dịch vụ PaaS 91 A.3.6 Kiến trúc mơ hình dịch vụ IAAS 93 A.4 Các vấn trở ngại ĐTĐM 95 A.5 So sánh tảng IaaS mã nguồn mở 98 A.5.1 Các phần mềm IaaS mã nguồn mở thông dụng 98 A.5.2 So sánh định tính tảng dịch vụ sở hạ tầng 99 B Một số lược đồ cài đặt 102 MỤC LỤC iv DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ĐTĐM Điện toán đám mây TTHNC Tính tốn hiệu cao IaaS Infrastructure as a Service PaaS Platform as a Service SaaS Software as a Service Danh sách bảng 1.1 Các loại cấu hình cho instance C3 1.2 Bảng so sánh dịch vụ TTHNC dựa ĐTĐM 4.1 Triển khai cluster không sử dụng cache 62 4.2 Triển khai cluster sử dụng cache 62 4.3 Kết chạy thực nghiệm IS benchmark ĐTĐM (kết lấy từ lần chạy cho cấu hình) 66 4.4 Kết chạy thực nghiệm EP ĐTĐM (kết lấy từ lần chạy cho cấu hình) 66 4.5 Kết chạy thực nghiệm LU ĐTĐM (kết lấy từ lần chạy cho cấu hình) 67 4.6 Kết chạy thực nghiệm ĐTĐM (kết lấy từ lần chạy cho cấu hình) 67 4.7 Kết chạy thực nghiệm EP ĐTĐM (kết lấy từ lần chạy cho cấu hình) 68 4.8 Kết chạy thực nghiệm LU máy vật lý (kết lấy từ lần chạy cho cấu hình) 68 4.9 Các tham số chạy HPL 70 4.10 Chạy wordcount với nhiều kích thước liệu khác cluster 30 máy 71 4.11 Chạy Wordcount cho 3.3G liệu nhiều kích thước cluster 71 v PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 90 Hình A.14: Kiến trúc SaaS hướng tách biệt Hình A.15: Kiến trúc SaaS hướng multi-tenancy Như đề cập trên, phát triển ứng dụng dạng SaaS phức tạp ứng dụng chạy tảng truyền thống Nó địi hỏi lập trình viên thêm vào đoạn mã để xử lý vấn đề phát sinh trình bày Điều dẫn tới đời tảng cho phép phát triển ứng dụng dạng SaaS dễ dàng Với tảng tốt, lập trình viên khơng phải thêm vào đoạn mã xử lý khác biệt kiến trúc phát sinh SaaS tạo Những thư viện SaaSGrid đảm nhận vai trò nhằm giúp người phát triển thực tac vụ Ngoài ra, để xây dựng ứng dụng dạng multi-tenant, chuyển ứng dụng tồn dạng single-tenant application sang dạng multi-tenant application Nghiên cứu [5] ví dụ Theo đó, có ba thành phần cần thêm vào ứng dụng single-tenant để chuyển thành multi-tenant Chúng bao gồm: • Xác thực: mơi trường multi-tenant có nhiều người dùng có instance app sở liệu nên việc xác thực người dùng tảng cho việc quản lí truy cập Khách hàng gán cho session ticket hệ thống dùng để tải cấu hình tương ứng khách hàng • Cấu hình: Khác với ứng dụng dạng single-tenant, multi-tenant application người dùng chia sẻ instance sở liệu app, nên ứng dụng PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 91 phải cung cấp chế cấu hình phù hợp với khách hàng Để đạt điều đó, tối thiểu loại cấu hình sau phải thực – Layout style: Cho phép người dùng chọn theme style khác – Các cấu hình tổng qt: ví dụ chi tiết profile, cài đặt mã hóa cấu hình khác – File I/O: đường dẫn riêng cho khách hàng dùng để lưu trữ liệu I/O – Workflow: Cho phép tạo workflow cho khách hàng • Cơ sở liệu: Bởi hệ quản trị sở liệu không hỗ trợ multi-tenant nên phải chèn lớp business logic sở liệu Điều đạt cách – Tạo tenants sở liệu Can thiệp vào trình ghi đọc liệu vào/ra sở liệu – Chỉnh sửa câu truy vấn: Câu truy vấn cần thay đổi cho tenant truy cập liệu tương ứng tenant – Load balancing: để đảm bảo hiệu cho sở liệu, chế cân tải cần triển khai cho sở liệu A.3.5 Kiến trúc mơ hình dịch vụ PaaS Sau xem xét vấn đề cần quan tâm xây dựng PaaS Một cách tổng quan, PaaS cung môi trường phát triển triển khai phần mềm Ở có cơng cụ giúp phát triển phần mềm ngơn ngữ lập trình, mơi trường hỗ trợ xây dựng ứng dụng có khả giản nở, công cụ triển khai ứng dụng, module cung cấp, quản lí tài nguyên (xử lí, lưu trữ, mạng) Chúng ta tim hiểu chi tiết thành phần sau đây: Môi trường phát triển triển khai chương trình: Các PaaS cung cấp môi trường phép phát triển triển khai ứng dụng khách hàng Như trình bày Hình A.12, nhà phát triển ứng dụng sử dụng APIs cung cấp tảng ĐTĐM, APIs cửa ngõ để ứng dụng giao tiếp với hệ thống Để bảo vệ hệ thống ĐTĐM từ ứng dụng phát triển người dùng, thông thường PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 92 PaaS hạn chế số API so với thư viện truyền thống Ví dụ mơi trường Python Google App Engine không hỗ trợ APIs tương tác với sở liệu đĩa truyền thống, API liên quan đến socket Tóm lại, tảng PaaS có SDK mơi trường phát triển kèm theo Ví dụ Google App Engine, công cụ phát triển Google bao gồm chương trình web server giả lập mơi trường Google App Engine người dùng thử nghiệm ứng dụng Ngồi phát triển kiểm thử ứng dụng thao tác cần thực PaaS hỗ trợ chạy song song hai phiên ứng dụng Một dành cho kiểm thử dành cho ứng dụng thật Ngoài ra, triển khai ứng dụng lên PaaS vấn đề cần quan tâm ConPaaS (là PaaS) sử dụng tập tin cấu hình (manifest file) để biểu diễn thành phần chương trình được triển khai Dựa vào tập tin cấu hình ConPaaS khởi tạo tài nguyên tương ứng Lưu trữ : Để lưu trữ liệu ứng dụng, PaaS cần sử dụng sở liệu Về nguyên tắc, máy chủ sở liệu sử dụng nhiều khách hàng khác Trong trường hợp Google App Engine, dịch vụ lưu trữ có tên Google Cloud SQL, khách hàng cần khởi tạo máy chủ sở liệu Trên máy chủ này, khách hàng tạo số lượng sở liệu theo nhu cầu Google tính phí dựa vào cấu hình máy chủ sở liệu, lượng liệu truy cập Ngồi ra, Google cịn cho phép xây dựng sách backup liệu theo yêu cầu khách hàng Cơ chế tự động giãn nở (auto scaling) load balancing: Tải ứng dụng tùy thuộc vào nhiều yếu tố thay đổi theo thời gian Các thay đổi theo khn mẫu định ví dụ tải giảm đêm tăng vào ban ngày Tuy nhiên, có thay đổi khơng theo khn mẫu Vấn đề cần giải xác định lượng tài nguyên dành cho ứng dụng để phục vụ người dùng cách tốt Có nhiều cách tiếp cận cho vấn đề Cách thứ xác định tải cực đại hệ thống (tuy lúc thực được) yêu cầu lượng tài nguyên đủ để đáp ứng tải cực đại Vấn đề rõ ràng hướng tiếp cần phần lớn tài nguyên không sử dụng khoảng thời gian tải không đỉnh Cách tiếp cận thứ hai, yêu cầu lượng tài nguyên để đáp ứng tải trung bình hệ thống Cách tiếp cận giảm lãng phí tài nguyên cách tiếp cận thứ vấn đề hệ PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 93 thống không phục vụ người dùng cách hiệu tải hệ thống lớn tải trung bình Cơ chế tự động giãn nở giải vấn đề Ý tưởng sử dụng số tải hệ thống(chẳng hạn phần trăm idle CPU, lượng RAM sử dụng) để định thêm hoặt bớt tài nguyên cho ứng dụng Về mặt thiết kế mơ-đun quản lí giãn nở tồn độc lập với ứng dụng tích hợp vào ứng dụng Điểm chung mơ-đun liên tục lấy thông tin trạng thái sử dụng tài nguyên từ máy ảo phục vụ cho ứng dụng Căn vào ngưỡng xác định người dùng ĐTĐM mô-đun định tăng thêm hay giảm tài nguyên Multi-tenacy: Qui định mức độ chia sẻ tài nguyên tenant Trên phương diện này, chia PaaS làm hai loại dedicated PaaS Shared PaaS Ở đó, dedicated PaaS không chia sẻ tài nguyên tenant ngược lại shared PaaS chia tài nguyên tenant Chúng ta xét kiến trúc shared PaaS ConPaaS [28] để minh hoạ cho hướng tiếp cận Ý tưởng ConPaaS ứng dụng xây dựng dựa tập dịch vụ (service) cung cấp container Nguyên tắc thiết kế ưu tiên chia sẻ container nhiều tenant Điều có nghĩa container khơng thể chia sẻ cần instance container cho tenant tương ứng Hình A.16 mơ tả kiến trúc ConPaaS Trong đó, minh họa ứng dụng sử dụng hai dịch vụ PHP MySQL Trong ví dụ này, để thay sở liệu MySQL, ConPaaS cung cấp dịch vụ cloud-based MySQL Về nguyên tắc, dịch vụ giống MySQL có thêm tính giãn nở tự quản lý (self-managed) ConPaaS cung cấp loại dịch vụ khác PHP, JSP, MySQL, NoSQL, MapReduce TaskFarming phục vụ xử lý batch cho HPC Lưu ý ứng dụng phát triển cách suốt Điều có nghĩa lập trình viên khơng phải thêm đoạn mã để điều chỉnh ứng dụng chạy ConPaaS A.3.6 Kiến trúc mơ hình dịch vụ IAAS Theo [4] kiến trúc tiêu biểu IaaS thông thường bao gồm ba tầng mô tả Hình A.17 Tầng quản lí ĐTĐM (Cloud Manager): Đóng vài trị điều phối hệ thống ĐTĐM Trước hết, điểm truy cập khách hàng vào hệ thống ĐTĐM Khách PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TỐN ĐÁM MÂY 94 Hình A.16: Kiến trúc ConPaaS Hình A.17: Kiến trúc tiêu biểu IaaS hàng đăng kí tài khoản, quản lí tài ngun mà khách hàng thuê, truy cập vào liệu khách hàng Cloud Manager bao gồm chế để xác thực người dùng, tạo thơng tin ví dụ khóa giúp người dùng truy cập vào hệ thống máy ảo Cloud manager cịn quản lí tổng quan việc thỏa mãn yêu cầu tài nguyên khách hàng Khi nhận yêu cầu từ khách hàng, cloud manager phải xác định xem liệu hệ thống có đủ tài ngun để đáp ứng u cầu khơng, có phải chọn cluster manager để cấp phát tài nguyên Quản lí cụm (cluster manager): Nằm tầng kiến trúc tầng Mỗi cluster manager quản lí từ vài trăm đến hàng ngàn máy khác Cluster manager nhận yêu cầu cấp phát tài nguyên từ cloud manager tính tốn xem đáp ứng tồn hay phần u cầu Để có thơng tin tài ngun, cloud PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 95 manager tương tác với Computer Manager để xác định tài nguyên cấp phát máy Quản lí máy (Computer Manager): Phần mềm chạy máy vật lý quản lý tài nguyên Computer manager kết hợp với hypervisor để thực thi, trả lời yêu cầu từ cluster manager máy ảo chạy máy vật lí, máy ảo cịn khởi tạo Ngồi ra, computer manager thực khởi tạo, tạm dừng, dừng, tái cấu hình, cấu hình mạng cho máy ảo theo yêu cầu cluster manager Cuối cùng, computer manager kết hợp với hypervisor để tách biệt máy ảo khách hàng khách để đảm bảo an toàn Trên kiến trúc tiêu biểu Mỗi tảng triển khai thực tế khác A.4 Các vấn trở ngại ĐTĐM Tuy sở hữu nhiều ưu điểm, ứng dụng ĐTĐM gặp số trở ngại định Trong cơng trình nghiên cứu mình, tác giả [3] xác định có 10 trở ngại việc ứng dụng ĐTĐM sau: • Hiệu suất khơng ổn định: Nhiều nghiên cứu cho thấy hiệu máy ảo giảm cách đáng kể thực thi ứng dụng cần nhiều tác vụ I/O Thật vậy, theo VMware ảo hóa làm chậm tốc độ xử lý từ 8% đến 12% [48] Có nhiều giải pháp cho vấn đề Google không sử dụng máy ảo hệ thống ĐTĐM họ mà sử dụng máy vật lý thông qua chế bare-metal provisioning Ngoài ra, nhà phát triển phần cứng trình làng nhiều giải pháp hỗ trợ ĐTĐM Chúng ta kể đến cơng nghệ phục vụ cho việc khởi tạo máy ảo Intel VT-x AMD-V Trong đó, số cấu trúc điều khiển máy ảo cứng hóa Để làm tăng tốc độ truyền nhận liệu máy ảo Intel đề xuất công nghệ Intel VT-c (virtualization technology for connectivity): thành phần quan trọng VT-c hàng đợi vật lý xây dựng sẵn cho máy ảo từ làm tăng tốc độ giao tiếp Ngồi ra, Intel AMD đề xuất kĩ thuật nhằm làm tăng tốc truy xuất nhớ Intel VT-d AMD-Vi (ban đầu đặt tên IOMMU) cho máy ảo • Bảo mật thơng tin kiểm tốn: thông tin đưa lên ĐTĐM không PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 96 nằm tầm kiểm soát cá nhân, tổ chức mà quản lý đơn vị thứ ba Những rủi ro tiềm ẩn bảo vệ người dùng nhà cung cấp dịch vụ, người dùng, bảo vệ người dùng với nhân tố bên phần mềm mã độc, hacker Ngoài ra, sách việc lưu trữ thơng tin quốc gia khác Ví dụ luật yêu cầu liệu khách hàng nội dung bảo vệ quyền phải lưu phạm vi lãnh thổ nước • Chia sẻ danh tiếng: ĐTĐM môi trường nhiều người dùng Ở đó, hành vi người dùng ảnh hưởng đến uy tín người dùng Ví dụ, địa IP dành cho máy ảo bị blacklist hành động người dùng Người dùng khác cấp IP bị ảnh hưởng • Đường truyền liệu bị giới hạn: Một đặc tính ĐTĐM máy chủ xa người sử dụng Chuyện xảy người dùng muốn chuyển lượng lớn liệu đến máy chủ Theo tính tốn với tốc độ truyền liệu kết nối diện rộng thời gian để chuyển liệu lớn lâu • Bản quyền sử dụng phần mềm: Việc tính phí sử dụng phần mềm ĐTĐM khác với mơ hình truyền thống Do đó, cách tính phí sử dụng phần mềm nên thay đổi theo • Data lock-in: Khi sử dụng dịch vụ từ nhà cung cấp dịch vụ phải tuân thủ giao thức qui định nhà cung cấp dịch vụ Điều gây khó khăn cho khách hàng ĐTĐM chuyển qua sử dụng dịch vụ nhà cung cấp dịch vụ khác Ví dụ triển khai Google App Engine, ứng dụng phải viết để chạy tảng Google Khi chuyển dịch vụ qua nhà cung cấp khác ta phải cấu trúc lại chương trình Để giải vấn đề phải có chuẩn thống để tăng tính portability ứng dụng Gần đây, nhiều nỗ lực để chuẩn hóa ĐTĐM • Sự sẵn sàn dịch vụ: Các nhà cung cấp dịch vụ ngừng cung cấp dịch vụ lí chủ quan hay khách quan Ví dụ, q khứ Google Mail gặp cố 1.5h PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TỐN ĐÁM MÂY 97 • Co giãn lưu trữ: Hiện chưa có chế hữu hiệu để co giãn thiết bị lưu trữ mà không ảnh hưởng đến hiệu năng, độ tin cậy • Giãn nở nhanh chống: Tùy thuộc vào loại dịch vụ mà ta sử dụng, có cách tính phí khác Ví dụ, AWS tính phí dựa vào số sử dụng instance instance trạng thái idle Trong Google AppEngine lại tính phí theo số lượng tính tốn thực Trong trường hợp AWS, phải thay đổi số lượng tài nguyên để giảm chi phí ràng buộc khơng vi phạm SLA • Lỗi việc phát triển hệ thống phân tán lớn: Các hệ thống phân tán hệ thống phức tạp dễ phát sinh lỗi Trong [38], tác giả nguyên cứu logs trouble ticket system loại vấn đề gặp phải vận hành hệ thống ĐTĐM PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY A.5 So sánh tảng IaaS mã nguồn mở A.5.1 Các phần mềm IaaS mã nguồn mở thông dụng 98 Nhằm tạo sở cho việc lựa chọn tảng IaaS để triển khai thử nghiệm, phần cung cấp thảo luận ngắn số tảng điện tốn đám mây thơng dụng phác thảo vài khác biệt định tính chúng A.5.1.1 Nimbus Dự án Nimbus [33] bao gồm Cơ sở hạ tầng Nimbus Nền tảng Nimbus Cơ sở hạ tầng Nimbus: sở hạ tầng mã nguồn mở tương thích với dịch vụ EC2/S3 Amazon [2] Nimbus nhắm đến tính cộng đồng khoa học quan tâm, chẳng hạn hỗ trợ ủy nhiệm chứng thực (proxy credentials), tập lệnh nhóm (batch scheduler), cấp phát tài nguyên theo kiểu best-effort tính khác Để hỗ trợ mục tiêu này, Nimbus cung cấp hệ thống lưu trữ đám mây tương thích với với S3 tăng cường với tính quản lý hạn ngạch, tương thích với dịch vụ EC2, trình khách đám mây sử dụng WSRF Nền tảng Nimbus: Mục tiêu tảng Nimbus cung cấp công cụ hỗ trợ làm đơn giản việc quản lý dịch vụ hạ tầng tạo điều kiện cho việc tích hợp với dịch vụ đám mây hữu (OpenStack [35] Amazon) Hiện Nimbus cung cấp công cụ điều phối khởi tạo, điều khiển giám sát ứng dụng đám mây dịch vụ mơi giới theo hồn cảnh để phối hợp tự động lập lại trình khởi tạo cụm máy ảo lớn A.5.1.2 OpenNebula OpenNebula [34] dịch vụ sở hạ tầng mã nguồn mở Thiết kế linh hoạt theo dạng mơ-đun cho phép tích hợp với hệ thống lưu trữ, hệ thống mạng công nghệ ảo hóa khác OpenNebula quản lý việc thay đổi nhu cầu tài nguyên, thêm tài nguyên, di chuyển tài nguyên hoạt động, lưu trạng thái hành, khắc phục cố phần cứng OpenNebula hỗ trợ liên kết đám mây để kết nối với đám mây bên ngồi, nhằm cung cấp khả thích ứng, cách ly hỗ trợ nhiều địa điểm Điều cho phép doanh nghiệp bổ sung hạ tầng sở với lực tính tốn từ dịch vụ đám mây công cộng để đáp ứng yêu cầu tối đa PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TỐN ĐÁM MÂY 99 thực chiến lược tính sẵn sàng cao OpenNebula hỗ trợ nhiều giao tiếp bao gồm, giao tiếp REST, OGF OCCI, tiêu chuẩn đám mây bật, tiêu chuẩn khơng thức AWS EC2 API Chứng thực dựa mật khẩu, cặp khóa SSH RSA, chứng nhận X.509 LDAP Nền tảng cịn tích hợp chứng thực quyền sử dụng để quản lý người dùng với nhiều quyền A.5.1.3 OpenStack OpenStack [35] dịch vụ IaaS cấu thành từ nhiều dịch vụ độc lập Các dịch vụ bao gồm: Openstack Tính tốn (Nova), Openstack Lưu trữ (Swift), OpenStack dịch vụ ảnh (Glance) Nova thiết kế để cung cấp quản lý hệ thống mạng máy ảo lớn, tạo tảng tính tốn đám mây với khả co giãn chống lỗi Swift dùng để tạo hệ thống lưu trữ thay co giãn cách sử dụng cụm máy chủ tiêu chuẩn để lưu trữ hàng Petabytes liệu Glance cung cấp dịch vụ tìm kiếm, đăng ký cung cấp cho ảnh đĩa ảo A.5.1.4 Eucalyptus Eucalyptus [43] tảng IaaS phục vụ cho tảng ĐTĐM dùng riêng Eucalyptus hỗ trợ API tương thích với Amazon EC2 Amazon S3 Nó bao gồm thành phần: Trình điều khiển đám mây (CLC) quản lý tồn hệ thống; Trình điều khiển nhóm (CC) điều khiển nhóm máy vật lý thuộc nhóm; Walrus hệ thống lưu trữ, điều khiển lưu trữ (SC) cung cấp hệ thống lưu trữ dạng block, hỗ trợ EBS; trình điều khiển máy đơn (NC) cài đặt máy trạm tính tốn để điều khiển hoạt động máy ảo, bao gồm: thực thi, kiểm soát kết thúc đối tượng máy ảo A.5.2 So sánh định tính tảng dịch vụ sở hạ tầng Về mặt tính tất tảng đám mây thiết kế cho phép người dùng khởi tạo quản lý sở hạ tầng ảo hóa Tuy nhiên, tảng có khác biệt đáng quan tâm Tác giả [49] đề đưa nhận xét khác biệt qua điểm sau: PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 100 Triển khai phần mềm: Một đặc điểm quan trọng dễ dàng triển khai hệ thống Theo đánh giá triển khai OpenNebuvà Nimbus dễ dàng Triển khai Eucalyptus hay OpenStack khó khăn thành phần cần cấu hình nhiều cách cấu hình khác mà chúng cung cấp Giao tiếp: Về công nghiệp, AWS dịch vụ ĐTĐM sử dụng rộng rãi Các giao thức sử dụng AWS chuẩn thức nhiên nhiều tảng hỗ trợ Tuy nhiên, hỗ trợ dừng mức API Bên cạnh, tảng khác sử dụng giao tiếp riêng tảng Điều dẫn đến khó khăn triển khai ứng dụng nhiều tảng khác Lưu trữ: Hệ thống lưu trữ quan trọng tảng điện toán đám mây ta phải quản lý nhiều ảnh đĩa sẵn sàng cung cấp cho người dùng thời điểm Vì thế, hầu hết dịch vụ sở hạ tầng cung cấp hệ thống lưu trữ đám mây Nimbus cung cấp hệ thống Cumulus dựa hệ thống tập tin POSIX Cumulus cung cấp tiện ích hỗ trợ hệ thống lưu trữ khác bao gồm PVFS, GFS HDFS (dưới dạng mô-đun FUSE) Cumulus sử dụng giao tiếp http https OpenStack Eucalyptus cung cấp hệ thống lưu trữ phức tạp Trong OpenStack, hệ thống lưu trữ gọi Swift, Eucalyptus Walrus Cả hai thiết kết cung cấp khả chống lỗi khả mở rộng hệ thống OpenStack lưu trữ đĩa ảnh hệ thống tập tin POSIX Swift Trong trường hợp đầu tiên, ảnh đĩa di chuyển giao thức SSH, ảnh đĩa chuyển giao giao thức HTTPS trường hợp thứ hai Các đối tượng lưu trữ phân tán nhiều đĩa quản lý Swift nhằm cung cấp nhiều nhân tính tồn vẹn liệu OpenStack hỗ trợ đồng nhiều tảng lưu trữ khác Ceph, NetApp, Nexenta, SolidFire Zadara Kết nối mạng: Các hệ thống mạng quản lý khác có nhiều chọn lựa khác tảng: Eucalyptus đưa bốn phương thức kết nối mạng: managed, managed-noLAN, system and static Trong hai phương thức đầu, Eucalyptus quản lý mạng máy ảo Hai phương thức khác phần cô lập mạng khác cung cấp vLAN Trong phương thức system, Eucalyptus giả định địa IP cấp phát máy chủ DHCP bên PHỤ LỤC A NGHIÊN CỨU TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 101 Trong phương thức static, Eucalyptus quản lý địa IP Nimbus cấp phát địa IP nhờ vào máy chủ DHCP, cấu hình hai cách: tập trung cục Ở cách thứ nhất, dịch vụ DHCP dùng để cấu hình ánh xạ địa MAC tạo Nimbus tới địa IP Trong trường hợp thứ hai, dịch vụ HDCPd cài đặt máy trạm tự động cấu hình với địa phù hợp trước khởi chạy máy ảo OpenStack hỗ trợ hai phương thức quản lý mạng cho máy ảo: mạng phẳng mạng vLAN để tách biệt máy chủ lưu thông mạng OpenStack quản lý địa IP, cho phép sử dụng IP tĩnh IP động Địa IP (Floating Ips) cho phép điều chỉnh lưu thông mạng tới máy ảo có cố xảy OpenStack tận dụng ưu điểm công nghệ mạng điều khiển phần mềm (SDN) cho phép hỗ trợ cấp phát tài nguyên động Hệ thống mạng OpenNebula cung cấp lựa chọn mạng hỗ trợ SDN Phần mềm quản lý máy ảo: Tất tảng ĐTĐM hỗ trợ KVM XEN phần mềm quản lý máy ảo phổ biến OpenNebula hỗ trợ cho VMWare Eucalyptus hỗ trợ phiên thương mại VMWare Nimbus khơng hỗ trợ cho VMWare OpenStack cịn hỗ trợ VMWare, LXC, UML Microsoft’s HyperV Điều làm cho OpenStack lựa chọn hấp dẫn cho thử nghiệm với môi trường phần mềm quản lý máy ảo Chứng thực: Tất tảng sở hạ tầng hỗ trợ chứng nhận X.509 phương thức chứng thực cho người dùng OpenStack OpenNebula hỗ trợ chứng thực thơng qua LDAP, OpenNebula hỗ trợ chứng thực khóa SSH RSA mật Phụ lục B Một số lược đồ cài đặt 102 PHỤ LỤC B MỘT SỐ LƯỢC ĐỒ CÀI ĐẶT Hình B.1: deployment workflow Hình B.2: Xử lý template 103 PHỤ LỤC B MỘT SỐ LƯỢC ĐỒ CÀI ĐẶT Hình B.3: detailed deployment flow Hình B.4: Sample deployment template 104