Bài tập Thảo lun
TRƯỜNG ĐẠI HỌC XÂY DỰNG NỘI KHOA CÔNG NGHỆ THÔNG
TIN
~~~~~~*~~~~~~
BÀI TẬP THẢO LUẬN
MÔN NGUYÊN HỆ ĐIỀU HÀNH
Đề tài: Tìm hiểu về Máy ảo Virtual Machine
Giảng viên hướng dẫn: Vương Thị Dung
Nhóm sinh viên thảo luận:
STT
Họ tên
MSSV
Lớp
1
Nguyễn Đức Mạnh
0000766
66CS2
2
Bùi Thị Ngọc Thanh
0219866
66CS2
3
Nguyễn Thu Trang
0221266
66CS2
4
Trần Thu Trang
0221366
66CS2
5
Công Tuyến
0221966
66CS2
MỤC LỤC
Nội 9/2022
1
MỤC LỤC ........................................................................................................................................2
Lời Nói Đầu ......................................................................................................................................3
1. Tổng quan .........................................................................................................................................4
2. Lịch sử ...............................................................................................................................................5
3. Lợi ích tính ng .........................................................................................................................6
3.1. Lợi ích nhược điểm ........................................................................................................................6
3.2. Tính năng 7
4. Xây dựng khối ..................................................................................................................................7
4.1. Bẫy phỏng ................................................................................................................................8
4.2. Bản dịch nhị phân ..............................................................................................................................8
4.3. Hỗ trợ phần cứng ...............................................................................................................................9
5. Các loại máy ảo cách triển khai của chúng ............................................................................10
5.1. Vòng đời máy ảo ..............................................................................................................................10
5.2. Siêu giám sát kiểu 0 Type 0 Hypervisor ........................................................................................10
5.3. Siêu giám sát kiểu 1- Type 1 Hypervisor ..........................................................................................11
5.4. Siêu giám sát loại 2 Type 2 Hypervisor ........................................................................................11
5.5. Paravirtualization ............................................................................................................................11
5.6. Ảo hóa môi trường lập tnh ............................................................................................................12
5.7. Thi đua - Emulation .........................................................................................................................13
5.8. Lưu trữ ứng dụng .............................................................................................................................13
6. Ảo hóa các thành phần hệ thống..............................................................................................13
6.1. Lập lịch CPU ...................................................................................................................................13
6.2. Quản bộ nhớ.................................................................................................................................14
6.3. I/O 14
6.4. Quản lưu trữ .................................................................................................................................15
6.5. Di chuyển trực tiếp ...........................................................................................................................16
7. dụ về máy ảo ..............................................................................................................................17
7.1. VMware 17
7.2. Máy ảo Java .....................................................................................................................................18
Kết Luận .........................................................................................................................................20
2
Lời Nói Đầu
Thuật ngữ ảo hóa Virtualization nhiều nghĩa,các khía cạnh của ảo hóa bao trùm tất
cả các khía cạnh của máy tính. Máy ảo Virtual Machine một dụ của xu hướng này.
Nói chung, với một máy ảo, hệ điều hành khách và ứng dụng chạy trong một môi trường
mà đối với chúng là phần cứng gốc và hoạt động đối với chúng như phần cứng gốc nhưng
điều đó cũng bảo vệ, quản lý và hạn chế chúng.
Đề tài máy ảo hôm nay đi sâu vào việc sử dụng, tính năng triển khai của ảoy móc.
Máy ảo có thể được triển khai theo một số cách và điều này chương mô tả các tùy chọn
này. Một tùy chọn thêm hỗ trợ máy ảo vào hạt nhân. Bởiphương pháp thực hiện đó là
phù hợp nhất với cuốn sách này, chúng tôi khám phá nó một cách đầy đủ nhất. Ngoài ra,
các tính năng phần cứng được cung cấp bởi CPU và thậm chí bởi các thiết bị I/ O có thể hỗ
trợ triển khai máy ảo, vì vậy chúng ta sẽ thảo luận về cách các tính năng đó được sử dụng
bởi các mô-đun hạt nhân thích hợp.
3
1. Tổng quan
Ý tưởng cơ bản đằng sau một máy ảo là trừu tượng hóa phần cứng của một máy tính
(CPU, bộ nhớ, ổ đĩa, thẻ giao diện mạng, và v.v.) vào một số môi trường thực thi khác
nhau, do đó tạo ảo tưởng rằng mỗi môi trường riêng biệt đang chạy riêng máy tính. Trong
trường hợp ảo hóa, có một lớp tạo ra một hệ thống ảo trên đó hoạt động hệ thống hoặc ứng
dụng có thể chạy.
Việc triển khai máy ảo liên quan đến một số thành phần. Tại sở máy chủ lưu trữ,
hệ thống phần cứng cơ bản chạy các máy ảo. Trình quản lý máy ảo Virtual Machine
Manager (VMM) (còn được gọi siêu giám sát) tạo và chạy các y ảo bằng cách cung
cấp một giao diện giống hệt với máy chủ (ngoại trừ trường hợp paravirtualization, sẽ nói ở
phần sau). Mỗi quy trình của khách được cung cấp một bản sao ảo của máy chủ lưu trữ
(Hình 16.1). Thông thường, khách quy trình trên thực tế là một hệ điều hành. Do đó, một
máy vật lý duy nhất có thể chạy nhiều hệ điều hành đồng thời, mỗi hệ điều hành trong máy
ảo của riêng nó.
Việc triển khai VMMs rất khác nhau, tuy nhiên bao gồm:
Các giải pháp dựa trên phần cứng cung caaos hỗ trợ cho việc tạo máy ảo và quản thông
qua phần sụn. Các VMM này thường tìm thấy trongy chủ lớn và máy chủ cỡ vừa – siêu
giám sát loại 0.
Phần mềm giống HĐH được y dựng để cung cấp ảo hóa, bao gồm VMware ESX, Joyent
SmartOS và Citrix XenServer - siêu giám sát loại 1.
4
a) Máy không ảo b) Máy ảo
Hệ điều hành có mục đích chung cung cấp các chức năng tiêu chuẩn như cũng như các
chức năng VMM, bao gồm Microsoft Windows Server với HyperV và RedHat Linux với
tính năng KVM. Bởi vì các hệ thống như vậy có bộ tính năng tương tự như siêu giám sát
loại 1, chúng còn được gọi là loại 1.
Các ứng dụng chạy trên hệ điều hành tiêu chuẩn nhưng cung cấp VMM các tính năng của
hệ điều hành khách. Các ứng dụng này, bao gồm VMware Workstation Fusion, Parallels
Desktop Oracle Virtual- Hộp, loại 2 siêu giám sát.
Paravirtualization, một kỹ thuật trong đó hệ điều hành khách được sửa đổi để hợp tác với
VMM nhằm tối ưu hóa hiệu suất.
Ảo hóa môi trường lập trình Programming environment virtual, trong đó các VMM
không thay đổi phần cứng thực nhưng thay vào đó tạo ra một hệ thống ảo được tối ưu hóa.
Trình giả lập Emulators cho phép các ứng dụng được viết cho một môi trường phần cứng
để chạy trên một môi trường phần cứng rất khác, chẳng hạn như một loại khác của CPU.
Ngăn chặn ứng dụng Application containment, không phải là ảo hóa mà là cung cấp c
tính năng giống như ảo hóa bằng cách tách các ứng dụng khỏi hệ điều hành.
5
2. Lịch sử
Máy ảo xuất hiện thương mại lần đầu tiên trên máy tính lớn của IBM vào năm 1972.
Ảo hóa được cung cấp bởi hệ điều hành IBM VM. Hệ thống này có phát triển và vẫn có
sẵn. Ngoài ra, nhiều khái niệm ban đầu của nó là được tìm thấy trong các hệ thống khác,
làm cho nó đáng để khám phá. IBM VM370 chia một máy tính lớn thành nhiều máy ảo,
mỗi máy chạy hệ điều hành riêng. Một khó khăn lớn với cách tiếp cận VM hệ thống đĩa
liên quan. Giả sử rằng máy vật ba đĩa nhưng muốn hỗ trợ bảy máy ảo. ràng, nó
không thể phân bổ một ổ đĩa cho mỗi máy ảo. Giải pháp là cung cấp đĩa ảo - gọi là đĩa nhỏ
trong hệ điều hành máy ảo của IBM. Các đĩa mini giống hệt nhau vào đĩa cứng của hệ
thống ở mọi khía cạnh ngoại trừ kích thước. Hệ thống được triển khai mỗi đĩa nhỏ bằng
cách phân bổ nhiều bản nhạc trên các đĩa vật lý như đĩa nhỏ cần thiết.
Sau khi các máy ảo được tạo, người dùng có thể chạy bất kỳ hệ điều hành hoặc gói
phần mềm sẵn trên cỗy. Đối với hệ thống IBM VM, một người dùng thường chạy
CMS - một người dùng duy nhất hệ điều hành tương tác.
Trong nhiều năm sau khi IBM giới thiệu ng nghệ y, ảo hóa vẫn trong miền của
nó. Hầu hết các hệ thống không thể hỗ trợ ảo hóa. Tuy nhiên, một định nghĩa chính thức về
ảo hóa đã giúp thiết lập hệ thống yêu cầu và mục tiêu cho chức năng.
Các yêu cầu ảo hóa nói rằng:
1) VMM cung cấp môi trường cho các chương trình về bản giống hệt nhau với máy ban
đầu.
2) Các chương trình chạy trong môi trường đó chỉ hiển thị những phần nhỏ mance giảm.
3) VMM hoàn toàn kiểm soát tài nguyên hệ thống. Những yêu cầu về độ trung thực, hiệu suất
an toàn y vẫn hướng dẫn virtualiza- tion nỗ lực ngày m nay.
Vào cuối những năm 1990, CPU Intel 80x86 đã trở nên phổ biến, nhanh chóng
phong phú trong các tính năng. Theo đó, các nhà phát triển đã đưa ra nhiều nỗ lực để
6
triển khai ảo hóa trên nền tảng đó. Cả Xen và VMware đều tạo ra các công nghệ, vẫn được
sử dụng cho đến ngày nay, để cho phép các hệ điều hành khách chạy trên 80x86. Từ thời
gian đó, ảo hóa đã mở rộng để bao gồm tất cả các CPU thông thường, nhiều các công cụ
thương mại và mã nguồn mở, và nhiều hệ điều hành. Ví dụ, dự án VirtualBox mã nguồn
mở (http://www.virtualbox.org) cung cấp một chương trình hơn là chạy trên CPU Intel x86
AMD64 và trên Windows, Linux, Hệ điều hành máy chủ Mac OS X và Solaris. Hệ điều
hành khách có thể có bao gồm nhiều phiên bản Windows, Linux, Solaris và BSD, kể cả
MS-DOS và IBM OS / 2.
3. Lợi ích tính năng
3.1. Lợi ích nhược điểm
Một lợi thế quan trọng của ảo hóa hệ thống máy chủ lưu trữ được bảo vệ khỏi các
máy ảo, giống như các máy ảo được bảo vệ từ nhau. Vi rút bên trong hệ điều hành khách có
thể làm hỏng hệ điều hành nhưng không có khả năng ảnh hưởng đến máy chủ lưu trữ hoặc
các khách khác. Tại vì mỗi máy ảo gần như bị cô lập hoàn toàn với tất cả các máy ảo khác
máy móc, hầu như không có vấn đề về bảo vệ.
Một nhược điểm tiềm ẩn của việc độc lập là nó có thể ngăn cản việc chia sẻ tài nguyên.
hai cách tiếp cận để cung cấp chia sẻ đã được thực thi. Thứ nhất, thể chia sẻ một đĩa hệ
thống tệp và do đó để chia sẻ tệp. Thứ hai, thể xác định một mạng lưới các máy ảo, mỗi
máy có thể gửi thông tin qua mạng truyền thông ảo.
3.2. Tính năng
Một tính năng phổ biến đối với hầu hết các triển khai ảo hóa là khả năng để đóng băng
hoặc tạm ngừng một máy ảo đang chạy. Nhiều hệ điều hành cung cấp tính năng cơ bản đó
cho các quy trình, nhưng VMM sẽ tiến thêm một bước nữacho phép tạo bản sao và ảnh
chụp nhanh của khách.
Hệ thống máy ảo là một phương tiện hoàn hảo để nghiên cứu hệ điều hành và phát triển.
Thông thường, thay đổi một hệ điều hành là một nhiệm vụ khó khăn. Hệ điều hành
những chương trình lớnphức tạp,sự thay đổi trong một một phần thể khiến các lỗi
bị che khuất xuất hiện ở một số phần khác.
7
Hơn nữa, hệ điều hành chạy trên và kiểm soát toàn bộ máy, nghĩa hệ thống phải được
dừng và không sử dụng trong khi thay đổi được thực hiện và thử nghiệm. Giai đoạn này
thường được gọi là phát triển hệ thống thời gian.
Một lợi thế khác của máy ảo dành cho các nhà phát triển nhiều hệ điều hành có thể
chạy đồng thời trên máy trạm của nhà phát triển. Đây máy trạm ảo hóa cho phép chuyển và
kiểm tra nhanh các chương trình trong môi trường khác nhau. Ngoài ra, nhiều phiên bản
của một chương trình có thể chạy, mỗi trong một hệ điều hành biệt lập của riêng nó, trong
một hệ thống.
Ảo hóa có thể cải thiện không chỉ việc sử dụng tài nguyên mà còn cả tài nguyên ban
quản lý. Đồng thời, ảo hóa đã đặt nền tảng cho nhiều tiến bộ khác trong máy tính thực hiện,
quản lý và giám sát cơ sở.
4. Xây dựng khối
Mặc dù khái niệm máy ảo rất hữu ích nhưng nó rất khó thực hiện. Cần phải làm nhiều
việc để cung cấp một bản sao chính xác của phần bên dưới cỗ máy. Đây đặc biệt một
thách thức đối với các hệ thống chế độ kép, nơi máy bên dưới chỉ chế độ người dùng và
chế độ hạt nhân.
4.1. Bẫy phỏng
Trên hệ thống chế độ kép điển hình, khách máy ảo chỉ thể thực thi trong chế độ
người dùng (trừ khi hỗ trợ phần cứng bổ sung được cung cấp).
Tất nhiên, hạt nhân chạy trong chế độ hạt nhân và không an toàn khi cho phép mã
cấp người dùng chạy trong hạt nhân cách thức. Tuy nhiên, cũng giống như máy vật
hai chế độ, máy ảo ng phải cỗ máy. Do đó, chúng ta phải một chế độ người dùng ảo
và một hạt nhân ảo, cả hai đều chạy ở chế độ người dùng vật lý. Những hành động gây ra
một chuyển từ chế độ người dùng sang chế
8
độ hạt nhân trêny thực (chẳng hạn như hệ thống cuộc gọi, ngắt hoặc cố gắng thực hiện
một lệnh đặc quyền) cũng phải chuyển từ chế độ người dùng ảo sang chế độ hạt nhân ảo
trong ảo cỗ máy.
Cách chuyển giao:
Khi hạt nhân trong máy khách cố gắng thực thi một lệnh đặc quyền, là một lỗi (do
hệ thống đang ở chế độ người dùng) và gây ra một cái bẫy đối với VMM trong máy thực.
VMM giành quyền kiểm soát và thực thi (hoặc "mô phỏng") hành động đã được thực hiện
bởi hạt nhân khách trên một phần của khách. Sau đó nó trả lại quyền điều khiển cho máy
ảo. Đây được gọi là bẫy và mô phỏng và được thể hiện trong Hình 16.2.
16.2. Triển khai ảo hóa bẫy phỏng
4.2. Bản dịch nhị phân
Một số CPU không có sự phân biệt rõ ràng giữa đặc quyền và không đặc quyền
hướng dẫn. Thật không may cho những người triển khai ảo hóa, CPU Intel x86 dòng là một
trong số họ. Không có suy nghĩ nào được đưa ra để chạy ảo hóa trên x86 khi nó được thiết
kế. Gần đây nhất là 1998, / Judi 1998 dường như gần đây không sử dụng phương pháp bẫy
và mô phỏng để thực hiện ảo hóa trên x86 được coi là không thể vì những hướng dẫn đặc
biệt này.
9
Vấn đề không thể vượt qua trước đây này đã được giải quyết với việc triển khai kỹ
thuật dịch nhị phân. Bản dịch nhị phân khá đơn giản về khái niệm nhưng phức tạp trong
cách thực hiện. Các bước cơ bản như sau:
1) Nếu VCPU khách đang chế độ người dùng, khách thể chạy các hướng dẫn của nó
nguyên bản trên một CPU vật lý.
2) Nếu VCPU của khách đang ở chế độ hạt nhân, thì khách tin rằng nó đang đang chạy ở chế
độ hạt nhân. VMM kiểm tra mọi hướng dẫn của khách thực thi chế độ hạt nhân ảo bằng
cách đọc một số hướng dẫn tiếp theo khách sẽ thực hiện, dựa trên bộ đếm chương trình của
khách. Các hướng dẫn khác với các hướng dẫn đặc biệt được chạy nguyên bản. Đặc biệt
hướng dẫn được dịch thành một bộ hướng dẫn mới thực hiện nhiệm vụ tương đương.
16.3. Thực hiện ảo hóa bản dịch nhị phân
4.3. Hỗ trợ phần cứng
Nếu không một số mức hỗ trợ phần cứng, ảo hóa sẽ không thể thực hiện được. Hệ
thống càng hỗ trợ nhiều phần cứng thì tính năng càng phong phú ổn định các y ảo
thể được và chúng thể hoạt động tốt hơn. Bây giờ dịch nhị phân sẽ không còn cần thiết.
10
Hệ thống càng hỗ trợ nhiều phần cứng thì tính năng càng phong phú ổn định các
máy ảo có thể được và chúng có thể hoạt động tốt hơn.
5. Các loại máy ảo cách triển khai của chúng
5.1. Vòng đời máy ảo
Khi máy ảo được tạo ra người ta cấp phát cho các thông số bao gồm: số lượng
CPU, số lượng chi tiết bộ nhớ, mạng và dữ liệu mà máy ảo sẽ xem t khi tạo thành.
Khi không còn cần thiết, máy ảo bị xóa. Khi điều này xảy ra, VMM đầu tiên giải
phóng mọi dung lượng đĩa đã sử dụngsau đó loại bỏ cấu hình được liên kết với máy
ảo, về cơ bản quên máy ảo.
Máy ảo dễ dàng được tạo ra => dễ dàng lan rộng => khi có quá nhiều máy ảo trên
một hệ thống sử dụng chúng, lịch sửtrạng thái trở nên khó hiểu và khó theo dõi
5.2. Siêu giám sát kiểu 0 Type 0 Hypervisor
Tên gọi: phân vùng và miền
tính năng phần cứng. VMM được hóa trong phần sụnđược tải vào lúc khởi
động. Nó tải các hình ảnh khách để chạy trong mỗi vách ngăn.
Trong phân vùng điều khiển, hệ điều hành khách cung cấp các dịch vụ (như mạng)
thông qua daemon đến các khách khác c đường dẫn siêu giám sát I/O yêu cầu một
cách thích hợp.
Ảo hóa kiểu 0 rất gần với việc thực thi phần cứng thô, nên được xem xét tách biệt
với các phương pháp khác được thảo luận ở đây. Một hypervisor loại 0 có thể chạy nhiều
hệ điều hành khách (mỗi hệ điều hành phân vùng phần cứng).
Tất cả những khách đó, bởihọ đang chạy trên nguyên phần cứng, lần lượt
11
thể là VMM. Về cơ bản, các hệ điều hành khách trong một hypervisor loại 0 là các hệ điều
hành gốc với một tập hợp con phần cứng cung cấp cho họ. Do đó, mỗi hệ điều hành có th
có hệ điều hành khách riêng (Hình 16.5). Các loại giám sát viên khác thường không thể
cung cấp điều này chức năng ảo hóa trong phạm vi ảo hóa.
5.3. Siêu giám sát kiểu 1- Type 1 Hypervisor
Thường được tìm thấy trong các trung tâm dữ liệu của công ty cảm giác trở
thành “hệ điều hành trung tâm dữ liệu”.
Mục dích: HĐH chạy nguyên bản trên phần cứng, nhưng thay vì cung cấp lệnh gọi
hệ thống và các giao diện khác để chạy chương trình, chúng tạo, chạy và quản hệ điều
hành khách. Ngoài việc chạy trên phần cứng tiêu chuẩn, chúng có thể chạy trên siêu giám
sát loại 0, nhưng không chạy trên siêu giám sát loại 1 khác.
Các bộ giám sát loại 1 chạy ở chế độ hạt nhân, tận dụng khả năng bảo vệ phần cứng.
Khi CPU ch cho phép, chúng sử dụng nhiều chế độ để cung cấp cho hệ điều hành khách
quyền kiểm soát riêng và cải thiện hiệu suất.
Bằng cách sử dụng siêu giám sát loại 1, người quản trung tâm dữ liệu có thể kiểm
soát và quản lý hệ điều hành và ứng dụng theo những cách mới và tinh
vi. Một lợi ích quan trọng khả năng hợp nhất nhiều hệ điều hành nứng dụng vào ít
hệ thống hơn.
5.4. Siêu giám sát loại 2 Type 2 Hypervisor
12
rất ít sự tham gia của hệ điều hành vào các trình quản y ảo cấp ứng dụng
này.
Loại VMM này chỉ đơn giản là một quy trình khác được chạy và quản lý bởiy
chủ lưu trữthậm chí máy chủ lưu trữ không biết quá trình ảo hóa đang diễn ra trong
VMM.
Những hạn chế của người giám sát loại 2 cũng mang lại một số lợi ích.
Chúng chạy trên nhiều hệ điều hành có mục đích chung khác nhau và việc chạy chúng
không yêu cầu thay đổi hệ điều hành chủ. Ví dụ, một sinh viên có thể sử dụng một siêu
giám sát loại 2 để kiểm tra một hệ điều nh không phải bản địa mà không cần thay thế
hệ điều hành gốc.
5.5. Paravirtualization
Paravirtualization có cách sử lý khác với các loại ảo hóa khác. Thay vì cố gắng đánh
lừa hệ điều hành của khách tin rằng hệ điều hành của khách một hệ thống riêng, ảo hóa
cung cấp cho khách một hệ thống tương tự nhưng không giống với hệ thống ưa thích của
khách. Khách phải được sửa đổi để chạy trên phần cứng ảo được paravirtualized. Lợi ích
của công việc bổ sung này sử dụng tài nguyên hiệu quả hơn và một lớp ảo hóa nhỏ hơn.
Đối với mỗi thiết bị được sử dụng bởi mỗi khách, một bộ đệm tròn được chia sẻ
bởi khách và VMM thông qua bộ nhớ dùng chung. Dữ liệu đọc và ghi được đặt trong bộ
đệm này.
13
Để quản lý bộ nhớ, Xen không triển khai các bảng trang lồng nhau. Thay vào đó,
mỗi khách bộ bảng trang riêng, được đặt chế độ chỉ đọc. Xen yêu cầu khách sử dụng
một cơ chế cụ thể, một siêu cuộc gọi từ khách đến hypervisor VMM, khi cần thay đổi bảng
trang.
Xen cho phép ảo hóa CPU x86 không cần sử dụng dịch nhị phân, thay vào đó
yêu cầu sửa đổi trong hệ điều hành khách như mô tả ở trên. Theo thời gian, Xen đã tận
dụng các tính năng phần cứng hỗ trợ ảo hóa. Do đó, nó không còn yêu cầu khách đã sửa
đổi và về cơ bản không cần phương pháp paravirtualization. Tuy nhiên, Paravirtualization
vẫn được sử dụng trong các giải pháp khác, chẳng hạn như siêu giám sát loại 0.
5.6. Ảo hóa môi trường lập trình
Một loại ảo hóa khác, dựa trên một mô hình thực thi khác, là ảo hóa các môi trường
lập trình. Ở đây, một ngôn ngữ lập trình được thiết kế để chạy trong một môi trường ảo hóa
được xây dựng tùy chỉnh. Nếu chúng ta định nghĩa ảo hóa là chỉ bao gồm phần cứng trùng
lặp, thì đây không thực sự là ảo hóa. Nhưng chúng ta không cần giới hạn bản thân trong
định nghĩa đó. Thay vào đó, chúng ta có thể xác định một môi trường ảo, dựa trên các API,
cung cấp một tập hợp các tính năng chúng ta muốn sẵn cho một ngôn ngữ cụ thể
các chương trình được viết bằng ngôn ngữ đó.
14
5.7. Thi đua - Emulation
Ảo hóa có lẽ là phương pháp phổ biến nhất để chạy các ứng dụng được thiết kế cho
một hệ điều hành trên một hệ điều hành khác nhưng trên cùng một CPU. Phương pháp y
hoạt động tương đối hiệu quả các ứng dụng được biên dịch cho cùng một tập lệnh như hệ
thống đích sử dụng.
5.8. Lưu trữ ứng dụng
Mục tiêu của ảo hóa trong một số trường hợp cung cấp phương pháp tách biệt các
ứng dụng, quản lý hiệu suất và việc sử dụng tài nguyên của chúng, đồng thời tạo ra một
cách dễ dàng để bắt đầu, dừng, di chuyểnquản chúng. Trong những trường hợp như
vậy, có lẽ không cần ảo hóa toàn bộ. Nếu tất cả các ứng dụng được biên dịch cho cùng một
hệ điều hành, thì không cần ảo hóa hoàn toàn để cung cấp các tính năng này. Thay vào đó
có thể sử dụng tính năng ngăn chặn ứng dụng.
6. Ảo hóa các thành phần hệ thống
6.1. Lập lịch CPU
15
Một hệ thống ảo hóa, ngay cả một hệ thống một CPU, thường hoạt động giống
như một hệ thống đa xử lý. Phần mềm ảo hóa trình bày một hoặc nhiều CPU ảo cho mỗi
máy ảo đang chạy trên hệ thống và sau đó lập lịch sử dụng CPU vật lý giữa các máy ảo.
Sự khác biệt đáng kể giữa các công nghệ ảo hóay khó khăn cho việc tóm tắt tác
động của ảo hóa đối với việc lập lịch trình. Ngay cả khi được cung cấp một công cụ lập
lịch cung cấp sự công bằng, bất kỳ thuật toán lập lịch biểu của hệ điều hành khách nào giả
định một lượng tiến độ nhất định trong một khoảng thời gian nhất định sẽ bị ảnh hưởng
tiêu cực bởi ảo hóa. Trong một máy ảo, hệ điều hành này phụ thuộc vào hệ thống ảo hóa
như tài nguyên CPU mà nó thực sự nhận được.
Hiệu quả thực sự của việc phân lớp lập lịch như vậy các hệ điều hành ảo hóa riêng
lẻ chỉ nhận được một phần các chu kỳ CPU có sẵn, mặc dù chúng tin rằng chúng đang
nhận tất cả các chu kỳ và thực sự là chúng đang lập lịch cho tất cả các chu kỳ đó. Do đó, ảo
hóa có thể hoàn tác các nỗ lực lập lịch trình-thuật toán tốt của hệ điều hành trong các máy
ảo.
6.2. Quản bộ nhớ
Trong môi trường ảo hóa, nhiều người dùng bộ nhớ hơn (khách ứng dụng của
họ, cũng như VMM), dẫn đến áp lực sử dụng bộ nhớ nhiều hơn.
1) Một cách tiếp cận cung cấp phân trang kép, trong đó VMM các thuật toán thay thế
trang riêng và các trang để sao lưu các trang lưu trữ mà khách cho rằng nằm trong bộ nh
vật lý.
2) Một giải pháp phổ biến là VMM cài đặt cho mỗi khách một trình điều khiển thiết bị giả
hoặc mô-đun hạt nhân mà nó điều khiển. Trình quản lý bộ nhớ bong bóng này giao tiếp với
VMM và được yêu cầu cấp phát hoặc phân bổ bộ nhớ. Nếu được yêu cầu cấp phát, nó sẽ
cấp phát bộ nhớ và yêu cầu hệ điều hành ghim các trang được cấp phát vào bộ nhớ vật lý.
16
3) Một phương pháp phổ biến khác để giảm áp lực bộ nhớ VMM xác định xem cùng một
trang đã được tải nhiều lần hay chưa. Nếu đúng như vậy, VMM sẽ giảm số lượng bản sao
của trang xuống một bản và ánh xạ những người dùng khác của trang tới bản sao đó.
6.3. I/O
Trong lĩnh vực I/O, người giám sát có một số thời gian và có thể ít quan tâm hơn
đến việc đại diện chính xác phần cứng cơ bản cho khách của họ. Do tất cả sự khác nhau
trong các thiết bị I/O, các hệ điều hành đã quen với việc xử các chế I/O linh hoạt
khác nhau. VMM khác nhau rất nhiều về cách họ cung cấp I/O cho khách của họ.
Với quyền truy cập thiết bị trực tiếp trong siêu giám sát loại 1 và 2, hiệu suất thể
tương tự như của hệ điều hành gốc nếu hỗ trợ phần cứng nhất định. Phần cứng cần cung
cấp khả năng truyền qua DMA với các sở như VT-d, ng như phân phối gián đoạn trực
tiếp cho các khách cụ thể. Với mức độ thường xuyên xảy ra gián đoạn, không có gì ngạc
nhiên khi khách sử dụng phần cứng không có các tính năng này có hiệu suất kém hơn so
với khi họ đang chạy tự nhiên.
Ngoài quyền truy cập trực tiếp, VMM cung cấp quyền truy cập được chia sẻ vào các
thiết bị. Hãy xem xét một ổ đĩa mà nhiều khách có quyền truy cập.
VMM phải cung cấp khả năng bảo vệ trong khi chia sẻ thiết bị, đảm bảo rằng khách chỉ có
thể truy cập vào các khối được chỉ định trong cấu hình của khách. Trong những trường hợp
như vậy, VMM phải mt phần của mọi I / O, kiểm tra xem nó có đúng không cũng như
định tuyến dữ liệu đến và đi từ các thiết bị và khách thích hợp.
Ngoài quyền truy cập trực tiếp, VMM cung cấp quyền truy cập được chia sẻ vào các
thiết bị. Hãy xem xét một ổ đĩa mà nhiều khách có quyền truy cập.
VMM phải cung cấp khả năng bảo vệ trong khi chia sẻ thiết bị, đảm bảo rằng khách chỉ có
thể truy cập vào các khối được chỉ định trong cấu hình của khách. Trong những trường hợp
như vậy, VMM phải mt phần của mọi I / O, kiểm tra
17
xem nó đúng không cũng như định tuyến dữ liệu đến đi từ các thiết bị và khách thích
hợp.
6.4. Quản lưu trữ
Một câu hỏi quan trọng trong việc xác định cách ảo hóa hoạt động là: Nếu nhiều hệ
điều hành đã được cài đặt, thì đĩa khởi động ở đâu và ở đâu? Rõ ràng, các môi trường ảo
hóa cần tiếp cận lĩnh vực quản lý lưu trữ khác với các hệ điều hành gốc. Ngay cả phương
pháp multiboot tiêu chuẩn để chia đĩa gốc thành các phân vùng, cài đặt trình quản khởi
động trong một phân vùng cài đặt từng hệ điều hành khác trong một phân vùng khác
không đủ, vì phân vùng có các giới hạn sẽ ngăn nó hoạt động đối với hàng chục hoặc hàng
trăm tệp ảo. máy móc.
Một lần nữa, giải pháp cho vấn đề này phụ thuộc vào loại hypervisor. Trình giám sát
kiểu 0 có xu hướng cho phép phân vùng đĩa gốc, một phần vì các hệ thống này có xu
hướng chạy ít khách hơn các hệ thống khác. Ngoài ra, họ có thể có trình quản lý đĩa như
một phần của phân vùng điều khiển và trình quản lý đĩa đó cung cấp dung lượng đĩa (bao
gồm cả đĩa khởi động) cho các phân vùng khác.
Trình siêu giám sát loại 1 lưu trữ đĩa gốc khách (và thông tin cấu hình) trong một
hoặc nhiều tệp trong hệ thống tệp do VMM cung cấp. Trình siêu giám sát loại 2 u trữ
cùng một thông tin trong hệ thống tệp của hệ điều hành máy chủ. Về bản chất, một ảnh đĩa,
chứa tất cả nội dung của đĩa gốc của khách, được chứa trong một tệp trong VMM. Ngoài
các vấn đề về hiệu suất tiềm ẩn gây ra, đây là một giải pháp thông minh, vì nó giúp đơn
giản hóa việc sao chép và di chuyển khách.
6.5. Di chuyển trực tiếp
Một tính năng không được tìm thấy trong các hệ điều hành có mục đích chung
nhưng được tìm thấy trong trình giám sát loại 0 và loại 1 là sự di chuyển trực tiếp của một
khách đang chạy từ hệ thống này sang hệ thống khác. Vậy cách thức hoạt động của quá
trình di chuyển trực tiếptại sao các VMM thời gian triển khai tương đối dễ dàng
trong khi các hệ điều hành mục đích chung, mặc dù có một số nỗ lực nghiên cứu?
18
Trước tiên là di chuyển trực tiếp. Di chuyển trực tiếp có thể thực hiện được do các
giao diện được xác định ràng giữa khách và VMMtrạng thái giới hạn mà VMM duy
trì cho khách. VMM di chuyển khách qua các bước sau:
1) VMM nguồn thiết lập kết nối với VMM đích xác nhận rằng nó được phép gửi một
khách.
2) Mục tiêu tạo khách mới bằng cách tạo VCPU mới, bảng trang lồng nhau mới và lưu trữ
trạng thái khác.
3) Mục tiêu tạo khách mới bằng cách tạo VCPU mới, bảng trang lồng nhau mới và lưu trữ
trạng thái khác.
4) Nguồn gửi tất cả các trang đọc-ghi đến đích, đánh dấu chúng sạch.
5) Nguồn lặp lại bước 4, vì trong bước đó, một số trang có thể đã bị khách sửa đổi hiện đã
bị bẩn. Các trang này cần được gửi lại và đánh dấu lại là sạch.
6) Khi chu kỳ của bước 4 và 5 trở nên rất ngắn, nguồn VMM đóng băng khách, gửi trạng thái
cuối cùng của VCPU, gửi chi tiết trạng thái khác, gửi các trang bẩn cuối cùng và yêu cầu
mục tiêu bắt đầu chạy khách. Khi mục tiêu xác nhận rằng khách đang chạy, nguồn sẽ kết
thúc khách.
19
Hạn chế của di chuyển trực tiếp là không có trạng thái đĩa nào được chuyển, tuy nhiên, di
chuyển trcjw tiếp cho phép các cách quản trung tâm dữ liệu hoàn toàn mới.
7. dụ về máy ảo
Máy ảo đang trở thành một phương tiện giải quyết các vấn đề về khả năng tương thích
của hệ thống và chúng ta sẽ tìm hiểu hai máy ảo phổ biến hiện nay: VMware Workstation
và máy ảo Java.
2 loại máy ảoy thể chạy trên nhiều hệ điều hành như Linux hay Windows.
7.1. VMware
VMware Workstation một ứng dụng thương mại phổ biến giúp trừu tượng hóa
Intel X86 và phần cứng tương thích thành các máy ảo biệt lập.
VMware Workstation là một ví dụ điển hình về siêu giám sát kiểu 2. Nó chạy như
một ứng dụng trên hệ điều hành máy chủ như Windows hoặc Linux và cho phép hệ thống
máy chủ này chạy đồng thời một số hệ điều hành khách khác nhau dưới dạng các y ảo
độc lập.
Trong trường hợp này:
Linux đang chạy với cách hệ điều hành máy chủ.
20
FreeBSD, Windows NT Windows XP đang chạy dưới dạng hệ điều hành khách.
Trung tâm của VMware lớp ảo hóa, lớp này trừu tượng a phần cứng vật lý thành các
máy ảo riêng biệt chạy như hệ điều hành khách.
Mỗi máy ảo đều CPU ảo, bộ nhớ, đĩa, giao diện mạng, v.v.
7.2. Máy ảo Java
Java là một ngôn ngữ lập trình hướng đối tượng phổ biến được Sun Microsystems
giới thiệu vào năm 1995. Ngoài đặc tả ngôn ngữ và thư viện API lớn, Java cung cấp một
đặc tả cho máy ảo Java, hay còn gọi JVM (Java Virtual Machine). Do đó, Java là một ví
dụ về ảo hóa môi trường lập trình
JVM một đặc tả cho mộty tính trừu tượng.
Bao gồm:
Một trình nạp lớp.
Một trình thông dịch Java thực thi các bytecodes trung lập về kiến trúc, như được biểu
đồ trong Hình 16.10.
Bộ tải lớp tải các tệp .class đã biên dịch từ cả chương trình Java và API Java để trình thông
dịch Java thực thi. Sau khi một lớp được tải, trình xác minh sẽ kiểm tra xem tệp .class
phải là bytecode của Java hợp lệ hay không và nó không làm tràn hoặc tràn ngăn xếp.
Nó cũng đảm bảo rằng mã bytecode không thực hiện số học con trỏ, điều này có thể cung
cấp quyền truy cập bộ nhớ bất hợp pháp. Nếu lớp vượt qua xác minh,được chạy bởi
trình thông dịch Java. JVM cũng tự động quản lý bộ nhớ bằng cách thực hiện thu dọn rác -
thực hành lấy lại bộ nhớ từ các đối tượng không còn được sử dụng và trả lại cho hệ thống.
Nhiều nghiên cứu tập trung vào các thuật toán thu gom rác để tăng hiệu suất của các chương trình Java
trong máy ảo.
JVM có thể được triển khai trong phần mềm trên hệ điều hành chủ, chẳng hạn như
Windows, Linux hoặc Mac OS X hoặc như một phần của trình duyệt Web. Ngoài ra, JVM
có thể được triển khai trong phần cứng trên chip được thiết kế đặc biệt để chạy các chương
trình Java. Nếu JVM được triển khai trong phần mềm, trình thông dịch Java sẽ thông dịch
các hoạt động bytecode tại một thời điểm.
Kết Luận
Ảo hóa một phương pháp cung cấp cho khách một bản sao của phần cứng cơ bản của
hệ thống.
Ảo hóa loại 0 được thực hiện trong phần cứng và yêu cầu các cation modifi cho hệ điều hành để đảm
bảo hoạt động tốt. Trong ảo hóa Loại 1, một màn hình máy ảo chủ (VMM) cung cấp môi trường và các tính
năng cần thiết để tạo, chạy và phá hủy các máy ảo kch. Mỗi khách bao gồm tất cả phần mềm thường
được liên kết với một hệ thống gốc đầy đủ, bao gm hệ điều hành, trình điều khiển thiết b, ứng dụng, tài
khoản người dùng, v.v.
Siêu giám sát loại 2 chỉ đơn giản các ứng dụng chạy trên các hệ điều hành khác mà
không biết rằng quá trình ảo hóa đang diễn ra. Những hypervi này sẽ không được hỗ trợ
phần cứng hoặc máy chủ lưu trữ vì vậy phải thực hiện tất cả ảo hóa các hoạt động trong bối
cảnh của một quá trình.
Thực hiện ảo hóa là một thách thức, đặc biệt khi hỗ trợ phần cứng tối thiểu.
Một số hỗ trợ phần cứng phải tồn tại cho ảo a, nhưng hệ thống càng cung cấp nhiều tính
năng thì ảo hóa càng dễ thực hiện và hiệu suất của khách càng tốt. VMMS tận dụng bất k
sự hỗ trợ phần cứng nào có sẵn khi tối ưu hóa lập lịch CPU, quản lý bộ nhớ-đun 1/0
để cung cấp cho khách sử dụng tài nguyên tối ưu đồng thời bảo vệ VMM khỏi khách và
khách với nhau.
23

Preview text:

Bài tập Thảo luận
TRƯỜNG ĐẠI HỌC XÂY DỰNG NỘI KHOA CÔNG NGHỆ THÔNG TIN ~~~~~~*~~~~~~
BÀI TẬP THẢO LUẬN
MÔN NGUYÊN HỆ ĐIỀU HÀNH Đề tài:
Tìm hiểu về Máy ảo Virtual Machine
Giảng viên hướng dẫn: Vương Thị Dung
Nhóm sinh viên thảo luận: STT
Họ tên MSSV Lớp 1
Nguyễn Đức Mạnh 0000766 66CS2 2
Bùi Thị Ngọc Thanh 0219866 66CS2 3
Nguyễn Thu Trang 0221266 66CS2 4
Trần Thu Trang 0221366 66CS2 5
Công Tuyến 0221966 66CS2
Nội 9/2022 MỤC LỤC 1
MỤC LỤC ........................................................................................................................................2
Lời Nói Đầu ......................................................................................................................................3
1. Tổng quan .........................................................................................................................................4
2. Lịch sử ...............................................................................................................................................5
3. Lợi ích tính năng .........................................................................................................................6
3.1. Lợi ích nhược điểm ........................................................................................................................6
3.2. Tính năng 7
4. Xây dựng khối ..................................................................................................................................7
4.1. Bẫy phỏng ................................................................................................................................8
4.2. Bản dịch nhị phân ..............................................................................................................................8
4.3. Hỗ trợ phần cứng ...............................................................................................................................9
5. Các loại máy ảo cách triển khai của chúng ............................................................................10
5.1. Vòng đời máy ảo ..............................................................................................................................10
5.2. Siêu giám sát kiểu 0 Type 0 Hypervisor ........................................................................................10
5.3. Siêu giám sát kiểu 1- Type 1 Hypervisor ..........................................................................................11
5.4. Siêu giám sát loại 2 Type 2 Hypervisor ........................................................................................11
5.5. Paravirtualization ............................................................................................................................11
5.6. Ảo hóa môi trường lập trình ............................................................................................................12
5.7. Thi đua - Emulation .........................................................................................................................13
5.8. Lưu trữ ứng dụng .............................................................................................................................13
6. Ảo hóa các thành phần hệ thống..............................................................................................13
6.1. Lập lịch CPU ...................................................................................................................................13
6.2. Quản bộ nhớ.................................................................................................................................14 6.3. I/O 14
6.4. Quản lưu trữ .................................................................................................................................15
6.5. Di chuyển trực tiếp ...........................................................................................................................16
7. Ví dụ về máy ảo ..............................................................................................................................17 7.1. VMware 17
7.2. Máy ảo Java .....................................................................................................................................18
Kết Luận .........................................................................................................................................20 2
Lời Nói Đầu
Thuật ngữ ảo hóa – Virtualization có nhiều nghĩa, và các khía cạnh của ảo hóa bao trùm tất
cả các khía cạnh của máy tính. Máy ảo – Virtual Machine là một ví dụ của xu hướng này.
Nói chung, với một máy ảo, hệ điều hành khách và ứng dụng chạy trong một môi trường
mà đối với chúng là phần cứng gốc và hoạt động đối với chúng như phần cứng gốc nhưng
điều đó cũng bảo vệ, quản lý và hạn chế chúng.
Đề tài máy ảo hôm nay đi sâu vào việc sử dụng, tính năng và triển khai của ảo máy móc.
Máy ảo có thể được triển khai theo một số cách và điều này chương mô tả các tùy chọn
này. Một tùy chọn là thêm hỗ trợ máy ảo vào hạt nhân. Bởi vì phương pháp thực hiện đó là
phù hợp nhất với cuốn sách này, chúng tôi khám phá nó một cách đầy đủ nhất. Ngoài ra,
các tính năng phần cứng được cung cấp bởi CPU và thậm chí bởi các thiết bị I/ O có thể hỗ
trợ triển khai máy ảo, vì vậy chúng ta sẽ thảo luận về cách các tính năng đó được sử dụng
bởi các mô-đun hạt nhân thích hợp. 3 1. Tổng quan
Ý tưởng cơ bản đằng sau một máy ảo là trừu tượng hóa phần cứng của một máy tính
(CPU, bộ nhớ, ổ đĩa, thẻ giao diện mạng, và v.v.) vào một số môi trường thực thi khác
nhau, do đó tạo ảo tưởng rằng mỗi môi trường riêng biệt đang chạy riêng máy tính. Trong
trường hợp ảo hóa, có một lớp tạo ra một hệ thống ảo trên đó hoạt động hệ thống hoặc ứng dụng có thể chạy.
Việc triển khai máy ảo liên quan đến một số thành phần. Tại cơ sở là máy chủ lưu trữ,
hệ thống phần cứng cơ bản chạy các máy ảo. Trình quản lý máy ảo – Virtual Machine
Manager (VMM) (còn được gọi là siêu giám sát) tạo và chạy các máy ảo bằng cách cung
cấp một giao diện giống hệt với máy chủ (ngoại trừ trường hợp paravirtualization, sẽ nói ở
phần sau). Mỗi quy trình của khách được cung cấp một bản sao ảo của máy chủ lưu trữ
(Hình 16.1). Thông thường, khách quy trình trên thực tế là một hệ điều hành. Do đó, một
máy vật lý duy nhất có thể chạy nhiều hệ điều hành đồng thời, mỗi hệ điều hành trong máy ảo của riêng nó.
Việc triển khai VMMs rất khác nhau, tuy nhiên bao gồm:
• Các giải pháp dựa trên phần cứng cung caaos hỗ trợ cho việc tạo máy ảo và quản lý thông
qua phần sụn. Các VMM này thường tìm thấy trong máy chủ lớn và máy chủ cỡ vừa – siêu giám sát loại 0.
• Phần mềm giống HĐH được xây dựng để cung cấp ảo hóa, bao gồm VMware ESX, Joyent
SmartOS và Citrix XenServer - siêu giám sát loại 1. 4 a) Máy không ảo b) Máy ảo
• Hệ điều hành có mục đích chung cung cấp các chức năng tiêu chuẩn như cũng như các
chức năng VMM, bao gồm Microsoft Windows Server với HyperV và RedHat Linux với
tính năng KVM. Bởi vì các hệ thống như vậy có bộ tính năng tương tự như siêu giám sát
loại 1, chúng còn được gọi là loại 1.
• Các ứng dụng chạy trên hệ điều hành tiêu chuẩn nhưng cung cấp VMM các tính năng của
hệ điều hành khách. Các ứng dụng này, bao gồm VMware Workstation và Fusion, Parallels
Desktop và Oracle Virtual- Hộp, là loại 2 siêu giám sát.
• Paravirtualization, một kỹ thuật trong đó hệ điều hành khách được sửa đổi để hợp tác với
VMM nhằm tối ưu hóa hiệu suất.
• Ảo hóa môi trường lập trình – Programming environment virtual, trong đó các VMM
không thay đổi phần cứng thực nhưng thay vào đó tạo ra một hệ thống ảo được tối ưu hóa.
• Trình giả lập – Emulators cho phép các ứng dụng được viết cho một môi trường phần cứng
để chạy trên một môi trường phần cứng rất khác, chẳng hạn như một loại khác của CPU.
• Ngăn chặn ứng dụng – Application containment, không phải là ảo hóa mà là cung cấp các
tính năng giống như ảo hóa bằng cách tách các ứng dụng khỏi hệ điều hành. 5 2. Lịch sử
Máy ảo xuất hiện thương mại lần đầu tiên trên máy tính lớn của IBM vào năm 1972.
Ảo hóa được cung cấp bởi hệ điều hành IBM VM. Hệ thống này có phát triển và vẫn có
sẵn. Ngoài ra, nhiều khái niệm ban đầu của nó là được tìm thấy trong các hệ thống khác,
làm cho nó đáng để khám phá. IBM VM370 chia một máy tính lớn thành nhiều máy ảo,
mỗi máy chạy hệ điều hành riêng. Một khó khăn lớn với cách tiếp cận VM hệ thống đĩa
liên quan. Giả sử rằng máy vật lý có ba ổ đĩa nhưng muốn hỗ trợ bảy máy ảo. Rõ ràng, nó
không thể phân bổ một ổ đĩa cho mỗi máy ảo. Giải pháp là cung cấp đĩa ảo - gọi là đĩa nhỏ
trong hệ điều hành máy ảo của IBM. Các đĩa mini giống hệt nhau vào đĩa cứng của hệ
thống ở mọi khía cạnh ngoại trừ kích thước. Hệ thống được triển khai mỗi đĩa nhỏ bằng
cách phân bổ nhiều bản nhạc trên các đĩa vật lý như đĩa nhỏ cần thiết.
Sau khi các máy ảo được tạo, người dùng có thể chạy bất kỳ hệ điều hành hoặc gói
phần mềm có sẵn trên cỗ máy. Đối với hệ thống IBM VM, một người dùng thường chạy
CMS - một người dùng duy nhất hệ điều hành tương tác.
Trong nhiều năm sau khi IBM giới thiệu công nghệ này, ảo hóa vẫn ở trong miền của
nó. Hầu hết các hệ thống không thể hỗ trợ ảo hóa. Tuy nhiên, một định nghĩa chính thức về
ảo hóa đã giúp thiết lập hệ thống yêu cầu và mục tiêu cho chức năng.
Các yêu cầu ảo hóa nói rằng:
1) VMM cung cấp môi trường cho các chương trình về cơ bản giống hệt nhau với máy ban đầu.
2) Các chương trình chạy trong môi trường đó chỉ hiển thị những phần nhỏ mance giảm.
3) VMM hoàn toàn kiểm soát tài nguyên hệ thống. Những yêu cầu về độ trung thực, hiệu suất
và an toàn này vẫn hướng dẫn virtualiza- tion nỗ lực ngày hôm nay.
Vào cuối những năm 1990, CPU Intel 80x86 đã trở nên phổ biến, nhanh chóng và
phong phú trong các tính năng. Theo đó, các nhà phát triển đã đưa ra nhiều nỗ lực để 6
triển khai ảo hóa trên nền tảng đó. Cả Xen và VMware đều tạo ra các công nghệ, vẫn được
sử dụng cho đến ngày nay, để cho phép các hệ điều hành khách chạy trên 80x86. Từ thời
gian đó, ảo hóa đã mở rộng để bao gồm tất cả các CPU thông thường, nhiều các công cụ
thương mại và mã nguồn mở, và nhiều hệ điều hành. Ví dụ, dự án VirtualBox mã nguồn
mở (http://www.virtualbox.org) cung cấp một chương trình hơn là chạy trên CPU Intel x86
và AMD64 và trên Windows, Linux, Hệ điều hành máy chủ Mac OS X và Solaris. Hệ điều
hành khách có thể có bao gồm nhiều phiên bản Windows, Linux, Solaris và BSD, kể cả MS-DOS và IBM OS / 2.
3. Lợi ích tính năng
3.1. Lợi ích nhược điểm
Một lợi thế quan trọng của ảo hóa là hệ thống máy chủ lưu trữ là được bảo vệ khỏi các
máy ảo, giống như các máy ảo được bảo vệ từ nhau. Vi rút bên trong hệ điều hành khách có
thể làm hỏng hệ điều hành nhưng không có khả năng ảnh hưởng đến máy chủ lưu trữ hoặc
các khách khác. Tại vì mỗi máy ảo gần như bị cô lập hoàn toàn với tất cả các máy ảo khác
máy móc, hầu như không có vấn đề về bảo vệ.
Một nhược điểm tiềm ẩn của việc độc lập là nó có thể ngăn cản việc chia sẻ tài nguyên. Có
hai cách tiếp cận để cung cấp chia sẻ đã được thực thi. Thứ nhất, có thể chia sẻ một ổ đĩa hệ
thống tệp và do đó để chia sẻ tệp. Thứ hai, có thể xác định một mạng lưới các máy ảo, mỗi
máy có thể gửi thông tin qua mạng truyền thông ảo.
3.2. Tính năng
Một tính năng phổ biến đối với hầu hết các triển khai ảo hóa là khả năng để đóng băng
hoặc tạm ngừng một máy ảo đang chạy. Nhiều hệ điều hành cung cấp tính năng cơ bản đó
cho các quy trình, nhưng VMM sẽ tiến thêm một bước nữa và cho phép tạo bản sao và ảnh chụp nhanh của khách.
Hệ thống máy ảo là một phương tiện hoàn hảo để nghiên cứu hệ điều hành và phát triển.
Thông thường, thay đổi một hệ điều hành là một nhiệm vụ khó khăn. Hệ điều hành là
những chương trình lớn và phức tạp, và sự thay đổi trong một một phần có thể khiến các lỗi
bị che khuất xuất hiện ở một số phần khác. 7
Hơn nữa, hệ điều hành chạy trên và kiểm soát toàn bộ máy, nghĩa là hệ thống phải được
dừng và không sử dụng trong khi thay đổi được thực hiện và thử nghiệm. Giai đoạn này
thường được gọi là phát triển hệ thống thời gian.
Một lợi thế khác của máy ảo dành cho các nhà phát triển là nhiều hệ điều hành có thể
chạy đồng thời trên máy trạm của nhà phát triển. Đây máy trạm ảo hóa cho phép chuyển và
kiểm tra nhanh các chương trình trong môi trường khác nhau. Ngoài ra, nhiều phiên bản
của một chương trình có thể chạy, mỗi trong một hệ điều hành biệt lập của riêng nó, trong một hệ thống.
Ảo hóa có thể cải thiện không chỉ việc sử dụng tài nguyên mà còn cả tài nguyên ban
quản lý. Đồng thời, ảo hóa đã đặt nền tảng cho nhiều tiến bộ khác trong máy tính thực hiện,
quản lý và giám sát cơ sở.
4. Xây dựng khối
Mặc dù khái niệm máy ảo rất hữu ích nhưng nó rất khó thực hiện. Cần phải làm nhiều
việc để cung cấp một bản sao chính xác của phần bên dưới cỗ máy. Đây đặc biệt là một
thách thức đối với các hệ thống chế độ kép, nơi máy bên dưới chỉ có chế độ người dùng và chế độ hạt nhân.
4.1. Bẫy phỏng
Trên hệ thống chế độ kép điển hình, khách máy ảo chỉ có thể thực thi trong chế độ
người dùng (trừ khi hỗ trợ phần cứng bổ sung được cung cấp).
Tất nhiên, hạt nhân chạy trong chế độ hạt nhân và không an toàn khi cho phép mã
cấp người dùng chạy trong hạt nhân cách thức. Tuy nhiên, cũng giống như máy vật lý có
hai chế độ, máy ảo cũng phải cỗ máy. Do đó, chúng ta phải có một chế độ người dùng ảo
và một hạt nhân ảo, cả hai đều chạy ở chế độ người dùng vật lý. Những hành động gây ra
một chuyển từ chế độ người dùng sang chế 8
độ hạt nhân trên máy thực (chẳng hạn như hệ thống cuộc gọi, ngắt hoặc cố gắng thực hiện
một lệnh đặc quyền) cũng phải chuyển từ chế độ người dùng ảo sang chế độ hạt nhân ảo trong ảo cỗ máy. Cách chuyển giao:
Khi hạt nhân trong máy khách cố gắng thực thi một lệnh đặc quyền, là một lỗi (do
hệ thống đang ở chế độ người dùng) và gây ra một cái bẫy đối với VMM trong máy thực.
VMM giành quyền kiểm soát và thực thi (hoặc "mô phỏng") hành động đã được thực hiện
bởi hạt nhân khách trên một phần của khách. Sau đó nó trả lại quyền điều khiển cho máy
ảo. Đây được gọi là bẫy và mô phỏng và được thể hiện trong Hình 16.2.
16.2. Triển khai ảo hóa bẫy và mô phỏng
4.2. Bản dịch nhị phân
Một số CPU không có sự phân biệt rõ ràng giữa đặc quyền và không đặc quyền
hướng dẫn. Thật không may cho những người triển khai ảo hóa, CPU Intel x86 dòng là một
trong số họ. Không có suy nghĩ nào được đưa ra để chạy ảo hóa trên x86 khi nó được thiết
kế. Gần đây nhất là 1998, / Judi 1998 dường như gần đây không sử dụng phương pháp bẫy
và mô phỏng để thực hiện ảo hóa trên x86 được coi là không thể vì những hướng dẫn đặc biệt này. 9
Vấn đề không thể vượt qua trước đây này đã được giải quyết với việc triển khai kỹ
thuật dịch nhị phân. Bản dịch nhị phân khá đơn giản về khái niệm nhưng phức tạp trong
cách thực hiện. Các bước cơ bản như sau:
1) Nếu VCPU khách đang ở chế độ người dùng, khách có thể chạy các hướng dẫn của nó
nguyên bản trên một CPU vật lý.
2) Nếu VCPU của khách đang ở chế độ hạt nhân, thì khách tin rằng nó đang đang chạy ở chế
độ hạt nhân. VMM kiểm tra mọi hướng dẫn của khách thực thi ở chế độ hạt nhân ảo bằng
cách đọc một số hướng dẫn tiếp theo khách sẽ thực hiện, dựa trên bộ đếm chương trình của
khách. Các hướng dẫn khác với các hướng dẫn đặc biệt được chạy nguyên bản. Đặc biệt
hướng dẫn được dịch thành một bộ hướng dẫn mới thực hiện nhiệm vụ tương đương.
16.3. Thực hiện ảo hóa bản dịch nhị phân
4.3. Hỗ trợ phần cứng
Nếu không có một số mức hỗ trợ phần cứng, ảo hóa sẽ không thể thực hiện được. Hệ
thống càng hỗ trợ nhiều phần cứng thì tính năng càng phong phú và ổn định các máy ảo có
thể được và chúng có thể hoạt động tốt hơn. Bây giờ dịch nhị phân sẽ không còn cần thiết. 10
Hệ thống càng hỗ trợ nhiều phần cứng thì tính năng càng phong phú và ổn định các
máy ảo có thể được và chúng có thể hoạt động tốt hơn.
5. Các loại máy ảo cách triển khai của chúng
5.1. Vòng đời máy ảo
Khi máy ảo được tạo ra người ta cấp phát cho nó các thông số bao gồm: số lượng
CPU, số lượng chi tiết bộ nhớ, mạng và dữ liệu mà máy ảo sẽ xem xét khi tạo thành.
Khi không còn cần thiết, máy ảo bị xóa. Khi điều này xảy ra, VMM đầu tiên giải
phóng mọi dung lượng ổ đĩa đã sử dụng và sau đó loại bỏ cấu hình được liên kết với máy
ảo, về cơ bản quên máy ảo.
Máy ảo dễ dàng được tạo ra => dễ dàng lan rộng => khi có quá nhiều máy ảo trên
một hệ thống sử dụng chúng, lịch sử và trạng thái trở nên khó hiểu và khó theo dõi
5.2. Siêu giám sát kiểu 0 Type 0 Hypervisor
Tên gọi: phân vùng và miền
Là tính năng phần cứng. VMM được mã hóa trong phần sụn và được tải vào lúc khởi
động. Nó tải các hình ảnh khách để chạy trong mỗi vách ngăn.
Trong phân vùng điều khiển, hệ điều hành khách cung cấp các dịch vụ (như mạng)
thông qua daemon đến các khách khác và các đường dẫn siêu giám sát I/O yêu cầu một cách thích hợp.
Ảo hóa kiểu 0 rất gần với việc thực thi phần cứng thô, nên nó được xem xét tách biệt
với các phương pháp khác được thảo luận ở đây. Một hypervisor loại 0 có thể chạy nhiều
hệ điều hành khách (mỗi hệ điều hành phân vùng phần cứng).
Tất cả những khách đó, bởi vì họ đang chạy trên nguyên phần cứng, lần lượt có 11
thể là VMM. Về cơ bản, các hệ điều hành khách trong một hypervisor loại 0 là các hệ điều
hành gốc với một tập hợp con phần cứng cung cấp cho họ. Do đó, mỗi hệ điều hành có thể
có hệ điều hành khách riêng (Hình 16.5). Các loại giám sát viên khác thường không thể
cung cấp điều này chức năng ảo hóa trong phạm vi ảo hóa.
5.3. Siêu giám sát kiểu 1- Type 1 Hypervisor
Thường được tìm thấy trong các trung tâm dữ liệu của công ty và ở cảm giác trở
thành “hệ điều hành trung tâm dữ liệu”.
Mục dích: HĐH chạy nguyên bản trên phần cứng, nhưng thay vì cung cấp lệnh gọi
hệ thống và các giao diện khác để chạy chương trình, chúng tạo, chạy và quản lý hệ điều
hành khách. Ngoài việc chạy trên phần cứng tiêu chuẩn, chúng có thể chạy trên siêu giám
sát loại 0, nhưng không chạy trên siêu giám sát loại 1 khác.
Các bộ giám sát loại 1 chạy ở chế độ hạt nhân, tận dụng khả năng bảo vệ phần cứng.
Khi CPU chủ cho phép, chúng sử dụng nhiều chế độ để cung cấp cho hệ điều hành khách
quyền kiểm soát riêng và cải thiện hiệu suất.
Bằng cách sử dụng siêu giám sát loại 1, người quản lý trung tâm dữ liệu có thể kiểm
soát và quản lý hệ điều hành và ứng dụng theo những cách mới và tinh
vi. Một lợi ích quan trọng là khả năng hợp nhất nhiều hệ điều hành hơn và ứng dụng vào ít hệ thống hơn.
5.4. Siêu giám sát loại 2 Type 2 Hypervisor 12
Có rất ít sự tham gia của hệ điều hành vào các trình quản lý máy ảo cấp ứng dụng này.
Loại VMM này chỉ đơn giản là một quy trình khác được chạy và quản lý bởi máy
chủ lưu trữ và thậm chí máy chủ lưu trữ không biết quá trình ảo hóa đang diễn ra trong VMM.
Những hạn chế của người giám sát loại 2 cũng mang lại một số lợi ích.
Chúng chạy trên nhiều hệ điều hành có mục đích chung khác nhau và việc chạy chúng
không yêu cầu thay đổi hệ điều hành chủ. Ví dụ, một sinh viên có thể sử dụng một siêu
giám sát loại 2 để kiểm tra một hệ điều hành không phải là bản địa mà không cần thay thế hệ điều hành gốc.
5.5. Paravirtualization
Paravirtualization có cách sử lý khác với các loại ảo hóa khác. Thay vì cố gắng đánh
lừa hệ điều hành của khách tin rằng hệ điều hành của khách có một hệ thống riêng, ảo hóa
cung cấp cho khách một hệ thống tương tự nhưng không giống với hệ thống ưa thích của
khách. Khách phải được sửa đổi để chạy trên phần cứng ảo được paravirtualized. Lợi ích
của công việc bổ sung này là sử dụng tài nguyên hiệu quả hơn và một lớp ảo hóa nhỏ hơn.
Đối với mỗi thiết bị được sử dụng bởi mỗi khách, có một bộ đệm tròn được chia sẻ
bởi khách và VMM thông qua bộ nhớ dùng chung. Dữ liệu đọc và ghi được đặt trong bộ đệm này. 13
Để quản lý bộ nhớ, Xen không triển khai các bảng trang lồng nhau. Thay vào đó,
mỗi khách có bộ bảng trang riêng, được đặt ở chế độ chỉ đọc. Xen yêu cầu khách sử dụng
một cơ chế cụ thể, một siêu cuộc gọi từ khách đến hypervisor VMM, khi cần thay đổi bảng trang.
Xen cho phép ảo hóa CPU x86 mà không cần sử dụng dịch nhị phân, thay vào đó
yêu cầu sửa đổi trong hệ điều hành khách như mô tả ở trên. Theo thời gian, Xen đã tận
dụng các tính năng phần cứng hỗ trợ ảo hóa. Do đó, nó không còn yêu cầu khách đã sửa
đổi và về cơ bản không cần phương pháp paravirtualization. Tuy nhiên, Paravirtualization
vẫn được sử dụng trong các giải pháp khác, chẳng hạn như siêu giám sát loại 0.
5.6. Ảo hóa môi trường lập trình
Một loại ảo hóa khác, dựa trên một mô hình thực thi khác, là ảo hóa các môi trường
lập trình. Ở đây, một ngôn ngữ lập trình được thiết kế để chạy trong một môi trường ảo hóa
được xây dựng tùy chỉnh. Nếu chúng ta định nghĩa ảo hóa là chỉ bao gồm phần cứng trùng
lặp, thì đây không thực sự là ảo hóa. Nhưng chúng ta không cần giới hạn bản thân trong
định nghĩa đó. Thay vào đó, chúng ta có thể xác định một môi trường ảo, dựa trên các API,
cung cấp một tập hợp các tính năng mà chúng ta muốn có sẵn cho một ngôn ngữ cụ thể và
các chương trình được viết bằng ngôn ngữ đó. 14
5.7. Thi đua - Emulation
Ảo hóa có lẽ là phương pháp phổ biến nhất để chạy các ứng dụng được thiết kế cho
một hệ điều hành trên một hệ điều hành khác nhưng trên cùng một CPU. Phương pháp này
hoạt động tương đối hiệu quả vì các ứng dụng được biên dịch cho cùng một tập lệnh như hệ thống đích sử dụng.
5.8. Lưu trữ ứng dụng
Mục tiêu của ảo hóa trong một số trường hợp là cung cấp phương pháp tách biệt các
ứng dụng, quản lý hiệu suất và việc sử dụng tài nguyên của chúng, đồng thời tạo ra một
cách dễ dàng để bắt đầu, dừng, di chuyển và quản lý chúng. Trong những trường hợp như
vậy, có lẽ không cần ảo hóa toàn bộ. Nếu tất cả các ứng dụng được biên dịch cho cùng một
hệ điều hành, thì không cần ảo hóa hoàn toàn để cung cấp các tính năng này. Thay vào đó
có thể sử dụng tính năng ngăn chặn ứng dụng.
6. Ảo hóa các thành phần hệ thống
6.1. Lập lịch CPU 15
Một hệ thống có ảo hóa, ngay cả một hệ thống một CPU, thường hoạt động giống
như một hệ thống đa xử lý. Phần mềm ảo hóa trình bày một hoặc nhiều CPU ảo cho mỗi
máy ảo đang chạy trên hệ thống và sau đó lập lịch sử dụng CPU vật lý giữa các máy ảo.
Sự khác biệt đáng kể giữa các công nghệ ảo hóa gây khó khăn cho việc tóm tắt tác
động của ảo hóa đối với việc lập lịch trình. Ngay cả khi được cung cấp một công cụ lập
lịch cung cấp sự công bằng, bất kỳ thuật toán lập lịch biểu của hệ điều hành khách nào giả
định một lượng tiến độ nhất định trong một khoảng thời gian nhất định sẽ bị ảnh hưởng
tiêu cực bởi ảo hóa. Trong một máy ảo, hệ điều hành này phụ thuộc vào hệ thống ảo hóa
như tài nguyên CPU mà nó thực sự nhận được.
Hiệu quả thực sự của việc phân lớp lập lịch như vậy là các hệ điều hành ảo hóa riêng
lẻ chỉ nhận được một phần các chu kỳ CPU có sẵn, mặc dù chúng tin rằng chúng đang
nhận tất cả các chu kỳ và thực sự là chúng đang lập lịch cho tất cả các chu kỳ đó. Do đó, ảo
hóa có thể hoàn tác các nỗ lực lập lịch trình-thuật toán tốt của hệ điều hành trong các máy ảo.
6.2. Quản bộ nhớ
Trong môi trường ảo hóa, có nhiều người dùng bộ nhớ hơn (khách và ứng dụng của
họ, cũng như VMM), dẫn đến áp lực sử dụng bộ nhớ nhiều hơn.
1) Một cách tiếp cận là cung cấp phân trang kép, trong đó VMM có các thuật toán thay thế
trang riêng và các trang để sao lưu các trang lưu trữ mà khách cho rằng nằm trong bộ nhớ vật lý.
2) Một giải pháp phổ biến là VMM cài đặt cho mỗi khách một trình điều khiển thiết bị giả
hoặc mô-đun hạt nhân mà nó điều khiển. Trình quản lý bộ nhớ bong bóng này giao tiếp với
VMM và được yêu cầu cấp phát hoặc phân bổ bộ nhớ. Nếu được yêu cầu cấp phát, nó sẽ
cấp phát bộ nhớ và yêu cầu hệ điều hành ghim các trang được cấp phát vào bộ nhớ vật lý. 16
3) Một phương pháp phổ biến khác để giảm áp lực bộ nhớ là VMM xác định xem cùng một
trang đã được tải nhiều lần hay chưa. Nếu đúng như vậy, VMM sẽ giảm số lượng bản sao
của trang xuống một bản và ánh xạ những người dùng khác của trang tới bản sao đó. 6.3. I/O
Trong lĩnh vực I/O, người giám sát có một số thời gian và có thể ít quan tâm hơn
đến việc đại diện chính xác phần cứng cơ bản cho khách của họ. Do tất cả sự khác nhau
trong các thiết bị I/O, các hệ điều hành đã quen với việc xử lý các cơ chế I/O linh hoạt và
khác nhau. VMM khác nhau rất nhiều về cách họ cung cấp I/O cho khách của họ.
Với quyền truy cập thiết bị trực tiếp trong siêu giám sát loại 1 và 2, hiệu suất có thể
tương tự như của hệ điều hành gốc nếu có hỗ trợ phần cứng nhất định. Phần cứng cần cung
cấp khả năng truyền qua DMA với các cơ sở như VT-d, cũng như phân phối gián đoạn trực
tiếp cho các khách cụ thể. Với mức độ thường xuyên xảy ra gián đoạn, không có gì ngạc
nhiên khi khách sử dụng phần cứng không có các tính năng này có hiệu suất kém hơn so
với khi họ đang chạy tự nhiên.
Ngoài quyền truy cập trực tiếp, VMM cung cấp quyền truy cập được chia sẻ vào các
thiết bị. Hãy xem xét một ổ đĩa mà nhiều khách có quyền truy cập.
VMM phải cung cấp khả năng bảo vệ trong khi chia sẻ thiết bị, đảm bảo rằng khách chỉ có
thể truy cập vào các khối được chỉ định trong cấu hình của khách. Trong những trường hợp
như vậy, VMM phải là một phần của mọi I / O, kiểm tra xem nó có đúng không cũng như
định tuyến dữ liệu đến và đi từ các thiết bị và khách thích hợp.
Ngoài quyền truy cập trực tiếp, VMM cung cấp quyền truy cập được chia sẻ vào các
thiết bị. Hãy xem xét một ổ đĩa mà nhiều khách có quyền truy cập.
VMM phải cung cấp khả năng bảo vệ trong khi chia sẻ thiết bị, đảm bảo rằng khách chỉ có
thể truy cập vào các khối được chỉ định trong cấu hình của khách. Trong những trường hợp
như vậy, VMM phải là một phần của mọi I / O, kiểm tra 17
xem nó có đúng không cũng như định tuyến dữ liệu đến và đi từ các thiết bị và khách thích hợp.
6.4. Quản lưu trữ
Một câu hỏi quan trọng trong việc xác định cách ảo hóa hoạt động là: Nếu nhiều hệ
điều hành đã được cài đặt, thì đĩa khởi động ở đâu và ở đâu? Rõ ràng, các môi trường ảo
hóa cần tiếp cận lĩnh vực quản lý lưu trữ khác với các hệ điều hành gốc. Ngay cả phương
pháp multiboot tiêu chuẩn để chia đĩa gốc thành các phân vùng, cài đặt trình quản lý khởi
động trong một phân vùng và cài đặt từng hệ điều hành khác trong một phân vùng khác là
không đủ, vì phân vùng có các giới hạn sẽ ngăn nó hoạt động đối với hàng chục hoặc hàng trăm tệp ảo. máy móc.
Một lần nữa, giải pháp cho vấn đề này phụ thuộc vào loại hypervisor. Trình giám sát
kiểu 0 có xu hướng cho phép phân vùng đĩa gốc, một phần vì các hệ thống này có xu
hướng chạy ít khách hơn các hệ thống khác. Ngoài ra, họ có thể có trình quản lý đĩa như
một phần của phân vùng điều khiển và trình quản lý đĩa đó cung cấp dung lượng đĩa (bao
gồm cả đĩa khởi động) cho các phân vùng khác.
Trình siêu giám sát loại 1 lưu trữ đĩa gốc khách (và thông tin cấu hình) trong một
hoặc nhiều tệp trong hệ thống tệp do VMM cung cấp. Trình siêu giám sát loại 2 lưu trữ
cùng một thông tin trong hệ thống tệp của hệ điều hành máy chủ. Về bản chất, một ảnh đĩa,
chứa tất cả nội dung của đĩa gốc của khách, được chứa trong một tệp trong VMM. Ngoài
các vấn đề về hiệu suất tiềm ẩn gây ra, đây là một giải pháp thông minh, vì nó giúp đơn
giản hóa việc sao chép và di chuyển khách.
6.5. Di chuyển trực tiếp
Một tính năng không được tìm thấy trong các hệ điều hành có mục đích chung
nhưng được tìm thấy trong trình giám sát loại 0 và loại 1 là sự di chuyển trực tiếp của một
khách đang chạy từ hệ thống này sang hệ thống khác. Vậy cách thức hoạt động của quá
trình di chuyển trực tiếp và tại sao các VMM có thời gian triển khai tương đối dễ dàng
trong khi các hệ điều hành mục đích chung, mặc dù có một số nỗ lực nghiên cứu? 18
Trước tiên là di chuyển trực tiếp. Di chuyển trực tiếp có thể thực hiện được do các
giao diện được xác định rõ ràng giữa khách và VMM và trạng thái giới hạn mà VMM duy
trì cho khách. VMM di chuyển khách qua các bước sau:
1) VMM nguồn thiết lập kết nối với VMM đích và xác nhận rằng nó được phép gửi một khách.
2) Mục tiêu tạo khách mới bằng cách tạo VCPU mới, bảng trang lồng nhau mới và lưu trữ trạng thái khác.
3) Mục tiêu tạo khách mới bằng cách tạo VCPU mới, bảng trang lồng nhau mới và lưu trữ trạng thái khác.
4) Nguồn gửi tất cả các trang đọc-ghi đến đích, đánh dấu chúng là sạch.
5) Nguồn lặp lại bước 4, vì trong bước đó, một số trang có thể đã bị khách sửa đổi và hiện đã
bị bẩn. Các trang này cần được gửi lại và đánh dấu lại là sạch.
6) Khi chu kỳ của bước 4 và 5 trở nên rất ngắn, nguồn VMM đóng băng khách, gửi trạng thái
cuối cùng của VCPU, gửi chi tiết trạng thái khác, gửi các trang bẩn cuối cùng và yêu cầu
mục tiêu bắt đầu chạy khách. Khi mục tiêu xác nhận rằng khách đang chạy, nguồn sẽ kết thúc khách. 19
Hạn chế của di chuyển trực tiếp là không có trạng thái đĩa nào được chuyển, tuy nhiên, di
chuyển trcjw tiếp cho phép các cách quản lý trung tâm dữ liệu hoàn toàn mới.
7. Ví dụ về máy ảo
Máy ảo đang trở thành một phương tiện giải quyết các vấn đề về khả năng tương thích
của hệ thống và chúng ta sẽ tìm hiểu hai máy ảo phổ biến hiện nay: VMware Workstation và máy ảo Java.
2 loại máy ảo này có thể chạy trên nhiều hệ điều hành như Linux hay Windows. 7.1. VMware
VMware Workstation là một ứng dụng thương mại phổ biến giúp trừu tượng hóa
Intel X86 và phần cứng tương thích thành các máy ảo biệt lập.
VMware Workstation là một ví dụ điển hình về siêu giám sát kiểu 2. Nó chạy như
một ứng dụng trên hệ điều hành máy chủ như Windows hoặc Linux và cho phép hệ thống
máy chủ này chạy đồng thời một số hệ điều hành khách khác nhau dưới dạng các máy ảo độc lập. Trong trường hợp này:
• Linux đang chạy với tư cách là hệ điều hành máy chủ. 20
• FreeBSD, Windows NT và Windows XP đang chạy dưới dạng hệ điều hành khách.
• Trung tâm của VMware là lớp ảo hóa, lớp này trừu tượng hóa phần cứng vật lý thành các
máy ảo riêng biệt chạy như hệ điều hành khách.
• Mỗi máy ảo đều có CPU ảo, bộ nhớ, ổ đĩa, giao diện mạng, v.v.
7.2. Máy ảo Java
Java là một ngôn ngữ lập trình hướng đối tượng phổ biến được Sun Microsystems
giới thiệu vào năm 1995. Ngoài đặc tả ngôn ngữ và thư viện API lớn, Java cung cấp một
đặc tả cho máy ảo Java, hay còn gọi là JVM (Java Virtual Machine). Do đó, Java là một ví
dụ về ảo hóa môi trường lập trình
JVM là một đặc tả cho một máy tính trừu tượng. Bao gồm: • Một trình nạp lớp.
• Một trình thông dịch Java thực thi các mã bytecodes trung lập về kiến trúc, như được biểu đồ trong Hình 16.10.
• Bộ tải lớp tải các tệp .class đã biên dịch từ cả chương trình Java và API Java để trình thông
dịch Java thực thi. Sau khi một lớp được tải, trình xác minh sẽ kiểm tra xem tệp .class có
phải là mã bytecode của Java hợp lệ hay không và nó không làm tràn hoặc tràn ngăn xếp.
Nó cũng đảm bảo rằng mã bytecode không thực hiện số học con trỏ, điều này có thể cung
cấp quyền truy cập bộ nhớ bất hợp pháp. Nếu lớp vượt qua xác minh, nó được chạy bởi
trình thông dịch Java. JVM cũng tự động quản lý bộ nhớ bằng cách thực hiện thu dọn rác -
thực hành lấy lại bộ nhớ từ các đối tượng không còn được sử dụng và trả lại cho hệ thống.
Nhiều nghiên cứu tập trung vào các thuật toán thu gom rác để tăng hiệu suất của các chương trình Java trong máy ảo.
JVM có thể được triển khai trong phần mềm trên hệ điều hành chủ, chẳng hạn như
Windows, Linux hoặc Mac OS X hoặc như một phần của trình duyệt Web. Ngoài ra, JVM
có thể được triển khai trong phần cứng trên chip được thiết kế đặc biệt để chạy các chương
trình Java. Nếu JVM được triển khai trong phần mềm, trình thông dịch Java sẽ thông dịch
các hoạt động bytecode tại một thời điểm. Kết Luận
Ảo hóa là một phương pháp cung cấp cho khách một bản sao của phần cứng cơ bản của hệ thống.
Ảo hóa loại 0 được thực hiện trong phần cứng và yêu cầu các cation modifi cho hệ điều hành để đảm
bảo hoạt động tốt. Trong ảo hóa Loại 1, một màn hình máy ảo chủ (VMM) cung cấp môi trường và các tính
năng cần thiết để tạo, chạy và phá hủy các máy ảo khách. Mỗi khách bao gồm tất cả phần mềm thường
được liên kết với một hệ thống gốc đầy đủ, bao gồm hệ điều hành, trình điều khiển thiết bị, ứng dụng, tài khoản người dùng, v.v.
Siêu giám sát loại 2 chỉ đơn giản là các ứng dụng chạy trên các hệ điều hành khác mà
không biết rằng quá trình ảo hóa đang diễn ra. Những hypervi này sẽ không được hỗ trợ
phần cứng hoặc máy chủ lưu trữ vì vậy phải thực hiện tất cả ảo hóa các hoạt động trong bối
cảnh của một quá trình.
Thực hiện ảo hóa là một thách thức, đặc biệt là khi hỗ trợ phần cứng là tối thiểu.
Một số hỗ trợ phần cứng phải tồn tại cho ảo hóa, nhưng hệ thống càng cung cấp nhiều tính
năng thì ảo hóa càng dễ thực hiện và hiệu suất của khách càng tốt. VMMS tận dụng bất kỳ
sự hỗ trợ phần cứng nào có sẵn khi tối ưu hóa lập lịch CPU, quản lý bộ nhớ và mô-đun 1/0
để cung cấp cho khách sử dụng tài nguyên tối ưu đồng thời bảo vệ VMM khỏi khách và khách với nhau. 23