Trong hệ thống dịch vụ điện toán đám mây, tầng phân phối tài nguyên đóng một vai trò quan trong trong việc cấp phát bộ nhớ, máy chủ, bộ vi xử lý, hệ điều hành… nhằm đáp ứng các yêu cầu d
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- -
TRẦN THỊ NGỌC TRÂM
PHÁT TRIỂN DỊCH VỤ QUẢN LÝ VÀ PHÂN PHỐI TÀI NGUYÊN
TRONG ĐIỆN TOÁN ĐÁM MÂY
LUẬN VĂN THẠC SĨ
Hà Nội – 2011
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- -
TRẦN THỊ NGỌC TRÂM
PHÁT TRIỂN DỊCH VỤ QUẢN LÝ VÀ PHÂN PHỐI TÀI NGUYÊN
TRONG ĐIỆN TOÁN ĐÁM MÂY
Chuyên ngành : Hệ thống thông tin
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN TRỌNG PHÚC
Hà Nội - 2011
Trang 3MỤC LỤC
DANH MỤC HÌNH VẼ 7
DANH MỤC BẢNG BIỂU 8
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT 9
CHƯƠNG 1 – MỞ ĐẦU 10
1.1 Đặt vấn đề 10
1.2 Mục đích nghiên cứu 10
1.2.1 Phạm vi nghiên cứu 11
1.3 Bố cục của luận văn 11
CHƯƠNG 2 – KIẾN THỨC CƠ SỞ 12
2.1 Ảo hóa 12
2.2 Điện toán đám mây 13
2.1.1 Định nghĩa 13
2.1.2 Các đặc điểm cơ bản của điện toán đám mây 14
2.1.3 Các mô hình dịch vụ điện toán đám mây 15
2.1.4 Các mô hình triển khai dịch vụ điện toán đám mây 17
2.1.5 Ưu – nhược điểm của điện toán đám mây 19
2.1.6 So sánh điện toán đám mây và điện toán lưới 20
CHƯƠNG 3 – TẦNG QUẢN LÝ VÀ PHÂN PHỐI TÀI NGUYÊN 23
3.1 Định nghĩa 23
3.2 Vị trí của tầng quản lý và phân phối tài nguyên trong điện toán đám mây 23 3.3 Một số giải pháp ảo hóa cơ sở hạ tầng 25
3.3.1 VMWare 25
3.3.2 Microsoft Hyper-V 27
3.3.3 Citrix XEN 28
3.4 Một số sản phẩm về quản lý và phân phối tài nguyên đã được phát triển 28
3.4.1 vCloud của WMWare 28
3.4.2 Tivoli Provisioning Manager của IBM 29
CHƯƠNG 4 – PHÁT TRIỂN DỊCH VỤ QUẢN LÝ VÀ PHÂN PHỐI TÀI NGUYÊN 30
4.1 Lựa chọn công nghệ 30
4.1.1 Sử dụng REST trong thiết kế các Web Service 30
4.1.2 Giải pháp ảo hóa cơ sở hạ tầng VMWare vSphere 31
4.1.3 Ngôn ngữ lập trình Java 32
4.2 Thiết kế kiến trúc tổng quan 33
4.2.1 Kiến trúc 33
4.2.2 Phân cấp tài nguyên 35
Trang 44.3 Thiết kế các chức năng 35
4.3.1 Các chức năng được phát triển 36
4.3.2 URI của các web service tương ứng với các chức năng 40
4.4 Mô tả chi tiết các chức năng 42
4.4.1 Truy vấn danh sách các trung tâm dữ liệu 42
4.4.2 Truy vấn danh sách các cụm 43
4.4.3 Truy vấn danh sách Resource Pool 44
4.4.4 Truy vấn thông tin chi tiết của một Resource Pool 45
4.4.5 Tạo mới một Resource Pool 47
4.4.6 Cấu hình lại một Resource Pool 49
4.4.7 Xóa một Resource Pool 50
4.4.8 Truy vấn danh sách các mẫu máy ảo 51
4.4.9 Truy vấn danh sách các máy ảo 52
4.4.10 Truy vấn thông tin của một máy ảo 54
4.4.11 Tạo mới máy ảo 55
4.4.12 Cấu hình lại máy ảo 56
4.4.13 Xóa máy ảo 57
4.4.14 Đánh dấu một máy ảo như một máy ảo mẫu 57
4.4.15 Nhân bản máy ảo từ một mẫu 58
4.4.16 Bật máy ảo 61
4.4.17 Tắt máy ảo 62
4.4.18 Khởi động lại máy ảo 62
4.4.19 Khóa một máy ảo 63
4.4.20 Tắt hệ điều hành chạy trên máy ảo 64
4.4.21 Khởi động lại hệ điều hành chạy trên máy ảo 64
4.4.22 Chuyển hệ điều hành chạy trên máy ảo sang chế độ chờ 65
4.5 Cài đặt 66
4.5.1 Cài đặt phần cứng 66
4.5.2 Cài đặt môi trường phát triển 68
CHƯƠNG 5 – KẾT LUẬN 69
5.1 So sánh với một số hệ thống phân phối tài nguyên khác 69
5.2 Đánh giá và kết luận 70
5.3 Định hướng phát triển 71
TÀI LIỆU THAM KHẢO 72
PHỤ LỤC 74
Trang 5DANH MỤC HÌNH VẼ
Hình 1 Mô phỏng điện toán đám mây 13
Hình 2 Các mô hình dịch vụ điện toán đám mây 15
Hình 3 Các mô hình triển khai của điện toán đám mây 17
Hình 4: Các thành phần của một hệ thống điện toán đám mây 24
Hình 5: Vị trí của tầng quản lý và phân phối tài nguyên 25
Hình 6: Cơ sở hạ tầng VMWare 26
Hình 7: Minh họa tổ chức phân cấp tài nguyên trong VMWare vSphere 31
Hình 8: Kiến trúc tầng quản lý và phân phối tài nguyên 34
Hình 9: Phân cấp tài nguyên ảo trong một hệ thống điện toán đám mây 35
Hình 10: Kết nối giữa các thành phần trong hệ thống VMWare 67
Trang 6DANH MỤC BẢNG BIỂU
Bảng 1: Bảng ký hiệu các chữ viết tắt 9
Bảng 2: Điện toán đám mây và điện toán lưới 22
Bảng 3: Các chức năng của dịch vụ quản lý và phân phối tài nguyên 40
Bảng 4: Các URI của các web services 42
Bảng 5: Chức năng truy vấn danh sách các trung tâm dữ liệu 43
Bảng 6: Chức năng truy vấn danh sách các cụm 44
Bảng 7: chức năng truy vấn danh sách Resource Pool 45
Bảng 8: Chức năng truy vấn thông tin chi tiết của một Resource Pool 47
Bảng 9: Chức năng tạo mới một Resource Pool 48
Bảng 10: Chức năng cấu hình lại một Resource Pool 50
Bảng 11: Chức năng xóa một Resource Pool 51
Bảng 12: Chức năng truy vấn danh sách các mẫu máy ảo 52
Bảng 13: Chức năng truy vấn danh sách các máy ảo 54
Bảng 14: Chức năng truy vấn thông tin của một máy ảo 55
Bảng 15: Chức năng tạo mới máy ảo 56
Bảng 16: Chức năng cấu hình lại máy ảo 57
Bảng 17: Chức năng xóa máy ảo 57
Bảng 18: Chức năng đánh dấu một máy ảo như một máy ảo mẫu 58
Bảng 19: Chức năng nhân bản máy ảo từ một mẫu 61
Bảng 20: Chức năng bật máy ảo 62
Bảng 21: Chức năng tắt máy ảo 62
Bảng 22: Chức năng khởi động lại máy ảo 63
Bảng 23: Chức năng khóa một máy ảo 63
Bảng 24: Chức năng tắt hệ điều hành chạy trên máy ảo 64
Bảng 25: Chức năng khởi động lại hệ điều hành chạy trên máy ảo 65
Bảng 26: Chức năng chuyển hệ điều hành chạy trên máy ảo sang chế độ chờ 65
Bảng 27: Các thành phần của nền tảng ảo hóa VMWare cần cài đặt 67
Trang 7BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
API Application Programming Interface Giao diện lập trình ứng dụng
IaaS Infrastructure as a Service Dịch vụ cơ sở hạ tầng
PaaS Platform as a Service Dịch vụ nền tảng
REST REpresentational State Transfer Giao thức truyền trạng thái đặc
trưng trong dịch vụ web
SDK Software Development Kit Bộ công cụ phát triển phần mềm URL Uniform Resource Locator Tham chiếu tài nguyên trên
Internet URI Uniform Resource Identifier Định danh tài nguyên đồng nhất VMM Virtual Machine Manager Hệ thống giám sát máy ảo
Bảng 1: Bảng ký hiệu các chữ viết tắt
Trang 8CHƯƠNG 1 – MỞ ĐẦU
1.1 Đặt vấn đề
Thời gian gần đây “điện toán đám mây” là một trong những chủ đề được nhắc đến nhiều nhất trong các sự kiện công nghệ Được đánh giá là một trong những xu hướng công nghệ mới và dự đoán sẽ là cơn sóng thần về công nghệ Điện toán đám mây ngày càng được nhiều công ty theo đuổi và sản phẩm của nó cũng ngày càng phong phú Tuy vậy, điện toán đám mây ở Việt Nam vẫn còn khá mới mẻ Một vài công ty bắt đầu đi tiên phong trong lĩnh vực này như IBM, Microsoft, HP, Intel, FPT…Việt Nam là một trong những nước đầu tiên trong khu vực sử dụng điện toán đám mây, đang dần tiếp cận dịch vụ đám mây thông qua các dự án của một số doanh nghiệp nước ngoài như Microsoft, Intel … Công nghệ này được coi là giải pháp cho những vấn đề mà nhiều công ty đang gặp phải như thiếu năng lực công nghệ thông tin, chi phí đầu tư hạn chế…Với khả năng tạo điều kiện cho doanh nghiệp hoạt động hiệu quả, thông minh và tiết kiệm chi phí hơn, việc phát triển và cung cấp các dịch vụ điện toán đám mây ở Việt Nam là xu hướng tất yếu của thời đại
Trong hệ thống dịch vụ điện toán đám mây, tầng phân phối tài nguyên đóng một vai trò quan trong trong việc cấp phát bộ nhớ, máy chủ, bộ vi xử lý, hệ điều hành… nhằm đáp ứng các yêu cầu dịch vụ của khách hàng như để cài đặt phần mềm, cài đặt và sử dụng các nền tảng, và sử dụng cơ sở hạ tầng với các mục đích riêng của khách hàng
Ngoài việc sử dụng cho các dịch vụ điện toán đám mây, giải pháp phân phối tài nguyên cũng có thể ứng dụng trong các doanh nghiệp nhằm ảo hóa hạ tầng công nghệ thông tin, đặc biệt là các công ty tin học Các công ty này có đặc thù là việc đầu tư hạ tầng máy móc cho nhân viên rất tốn kém do yêu cầu phần cứng, phần mềm cho mỗi máy để làm môi trường phát triển cao Với giải pháp ảo hóa cơ sở hạ tầng, doanh nghiệp có lợi trong việc tận dụng tối đa tài nguyên hiện có của doanh nghiệp, cấp phát tài nguyên tùy theo yêu cầu đặc thù công việc của mỗi nhân viên Tiết kiệm chi phí mua bản quyền cho các phần mềm, thay vì mỗi máy cần 1 bản quyền, doanh nghiệp có
Trang 9thể mua bản quyền không giới hạn và nhân bản trên các máy ảo để cung cấp tới nhân viên Đồng thời, một lợi thế lớn là việc quản lý tập trung dữ liệu trong một trung tâm
dữ liệu thay vì lưu trữ trên các máy tính cá nhân, hạn chế rủi ro trong việc mất dữ liệu
và bảo mật thông tin
1.2.1 Phạm vi nghiên cứu
Trong khuôn khổ luận văn này, học viên sẽ nghiên cứu và phát triển một phần của
hệ thống điện toán đám mây là tầng phân phối tài nguyên (provisioning layer) theo yêu cầu của các dịch vụ điện toán đám mây thông qua mạng internet Phương pháp cài đặt được dự kiến là sử dụng ngôn ngữ lập trình java để truy cập các API (application programming interface – giao diện lập trình ứng dụng) của nhà cung cấp giải pháp ảo hóa cơ sở hạ tầng như VMWare vSphere Nghiên cứu khả năng cài đặt trên nền tảng của các nhà cung cấp giải pháp ảo hóa cơ sở hạ tầng khác như Microsoft Hyper-V, Citrix XEN…
1.3 Bố cục của luận văn
Luận văn được chia thành 5 chương:
Chương 1 – Mở đầu: chương này sẽ trình bày mục đích và phạm vi nghiên cứu của luận văn
Chương 2 – Cơ sở lý thuyết: nghiên cứu về ảo hóa và các vấn đề xung quanh điện toán đám mây như khái niệm, các đặc điểm của điện toán đám mây, các mô hình điện toán đám mây và so sánh điện toán đám mây với điện toán lưới
Chương 3 – Tầng quản lý và phân phối tài nguyên: nghiên cứu về tầng quản
lý và phân phối tài nguyên và vị trí của nó trong hệ thống điện toán đám mây Liệt kê và trình bày một số giải pháp ảo hóa cơ sở hạ tầng
Chương 4 – Phát triển dịch vụ phân phối tài nguyên: trình bày việc lựa chọn công nghệ để phát triển giải pháp phân phối tài nguyên, thiết kế kiến trúc, chức năng và cài đặt
Chương 5 – Đánh giá, so sánh và định hướng phát triển: đánh giá kết quả của luận văn, những gì đã làm và chưa làm được So sánh với một số hệ thống phân phối tài nguyên đã được phát triển Định hướng phát triển tiếp theo cho đề tài
Trang 10CHƯƠNG 2 – KIẾN THỨC CƠ SỞ
2.1 Ảo hóa
Ảo hóa máy chủ là việc xây dựng nhiều phần cứng máy chủ, còn được gọi là
các máy ảo (virtual machine), trên một nền phần cứng vật lý duy nhất Mỗi máy ảo có
một hoặc nhiều bộ vi xử lý (CPU), một không gian bộ nhớ, không gian lưu trữ, thành phần kết nối mạng và các thành phần khác Ngoài ra, máy ảo cũng cần được cài đầy đủ
hệ điều hành để có thể hoạt động Trong các trung tâm lưu trữ dữ liệu (data center), máy ảo có thể được sử dụng như một nơi lưu trữ tài nguyên và nó cho phép cấp phát tài nguyên một cách linh hoạt và chính xác hơn nhiều so với các máy tính vật lý Như vậy trên thực tế, các nhà cung cấp trung tâm lưu trữ dữ liệu cấp phát máy ảo mà không phải các máy tính vật lý cho khách hàng của họ Đây thực ra là một ưu điểm, vì nhờ tính chất ảo này, các máy ảo có thể được di chuyển từ máy tính vật lý này máy khác
mà không bị gián đoạn hoạt động Điều này là không thể đối với các máy tính vật lý thông thường
Hệ thống giám sát máy ảo (VMM), còn được gọi là hệ thống giám sát (hypervisor), có nhiệm vụ phân vùng tài nguyên vật lý và điều phối tài nguyên được sử dụng bởi các máy ảo Một vài hệ thống giám sát dựa trên hệ điều hành máy chủ để quản lý tài nguyên vật lý, trong khi một số hệ thống khác lại được cài đặt trực tiếp lên phần cứng vật lý và điều khiển, giám sát các truy cập vào nền tảng vật lý này Một hệ thống giám sát cao cấp sẽ phải hỗ trợ tính năng “resource overbooking” Tức là, nhiều máy ảo có thể chia sẻ một lõi vi xử lý hoặc tổng số lượng không gian bộ nhớ của các máy ảo có thể vượt quá lượng không gian bộ nhớ vật lý Với chia sẻ tài nguyên theo thời gian, hệ thống đặt lịch (scheduler) được sử dụng để điều phối tài nguyên sử dụng bởi các máy ảo Khi việc sử dụng tài nguyên được cải thiện, thì đồng thời, thời gian để đáp ứng yêu cầu sẽ tăng lên và khả năng chịu lỗi sẽ giảm đi Thông thường, khi đó một
hệ thống giám sát hiệu năng sẽ được sử dụng để phát hiện những vấn đề về hiệu năng
và sử dụng tính năng di chuyển không gián đoạn hoạt động máy ảo để giải quyết một phần vấn đề
Tương tự như những phần mềm phân vùng tài nguyên cài sẵn trong một số hệ điều hành, các máy ảo có thể được tạo ra trong vài giây và số lượng tài nguyên được cấp phát cho mỗi máy ảo có thể được điều chỉnh cho phù hợp với nhu cầu thực sự của khách hàng trong lúc sử dụng Ngoài ra, tính chất ảo của máy ảo còn cho người dùng
sự linh hoạt trong lựa chọn hệ điều hành phù hợp Vì khách hàng có toàn quyền điều khiển phần mềm sử dụng trong máy ảo của họ, nên họ có thể chuyển từ các máy chủ đang hoạt động của họ sang các máy ảo một cách dễ dàng Nhờ vậy, khách hàng có thể hoạt động với một phòng máy chủ nhỏ hơn và với tỷ lệ sử dụng tài nguyên cao hơn Với một chiến lược giám sát hiệu năng phù hợp, các nhà cung cấp hoàn toàn có thể
“overbook resource” để nâng cao hơn nữa tỷ lệ sử dụng tài nguyên
Trang 112.2 Điện toán đám mây
dữ liệu gộp lại được gọi là một Đám mây (Cloud) Khi một đám mây được xây dựng sẵn sàng để cung cấp dịch vụ cho mọi người dùng và người dùng chỉ phải trả tiền cho những thứ đã sử dụng (pay-as-you-go) thì đó là Đám mây công cộng (Public Cloud); dịch vụ được bán ở đây là điện toán tiện ích (Utility Computing) Bên cạnh đó, chúng
ta sử dụng thuật ngữ Đám mây riêng (Private Cloud) để nói về các trung tâm dữ liệu nội bộ của một doanh nghiệp hoặc tổ chức và không cung cấp dịch vụ cho người dùng công cộng Tóm lại, Điện toán đám mây là tập hợp của dịch vụ cung cấp và điện toán tiện ích nhưng không bao gồm đám mây riêng Mọi người có thể là người dùng hoặc nhà cung cấp dịch vụ, hoặc là người dùng hoặc nhà cung cấp điện toán tiện ích [2]
Theo Wiki:
Hình 1 Mô phỏng điện toán đám mây
Điện toán đám mây (tiếng Anh: cloud computing), còn gọi là điện toán máy chủ
ảo, là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép
Trang 12người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó Theo tổ chức Xã hội máy tính IEEE "Nó là hình mẫu trong đó thông tin được lưu trữ thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các phương tiện máy tính cầm tay, "[13]
2.1.2 Các đặc điểm cơ bản của điện toán đám mây
Theo NIST (National Institute of Standards and Technology - viện nghiên cứu các tiêu chuẩn và công nghệ quốc gia Hoa Kỳ), điện toán đám mây có 5 đặc điểm cơ bản:
a) Tự phục vụ theo nhu cầu (On-demand self-service)
Mỗi khi có nhu cầu, người dùng chỉ cần gửi yêu cầu thông qua trang web cung cấp dịch vụ, hệ thống của nhà cung cấp sẽ đáp ứng yêu cầu của người dùng Người dùng có thể tự phục vụ yêu cầu của mình như tăng thời gian sử dụng máy chủ, tăng dung lượng lưu trữ… mà không cần phải tương tác trực tiếp với nhà cung cấp dịch vụ, mọi nhu cầu về dịch vụ đều được xử lý trên môi trường web (internet)
b) Truy xuất diện rộng (Broad network access)
Điện toán đám mây cung cấp các dịch vụ thông qua môi trường internet Do đó, người dùng có kết nối internet là có thể sử dụng dịch vụ Hơn nữa, điện toán đám mây
ở dạng dịch vụ nên không đòi hỏi khả năng xử lý cao ở phía máy khách, vì vậy người dùng có thể truy xuất bằng các thiết bị di dộng như điện thoại, IPad, laptop… Với điện toán đám mây người dùng không còn bị phụ thuộc vị trí nữa, họ có thể truy xuất dịch
vụ từ bất kỳ nơi nào, vào bất kỳ lúc nào có kết nối internet
c) Dùng chung tài nguyên (Resource pooling)
Tài nguyên của nhà cung cấp dịch vụ được dùng chung, phục vụ cho nhiều người dùng dựa trên mô hình “multi-tenant” Trong mô hình “multi-tenant”, tài nguyên sẽ được phân phát động tùy theo nhu cầu của người dùng Khi nhu cầu của một khách hàng giảm xuống, thì phần tài nguyên dư thừa sẽ được tận dụng để phục vụ cho một khách hàng khác Ví dụ như khách hàng A thuê 10 CPU mỗi ngày từ 7 giờ đến 11 giờ, một khách hàng B thuê 10 CPU tương tự mỗi ngày từ 13 giờ đến 17 giờ thì hai khách hàng này có thể dùng chung 10 CPU đó
Điện toán đám mây dựa trên công nghệ ảo hóa, nên các tài nguyên đa phần là tài nguyên ảo Các tài nguyên ảo này sẽ được cấp phát động theo sự thay đổi nhu cầu của từng khách hàng khác nhau Nhờ đó nhà cung cấp dịch vụ có thể phục vụ nhiều khách hàng hơn so với cách cấp phát tài nguyên tĩnh truyền thống
Trang 13d) Khả năng co giãn (Rapid elasticity)
Đây là tích chất đặc biệt nhất, nổi bật nhất và quan trọng nhất của Cloud Computing Đó là khả năng tự động mở rộng hoặc thu nhỏ hệ thống tùy theo nhu cầu của người dùng Khi nhu cầu tăng cao, hệ thống sẽ tự mở rộng bằng cách thêm tài nguyên vào Khi nhu cầu giảm xuống, hệ thống sẽ tự giảm bớt tài nguyên
Ví dụ: khách hàng thuê một Server gồm 10 CPU Thông thường do có ít truy cập nên chỉ cần 5 CPU là đủ, khi đó hệ thống quản lý của nhà cung cấp dịch vụ sẽ tự ngắt bớt 5 CPU dư thừa, khách hàng không phải trả phí cho những CPU dư thừa này (những CPU này sẽ được cấp phát cho các khách hàng khác có nhu cầu) Khi lượng truy cập tăng cao, nhu cầu tăng lên thì hệ thống quản lý của nhà cung cấp dịch vụ sẽ tự
“gắn” thêm CPU vào, nếu nhu cầu tăng vượt quá 10 CPU thì khách hàng phải trả phí cho phần vượt mức theo thỏa thuận với nhà cung cấp
Khả năng co giãn giúp cho nhà cung cấp sử dụng tài nguyên hiệu quả, tận dụng triệt để tài nguyên dư thừa, phục vụ được nhiều khách hàng Đối với người sử dụng dịch vụ, khả năng co giãn giúp họ giảm chi phí do họ chỉ trả phí cho những tài nguyên thực sự dùng
e) Điều tiết dịch vụ (Measured service)
Hệ thống điện toán đám mây tự động kiểm soát và tối ưu hóa việc sử dụng tài nguyên (dung lượng lưu trữ, đơn vị xử lý, băng thông…) Lượng tài nguyên sử dụng
có thể được theo dõi, kiểm soát và báo cáo một cách minh bạch cho cả hai phía nhà cung cấp dịch vụ và người sử dụng
2.1.3 Các mô hình dịch vụ điện toán đám mây
Các dịch vụ đám mây được chia thành 3 loại chính thường được đề cập đến là các dịch vụ ứng dụng, các dịch vụ nền tảng và các dịch vụ cơ sở hạ tầng
(Software-as-a-Service)
Hình 2 Các mô hình dịch vụ điện toán đám mây
Trang 14a) Các dịch vụ ứng dụng (SaaS – Software-as-a-Service)
Tầng này có lẽ là hầu như quen thuộc với người dùng Web hàng ngày Tầng các dịch vụ ứng dụng này lưu trữ các ứng dụng phù hợp với mô hình SaaS Đây là những ứng dụng chạy trong một đám mây và được cung cấp theo yêu cầu về các dịch vụ cho người dùng Đôi khi các dịch vụ này được cung cấp miễn phí và các nhà cung cấp dịch
vụ tạo ra doanh thu từ những thứ khác như là các quảng cáo Web và nhiều khi các nhà cung cấp ứng dụng tạo ra doanh thu trực tiếp từ việc sử dụng dịch vụ Chúng ta vẫn thường kiểm tra thư bằng Gmail hay Yahoo, gửi các tập tin thuế trực tuyến bằng cách
sử dụng phần mềm Turbo Taxe hay sử dụng Goole Calendar để đặt lịch các cuộc hẹn,
đó chính là dịch vụ ứng dụng trong mô hình của điện toán đám mây Đây chỉ là một vài ví dụ trong hàng ngàn ứng dụng SaaS, các dịch vụ này ngày càng phát triển nhờ
các công nghệ Web
Các ứng dụng được cung cấp qua mô hình SaaS làm lợi cho người tiêu dùng bằng cách giải phóng cho họ khỏi việc cài đặt và bảo trì phần mềm và các ứng dụng có thể được sử dụng thông qua các mô hình cấp phép có hỗ trợ trả tiền để sử dụng các khái
niệm
b) Các dịch vụ nền tảng (PaaS – Platform-as-a-Service)
Đây là tầng ở đó chúng ta thấy cơ sở hạ tầng ứng dụng nổi lên như là một tập hợp các dịch vụ Dịch vụ này nhưng không bị hạn chế tầng giữa như là một dịch vụ, truyền thông như là một dịch vụ, tích hợp như là một dịch vụ, thông tin như là một dịch vụ, kết nối như một dịch vụ, v.v Các dịch vụ ở đây được dành để hỗ trợ cho các ứng dụng Các ứng dụng này có thể đang chạy trong đám mây và chúng có thể đang chạy trong một trung tâm dữ liệu doanh nghiệp truyền thống hơn Để đạt được khả năng mở rộng cần thiết trong một đám mây, các dịch vụ khác nhau được đưa ra ở đây thường được ảo hóa Các ví dụ về các đề nghị trong phần này của đám mây bao gồm các ảnh
ảo của IBM WebSphere Application Server virtual images, Amazon Web Services, Boomi, Cast Iron, và Google App Engine Các dịch vụ nền tảng này cho phép người tiêu dùng chắc chắn rằng các ứng dụng của họ được trang bị để đáp ứng các nhu cầu
của người dùng bằng cách cung cấp cơ sở hạ tầng ứng dụng dựa theo yêu cầu
c) Các dịch vụ cơ sở hạ tầng (IaaS – Infrastructure-as-a-Service)
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 Các dịch vụ ở đây
hỗ trợ cơ sở hạ tầng ứng dụng - bất kể cơ sở hạ tầng đó đang được cung cấp qua một đám mây hay không- và nhiều người tiêu dùng hơn Cũng như với các dịch vụ nền tảng, sự ảo hóa là một phương pháp thường đượ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 Ví dụ về các dịch vụ cơ sở hạ tầng bao gồm
Trang 15VMware, IBM Bluehouse, Amazon EC2, Microsoft Azure Platform, Sun ParaScale
Cloud Storage và nhiều hơn nữa
Các dịch vụ cơ sở hạ tầng tập trung vào vấn đề trang bị đúng các trung tâm dữ liệu bằng cách đảm bảo công suất điện toán khi cần thiết Ngoài ra, do thực tế là các kỹ thuật ảo hóa thường được sử dụng trong tầng này, nên có thể thấy rõ sự tiết kiệm chi
phí do việc sử dụng nguồn lực hiệu quả mang lại
2.1.4 Các mô hình triển khai dịch vụ điện toán đám mây
Các đám mây cong cộng cố gắng cung cấp cho người tiêu dùng với các phần tử công nghệ thông tin tốt 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ì 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
Trang 16trườ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 tiêu 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 tiêu dùng có quyền kiểm soát một chút trên cơ sở hạ tầng, các quy trình đòi hỏi an ninh chặt chẽ và tuân thủ quy định dưới luật không phải lúc nào cũng thích hợp cho các đám mây chung
Các đám mây riêng đưa ra nhiều lợi thế hơn so với loại chung Việc kiểm soát chi tiết hơn trên các tài nguyên khác nhau đang 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 đang được thực hiện không thiết thực cho một đám mây chung, do đúng với các mối quan tâm về an ninh và về quản lý
c) 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ể phác thảo các mục tiêu và nhu cầu của các dịch vụ và nhận được chúng từ đám mây công cộng hay riêng, khi thích hợp 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ụ-tới hạn, an toàn, như nhận các khoản thanh toán của khách hàng, cũng như những thứ là không quan trọng bằng kinh doanh, như xử lý bảng lương nhân viên
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 Phải có thể nhận được và cung cấp các dịch vụ lấy từ các nguồn khác nhau như thể chúng có nguồn gốc từ một chỗ và tương tác giữa các thành phần riêng và chung có thể làm cho việc thực hiện thậm chí phức tạp hơn nhiều
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 thực hành và các công cụ tốt nhất về loại này tiếp tục nổi lên và bất đắc dĩ chấp nhận
mô hình này cho đến khi hiểu rõ hơn
Trang 172.1.5 Ƣu – nhƣợc điểm của điện toán đám mây
a) Các lợi ích của điện toán đám mây
Điện toán đám mây có thể đem lại những lợi ích to lớn cho người sử dụng như:
Tốc đô ̣ xử lý nhanh , cung cấp cho người dù ng những di ̣ch vu ̣ nhanh chóng
và giá thành rẻ dựa trên nền tảng cơ sở hạ tầng tập trung (đám mây)
Chi phí đầu tư ban đầu về cơ sở ha ̣ tầng , máy móc và nguồn nhân lự c của người sử du ̣ng điê ̣n toán đám mây được giảm đến mức thấp nhất
Không còn phu ̣ thuô ̣c vào thiết bi ̣ và vi ̣ trí đi ̣a lý , cho phép người dùng truy
câ ̣p và sử du ̣ng hê ̣ thống thông qua trình duyê ̣t web ở bất kỳ đâu và trên bất
kỳ thiết bị nào mà họ sử dụng (chẳng hạn là PC hoă ̣ c là điê ̣n thoa ̣i di
– Khả năng khai thác và hiệu suất được cài thiện hơn 10-20% so với
hê ̣ thống máy tính cá nhân thông thường
Với đô ̣ tin câ ̣y cao , không chỉ giành cho người dùng phổ thông , điê ̣n toán đám mây phù hợp với các yêu cầu cao và liên tu ̣c của các công ty kinh
doanh và các nghiên cứu khoa ho ̣c Tuy nhiên, mô ̣t vài di ̣ch vu ̣ lớn của điê ̣n toán đám mây đôi khi rơi vào trạng thái quá tải , khiến hoa ̣t đô ̣ng bi ̣ ngưng trê ̣ Khi rơi vào tra ̣ng thái này , người dùng không có khả năng để xử lý các sự cố mà phải nhờ vào các chuyên gia từ đám mây tiến hành xử lý
Khả năng mở rộng được , giúp cải thiện chất lượng các dịch vụ được cung cấp trên “đám mây”
Khả năng bảo mật được cài thiện do sự tập trung về dữ liệu
Các ứng dụng của điện toán đám mây dễ dàng để sửa chữa hơn bởi lẽ chúng không được cài đă ̣t cố đi ̣nh trên mô ̣t má y tính nào Chúng cũng dễ dàng hỗ trơ ̣ và cài thiê ̣n về tính năng
Tài nguyên sử dụng của điện toán đám mây luôn được quản lý và thống kê trên từng khách hàng và ứng dụng , theo từng ngày , từng tuần, từng tháng
Trang 18Điều này đảm bảo cho viê ̣c đi ̣nh lượng giá cả của mỗi di ̣ch vu ̣ do điê ̣n toán đám mây cung cấp để người dùng có thể lựa cho ̣n phù hợp
b) Nhược điểm của điện toán đám mây
Tính riêng tư: Các thông tin người dùng và dữ liệu được chứa trên điện toán
đám mây có đảm bảo được riêng tư, và liệu các thông tin đó có bị sử dụng vì
mô ̣t mu ̣c đích nào khác?
Tính sẵn dùng : Liê ̣u các di ̣ch vu ̣ đám mây có bi ̣ “t reo” bất ngờ , khiến cho
người dùng không thể truy câ ̣p các di ̣ch vu ̣ và dữ liê ̣u của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến công việc ?
Mất dữ liê ̣u : Mô ̣t vài di ̣ch vu ̣ lưu trữ dữ liê ̣u trực tuyến trên đám mây bất ngờ ngừng hoa ̣t đô ̣ng hoă ̣c không tiếp tu ̣c cung cấp di ̣ch vu ̣, khiến cho người dùng phải sao lưu dữ liệu của họ từ “đám mây” về máy tính cá nhân Điều này sẽ mất nhiều thời gian Thâ ̣m chí mô ̣t vài trường hợp , vì một lý do nào đó, dữ liê ̣u người dùng bi ̣ mất và không thể phu ̣c hồi được
Tính di động của dữ liệu và quyền sở hữu : Mô ̣t câu hỏi đă ̣t ra , liê ̣u người
dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đámmây khác ? Hoă ̣c trong trường hợp không muốn tiếp tu ̣c sử du ̣ng di ̣ch vu ̣ cung cáp từ đám mây , liê ̣u người dùng có thể sao lưu toàn bô ̣ dữ liê ̣u của ho ̣ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng các dịc h
vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoa ̣t đô ̣ng
Khả năng bảo mật : Vấn đề tâ ̣p trung dữ liê ̣u trên các “đám mây” là cách
thức hiê ̣u quả để tăng cường bảo mâ ̣t , nhưng mă ̣t khác cũng lại chính là mối
lo của người sử du ̣ng di ̣ch vu ̣ của điê ̣n toán đám mây Bởi lẽ mô ̣t khi các đám mây bi ̣ tấn công hoă ̣c đô ̣t nhâ ̣p , toàn bộ dữ liệu sẽ bị chiếm dụng Tuy nhiên, đây không thực sự là vấn đề của riêng “điê ̣n toá n đám mây” , bởi lẽ tấn công đánh cắp dữ liê ̣u là vấn đề gă ̣p phải trên bất kỳ môi trường nào , ngay cả trên các máy tính cá nhân
2.1.6 So sánh điện toán đám mây và điện toán lưới
Đã có nhiều cuộc tranh luận xoay quanh sự phát triển của Điện toán đám mây
và một trong những điểm quan trọng nhất liên quan đến Điện toán lưới Một số ý kiến cho rằng Điện toán đám mây và Điện toán lưới là 2 khái niệm giống nhau trong khi một số ý kiến khác cho rằng Điện toán đám mây là mở rộng của điện toán lưới Để có thể tìm ra câu trả lời, trước hết chúng ta cần tóm lược 1 số khái niệm để hiểu Điện toán lưới là gì
Điện toán lưới là một xu hướng phát triển từ tính toán song song, phân tán và tính toán hiệu năng cao trước đó Theo [IBM_CC], thuật ngữ điện toán lưới bao hàm
Trang 19việc phân chia một tác vụ tính toán lớn thành nhiều tác vụ nhỏ hơn và thực thi đồng thời trên nhiều máy chủ Wikipedia cung cấp một định nghĩa rộng và ít được trích dẫn hơn trong đó mô tả điện toán lưới như “một dạng của điện toán phân tán ở đó một siêu máy tính ảo hình thành từ một nhóm các máy tính nối mạng, riêng rẽ nhưng hoạt động cùng nhau để thực hiện những tác vụ lớn”
RAD và Berkeley tổng kết một cách ngắn gọn rằng điện toán lưới hỗ trợ những giao thức chia sẻ tính toán ở khoảng cách lớn tuy nhiên những giao thức và giải pháp phần mềm này không phát triển dựa trên cộng đồng của chúng
Theo IBM, ưu điểm chính ở đây là điện toán đám mây không chỉ có thể phân chia tác vụ tính toán lớn thành nhiều tác vụ nhỏ hơn mà còn hỗ trợ các môi trường
“phi lưới” khác (“non-grid”) như kiến trúc ứng dụng web 3 tầng (giao diện người dùng
- logic ứng dụng - cơ sở dữ liệu, ví dụ mô hình MVC) áp dụng cho những ứng dụng Web chuẩn hoặc Web 2.0 Như vậy có thể thấy, IBM nhấn mạnh rằng các website cộng đồng lớn cần nhiều tài nguyên có thể được xây dựng và chạy một cách hiệu quả dựa trên nền kiến trúc điện toán đám mây
Như vậy ta có thể thấy một số điểm tương đồng giữa điện toán đám mây và điện toán lưới theo những định nghĩa ở trên Vậy điểm khác biệt là gì? Bảng sau đây
mô tả một số điểm khác biệt về mặt kỹ thuật giữa điện toán đám mây và điện toán lưới [5]
Tiêu chí đánh giá Điện toán lưới Điện toán đám mây
Phương pháp thực hiện Cấp phát nhiều máy chủ
thực thi một tác vụ
Ảo hóa máy chủ, một máy chủ có thể thực hiện nhiều tác vụ đồng thời
Mẫu sử dụng điển hình Thường được sử dụng cho
việc thực thi một công việc, ví dụ thực thi một chương trình tính toán trong 1 khoảng thời gian nhất định
Thường được sử dụng để cung cấp các dịch vụ, thời gian thực thi thường không xác định
Độ trừu tượng Mức độ chi tiết cao Ví dụ,
thực hiện một công việc tính toán cần bao nhiêu máy tính tham gia, mỗi máy tính thực hiện công việc gì, trong thời gian bao
Thường có độ trừu tượng cao
Trang 20lâu, …
Bảng 2: Điện toán đám mây và điện toán lưới
Một số nghiên cứu khác cũng kết luận rằng điện toán đám mây sẽ kết hợp những ưu điểm của điện toán lưới để trở thành một điểm truy cập duy nhất cho tất cả các nhu cầu tính toán của khách hàng
Do vậy có thể kết luận rằng điện toán lưới là xuất phát điểm của điện toán đám mây Điện toán đám mây đại diện cho xu hướng triển khai các tài nguyên công nghệ thông tin từ cơ sở hạ tầng tính toán, lưu trữ đến những ứng dụng nghiệp vụ thành các dịch vụ cung cấp cho người sử dụng
Trang 21CHƯƠNG 3 – TẦNG QUẢN LÝ VÀ PHÂN PHỐI TÀI NGUYÊN 3.1 Định nghĩa
Điện toán đám mây có thể cung cấp các dịch vụ ở các mức khác nhau như dịch vụ
cơ sở hạ tầng, dịch vụ nền tảng và dịch vụ ứng dụng Trong đó, dịch vụ cơ sở hạ tầng
và phần căn bản quan trong nhất trong điện toán đám mây Không có nó, các dịch vụ khác sẽ không thể tồn tại Hiệu năng của dịch vụ cơ sở hạ tầng quyết định hiệu năng hoạt động của toàn hệ thống Đó là tốc độ của CPU, dung lượng bộ nhớ, băng thông mạng hay tốc độ đĩa cứng, những tài nguyên này được gọi là tài nguyên ảo, là chìa khóa của điện toán đám mây
Trong môi trường điện toán đám mây hay môi trường ảo hóa, phần cứng được chia sẻ giữa các máy ảo để có thể đạt được hiệu năng tốt nhất Điều này phụ thuộc rất lớn vào một hệ thống được gọi là dịch vụ quản lý và phân phối tài nguyên Hệ thống này sẽ bao gồm các hệ thống giám sát máy ảo làm nền tảng ảo hóa và các dịch vụ xử
lý, tối ưu hóa việc sử dụng tài nguyên và thay đổi, mở rộng để phù hợp với các dịch vụ điện toán đám mây mà nhà cung cấp muốn bán Như đã biết ở chương 2, một đặc tính quan trọng của điện toán đám mây là khả năng tự phục vụ theo nhu cầu, dịch vụ quản
lý và phân phối tài nguyên sẽ cung cấp các API cho phép người dùng (kỹ thuật viên hay người dùng cuối) có thể tạo các yêu cầu dịch vụ như tạo vùng tài nguyên, các máy
ảo, cấu hình phần cứng, bố nhớ, CPU hay các thông tin mạng như địa chỉ IP, DNS, Gateway, xóa hay thực hiện tác tác vụ trên chúng như bật, tắt máy ảo… và quản lý các tài nguyên ảo
3.2 Vị trí của tầng quản lý và phân phối tài nguyên trong điện toán
đám mây
Chưa có một kiến trúc nào được coi là đầy đủ cho một hệ thống điện toán đám mây, đơn giản bởi vì các thành phần của một hệ thống đám mây phụ thuộc vào các dịch vụ mà những người sản xuất muốn cung cấp Dưới đây, tôi đưa ra một mô hình điện toán đám mây với các thành phần cơ bản nhất
Trang 22Người sử dụng
dịch vụ
Các dịch vụ ứng dụng
Các dịch vụ hỗ trợ và quản lý Nhà cung cấp dịch vụ điện toán đám mây
Website thương mại điện tử
(bao gồm danh mục các dịch vụ cung cấp, giá tiền, cho phép truy cập tới tài nguyên, tự phục vụ theo nhu cầu
Thanh toán Tính tiền
Các dịch vụ đám mây: các dịch vụ và nhà cung cấp sẽ bán như là ứng dụng, nền tảng và cơ sở hạ tầng
Các dịch vụ nghiệp vụ và hỗ trợ quản lý: như là website thương mại điện tử, quản lý và phân phối tài nguyên, tính tiền, hay bảo mật…
Cơ sở hạ tầng: hệ thống phần cứng bao gồm máy chủ, mạng và các thiết bị lưu trữ
Dịch vụ quản lý và phân phối tài nguyên là một trong các dịch vụ hỗ trợ của hệ thống điện toán đám mây Nó là tầng tương tác với hệ thống cơ sở hạ tầng, làm trung gian để cung cấp các tài nguyên theo yêu cầu của người sử dụng dịch vụ hay các kỹ thuật viên Đồng thời, nó cung cấp dữ liệu cho các hệ thống khác như là tính tiền, điều khiển hay ghi nhật ký sử dụng trên cơ sở các yêu cầu dịch vụ của người dùng
Vị trí của tầng quản lý và phân phối tài nguyên có thể được mô tả như hình vẽ sau:
Trang 23Quản lý và phân phối tài nguyên
Cơ sở hạ tầng
Máy chủ Lưu trữ Mạng
Website thương mại điện tử
(bao gồm danh mục các dịch vụ cung cấp, giá tiền, cho phép truy
cập tới tài nguyên, tự phục vụ theo nhu cầu
Các dịch vụ ứng dụng Các dịch vụ nền tảng
Các dịch vụ
Các dịch vụ cơ sở hạ tầng
Các dịch vụ khác
Quản lý bản quyền
Đo lường
Hình 5: Vị trí của tầng quản lý và phân phối tài nguyên
Tầng phân phối tài nguyên là tầng duy nhất tương tác trực tiếp với cơ sở hạ tầng trong điện toán đám mây để quản lý và phân phối tài nguyên cho các ứng dụng trên toàn hệ thống điện toán đám mây Nhờ đó, hệ thống có thể quản lý được tài nguyên mà mỗi người sử dụng yêu cầu làm căn cứ cho việc tính tiền và cung cấp thông tin hỗ trợ tới người dùng
3.3 Một số giải pháp ảo hóa cơ sở hạ tầng
virtualization_villa.pdf
Có nhiều nhà cung cấp các giải pháp ảo hóa cơ sở hạ tầng Trong phần này, tôi
sẽ trình bày một số các nền tảng ảo hóa được sử dụng phổ biến nhất như VMWare vSphere, Citrix XEN, Microsoft Hyper-V…
3.3.1 VMWare
VMWare là công ty hàng đầu trong lĩnh vực cung cấp các giải pháp ảo hóa Từ ứng dụng desktop tới các trung tâm dữ liệu VMWare đi tiên phong trong việc giải quyết các thách thức trong việc biên dịch mã nhị phân Giải pháp ảo hóa của VMWare bao gồm các thành phần sau:
Trang 24 VMWare Player: phiên bản miễn phí của VMWare, có thể chạy trên các thiết bị ảo của máy khách hay các máy ảo khác được tạo ra từ các sản phẩm của nhưng bản thân nó không thể tạo mới các máy ảo Nó hỗ trợ các hệ điều hành từ 32-64 bit, và chia sẻ các tập tin giữa máy khách và máy trạm (guest
và host) bằng cách kéo thả
VMWare Server ( hay VMWare GSX Server trước đây): cũng miễn phí, là
bộ phần mềm ảo hóa dành cho máy chủ phân khúc sơ cấp VMWare Server
có thể tạo mới, sửa đổi cấu hình, bật tắt các máy ảo Nó sử dụng mô hình khách-chủ (client-server), cho phép truy cập từ xa tới các máy ảo Nó hỗ trợ đóng gói môi trường, mỗi một máy ảo được lưu trên chỉ 1 tập tin
VMWare Workstation: Giải pháp ảo hóa VMWare Desktop Bộ phần mềm này cho phép người sử dụng có thể cài đặt nhiều máy tính ảo x86 và x86-64
và sử dụng một hoặc nhiều hơn các máy ảo cùng một lúc với các hệ điều hành khác nhau
VMWare Infrastructure: Giải pháp ảo hóa của VMWare cho các doanh nghiệp Nó bao gồm:
Hình 6: Cơ sở hạ tầng VMWare
– VMWare ESX: hệ thống giám sát máy ảo VMWare
Trang 25– VMware Virtual Simmetric Multi-Processing (Đa xử lý): cho phép một máy ảo có thể sử dụng tới 4 bộ vi xử lý (CPU) Chỉ có VMWare mới cung cấp tính năng này
– VMware virtual machine storage technology (Công nghệ lưu trữ máy ảo VMWare): tốc đổ xử lý cao, hệ thống tập tin được phân cụm, cho phép một kho lưu trữ có thể được truy cập từ nhiều máy ảo khác nhau cùng lúc
– VMware Distribuited Resource Scheduler (bộ lập lịch tài nguyên phân tán): tự động gán và điều chỉnh các tài nguyên theo yêu cầu – VMware High Availability (Tính sẵn sang cao): độ sẵn sàng cao cho môi trường công nghệ thông tin ảo mà không cần đến các giải pháp phân cụm truyền thống phức tạp và đắt tiền
– VMWare VMotion: có thể chuyển các máy ảo đang chạy từ một máy chủ vật lý này sang một máy khác mà không tác động đến người dùng cuối
– VMWare Storage VMotion: có thể điều chỉnh dung lượng lưu trữ trên đĩa thông qua các tập hợp thiết bị lưu trữ
3.3.2 Microsoft Hyper-V
Trước đây được biết đến với cái tên Windows Server Virtualization và tên mã Viridian, Hyper-V là công nghệ ảo hoá server thế hệ mới của Microsoft và là thành phần quan trọng trong hệ điều hành Windows Server 2008
Với Hyper-V, Microsoft cung cấp một nền tảng ảo hóa mạnh và linh hoạt, có thể đáp ứng nhu cầu ảo hóa mọi cấp độ cho môi trường doanh nghiệp
Hyper-V cho phép các máy ảo khai thác lượng bộ nhớ rất lớn, các bộ xử lý đa nhân mạnh mẽ, các giải pháp lưu trữ động, và thế hệ mới của mạng tốc độ cao Điều
đó có nghĩa ngay cả những ứng dụng máy chủ quan trọng cần nhiều tài nguyên cũng trở thành những ứng viên khả thi cho việc hợp nhất và ảo hóa thay vì yêu cầu các máy chủ dành riêng
Microsoft Hyper-V hỗ trợ phân đoạn độc lập Một phân đoạn là mọt đơn vị tách biệt, hỗ trợ bởi hệ thống giám sát mà các hệ điều hành được thực thi Một hệ thống giám sát phải có ít nhất một phân đoạn cha, chạy Windows Server 2008 Ngăn xếp ảo hóa chạy trong phân đoạn cha và có truy cập trực tiếp với các thiết bị phần cứng Phân đoạn cha sau đó sẽ sinh ra các phân đoạn con để đặt các hệ điều hành ảo Một phân đoạn ảo không truy cập tới bộ xử lý vật lý, cũng không xử lý các tương tranh thực Thay vì đó, nó có một khung nhìn ảo của bộ xử lý và chay trong địa chỉ ảo Các phân đoạn con không truy cập trực tiếp tới các tài nguyên phần cứng, nhưng thay vì đó có
Trang 26một khung nhìn ảo của các tài nguyên trong các thiết bị ảo Bất kỳ yêu cầu tới các thiết
bị ảo được chuyển trực tiếp tới các thiết bị trong phân đoạn cha thông qua VMBus VMBus là kênh có thể kích hoạt giao tiếp giữa các phân đoạn trong
Kết quả trả lời cho các yêu cầu trên cũng được chuyển trực tiếp thông qua VMBus Các thiết bị ảo cũng có thể sử dụng sự ưu việt của tính năng ảo hóa máy chủ Windows, tên là Enlightened I/O, cho lưu trữ, mạng và các hệ thống đồ họa con Enlightened I/O là được cài đặt ảo dành riêng cho các giao thức giao tiếp bậc cao như
là SCSI để tận dụng ưu điểm của VMBus một cách trực tiếp, làm cho việc giao tiếp hiệu quả hơn Tuy nhiên, nó yêu cầu hệ điều hành được cài đặt trên máy ảo phải hỗ trợ Enlightened I/O
3.3.3 Citrix XEN
Nền tảng ảo hóa XEN là công nghệ được biết đến rộng rãi như là phần mềm ảo hóa nhanh và an toàn nhất trong lĩnh vực công nghiệp XEN mang lại tốc độ xử lý gần như nguyên bản cho các máy chủ ảo, được thiết kế để các máy chủ ảo đạt hiệu quả cao nhất và hoạt động gần như liên tục XEN được tạo ra bởi Phòng thí nghiệm máy tính trường đại học Cambridge và ngày nay được phát triển và bảo trì bởi XEN như một phần mềm miễn phí, bản quyền thuộc GNU General Public License
3.4 Một số sản phẩm về quản lý và phân phối tài nguyên đã đƣợc
phát triển
3.4.1 vCloud của WMWare
vCloud là một phần mềm hỗ trợ các lập trình viên trong việc thực hiện các tác
vụ tương tác với VMWare thông qua web services REST vCloud khách – chủ giao tiếp với nhau thông qua HTTP (HyperText Transfer Protocol - giao thức truyền tải siêu văn bản), các đối tượng của vCloud được truyền đi dưới định dạng XML
Các giao thức:
GET: nhận thông tin của một đối tượng
POST: tạo một đối tượng
PUT: thay đổi một đối tượng
DELETE: xóa một đối tượng
vCloud hỗ trợ việc tải lên/xuống các định dạng ảo mở (OVF – Open Virtualization Format) và các tập tin ảnh từ máy trạm tới các máy ảo Nó cũng hỗ trợ việc sao chép các ứng dụng ảo, các mẫu ứng dụng hay các tập tin giúp triển khai việc cài đặt máy ảo và các ứng dụng trên đó, cấu hình các thông tin mạng cần thiết và quản
lý các máy ảo được tạo ra
Trang 27vCloud là phần mềm bản quyền, để sử dụng, người dùng cần mua bản quyền Giá cả của nó tùy thuộc vào số lượng máy ảo mà người dùng muốn triển khai và quản
lý thích hợp cho các doanh nghiệp nhỏ muốn triển khai ngay cơ sở hạ tầng ảo mà không phát triển thêm hay cung cấp dịch vụ điện toán đám mây Giá tham khảo cho một phần mềm vCloud để quản lý 25 máy ảo là $3750
3.4.2 Tivoli Provisioning Manager của IBM
Tivoli Provisioning Manager (TPM) của IBM là sản phẩm cho phép tạo và quản lý cơ sở hạ tầng động bằng cách tự động quản lý các máy chủ vật lý, các máy chủ
ảo, các phần mềm, việc lưu trữ và các hệ thống mạng
TPM cung cấp cho các doanh nghiệp một giải pháp để quản lý môi trường ảo hóa của họ dễ dàng hơn Họ có thể triển khai một máy ảo chỉ trong vài giây và hàng nghìn máy ảo đồng thời
TPM còn hỗ trợ cả cho việc triển khai trên cơ sở hạ tầng hỗn tạp Đó là khả năng hỗ trợ hệ thống phần cứng ảo khác nhau từ một hệ thống quản lý duy nhất - có thể sử dụng các giải pháp ảo hóa cơ sở hạ tầng của VMware, PowerVM, và Xen và quản lý chúng trên cùng một giao diện điều khiển
Cũng như vCloud, TPM là phần mềm bản quyền, giá tham khảo cho 1 bộ sản phẩm khoảng $1000 với sự hỗ trợ 12 tháng
vCloud không hỗ trợ API dưới dạng web services mà chỉ hỗ trợ giao diện ứng dụng Do đó, cũng chỉ thích hợp dùng cho doanh nghiệp muốn triển khai cơ sở hạ tầng
ảo hóa trong nội bộ doanh nghiệp
Các tính năng, ưu điểm và lợi ích của TPM được mô tả chi tiết ở website của IBM: http://www-01.ibm.com/software/tivoli/products/prov-mgr/features.html
Trang 28CHƯƠNG 4 – PHÁT TRIỂN DỊCH VỤ QUẢN LÝ VÀ PHÂN PHỐI TÀI NGUYÊN
4.1 Lựa chọn công nghệ
4.1.1 Sử dụng REST trong thiết kế các Web Service
REST được viết tắt bởi Representational State Transfer được giới thiệu đầu tiên
năm 2000 Là cách thiết kế kiến trúc phần mềm cho các hệ thống phân phối Được viết dưới dạng một Servlet để trả lời các yêu cầu dưới định dạng HTTP Dịch vụ REST nhận các yêu cầu HTTP và chuyển đổi chúng thành các dữ liệu đầu vào để thực hiện một nhiệm vụ nào đó Tùy thuộc vào yêu cầu được gửi đi, nó sẽ trả về dữ liệu phù hợp
từ Servlet
Các đặc điểm chính của REST:
Trong REST, mỗi một đối tượng tài nguyên sẽ được xác định bởi một định danh Thông qua HTTP, mỗi đối tượng này sẽ có các đặc tả dưới dạng URI (Uniform Resource Identifier – Định danh tài nguyên đồng nhất) của
nó
Các tài nguyên được tổ chức phân cấp với các URI của nó
REST hỗ trợ các phương thức GET, POST, PUT, DELETE trên HTTP để thực hiện các tác vụ của nó đối với tài nguyên
Các đối tượng tài nguyên trong REST được hỗ trợ đặc tả bằng nhiều kiểu dữ liệu khác nhau như XML, JSON, XHTML…
REST là giải pháp tốt để ứng dụng vào việc phát triển dịch vụ quản lý và phân phối tài nguyên vì:
Trong môi trường điện toán đám mây, các thiết bị được ảo hóa và nhóm thành các kiểu tài nguyên ảo khác nhau như là máy ảo, lưu trữ dữ liệu ảo, mảng ảo Tất cả các tài nguyên này có thể được định danh và gán với một URI xác định
Các tài nguyên trong điện toán đám mây có thể được tổ chức phân cấp phù hợp với đặc điểm của REST như là:
– Chia các tài nguyên thành nhiều trung tâm dữ liệu ảo (Virtual Data Center)
– Chia các trung tâm dữ liệu ảo thành các cụm dữ liệu ảo (Virtual Cluster)
– Chia các cụm dữ liệu ảo thành các vùng dữ liệu ảo (Resource Pool) – Trong các Resource Pool sẽ chứa các máy ảo
Trang 29Hình dưới đây minh họa phân cấp tài nguyên mà chúng ta có thể tổ chức trong VMWare vSphere:
Hình 7: Minh họa tổ chức phân cấp tài nguyên trong VMWare vSphere
Trong môi trường ảo hóa, các thao tác trên tài nguyên chủ yếu là tạo mới, cấu hình lại/sửa đổi, truy vấn thông tin và xóa tài nguyên Vì thế các phương thức của HTTP là POST, PUT, GET, DELETE phù hợp với các thao tác này
Các thuộc tính của tài nguyên có thể được mô tả dưới dạng XML, JSON, XHTML…
Trong môi trường ảo hóa, các thao tác trên tài nguyên không làm thay đổi định danh của chúng Vì thế các thao tác trên tài nguyên có thể được thiết kế như các phiên làm việc không xung đột
4.1.2 Giải pháp ảo hóa cơ sở hạ tầng VMWare vSphere
Như đã được trình bày trong chương 3, có nhiều giải pháp ảo hóa cơ sở hạ tầng Trong luận văn này, tôi sử dụng giải pháp ảo hóa cơ sở hạ tầng của VMWare vSphere
vì các lý do sau:
VMWare là tổ chức có uy tín lâu năm trong lĩnh vực ảo hóa
VMWare vSpherec cung cấp các API để làm việc với cơ sở hạ tầng ảo dưới dạng web service, được đặt trên máy chủ vCenter và ESX Các API này cung cấp đầy đủ các thao tác cần thiết để điều khiển và quản lý các thành phần trong cơ sở hạ tầng ảo như là các tài nguyên tính toán, các máy ảo, tài nguyên mạng, lưu trữ
VMWare vSphere cung cấp giao diện tương tác để ảo hóa cơ sở hạ tầng dưới nhiều dạng:
– vSphere Client: cung cấp giao diện dưới dạng desktop để quản lý và phân phối tài nguyên bằng tay
– vSphere Power CLI (Command-Line Interface): cung cấp giao diện tương tác dưới dạng các dòng lệnh
Trang 30– vSphere Web Service SDK: cung cấp các API dưới dạng web service
để hỗ trợ các hệ thống điện toán đám mây trong lập trình tự động ảo hóa, quản lý, phân phối tài nguyên và tối ưu hóa việc sử dụng tài nguyên
VMWare vSphere hỗ trợ hệ thống tài liệu đầy đủ:
– Các tài liệu hướng dẫn cài đặt, – Các tài liệu hướng dẫn lập trình, – Các tài liệu hướng dẫn thao tác với tài nguyên, – Một số ví dụ được viết bằng Java và C#
VMWare vSphere ESX là miễn phí
VMWare vSphere Client có bản dùng thử 45 ngày (phục vụ cho quá trình kiểm thử hệ thống ở giai đoạn cuối của luận văn)
Các kiểu tài nguyên trong vSphere bao gồm:
Trung tâm dữ liệu ảo (Virtual Data Center)
Cụm dữ liệu (Cluster)
Vùng dữ liệu (Resource Pool)
Lưu trữ dữ liệu (Data Store)
Máy ảo (Virtual Machine)
Mẫu mấy ảo (Template)
Mạng (Network)
4.1.3 Ngôn ngữ lập trình Java
Ngôn ngữ lập trình được sử dụng trong luận văn này để phát triển dịch vụ quản
lý và phân phối tài nguyên là Java vì:
Java là ngôn ngữ lập trình bậc cao, mạnh và có thể chạy trên nhiều nền tảng khác nhau
Là ngôn ngữ lập trình mã nguồn mở nên dễ tìm kiếm tài liệu và các hướng dẫn lập trình
Vì vSphere web service SDK có các ví dụ minh họa trong sách hướng dẫn lập trình bằng Java
Chủ sở hữu của Java là Sun có hỗ trợ một công nghệ rất mạnh để có thể làm việc với REST web service thân thiện và chuyên nghiệp là Sun Jersey
Trang 31 Vì học viên có nhiều năm kinh nghiệm với ngôn ngữ lập trình Java nên sẽ thuận lợi hơn trong quá trình viết các ví dụ minh họa cho luận văn
4.2 Thiết kế kiến trúc tổng quan
4.2.1 Kiến trúc
Có nhiều lý do giải thích vì sao cần thiết phải phát triển dịch vụ quản lý và phân phối tài nguyên đáp ứng được một hệ thống cung cấp dịch vụ điện toán đám mây với API của nhiều hệ thống giám sát máy ảo (hypervisor) khác nhau như VMWare ESX/ESXi, Microsoft Hyper-V, Citrix XEN server… như là:
Các ứng dụng/dịch vụ khác nhau khi chạy trên các hệ thống hypervisor khác nhau sẽ có được sự hỗ trợ hay tốc độ khác nhau
Một hệ thống giám sát không thể thỏa mãn hết mọi yêu cầu cho các hệ thống dịch vụ điện toán đám mây mà được thiết kế chức năng và dịch vụ phong phú
Một số yêu cầu hệ thống hay yêu cầu máy ảo có thể được phục vụ hiệu quả hơn hay với chi phí hợp lý hơn ở các hypervisor khác nhau
Nhà cung cấp dịch vụ hypervisor có thể chặn hay tạm ngưng cung cấp dịch
vụ khi hệ thống cần nâng cấp Khi đó, sử dụng nhiều hypervisor sẽ có phương án dự phòng để dịch vụ cung cấp cho khách hàng không bị đình trệ
Thêm lựa chọn phong phú cho người sử dụng dịch vụ điện toán đám mây
Vì thế, họ có thể chọn sản phẩm mà họ cảm thấy thú vị hơn
Trong dịch vụ quản lý và phân phối tài nguyên trong điện toán đám mây của luận văn này Học viên đưa ra một thiết kế tổng quan cho việc cung cấp dịch vụ với đa hệ thống giám sát tài nguyên Phần cài đặt ở mục 4.4 sẽ được viết minh họa cho việc cài đặt dịch vụ với VMWare ESX
Dưới đây là kiến trúc tổng quan:
Trang 32Hình 8: Kiến trúc tầng quản lý và phân phối tài nguyên
Các dịch vụ điện toán đám mây: chứa các dịch vụ của điện toán đám mây, các dịch vụ này sẽ gọi đến dịch vụ quản lý và phân phối tài nguyên được phát triển trong luận văn này để thực hiện các thao tác với hệ thống tài nguyên ảo Phần này được cung cấp bởi các hệ thống chứa các dịch vụ điện toán đám mây như dịch vụ cung cấp ứng dụng, dịch vụ cung cấp nền tảng, dịch vụ cung cấp cơ sở hạ tầng Chẳng hạn như hệ thống website thương mại điện tử
Phần Core: chứa các hàm thao tác trực tiếp với API của vSphere web service SDK để thực hiện yêu cầu quản lý và phân phối tài nguyên Phần này cũng chứa các lời gọi tới các hệ thống khác như hệ thống tính tiền (Billing), hệ thống bảo mật (Security), hệ thống lưu thông tin các thao tác (Logging)… Phần này được phát triển bằng ngôn ngữ lập trình Java
Phần Web Services: chứa các REST web services để cung cấp API cho các truy cập để yêu cầu quản lý và phân phối tài nguyên
Trang 33 API VMWare: là các thư viện và API được hỗ trợ bởi VMWare vSphere để thực hiện các thao tác với máy chủ vSphere nhằm ảo hóa cơ sở hạ tầng
API Microsoft: là các thư viện và API được hỗ trợ bởi Microsoft Hyper-V
để thực hiện các thao tác ảo hóa cơ sở hạ tầng
API XEN: là các thư viện và API được hỗ trợ bởi Citrix XEN để thực hiện các thao tác ảo hóa cơ sở hạ tầng
Phần cơ sở hạ tầng: chứa máy chủ VMWare vSphere, các thiết bị phần cứng khác như các server, mạng, ổ cứng lưu trữ…
4.2.2 Phân cấp tài nguyên
Như đã nói trong mục 4.1.1, hệ thống tài nguyên ảo trong điện toán đám mây có thể được thiết kế phân cấp như hình sau:
Datacenter
Các mẫu máy ảo RP 1 RP 2 RP 3 Các máy chủ (hosts) Các hệ thống mạng ảo
CPU Memory Ổ đĩa cứng Các thiết bị ảo
Hình 9: Phân cấp tài nguyên ảo trong một hệ thống điện toán đám mây 4.3 Thiết kế các chức năng
Dịch vụ quản lý và phân phối tài nguyên được thiết kế với mục đích là để ảo hóa cơ sở hạ tầng điện toán đám mây cho các doanh nghiệp, dùng cho kỹ thuật viên của các nhà cung cấp dịch vụ đám mây và đồng thời dùng cho chức năng tự phục vụ việc cấp phát và sử dụng tài nguyên ảo của người dùng trong các hệ thống dịch vụ điện toán đám mây Người sử dụng có thể là các doanh nghiệp thuê dịch vụ đám mây của nhà cung cấp hoặc các khách hàng cá nhân tùy Mỗi doanh nghiệp hoặc nhóm khách hàng cá nhân sẽ được cấp một Resource Pool mà chứa các tài nguyên máy ảo, mạng, cpu, bộ nhớ phù hợp tùy theo yêu cầu thuê dịch vụ Các thao tác của người dùng sẽ chủ yếu tác động lên tài nguyên Resource Pool và các máy ảo Vì thế, luận văn này sẽ tập trung thiết kế chủ yếu các chức năng tương tác trên resource pool và máy ảo
Trang 344.3.1 Các chức năng đƣợc phát triển
Truy vấn danh sách
các trung tâm dữ liệu
Truy vấn danh sách các trung tâm dữ liệu, thông tin bao gồm:
Các thông tin tài nguyên
bộ nhớ gán cho Resource Pool
createResourcePool
Truy vấn thông tin
của một Resource
Pool theo tên
Truy vấn thông tin chi tiết của một Resource Pool theo tên, thông tin lấy
ra bao gồm:
Tên Resource Pool (như
dữ liệu đầu vào)
Số máy ảo có trong Resource Pool
Số máy ảo đang chạy
Các thông tin về tài
getResourcePool
Trang 35 Các thông tin thống kê việc sử dụng tài nguyên trong Resource Pool theo ngày, tuần, tháng, năm
Thay đổi thông tin
Lấy ra tất cả các mẫu máy ảo để phục
vụ cho việc tạo mới máy ảo từ một mẫu có sẵn, các thông tin lấy ra bao gồm:
Tên mẫu máy
Trang 36 Dung lượng ổ cứng Truy vấn danh sách
các máy ảo
Lấy ra tất cả các máy ảo có trong một Resource Pool Các thông tin lấy ra bao gồm:
Tên máy ảo
Truy vấn thông tin
chi tiết một máy ảo
Lấy thông tin chi tiết một máy ảo
Bao gồm các thông tin sau:
Tên máy ảo
Các thông tin chi tiết về tài nguyên CPU (tài nguyên được gán, giới hạn, tài nguyên đã sử dụng, tài nguyên còn chưa sử dụng, tài nguyên được phép sử dụng vượt hạn mức…)
Các thông tin chi tiết về tài nguyên bộ nhớ (tài nguyên được gán, giới hạn, tài
getVM
Trang 37nguyên đã sử dụng, tài nguyên còn chưa sử dụng, tài nguyên được phép sử dụng vượt hạn mức…) Tạo mới máy ảo Cho phép người dùng tạo mới một
máy ảo bằng cách truyền vào các tham số:
Tên máy ảo (tên máy ảo là duy nhất)
Xóa một máy ảo Xóa thông tin máy ảo theo tên máy
ảo được truyền vào
Nhân bản máy ảo Nhân bản một máy ảo và cho phép
cấu hình lại một số thông tin như:
CPU, bộ nhớ, dung lượng ổ cứng, các thông tin về mạng như địa chỉ IP, Subnetmask, DNS, Getway
Chức năng này hỗ trợ việc sao chép máy ảo:
Từ template ra một template mới
Từ template ra một máy ảo
cloneVM
Trang 38mới
Từ một máy ảo ra một template mới
Từ một máy ảo ra một máy
ảo mới
Tắt hệ điều hành trên máy ảo shutdownGuest
Khởi động lại hệ điều
hành trên máy ảo
Khởi động lại hệ điều hành trên máy
Bảng 3: Các chức năng của dịch vụ quản lý và phân phối tài nguyên
4.3.2 URI của các web service tương ứng với các chức năng
Tên phương thức Phương
thức HTTP
Ra: application/xml getClusters GET /dc/{dcname}/clusters Vào: không có
Ra: application/xml getResourcePools GET /dc/{dcname}/cluster/{cn
ame}/rps
Vào: không có Ra: application/xml
Trang 39createResourcePool POST /dc/{dcname}/cluster/{cn
ame}/rp
Vào: application/xml Ra: application/xml getResourcePool GET /dc/{dcname}/cluster/{cn
ame}/rp
Vào: không có Ra: application/xml reconfigResourcePool PUT /dc/{dcname}/cluster/{cn
ame}/rp
Vào: application/xml Ra: application/xml deleteResourcePool DELETE /dc/{dcname}/cluster/{cn
ame}/rp
Vào: không có Ra: không có
Ra: application/xml
ame}/rp/{rpname}/vms
Vào: không có Ra: application/xml
emplate
Vào: không có Ra: không có cloneVM POST /vm/{vmname}/clone Vào: application/xml
Ra: application/xml powerOnVM PUT /vm/{vmname}/powerOn Vào: không có
Ra: không có
Trang 40powerOffVM PUT /vm/{vmname}/powerOff Vào: không có
Ra: không có
Ra: không có suspendVM PUT /vm/{vmname}/suspend Vào: không có
Ra: không có shutdownGuest PUT /vm/{vmname}/shutdown Vào: không có
Ra: không có restartGuest PUT /vm/{vmname}/restart Vào: không có
Ra: không có standbyGuest PUT /vm/{vmname}/standby Vào: không có
Ra: không có
Bảng 4: Các URI của các web services 4.4 Mô tả chi tiết các chức năng
4.4.1 Truy vấn danh sách các trung tâm dữ liệu
Mô tả Liệt kê danh sách tên của các trung tâm dữ liệu
URI http://servername/provisioning/dcs
Kiểu dữ liệu đầu vào Không có
Dữ liệu đầu vào Không có
Kiểu dữ liệu đầu ra Application/xml
Dữ liệu đầu ra Danh sách tên các datacenter:
Server: Apache-Tomcat/6.0
Location: http://localhost:8080/provisioning/dcs
<datacenters>
<datacenter>