You are on page 1of 15

Máy ảo

Virtual Machines
Livvic Mulish Sitka Text Roboto
1 Tổng quan về máy ảo
-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à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.
-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 giao
diện giống với máy chủ (ngoại trừ trường hợp ảo hóa song song).
-Mỗi quy trình khách được cung cấp một bản sao ảo của máy
chủ.Thông thường, quy trình khách trên thực tế là một hệ điều
hành.Do đó, một máy vật lýcó thể chạy đồng thời nhiều hệ điều hành,
mỗi hệ điều hành trong máy ảo của chính nó.

-Việc triển khai các VMM rất khác nhau.


• Các giải pháp dựa trên phần cứng cung cấp hỗ trợ cho việc tạo và
quản lý máy ảo thông qua phần sụn. Các VMM này, thường được tìm
thấy trong máy tính lớn và các máy chủ lớn đến trung bình, thường
được biết đến như siêu giám sát loại 0. LPAR của IBM và LDOM của
Oracle là những ví dụ.
• Phần mềm giống như hệ điều hành đượ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
• Các hệ điều hành có mục đích chung cung cấp các chức năng tiêu
chuẩn 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ó một 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 tính năng cho các 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 Box, là các siêu giám sát loại 2
• Ảo hoá song song - Paravirtualization, một kỹ thuật trong đó hệ điều
hành khách được sửa đổi để hoạt động cùng 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 đó VMM không ảo hóa phần cứng thực mà 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, hoàn toàn 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 biệt các ứng dụng khỏi hệ điều hành.
Sự đa dạng của các kỹ thuật ảo hóa được sử dụng ngày nay là một
minh chứng cho chiều rộng, chiều sâu và tầm quan trọng của ảo hóa
trong điện toán hiện đại. Ảo hóa là vô giá đối với hoạt động của trung
tâm dữ liệu, ứng dụng hiệu quả phát triển và thử nghiệm phần mềm,
trong số nhiều mục đích sử dụng khác
2 Lịch sử
-Máy ảo lần đầu tiên xuất hiện thương mại 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.
-IBM VM370 chia một máy tính lớn thành nhiều máy ảo, mỗi máy
chạy một 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.
-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ơ sở máy móc. Đối với hệ
thống máy ảo IBM, một người dùng thường chạy CMS—một người
dùng đơn 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ột mục tiêu cho chức năng.
-Các yêu cầu ảo hoá nói rằng:
1. VMM cung cấp môi trường cho các chương trình về cơ bản là
giống hệt nhau về máy ban đầu.
2. Các chương trình chạy trong môi trường đó chỉ giảm hiệu suất nhỏ.
3. VMM kiểm soát hoàn toàn 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 các nỗ lực ảo hóa ngày nay.
-Vào cuối những năm 1990, CPU Intel 80x86 đã trở nên phổ biến,
nhanh và phong phú trong các tính năng. Theo đó, các nhà phát triển
đã tung ra nhiều nỗ lực để thực hiện 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ừ vào thời điểm đó, ảo hóa đã
mở rộng để bao gồm tất cả các CPU phổ biến, nhiều công cụ thương
mại và mã nguồn mở, và nhiều hệ điều hành.
3. Lợi ích và tính năng
3.1. Lợi ích và 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.
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.
Hơn nữa, hệ điều hành chạy trên và kiểm soát toàn bộ máy. Giai đoạn
này thường được gọi là phát triển hệ thống thời gian.
Ả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 và mô 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 .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 chính là 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ế độ hạt nhân trên máy thực cũng phải chuyển từ chế độ
người dùng ảo sang chế độ hạt nhân ảo trong 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 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 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
4.2. Bản dịch nhị phân
Gần đây nhất là 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ấ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 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.

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.
5: Các loại máy ảo và cách triển khai
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 loại 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. Một siêu giám sát 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ó thể là
VMM. Về cơ bản, các hệ điều hành khách trong một siêu giám sát 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.

5.3. Siêu giám sát loại 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ó
cảm giác trở thành “hệ điều hành trung tâm dữ liệu”.
Mục đí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.
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.

5.4. Siêu giám sát loại 2 – Type 2 Hypervisor


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ủ.

5.5. Paravirtualization( ảo hóa song song)


Paravirtualization có cách xử 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
Đố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.
Để 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 siêu máy ảo VMM, khi cần thay đổi bảng trang.

5.6. Ảo hóa 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. 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ữ đó.

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 và các thành phần hệ thống


6.1 Lập trình CPU
 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.
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 lý 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.
 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ý.
 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ý.
 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ể.
 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.
6.4. Quản lý 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.
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.
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 trực 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ủ.
 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

 Trung tâm của VMware là lớp ảo hóa, lớp này trừu tượng hóa
phần
 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. JVMcũ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ảnngườ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ềutí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.

You might also like