Bài Tập Thảo Luận Môn Nguyên Lí Hệ Điều Hành Đề Tài Tìm Hiểu Về Máy Ảo – Virtual Machine.pdf

23 0 0
Tài liệu đã được kiểm tra trùng lặp
Bài Tập Thảo Luận Môn Nguyên Lí Hệ Điều Hành Đề Tài Tìm Hiểu Về Máy Ảo – Virtual Machine.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP THẢO LUẬNMÔN NGUYÊN LÍ 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: Cô Vương Thị DungNhóm sinh viên thảo luận:

1Nguyễn Đức Mạnh000076666CS22Bùi Thị Ngọc Thanh021986666CS23Nguyễn Thu Trang022126666CS24Trần Thu Trang022136666CS25Vũ Công Tuyến022196666CS2

Hà Nội – 9/2022MỤC LỤC

Trang 2

5 Các loại máy ảo và 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.6.Ảo hóa môi trường lập trình 12

5.7.Thi đua - Emulation 13

Trang 3

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.

Trang 4

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 Trongtrườ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ớnvà 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.

Trang 5

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.

Trang 6

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ớimá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ỏ mancegiả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 để

Trang 7

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ôngcụ 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 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ỏicá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ànhkhá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áttriể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.

Trang 8

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.

Trang 9

độ 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.

Trang 10

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ướngdẫ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.

Trang 11

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 và 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éttá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ó

Trang 12

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ỗihệ đ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

Trang 13

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 ứngdụ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 đangdiễ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.

Ngày đăng: 20/05/2024, 17:43

Tài liệu cùng người dùng

Tài liệu liên quan