BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
AN TỒN ĐIỆN TỐN ĐÁM MÂY
Đề tài
Tìm hiểu, thử nghiệm về CloudSim
Sinh viên thực hiện:
- Nguyễn Duy Luận
- Trần Trọng Nghĩa
Hà Nội, 2020
Nội dung
DANH MỤC CÁC HÌNH VẼ.........................................................................................................3
CHƯƠNG 1: TỔNG QUAN VỀ CƠNG NGHỆ ĐIỆN TỐN ĐÁM MÂY.................................4
1.1.
Định nghĩa......................................................................................................................4
1.2.
Các mơ hình dịch vụ...........................................................................................................5
1.3.
Ưu, nhược điểm..................................................................................................................7
CHƯƠNG 2: CƠNG CỤ MƠ PHỎNG ĐIỆN TỐN ĐÁM MÂY CLOUDSIM..........................8
2.1.
Giới thiệu............................................................................................................................8
2.2.
Tính năng............................................................................................................................8
2.3.
Cấu trúc và các thành phần...............................................................................................10
2.3.1. Mơ hình Cloud...........................................................................................................11
2.3.2. Mơ hình cấp phát máy ảo...........................................................................................12
2.3.3. Mơ hình chợ Cloud....................................................................................................13
2.4.
Các đối tượng cơ bản trong CloudSim.............................................................................13
2.5.
Cài đặt CloudSim..............................................................................................................16
2.6.
Kiến trúc lập lịch trong CloudSim....................................................................................17
2.7.
Các API cơ bản của CloudSim.........................................................................................17
2.7.1. CloudSim:..................................................................................................................18
2.7.2. Datacenter..................................................................................................................18
2.7.3. DatacenterBroker.......................................................................................................19
2.7.4. DatacenterCharacterri stics........................................................................................20
2.7.5. Host............................................................................................................................20
2.7.6. Vm (Vitual machine)..................................................................................................21
2.8.
Các bước để mô phỏng một đám mây trong CloudSim...................................................22
Trang | 2
DANH MỤC CÁC HÌNH VẼ
Số Hình
Tên Hình
1.1
Cloud Computing
1.2
Các ứng dụng của Cloud
1.3
Các mơ hình của Cloud
1.4
Chi tiết về 3 mơ hình Cloud
2.1
Kiến trúc theo lớp của CloudSim
2.2
Khởi động thành cơng CloudSim
2.3
Mơ hình CloudSim
2.4
Chạy mơ phỏng thành cơng
Trang | 3
Trang
CHƯƠNG 1: TỔNG QUAN VỀ CƠNG NGHỆ ĐIỆN
TỐN ĐÁM MÂY
l.l.
Định nghĩa
- Theo IBM, điện tốn đám mây, hay nói ngắn gọn là đám mây, là việc cung
cấp tài nguyên máy tính cho người dùng tùy theo mục đích sử dụng thơng qua kết
nối Internet. Nguồn tài ngun đó có thể là bất kì thứ gì liên quan đến điện tốn và
máy tính, ví dụ như phần mềm, phần cứng, hạ tầng mạng cho đến các máy chủ và
mạng lưới máy chủ cỡ lớn.
- Theo Amazon, điện toán đám mây là việc phân phối các tài nguyên CNTT theo
nhu cầu qua Internet với chính sách thanh tốn theo mức sử dụng. Thay vì mua, sở
hữu và bảo trì các trung tâm dữ liệu và máy chủ vật lý, bạn có thể tiếp cận các dịch
vụ công nghệ, như năng lượng điện toán, lưu trữ và cơ sở dữ liệu, khi cần thiết, từ
nhà cung cấp dịch vụ đám mây như Amazon Web Services (AWS).
Hình 1.1: Cloud Computing.
- Có thể thấy một số các ứng dụng điển hình của Cloud là DropBox,
GoogleDrive và SkyDrive.
Google
Drive
Hình 1.2: Các ứng dụng của
Cloud
1.2. Các mơ hình dịch vụ
Các nhà cung cấp dịch vụ điện toán đám mây cung cấp các dịch vụ của họ
theo ba mơ hình cơ bản:
-Cơ sở hạ tầng như một dịch vụ (IaaS-Infrastructure as a
Service)
-Nền tảng như một dịch vụ (Paas - Platform as a Service)
-Phần mềm như một dịch vụ (SaaS-Software as a Service)
Hình 1.3: Các mơ hình của Cloud
• Infrastructure as a Service (IaaS): IaaS chứa các khối xây dựng cơ bản
cho đám mây CNTT. IaaS thường cung cấp quyền truy cập vào các tính
năng mạng, máy tính (ảo hoặc trên phần cứng chuyên dụng) và không
gian
lưu trữ dữ liệu. IaaS đem đến cho bạn mức độ linh hoạt cũng như khả
năng
kiểm soát quản lý tài nguyên CNTT cao nhất. IaaS gần giống nhất với
các
tài nguyên CNTT hiện tại mà nhiều bộ phận CNTT và nhà phát triển hiện
nay rất quen thuộc.
• Platform as a Service (Paas): PaaS giúp bạn bỏ qua những sự phức tạp
hay rắc rối khi phải tự mình quản lý hạ tầng của mình (thường có liên quan
đến phần cứng và hệ điều hành). Nếu bạn thuê một dịch vụ PaaS, bạn chỉ
cần tập trung vào việc triển khai các phần mềm của mình lên đó và bắt đầu
chạy. Nhờ có PaaS mà bạn khơng phải lo update Windows cho máy chủ của
mình mỗi khi có bản vá, khơng phải quản lý RAM, CPU, không phải lên kế
hoạch về nguồn lực...
• Software as a Service (SaaS): SaaS cung cấp cho bạn sản phẩm hoàn chỉnh
được nhà cung cấp dịch vụ vận hành và quản lý. Trong hầu hết các trường hợp, khi
nhắc đến SaaS, mọi người thường nghĩ đến ứng dụng dành cho người dùng cuối
(chẳng hạn như email trên nền tảng web). Với SaaS, ta không cần phải nghĩ cách
duy trì dịch vụ hoặc cách quản lý cơ sở hạ tầng ngầm. Ứng dụng có thể được dùng
ngay bởi người dùng cuối.
Hình 1.4: Chi tiết về 3 mơ hình của Cloud
1.3. Ưu, nhược điểm.
- Ưu Điểm :
+ Ưu điểm đầu tiên về điện tốn đám mây đó là giảm thiểu tối đa chi phí khi
sử dụng. Đối với các doanh nghiệp vừa và lớn thì việc lưu trữ cơ sở dữ liệu trên
các máy chủ vật lý ln cồng kềnh,chi phí để duy trì cũng như sửa chữa là cực kỳ
tốn kém,chưa kể việc mất mát dữ liệu. Với Cloud, chúng ta chỉ cần bỏ một khoản
kinh phí vừa đủ để thuê server mà không cần phải lo tới khâu bảo trì, bảo mật,do
đó an tồn và tiết kiệm hơn rất nhiều.
+ Ưu điểm thứ hai về cloud đó là bạn có thể truy cập dữ liệu tại mọi lúc mọi
nơi, chỉ cần thiết bị của bạn có kết nối với internet.
+ Độ an toàn bảo mật cao hơn các ứng dụng khác. Tuy nhiên vẫn chưa tuyệt
đối
- Nhược điểm
+ Cloud có độ bảo mật cao, song chưa tuyệt đối, chính vì điều này nhiều
doanh nghiệp vẫn do dự quyết định sử dụng.
CHƯƠNG 2: CƠNG CỤ MƠ PHỎNG ĐIỆN TỐN ĐÁM
MÂY CLOUDSIM
2.1. Giới thiệu
- CloudSim là một phần mềm mã nguồn mở theo giấy phép GPL phát triển
trong các Cloud Computing và Distributed Systems (đám mây) Phịng
thí nghiệm, tại các phần mềm Bộ mơn Kỹ thuật máy tính và Khoa
học của Đại học Melbourne .
- CloudSim là một framework cho phép mô hình hóa, mơ phỏng hóa các dịch
vụ cũng như kết cấu hạ tầng của điện toán đám mây. Người dùng có thể ứng dụng
thử nghiệm trong mơi trường lặp có kiểm sốt, qua đó, tìm các tắc nghẽn hệ thống
mà không cần những đám mây thực chạy kiểm thử với cấu hình khác nhau, để phát
triển các kỹ thuật dự phịng phù hợp.
2.2. Tính năng
Tính năng CloudSim bao gồm:
• Hỗ trợ mơ hình hóa và mơ phỏng các trung tâm dữ liệu Điện tốn đám mây
quy mơ lớn
• Hỗ trợ mơ hình hóa và mơ phỏng các máy chủ được ảo hóa, với các chính
sách có thể tùy chỉnh để cung cấp tài nguyên máy chủ cho các máy ảo
• Hỗ trợ mơ hình hóa và mơ phỏng các vùng chứa ứng dụng
• Hỗ trợ mơ hình hóa và mơ phỏng các tài ngun tính tốn nhận biết năng
lượng
• Hỗ trợ mơ hình hóa và mơ phỏng các cấu trúc liên kết mạng của trung tâm
dữ liệu và các ứng dụng truyền thơng điệp
• Hỗ trợ mơ hình hóa và mơ phỏng các đám mây liên hợp
• Hỗ trợ chèn động các phần tử mô phỏng, dừng và tiếp tục mô phỏng
• Hỗ trợ các chính sách do người dùng xác định để phân bổ máy chủ cho máy
ảo và chính sách phân bổ tài nguyên máy chủ cho máy ảo
2.3. Cấu trúc và các thành phần
User code
Hình 2.1: Kiến trúc theo lớp của CloudSim
CloundSim là một mơ phỏng về điện tốn đám mây cho nên kiến trúc của
CloudSim được chia thành nhiều lớp với các thành phần của Cloud
- Tại tầng thấp nhất là SimJava thư viện mô phỏng sự kiện rời rạc cho java thực
hiện các chức năng cần thiết cho mô phỏng cấp cao hơn khuôn khổ như hằng đợi
và xử lý các sự kiện, tạo ra các thành phần hệ thống (dịch vụ, lưu trữ, trung tâm dữ
liệu, môi giới, các máy ảo ), thông tin liên lạc giữa thành phần, và quản lý của
đồng hồ mô phỏng.
- Tầng tiếp là thư viện thực hiện GridSim bộ công cụ mô hình hóa và mơ phỏng tài
ngun phân phối quản lý và lập kế hoạch có hỗ trợ các thành phần phần mềm cấp
cao cho mơ hình hóa nhiều cơ sở hạ tầng lưới điện, bao gồm cả mạng lưới và cách
thức trao đổi, và các thành phần cơ bản của Grid như các nguồn lực, tập hợp dữ
liệu, khối lượng công việc dịch vụ và thông tin.
- Các CloudSim được thực hiện ở cấp độ tiếp theo lập trình mở rộng các chức năng
cốt lõi tiếp xúc của lớp GridSim. CloudSim cung cấp mới hỗ trợ cho mơ hình hóa
và mơ phỏng ảo hóa Cloudbased mơi trường trung tâm dữ liệu như dành riêng giao
diện quản lý cho máy ảo, bộ nhớ, lưu trữ, và băng thông. Lớp CloudSim quản lý
và điều khiển thực hiện các đơn vị cốt lõi (máy ảo, máy chủ, trung tâm dữ liệu,ứng
dụng) trong thời gian mô phỏng .
- Những vấn đề cơ bản như trích lập dự phịng của mơ phỏng để máy ảo dựa trên
người dùng yêu cầu, thực hiện ứng dụng quản lý và năng động giám sát được xử lý
bởi CloudSim. Một máy chủ đám mây có thể được đồng thời chia sẻ giữa một số
máy ảo mà thực hiện các ứng dụng dựa trên thông số kỹ thuật QoS (Quality of
Service) người dùng định nghĩa.
-Lớp trên cùng là Uers code ở đó cho thấy nhiều cấu hình liên quan đến chức năng
cho host như số máy ảo, đặc điểm kỹ thuật của các máy ảo, ứng dụng như số
nhiệm vụ và yêu cầu của nó, số lượng người dùng và các loại ứng dụng của người
dùng, và chính sách lập kế hoạch môi giới. Một nhà phát triển ứng dụng đám mây
có thể tạo ra một kết hợp của yêu cầu sử dụng phân phối, ứng dụng, cấu hình, và
các kịch bản có sẵn như trên Cloud và thực hiện các bài kiểm tra mạnh mẽ dựa trên
tùy chỉnh cấu hình Cloud đã được hỗ trợ trong CloudSim.
2.3.1. Mơ hình Cloud
Kiến trúc dịch vụ nền tảng liên quan đến Cloud được mơ hình hóa trong chương
trình mơ phỏng bởi thành phần Datacenter cho việc quản lý yêu cầu dịch vụ.
Datacenter được tạo bởi các tập hợp các Host, có trách nhiêm để quản lý các máy
ảo VM trong chu kì sống của chúng. Các Host là những thành phần biểu thị cho
các nút trong Cloud: nó được cài đặt sẵn khả năng xử lý (biểu diễn qua đơn vị
MIPS = milion of instruction per second), bộ nhớ, khả năng lưu trữ và chính sách
định thời để xử lý việc cấp phân phát lõi tính tốn cho các máy ảo. Các thành
phần
máy Host thực giao diện hỗ trợ mơ hình hóa và mơ phỏng cho cả những nút một
nhân và đa nhân.
Việc phân phối máy ảo phục vụ cho ứng dụng cụ thể nào đó đến các thành phần
Host là trách nhiệm của thành phần Virtual Machine Provisioner. Thành phần này
cung cấp một tập các phương thức cho người nghiên cứu, với những hỗ trợ trong
việc thực hiện chính sách mới dựa trên những mục tiêu về tối ưu. Những chính
sách mặc định hiện có sẵn rất giản đơn theo hướng ai đến trước sẽ được phục vụ
trước.
Với mỗi thành phần Host, sự cấp phát các lõi tính tốn tới các máy ảo được thực
hiện dựa trên việc cấp phát của host. Những chính sách tìm xem trong tài khoản có
bao nhiêu lõi tính tốn được giao cho mỗi máy ảo và bao nhiêu khả năng cịn sẵn.
Do vậy, có thể cấp phát lõi CPU cho máy ảo cụ thể hay là phân tán động giữa các
máy ảo (chia sẻ theo thời gian) và gán lõi cho máy ảo theo yêu cầu hoặc là theo
một chính sách cụ thể nào đó.
Mỗi thành phần Host khởi tạo một bộ định thời máy ảo thực hiện việc cấp phát
theo không gian hay thời gian. Những người nghiên cứu hay phát triển Cloud có
thể mở rộng bộ định thời máy ảo VM để thử nghiệm với một vài chính sách cấp
phát. Kế đến chi tiết liên quan đến chính sách chia sẻ theo thời gian và khơng gian
sẽ được đề cập.
2.3.2. Mơ hình cấp phát máy ảo
Một trong những ý tưởng khiến Cloud computing khác biệt với Grid computing là
việc triển khai tối đa cơng nghệ ảo hóa và các cơng cụ hỗ trợ.
Mơ hình ứng dụng cổ điển ánh xạ cách chính xác các nút tính tốn và các ứng dụng
riêng rẽ khơng cịn phù hợp trong sự trừu tượng hóa tính tốn trong mơi trường
Cloud. Ví dụ như hai Datacenter chạy trên một Host có một nhân. Mặc dù có vẻ
như có sự tách biệt nhưng tổng lượng tài nguyên sẵn có bị ràng buộc bởi năngblực
của host. Những yếu tố quan trọng này cần được xem xét trong tiến trình xem xét
quyết định cấp phát tài nguyên. Để cho phép giả lập những chính sách khác nhau,
CloudSim hỗ trợ việc định thời máy ảo VM ở hai mức: trước tiên tại mức Host và
sau đó là mức máy ảo VM. Ở mức đầu tiên, có thể xác định rõ tổng năng lực xử lý
của mỗi nhân trong host sẽ được gán cho mỗi máy ảo. Tại mức tiếp theo, các máy
ảo VM sẽ được phân rõ tổng năng lực xử lý cụ thể cho mỗi tác vụ được thực thi.
Tại mỗi mức, CloudSim thực hiện chính sách cấp phát tài nguyên theo thời gian và
không gian.
2.3.3. Mơ hình chợ Cloud
Hỗ trợ dịch vụ đóng vai trị như là người môi giới giữa nhà cung cấp dịch vụ Cloud
và khách hàng thông qua những dịch vụ là điểm nhấn của điện toán đám mây. Hơn
thế, những dịch vụ này cần cơ chế để xác định chi phí dịch vụ và các chính sách về
giá cả.
Mơ hình chính sách chi phí và giá cả là một ý tưởng cần được xem xét khi thiết kết
chương trình mơ phỏng Cloud, bốn thuộc tính được xem xét đến cho một
Datacenter:
- Chi phí mỗi bộ xử lý
- Chi phí mỗi đơn vị bộ nhớ
- Chi phí mỗi đơn vị lưu trữ
- Chi phí mỗi đơn vị băng thơng sử dụng
Chi phí mỗi đơn vị bộ nhớ và lưu trữ được kèm theo trong q trình khởi tạo máy
ảo. Chi phí mỗi đơn vị băng thơng sử dụng có trong q trình truyền dữ liệu. Bên
cạnh đó, các chi phí sử dụng bộ nhớ, lưu trữ, băng thơng và các chi phí liên quan
có mối liên hệ với việc sử dụng tài ngun tính tốn. Do vậy, nếu máy ảo được tạo
mà khơng có tác vụ nào thực thi trên chúng, thì chỉ có chi phí về bộ nhớ và lưu trữ.
Những vấn đề này có thể được thay đổi bởi người dùng.
2.4. Các đối tượng cơ bản trong CloudSim
Hình 2.3: Mơ hình của CloudSim
Datacenter: Đây là đối tượng chứa các dịch vụ cơ sở hạ tầng cấp lõi (phần
cứng, phần mềm) được cung cấp bởi các nhà cung cấp nguồn tài ngun trong một
mơi trường điện tốn đám mây. Nó đóng gói tập hợp các host (máy chủ) có thể là
đồng nhất hay khơng đồng nhất liên quan đến các cấu hình tài nguyên của họ (bộ
nhớ, lõi, năng lực, và lưu trữ). Hơn nữa, mỗi thành phần Datacenter khởi tạo một
thành phần ứng dụng trích lập dự phịng tổng qt thực hiện một tập hợp các chính
sách phân bổ các thiết bị băng thông, bộ nhớ và lưu trữ cho máy chủ và máy ảo.
DatacenterBroker: Đây là đối tượng mơi giới, trong đó có trách nhiệm làm
trung gian giữa người sử dụng và các nhà cung cấp dịch vụ SaaS tùy thuộc vào yêu
cầu QoS của người sử dụng và triển khai nhiệm vụ phục vụ trên Cloud. Các nhà
môi giới hoạt động thay mặt cho người sử dụng tìm ra các nhà cung cấp dịch vụ
Cloud phù hợp bằng cách truy vấn CIS(CloudInformation Services) thông tin dịch
vụ đám mây và cam kết đàm phán trực tuyến cho phân bổ nguồn lực / dịch vụ có
thể đáp ứng QoS của ứng dụng cần. Nghiên cứu và phát triển hệ thống phải
mở
rộng lớp này để đánh giá và thử nghiệm các chính sách tùy chỉnh mơi giới.
DatacenterCharacteristics: Đây là đối tượng chứa thơng tin cấu hình của
các nguồn tài nguyên DataCenter bao gồm các thông tin như: kiến trúc tài nguyên,
hệ điều hành (OS), chính sách quản lý khu vực (chia sẻ thời gian hoặc chia sẻ
khơng gian), chi phí và thời gian mà tại đó các nguồn tài nguyên được xác định
theo cấu hình tài nguyên.
Host: Là đối tượng thể hiện một nguồn tài nguyên vật lý như một cái máy
tính hoặc máy chủ lưu trữ. Nó chứa những thơng tin quan trọng như số lượng bộ
nhớ và lưu trữ, danh sách và loại lõi xử lý (đại diện cho một máy tính đa lõi), phân
bổ chính sách để chia sẻ khả năng xử lý giữa các máy ảo, và chính sách dự phịng
bộ nhớ và băng thông tới các máy ảo .
VM (Virtual Machine): Là đối tượng máy ảo, được quản lý trong suốt
vòng đời bởi máy chủ. Ở đây một máy chủ có thể đồng thời khởi tạo nhiều máy ảo
và phân bổ lõi dựa trên chính sách chia sẻ bộ vi xử lý được xác định trước (chia sẻ
không gian, chia sẻ thời gian). Mỗi thành phần máy ảo có quyền truy cập chẳng
hạn như bộ nhớ, bộ xử lý, lưu trữ, và chính sách lập kế hoạch nội bộ của máy ảo
được mở rộng từ các thành phần trừu tượng gọi là VMScheduling.
VmScheduler: Đây là một lớp trừu tượng được thực hiện bởi một thành
phần chủ các mơ hình chính sách (chia sẻ không gian, chia sẻ thời gian) cần thiết
cho việc phân bổ nhân xử lý cho các máy ảo. Các chức năng của lớp này có thể dễ
dàng được ghi đè để chứa các chính sách chia sẻ bộ xử lý ứng dụng đặc thù.
VMProvisioner: Đây là đối tượng trừu tượng đại diện cho chính sách trích
lập dự phịng của một máy ảo để phân bổ cho máy chủ. Các chức năng chính của
VMProvisioner là chọn máy chủ có sẵn trong một trung tâm dữ liệu, đáp ứng bộ
nhớ, lưu trữ, và yêu cầu sẵn sàng cho việc triển khai máy ảo. Việc thực hiện
SimpleVMProvisioner mặc định được cung cấp với các gói CloudSim cấp phát
máy ảo với máy chủ có sẵn đầu tiên đáp ứng các yêu cầu nói trên. Các máy chủ
được thiết lập theo một thứ tự tuần tự. Tuy nhiên, các chính sách phức tạp hơn có
thể dễ dàng thực hiện trong thành phần này để đạt được phân bố tối ưu hóa, ví dụ,
lựa chọn các máy chủ dựa trên khả năng của họ để đáp ứng các yêu cầu QoS như
đáp ứng thời gian, ngân sách.
VMAllocationPolicy: Đây là đối tượng lớp trừu tượng được thực hiện bởi
một thành phần chủ các mơ hình chính sách (chia sẻ khơng gian, chia sẻ thời gian)
cần thiết cho việc phân bổ khả năng xử lý cho máy ảo. Các chức năng của
đối
tượng này có thể dễ dàng được ghi đè để chứa các chính sách chia sẻ bộ xử lý.
Cloudlet: Là đám mây thu nhỏ chứa các dịch vụ ứng dụng dựa trên đám
mây như phân phối nội dung, mạng xã hội, công việc kinh doanh và thường được
triển khai trong các trung tâm dữ liệu. Cloudlet cũng có thể được mở rộng để hỗ
trợ cho mơ hình thực hiện của các thành phần số liệu khác trong các ứng dụng như
các giao dịch theo định hướng cơ sở dữ liệu.
CloudletScheduler: Là đối tượng trừu tượng được mở rộng bằng việc thực
hiện các chính sách khác nhau để xác định các chính sách xử lý trong các Cloudlets
của máy ảo. Hai loại chính sách trích lập dự phịng được cung cấp:
- Chia sẻ khơng gian (CloudetSchedulerSpaceShared).
- Chia sẻ thời gian (CloudletSchedulerTimeShared).
BWProvisioner: Đây là một đối tượng trừu tượng mơ tả các chính sách
trích lập dự phịng băng thơng cho máy ảo được triển khai trên một thành phần
máy chủ. Chức năng của thành phần này là thực hiện việc phân bổ băng thông
mạng nhằm thiết lập cho máy ảo có thể triển khai trên các trung tâm dữ liệu.
MemoryProvisioner: Đây là một đối tượng trừu tượng đại diện cho chính
sách trích lập dự phịng cho cấp phát bộ nhớ cho máy ảo. Thành phần này thực
hiện chính sách phân bố khơng gian bộ nhớ vật lý giữa các máy ảo với nhau. Việc
thực hiện và triển khai các máy ảo trên một máy chủ là khả thi nếu các thành phần
MemoryProvisioner xác định rằng máy chủ có dung lượng bộ nhớ cịn trống từ đó
triển khai khi máy ảo mới có yêu cầu.
RamProvisioner: Đây là đối tượng thuộc lớp trừu tượng đại diện cho chính
sách trích lập dự phịng cho cấp phát bộ nhớ chính (RAM) đến các máy ảo. Việc
thực hiện và triển khai các máy ảo trên một máy chủ là khả thi nếu các thành phần
RamProvisioner chỉ ra rằng máy chủ còn chứa dung lượng bộ nhớ trống. Các
RamProvisionerSimple không giới hạn về số lượng bộ nhớ mà một máy ảo có thể
yêu cầu. Tuy nhiên, nếu yêu cầu vượt quá khả năng bộ nhớ có sẵn thì nó sẽ khơng
cấp phát.
NetworkTopology: Đối tượng này chứa đựng những thông tin hoạt động
của mạng trong mơ phỏng. Nó lưu trữ các thơng tin cấu trúc liên kết, được tạo ra
bằng cách sử dụng tổ hợp cấu trúc liên kết BRITE.
2.5. Cài đặt CloudSim
CloudSim là một thư viện để mô phỏng điện tốn đám mây bằng ngơn ngữ
Java. Ta cần cài đặt Eclipse và thư viện CloudSim.
3 edipse-workspace - CloudSim/examples/org/doudbus/doudsim/examples/CloudSimExample1.java - Edipse IDE
File Edit Source Retactor Navigate Search Prọject Run Window Help
[2 Problems (» Javadoc Sì Dedaration Q Console Ỉ3
X % I X Hi lớã p Đ3 i @ r3 “ s
B Package Explorer Ỉ3
10 % I “ □
s CloudSimExample1.java Ỉ3
<terminated> CloudSimExamplel [Java Application] C:\Program Files\Java\jơk-11.0.Abin\javaw.exe (Oct 11,2020,2:15:48 PM - 2:15:49 PM)
V ĩế CloudSim
starting CloudSimExamplel______
1
*
V eíexamples
Initialising...
3
y' IB org.doudbus.doudsim.examples
1
* ộreturn the datạcenter
starting Cloudsim version 3.0
> 0 CloudSimExample1.java
*/
4
Datacenter_0 is starting...
> 0 CloudSimExample2.java
private statỉc Datacenter createDatacenter(String name) {
1
Broker is starting_______
> El Cloud$imẼxample3.java
1
Entitỉes started.
> E) CloudSimExample4.java
// Herê are the steps needed to create a PôwerDatacenter:
4
0.0: Broker: Cloud Resource List received with 1 resource(s)
1
// 1. We need to create a list to store|
> 0 CloudSimExample5.java
0.0: Broker: Trying to Create VM #0 in Oatacenter_0
4
> B CloudSimExample6.java
1
// our machine
0.1: Broker: VM #0 has been created in Datacenter #2, Host #0
> El CloudSimExample7.java
4
List<Host> hostList = new ArrayList<Host>();
0.1: Broker: Sending cloudlet 0 to VM #0
> B CloudSimExample8java
6
400.1: Broker: Cloudlet 0 received
// 2. A Machine contains one or more PEs or CPUs/Cores.
> ỄB org.doudbus.doudsim.examples.network
1
400.1: Broker: All cloudlets executed. Finishing...
//In this example, it will have only one core.
> ffi
4
400.1: Broker: Destroying VM #0
List<Pe> oeList - new ArravListxPeX"):
org.doudbus.doudsim.examplẽs.network.datacenter
7
Broker is shutting down_______
> ffi org.doudbus.doudsim.examples.power
1<
Simulation: No more íuture events
> 9 ọrg.dộudbus.doud$im.exampies.pọwer.pianetiab
CloudlníormationService: Notiíy all CloudSim entities for shutting down.
> 8 org.doudbus.doudsim.examples.power.random
Datacenter_0 is shutting down...
> © workload.planetlab
Broker is shutting down_______
> íSsources
Simulation completed.
> » JRE System Libraiy [jdk-11.0.7]
Simulation completed.
> ái Reíerenced Libraries
> íS-docs
========== OUTPUT ==========
> È-jars
Cloudlet ID STATUS Data oenter 10 VM ID Time start Time Finiỉh Time
Í1 build.xml
0 SUCCESS 2
0
400
0.1
400.1
1 changelog.txt
CloudSimExamplel tinished!
iÈ examples.txt
81 lieense.txt
0 pom.xml
a readme.txt
Writable
Smart Insert I 145 :48:4295
ĩẵ release_notes.txt
=□
gĩ-OutlineK
e laz X8 e X1 § = □
org.doudbus.doudsim.examples
V o» CloudSimExamplel
°s doudletList: List<Cloudlet>
°s vmlist: List<Vm>
*s main(String[]): void
■! createDatacenter(String):
Datacenter
■8 createBrokerO:
DatacenterBroker
■s
printCloudletList(List<Cloudlet>): void
>
Hình 2.2: Khởi động thành cơng CloudSim
2.6. Kiến trúc lập lịch trong CloudSim
CloudSim được phát triển từ GridSim, CloudSim đưa ra ba thành phần cơ bản
Hosts, Virtual Machines, và Applications, ba thành phần này nhằm mô phỏng ba
mơ hình IaaS (Infrastructure as a Service), PaaS (Platform as a Service), và SaaS
(Software as a Service) của điện toán đám mây. CloudSim có thể hỗ trợ để tạo ra
cơ sở hạ tầng tính tốn đám mây với quy mơ lớn, bao gồm các trung tâm dữ liệu
trên một nút máy tính vật lý và máy ảo java. Nó cung cấp mơ hình của trung tâm
dữ liệu, mơi giới dịch vụ, lập lịch và các chính sách định vị tài nguyên.
Trong các ứng dụng thường sử dụng các API của CloudSim 3.0.3 để tạo các Task,
Host, VM, Datacenter, ... và mở rộng lớp DataCenterBroker của CloudSim để đưa
ra chính sách lập lịch phù hợp với các thuật toán lập lịch.
2.7. Các API cơ bản của CloudSim
2.7.1. CloudSim:
public static void init(int numUser,Calendar cal, boolean traceFlag)
- Phương thức này dùng để nạp thư viện của CloudSim nên được gọi là trước
hết.Trong phương thức này, nó sẽ tạo ra các thực thể CloudSim sau:
• CloudInformationService.
• CloudSimShutdown
Các tham số:
- numUser: số người dùng được tạo ra
- cal: bắt đầu từ thời gian để mơ phỏng này. Nếu nó là vơ giá trị, sau đó thời gian
sẽ được lấy từ Calendar.getInstance()
- traceFlag: Ghi lại dấu vết CloudSim khi thực hiện mơ phóng.
public static double startSimulation() throws NullPointerException
- Bắt đầu thực hiện mô phỏng CloudSim.
Lưu ý: Phương pháp này nên được gọi là sau khi tất cả các thực thể đã được thiết
lập và bổ sung.
public static void stopSimulation()throws NullPointerException
- Dừng mô phỏng khi xác định được người sử dụng trong thời gian thực.
2.7.2. Datacenter
public Datacenter(String name,
DatacenterCharacteristics characteristics,
VmAllocationPolicy vmAllocationPolicy,
List<Storage> storageList,
double schedulinglnterval)
throws Exception
- Phương thức dùng để tạo ra một đối tượng Datacenter mới
Các tham số:
-name: Tên của Datacenter được tạo
-characteristics: Một đối tượng DatacenterCharacterristics
-storageList: List các lưu trữ, dùng để mơ phóng dữ liệu
-vmAllocationPolicy:Chính sách sử dụng máy ảo
2.7.3. DatacenterBroker
public DatacenterBroker(String name)throws Exception
- Phương thức dùng để tạo một đối tượng datacenterbroker
Tham số:
-name: Tên datacenterbroker được tạo
public void submitCloudletList(List<? extends Cloudlet> list)
- Phương thức này để gửi danh sách cloudlet cho một broker
Tham số:
-list:list cloudlet (tác vụ)
public void submitVmList(List<? extends Vm> list)
- Phương thức này để gửi danh sách máy ảo cho một broker.
Tham số:
-list: list máy ảo
public void bindCloudletToVm(int cloudletld, int vmld)
- Phương thức này dùng để gán một cloudlet cho một máy ảo xứ lý
Các tham số:
-cloudletId: id của cloudlet cần gửi cho máy ảo
-vmId: id của máy ảo
2.7.4. DatacenterCharacterristics
public DatacenterCharacteristics(String architecture,
String os,String vmm,List<? extends Host> hostList,
double timeZone,double costPerSec,double costPerMem,
double costPerStorage, double costPerBw)
- Phương thức tạo mới một DatacenterCharacteristics
Các tham số:
-architecture: kiến trúc tài nguyên(x86, x64)
-os: hệ điều hành
-vmm: Màn hình sử dụng máy ảo
-hostList: danh sách tài nguyên máy chủ
-timeZone: múi giờ sử dụng
-costPerSec: chi phí cho mỗi giây sử dụng nguồn tài nguyên
-costPerMem: chi phí để sử dụng bộ nhớ
-costPerStorage: chi phí sử dụng lưu trữ
-costPerBw: chi phí sử dụng băng thông
2.7.5. Host
public Host(int id,RamProvisioner ramProvisioner,
BwProvisioner bwProvisioner,
long storage, List<? extends Pe>peList,
VmScheduler vmScheduler)
- Khởi tạo một máy chủ.
Các tham số:
-id: Id máy chủ
-ramProvisioner: Khởi tạo ram máy chủ
-bwProvisioner: Khởi tạo băng thông
-storage: Lưu trữ
-peList: List các pe(nhân CPU)
-vmScheduler:chính sách lập lịch máy ảo
2.7.6. Vm (Vitual machine)
public Vm(int id,int userId, double mips, int numberOfPes, int ram,long bw,
long size, String vmm,CloudletScheduler cloudletScheduler)
- Tạo một máy ảo mới.
Các tham số:
-id: Id duy nhất cho từng máy ảo
-userId: Id của người dùng máy ảo
-mips: Tốc độ triệu xứ lý trên giây
-numberOỈPes: Số lượng cpu
-ram: Dung lượng ram.
-bw: Dung lượng băng thông.
-size: Dung lượng lưu trữ.
-vmm: Màn hình máy ảo sử dụng.
-cloudletScheduler: Chính sách lập lịch tác vụ.
2.8. Các bước để mô phỏng một đám mây trong CloudSim
Bước 1: Khởi tạo các thư viện CloudSim như sau:
CloudSim.init(num_user, calendar, trace_flag);
Bước 2: Tạo trung tâm dữ liệu Datacenter:
Để tạo ra Datacenter, cần đối tượng Host và DatacenterCharacteristics lưu trữ các
thuộc tính của một trung tâm dữ liệu:
- Tạo host:
new Host(hostId,new RamProvisionerSimple(ram),
new BwProvisionerSimple(bw),storage,peList,
new VmSchedulerTimeShared(peList));
-Tạo DatacenterCharacteristics:
DatacenterCharacteristics characteristics = new
DatacenterCharacteristics(arch,os,vmm,hostList,time_zone,cost, costPerMem,
costPerStorage, costPerBw);
Và sau đó khởi tạo Datacenter như sau:
Datacenter datacenter_0 = new Datacenter(name, characteristics, new
VmAllocationPolicySimple(hostList), storageList, 0);
Bước 3: Tạo DataBroker:
DatacenterBroker broker = createBroker();
Bước 4: Tạo máy ảo:
Vm vm = new Vm(vmid, brokerld, mips, pesNumber, ram, bw, size,
vmm, new CloudletSchedulerTimeShared());
Bước 5: Gởi danh sách máy ảo cho broker:
broker. subm itVmList(vmlist);
Bước 6: Tạo tác vụ cloudlet:
Cloudlet cloudlet = new Cloudlet(id, length, pesNumber, fileSize,
outputSize, utilizationModel, utilizationModel, utilizationModel);
Bước 7: Gởi danh sách cloudlet cho Broker
broker.submitVmList(cloudletlist);
Bước 8: Khởi động q trình mơ phỏng
CloudSim.startSim ulation();
Sau đây là kết quả chạy sau mô phỏng:
edipse-workspace - CloudSim/examples/org/cloudbus/cloudsim/examples/CloudSimExample2.java Eclipse IDE
File Edit Source Retactor Navigate Search Prọịect Run Window Help
[Ũ ’ u y V ý < ( Ý ’ o ’
1 f e ’ » ’ . ’ ■ ộ V ộ v|a
Q, :eI
B Package Explorer 3
ãI CloudSimExample2.java 3
V Ê7 CloudSim
2đ * Title:
Cloudsim ToolkitQ
ã7 0 examples
V 9 org.doudbus.doudsim.examples
> 0 CloudSimExample1.java
lẫỉ Problems lavadoc Et Dedaration SConsole Ĩ3
> E CloudSimExample2.java
> 0 CloudSimExample3.java
> 0 CloudSimExample4.java
> 0 CloudSimExample5.java
> 0 CloudSimExample6.java
> 0 CloudSimExample7.java
> 0 CloudSimExample8.java
> 9 org.doudbus.doudsim.examples.network
> 9 org.doudbus.doudsim.examples.networkdatacenter
> 9 org.doudbus.doudsim.examples.power
> 9 org.doudbus.doudsim.examples.power.planetlab
> 9 org.doudbus.doudsim.examples.power.random
> ffi> workload.planetlab
> Ĩ5 sources
> A JRE System Library U’dk-11.0.7]
> Bà Reterenced Libraries
>
docs
>
jars
build.xml
B) diangelog.txt
ÍỀ examples.txt
B license.txt
0 pom.xml
Bl readme.txt
B release_notes.txt
<terminated> CloudSimCxample2 [Java Application] C:\Program riles\Java\ĩdk-11.0.7\bin\ĩavaw.exe (Oct 11, 2020, 2:57:20 PM — 2:57:30 PM)
Ịstarting CloudSimExample2_____
Initialising...
starting cloudsim version 3.0
Datacenter_0 is starting...
Broker is starting_______
Entities started.
0.0: Bnoker: cloud Resounce List received with 1 resource(s)
0.0:
Bnoker:
Tnying to
Create VH #0
in Datacenten_0
0.0:
Bnoker:
Tnying to
Create VM #1
in Datacenten_0
0.1:
Broker:VM #0 has been created
in Datacenter #2,
Host #0
0.1:
Broken:
VM #1 has
been cneated
in Datacenter #2,
Host #0
0.1: Broker: Sending cloudlet 0 to VM #0
0.1: Broker: Sending cloudlet 1 to VM #1
1000.1: Broker: cloudlet 0 received
1000.1: Broker: cloudlet 1 received
1000.1: Bnoker: All cloudlets executed. Einishing...
1000.1: Broker: Destroying VM #0
1000.1: Broker: Destroying VM #1
Broker is shutting down...
simulation: No more íuture events
CloudlníormationService: Notiíy all cloudsim entities for shutting down.
Datacenter_0 ỉs shutting down...
Broker is shutting down...
simulation completed.
simulation completed.
========== OUTPUT ==========
Cloudlet ID STATUS Data center ID VM ID Time start Time Finish Time
0
SUCCESS
2
0
1000
1
SUCCESS
2
1
1000
CloudSimExample2 íinished!
0.1
0.1
1000.1
1000.1
Hình 2.4: Chạy mơ phỏng thành cơng.
9 org.doudbus.doudsim.examples
©► CloudSimExample2