An Introduction To Virtualization

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Machine Translated by Google

Giới thiệu về
Ảo hóa
của Sean Campbell và Michael Jeronimo

V. ảo hóa là một trong những công nghệ quan trọng hơn để tác động
tính toán trong vài năm gần đây. Với nguồn gốc kéo dài từ vài thập kỷ trước,
ngày nay sự hồi sinh của nó trở nên phổ biến hơn so với nhiều nhà phân tích ngành.
dự đoán rằng việc sử dụng nó sẽ phát triển rộng rãi ở các công ty trong thời gian tới
vài năm. Những lợi ích đầy hứa hẹn như củng cố cơ sở hạ tầng,
chi phí thấp hơn, bảo mật cao hơn, dễ quản lý, năng suất của nhân viên tốt hơn và
hơn thế nữa, thật dễ hiểu tại sao ảo hóa lại sẵn sàng thay đổi cục diện của điện toán.

Nhưng chính xác thì ảo hóa là gì? Thuật ngữ này được sử dụng rất nhiều và thường xuyên

một cách khó hiểu trong toàn bộ ngành công nghiệp máy tính. Bạn sẽ nhanh chóng phát
hiện ra sau khi sàng lọc tài liệu rằng ảo hóa có thể mang những sắc thái khác nhau của
nghĩa là tùy thuộc vào loại giải pháp hoặc chiến lược đang được thảo luận và liệu
tham chiếu có áp dụng cho bộ nhớ, phần cứng, bộ lưu trữ, hệ điều hành hay những thứ
tương tự hay không.

Xác định ảo hóa

Ảo hóa trong bài viết này đề cập đến quá trình tách phần mềm cứng khỏi hệ điều hành
trên máy vật lý. Nó biến những gì từng được coi là phần cứng thuần túy thành phần
mềm. Nói một cách đơn giản, bạn có thể coi ảo hóa về cơ bản là một máy tính bên
trong một máy tính, được triển khai bằng phần mềm. Điều này đúng trong việc mô phỏng
một số loại thiết bị nhất định, chẳng hạn như card âm thanh, CPU, bộ nhớ và bộ lưu
trữ vật lý. Một phiên bản của hệ điều hành chạy trong môi trường ảo hóa được gọi là
máy ảo. Các công nghệ ảo hóa cho phép nhiều máy ảo

các máy có hệ điều hành không đồng nhất chạy song song và trong
cách ly trên cùng một máy vật lý. Bằng cách mô phỏng một phần cứng hoàn chỉnh
thống, từ bộ xử lý đến card mạng, mỗi máy ảo có thể chia sẻ một
bộ phần cứng chung không biết rằng phần cứng này cũng có thể đang được sử dụng
bởi một máy ảo khác cùng một lúc. Hệ điều hành chạy trong máy ảo nhìn thấy một bộ
phần cứng được chuẩn hóa, nhất quán bất kể
các thành phần phần cứng vật lý thực tế. Những công nghệ như Intel
®
Machine Translated by Google

Công nghệ ảo hóa (Intel


® VT), sẽ được xem xét sau trong phần này
bài viết, cải thiện và nâng cao đáng kể khả năng ảo hóa từ góc độ của các nhà
cung cấp tạo ra các giải pháp này.
Với định nghĩa hoạt động về ảo hóa trên bàn, đâysa nhanh chóng
đề cập đến một số loại công nghệ ảo hóa khác hiện nay. Ví dụ, ảo hóa bộ nhớ
máy tính là phần mềm cho phép một chương trình xử lý lượng bộ nhớ lớn hơn
nhiều so với thực tế.
có sẵn. Để thực hiện điều này, bạn thường hoán đổi các đơn vị địa chỉ
khoảng trống qua lại khi cần thiết giữa thiết bị lưu trữ và bộ nhớ ảo.
Trong quản lý lưu trữ máy tính, ảo hóa là việc tổng hợp lưu trữ vật lý từ
nhiều thiết bị lưu trữ mạng vào một nơi dường như là một
thiết bị lưu trữ duy nhất được quản lý từ bảng điều khiển trung tâm. trong một
môi trường sử dụng ảo hóa mạng, máy ảo sẽ thực hiện
bộ điều hợp mạng ảo trên hệ thống có bộ điều hợp mạng máy chủ. Nhưng một lần nữa
trong bối cảnh của cuốn sách này ảo hóa đề cập đến quá trình sử dụng
máy ảo.

Thuật ngữ

Các nhà cung cấp cá nhân thường chọn thuật ngữ phù hợp với nhu cầu tiếp thị của họ
để mô tả sản phẩm của họ. Giống như các sắc thái của công nghệ ảo hóa,
rất dễ bị nhầm lẫn với các thuật ngữ khác nhau được sử dụng để mô tả các
tính năng hoặc thành phần. Hy vọng rằng công nghệ ảo hóa sẽ tiếp tục phát triển và
khi có nhiều người tham gia vào thị trường hơn, một bộ thuật ngữ chung sẽ xuất
hiện. Nhưng bây giờ, đây là danh sách các thuật ngữ và định nghĩa tương ứng.

Máy chủ

Máy chủ là máy vật lý chạy phần mềm ảo hóa. Nó


chứa các tài nguyên vật lý, chẳng hạn như bộ nhớ, dung lượng ổ cứng và CPU
cũng như các tài nguyên khác, chẳng hạn như quyền truy cập mạng, mà máy ảo sử dụng.

Máy ảo

Máy ảo là sự thể hiện ảo hóa của máy vật lý


được điều hành và duy trì bởi phần mềm ảo hóa. Mỗi máy ảo, được triển khai
dưới dạng một tệp đơn lẻ hoặc một tập hợp nhỏ các tệp trong một thư mục duy
nhất trên hệ thống máy chủ, hoạt động như thể nó đang chạy trên một cá nhân riêng lẻ,
PC vật lý, không ảo hóa.

Phần mềm ảo hóa

Phần mềm ảo hóa là một thuật ngữ chung phần mềm biểu thị cho phép người dùng
để chạy máy ảo trên máy chủ.
Machine Translated by Google

Đĩa ảo

Thuật ngữ này đề cập đến biểu diễn vật lý của máy ảo trên đĩa của
máy chủ. Đĩa ảo bao gồm một tệp điện tử hoặc một tập hợp các tệp có liên quan. Nó xuất
hiện trên máy ảo ảo như một đĩa cứng vật lý. Một trong những lợi ích của việc sử
dụng kiến trúc máy ảo là tính di động của nó, nhờ đó bạn có thể di chuyển các tệp
đĩa ảo từ máy vật lý này sang máy vật lý khác mà không ảnh hưởng nhiều đến các tệp.
Các chương tiếp theo minh họa nhiều cách khác nhau mà theo đó điều này có thể mang
lại lợi ích đáng kể trên nhiều lĩnh vực khác nhau.

Bổ sung máy ảo

Việc bổ sung máy ảo giúp tăng hiệu suất hoạt động của khách
hệ thống khi so sánh với việc chạy mà không có phần bổ sung, cung cấp quyền truy cập vào

Thiết bị USB và các thiết bị chuyên dụng khác, và trong một số trường hợp, có độ phân giải video

cao hơn so với khi không có phần bổ sung, do đó mang lại trải nghiệm người dùng được cải thiện

trải nghiệm giao diện trong một máy ảo. Các bổ sung còn cho phép sử dụng các tùy
chỉnh như chia sẻ thư mục, kéo và thả sao chép và dán
giữa máy chủ và máy ảo cũng như giữa các máy ảo và các cải tiến khác.

Một cải tiến đặc biệt hữu ích là khả năng của con trỏ chuột
focus để di chuyển tự nhiên từ cửa sổ máy ảo sang máy chủ
các cửa sổ ứng dụng đang hoạt động của machine mà không cần phải điều chỉnh vật lý
mỗi khi cửa sổ thay đổi. Điều này cho phép bạn tương tác với
hệ điều hành ảo hóa như thể nó không gì khác hơn là một cửa sổ ứng dụng khác, chẳng
hạn như một chương trình xử lý văn bản đang chạy trên máy chủ
máy móc.

Thư mục chia sẻ

Hầu hết việc triển khai máy ảo đều hỗ trợ việc sử dụng các thư mục dùng chung. Sau đó
việc cài đặt bổ sung máy ảo, các thư mục dùng chung cho phép ảo

máy truy cập dữ liệu trên máy chủ. Thông qua một loạt các ánh xạ ổ đĩa ẩn, máy ảo có
thể mở các tập tin và thư mục trên ổ đĩa vật lý.
máy chủ. Sau đó, bạn có thể chuyển các tập tin này từ máy vật lý sang máy
máy ảo sử dụng cơ chế tiêu chuẩn như ổ đĩa được ánh xạ.
Các thư mục dùng chung có thể truy cập các tệp cài đặt cho chương trình, tệp dữ liệu hoặc

các tệp khác mà bạn cần sao chép và tải vào máy ảo. Với các thư mục dùng chung, bạn
không cần phải sao chép các tệp dữ liệu vào từng máy ảo.
Thay vào đó, tất cả các máy ảo của bạn đều truy cập vào cùng các tệp thông qua một
thư mục dùng chung nhắm đến một điểm cuối duy nhất trên máy chủ vật lý.

Giám sát máy ảo (VMM)

Trình giám sát máy ảo là giải pháp phần mềm triển khai ảo hóa để chạy cùng với hệ điều
hành máy chủ. ảo
màn hình máy ảo hóa một số tài nguyên phần cứng nhất định, chẳng hạn như CPU, bộ nhớ

và đĩa vật lý, đồng thời tạo các thiết bị mô phỏng cho máy ảo
Machine Translated by Google

chạy trên máy chủ. Tổng quan về các thiết bị mô phỏng được trình bày
sau này trong chương này. Hiện tại, điều quan trọng là phải hiểu rằng trình giám
sát máy ảo xác định cách phân bổ tài nguyên, ảo hóa,

và được trình bày tới các máy ảo đang chạy trên máy chủ. Nhiều
các giải pháp phần mềm tồn tại ngày nay sử dụng phương pháp ảo hóa này. Hình 1 minh
họa khái niệm màn hình máy ảo.

Hình 1 Kiến trúc giám sát máy ảo

Trình giám sát ảo

Ngược lại với trình giám sát máy ảo, trình ảo hóa chạy trực tiếp trên phần cứng vật
lý. Hypervisor chạy trực tiếp trên phần cứng mà không cần bất kỳ
sự trợ giúp can thiệp từ hệ điều hành máy chủ để cung cấp quyền truy cập vào phần cứng
tài nguyên. Hypervisor chịu trách nhiệm trực tiếp về việc lưu trữ và quản lý các máy
ảo chạy trên máy chủ. Tuy nhiên, hàm ý
của hypervisor và lợi ích tổng thể của nó rất khác nhau giữa các nhà cung cấp.
Machine Translated by Google

Hình 2 Tổng quan về kiến trúc Hypervisor

Ảo hóa song song

Quá trình ảo hóa song song liên quan đến việc sửa đổi hệ điều hành trước khi nó có thể được
được phép chạy trong môi trường ảo hóa như một máy ảo. Do đó, việc sử dụng

nó đòi hỏi một hệ điều hành nguồn mở có nguồn được công khai
có sẵn.

Cách ly máy ảo

Mặc dù không hẳn là một thuật ngữ kỹ thuật nhưng khái niệm cách ly máy ảo là
quan trọng để hiểu. Các máy ảo về cơ bản được tách biệt khỏi một
một cách khác giống như hai máy vật lý trên cùng một mạng. Một máy ảo đang
chạy hệ điều hành không có kiến thức về
các máy ảo khác chạy trên cùng một máy. Trong một số trường hợp, bản thân hệ
điều hành không có cách nào để biết rằng nó đang chạy trong một môi trường
môi trường ảo hóa.

Lịch sử ảo hóa
Trước khi chúng ta đặt chân vững chắc vào lĩnh vực công nghệ ion ảo hóa
tồn tại đến ngày nay, thật đáng để quay lại lịch sử để khám phá
nguồn gốc của ảo hóa trong môi trường máy tính lớn. Cái này quan trọng
bởi vì ảo hóa trong phiên bản hiện tại của nó không phải là một công nghệ hoàn toàn
mới và bắt nguồn từ một số nỗ lực trong quá khứ.
Machine Translated by Google

Từ những năm 1950 đến những năm 1990

Khái niệm về bộ nhớ ảo xuất hiện vào cuối những năm 1950 khi một nhóm ở
Đại học Manchester giới thiệu tính năng thay thế trang tự động trong Atlas
hệ thống, một máy tính lớn có bóng bán dẫn. Nguyên tắc phân trang như một phương pháp
lưu trữ và truyền dữ liệu lên xuống hệ thống phân cấp bộ nhớ đã tồn tại nhưng Atlas
là công cụ đầu tiên tự động hóa quy trình, từ đó cung cấp nguyên mẫu hoạt động đầu tiên
của máy chủ ảo.
Thuật ngữ máy ảo có từ những năm 1960. Một trong những hệ thống máy ảo đầu tiên đến

từ IBM. Khoảng năm 1967, IBM giới thiệu System/360 model 67, hệ thống lớn đầu tiên có
bộ nhớ ảo. Tích hợp với mô hình 67 là khái niệm về tập lệnh bộ xử lý tự ảo hóa,

hoàn thiện ở các mô hình sau này. Model 67 sử dụng hệ điều hành từ rất sớm
được gọi là CP-67, phát triển thành máy ảo (VM) hoạt động

hệ thống. VM cho phép người dùng chạy nhiều hệ điều hành trên một máy xử lý đơn. Về
cơ bản VM và phần cứng máy tính lớn phối hợp với nhau để nhiều phiên bản của bất kỳ hệ
điều hành nào, mỗi phiên bản có quyền truy cập được bảo vệ vào tập lệnh đầy đủ, có thể
cùng tồn tại đồng thời.
Vào giữa những năm 1960, IBM cũng đi tiên phong trong dự án M44/44X, khám phá khái
niệm mới nổi về chia sẻ thời gian. Cốt lõi của kiến trúc hệ thống là một tập hợp các máy
ảo, mỗi máy cho mỗi người dùng. Máy chính là IBM

7044 (viết tắt là M44) và mỗi máy ảo là một hình ảnh thử nghiệm của
7044 (viết tắt là 44X). Công việc này cuối cùng đã dẫn đến các hệ thống VM/chia sẻ thời
gian được sử dụng rộng rãi, bao gồm cả VM/370 nổi tiếng của IBM .
Khái niệm ảo hóa phần cứng cũng xuất hiện trong thời gian này, cho phép trình giám
sát máy ảo chạy các máy ảo một cách biệt lập.

và môi trường được bảo vệ. Bởi vì máy ảo mon itor là


minh bạch đối với phần mềm đang chạy trong máy ảo, phần mềm sẽ nghĩ
rằng nó có quyền kiểm soát độc quyền phần cứng. Khái niệm này đã được hoàn thiện hơn
thời gian để cuối cùng các màn hình máy ảo chỉ có thể hoạt động với
hiệu suất nhỏ và chi phí tài nguyên.
Vào giữa những năm 1970, ảo hóa đã được người dùng ở nhiều nền tảng khác nhau chấp nhận.

các hệ điều hành. Việc sử dụng ảo hóa trong những thập kỷ này đã giải quyết được những
vấn đề quan trọng. Ví dụ, sự xuất hiện của lưu trữ ảo trong các hệ điều hành quy mô
lớn đã tạo cho các chương trình ảo tưởng rằng chúng có thể xử lý được nhiều vấn đề hơn.
nhiều bộ nhớ chính hơn (bộ nhớ) trong máy thực tế. Ảo
lưu trữ mở rộng dung lượng hệ thống và làm cho việc lập trình trở nên ít phức tạp hơn và

năng suất hơn nhiều.

Ngoài ra, không giống như tài nguyên ảo, tài nguyên hệ thống thực cực kỳ đắt đỏ.
Máy ảo đưa ra một cách hiệu quả để đạt được lợi ích tối đa từ khoản đầu tư lớn khi đó
vào trung tâm dữ liệu của công ty.
Mặc dù các máy ảo cấp độ phần cứng rất phổ biến trên cả thị trường nghiên cứu và
thương mại trong những năm 1960 và 1970, nhưng về cơ bản chúng đã biến mất trong
những năm 1980 và 1990. Sự cần thiết cho

ảo hóa nói chung đã suy giảm khi các máy tính mini và máy tính cá nhân giá rẻ
máy tính xuất hiện trên thị trường.
Machine Translated by Google

Mặc dù không phải là trọng tâm của bài viết này , một loại máy ảo khác, Sun Microsystems

Java Virtual Machine (JVM) và Microsofts Common Language Runtime (CLR), xứng
đáng có một vị trí trong dòng thời gian lịch sử và là
đáng nói ở đây. Điều quan trọng cần hiểu là những máy này không có nền tảng phần
cứng ảo. Nhưng do tiềm năng
nhầm lẫn giữa loại máy ảo này và máy ảo
được đề cập trong bài viết này một cái nhìn tổng quan ngắn gọn nhằm làm sáng tỏ
những khác biệt này. Những máy ảo này xuất hiện vào những năm 1990 và mở rộng việc
sử dụng máy ảo sang các lĩnh vực khác, chẳng hạn như phát triển phần mềm.
Được gọi là máy mô phỏng hoặc trừu tượng, chúng được thực hiện trong
phần mềm trên nền tảng phần cứng thực và hệ điều hành. Của họ
vẻ đẹp nằm ở tính di động của chúng. Trong trường hợp JVM, các chương trình Java được biên dịch

có thể chạy trên các máy ảo Java tương thích bất kể loại máy nào được triển khai.

Hình 1.3 phác thảo mối quan hệ giữa JVM hoặc CLR và hệ điều hành máy chủ.

Hình 3 Máy ảo thời gian chạy

Sự tái xuất hiện của ảo hóa


Những năm 1990 chứng kiến sự bùng nổ về số lượng máy chủ được sử dụng trong toàn
doanh nghiệp. Tuy nhiên, trong khi số lượng của họ tiếp tục tăng lên thì nhiều
người lại không được sử dụng đúng mức tại nơi làm việc. Việc đặt nhiều ứng dụng
trên một máy chủ thường không phải là một lựa chọn khả thi mặc dù một ứng dụng đó có thể
chỉ sử dụng một phần tài nguyên có sẵn của máy chủ. Sự phát triển của máy chủ đặt
ra những thách thức về triển khai, cập nhật và hỗ trợ cũng như các vấn đề về
an ninh và khắc phục thảm họa. Các tổ chức sớm nhận ra rằng trong khi lãng phí và
chi phí ngày càng gia tăng thì năng suất và hiệu quả lại giảm mạnh. Câu hỏi trở
thành, làm cách nào để hợp nhất các máy chủ của chúng tôi? Câu trả lời là
sử dụng công nghệ ảo hóa.
Trong khi vài năm qua đã chứng kiến sự xuất hiện trở lại của ảo hóa,
các nhà cung cấp đã phải đối mặt với những rắc rối đáng kể trong việc phát triển
phần mềm để cho phép những người khác ảo hóa hệ điều hành và ứng dụng. Sự ra đời của
Machine Translated by Google

Intel VT đã loại bỏ hoặc giảm đáng kể một số vấn đề phức tạp này.

Intel nhận ra sự xuất hiện trở lại của ảo hóa và bắt đầu làm việc với

Các nhà phát triển VMM, triển khai hỗ trợ phần cứng trong bộ xử lý và chipset Intel, đồng

thời thúc đẩy các thông số kỹ thuật để cải thiện khả năng ảo hóa trong tương lai.

Những thách thức với Kiến trúc IA-32 và


Giải pháp ảo hóa chỉ dành cho phần mềm

Cho đến nay, bối cảnh ảo hóa dường như không gặp rắc rối gì. Nhưng có một vấn đề quan

trọng liên quan đến kiến trúc IA -32 ban đầu. Nó không phải

được thiết kế để ảo hóa. Bộ xử lý Intel được thiết kế chủ yếu để chạy một

phiên bản duy nhất của hệ điều hành. Vì vậy, trên các hệ thống sử dụng Intel

kiến trúc, ảo hóa hiện nay chỉ là giải pháp phần mềm. Đây là

nhìn vào vấn đề và các cách tiếp cận khác nhau được sử dụng để giải quyết vấn đề

trước khi lợi ích của việc sử dụng Intel VT trở nên khả dụng.

Kiến trúc và cấp độ đặc quyền của IA-32

Bộ xử lý Intel cung cấp khả năng bảo vệ dựa trên nhiều vòng hoặc cấp đặc quyền khác nhau,

được đánh số 0, 1, 2 và 3. Cấp đặc quyền, 0 là cao nhất, xác định

những hành động mà một quy trình cụ thể có thể thực hiện. Ví dụ: ánh xạ bộ nhớ chỉ có

thể được thực thi ở mức đặc quyền 0. Ngược lại, các ứng dụng của người dùng cuối

chạy ở cấp đặc quyền 3. Phần mềm chạy ở cấp đặc quyền được đánh số thấp hơn có thể thực

hiện quyền kiểm soát phần mềm đang chạy ở cấp đặc quyền được đánh số cao hơn. Hầu hết

phần mềm IA-32 chỉ sử dụng cấp đặc quyền 0 và 3.

Một số thành phần của hệ điều hành phải chạy ở cấp đặc quyền 0 để có quyền truy cập

không giới hạn vào CPU cơ bản. Tương tự, trong một

hệ thống ảo hóa, trình giám sát máy ảo (VMM) phải đổ chuông ở mức đặc quyền 0. VMM cũng

phải tạo ảo giác cho hệ điều hành khách rằng nó cũng đang chạy trong vòng 0. Nhưng VMM

không thể cho phép hệ điều hành khách như vậy kiểm soát vì làm như vậy có thể làm thay

đổi mã VMM và

dữ liệu hoặc cấp cho hệ điều hành khách quyền truy cập vào các lệnh đặc quyền.

Trước khi có phần mềm ảo hóa, các mức đặc quyền sẽ

đã ít được quan tâm. Để giải quyết xung đột với các cấp độ riêng tư, phần mềm ảo hóa sẽ

chuyển hệ điều hành khách sang một vòng khác một kỹ thuật được gọi là tước quyền vòng.

Tước quyền là

được thực hiện bằng cách sử dụng một trong hai mô hình. Nếu hệ thống sử dụng vòng 0/1/3

mô hình, phần mềm ảo hóa sẽ loại bỏ hệ điều hành khách để

cấp đặc quyền 1. Điều này cho phép hệ điều hành khách kiểm soát đúng các ứng dụng của nó

bằng cách định vị m ở cấp đặc quyền 3. Trong mô hình 0/3/3, hệ điều hành khách được

chuyển sang cấp đặc quyền 3 nơi nó chạy ở cùng cấp đặc quyền như những ứng dụng của nó.

Với cả hai mô hình, VMM đều có đặc quyền cấp 0 cho chính nó.

Thật không may, việc tước quyền sẽ tạo ra một tập hợp ảo hóa mới

những thách thức. VMM phải liên tục theo dõi hoạt động của khách

hệ điều hành để bẫy các nỗ lực truy cập vào phần cứng và hệ thống nhất định
Machine Translated by Google

cuộc gọi. Nó phải tự thực hiện các lệnh gọi này và mô phỏng kết quả. Ví dụ,
khi phần mềm chạy ở cấp độ đặc quyền khác với cấp độ đặc quyền của nó
được viết, như trong trường hợp của hệ điều hành khách, một vấn đề được đề cập đến
vì hiện tượng răng cưa vòng có thể phát sinh. Một số lệnh gọi nhất định được phép
sử dụng bên ngoài mức đặc quyền 0 có thể trả về một giá trị chứa mức đặc quyền hiện tại.
Hệ điều hành khách có thể đọc giá trị trả về và xác định rằng
nó không chạy ở cấp đặc quyền 0. Xung đột trong hệ điều hành khách có thể phát
triển. Tuy nhiên, vì cuộc gọi là một hoạt động hợp lệ đối với một
ứng dụng đang chạy ở mức đặc quyền lớn hơn 0, VMM không thể
phát hiện và đưa ra cách khắc phục thích hợp cho hoạt động này.

Một vấn đề khác nảy sinh khi hệ điều hành khách nghĩ rằng nó có quyền kiểm
soát trạng thái của CPU nên đưa ra yêu cầu hợp lệ về trạng thái của CPU.
Trạng thái CPU được trả về là trạng thái thực sự của CPU được điều khiển bởi VMM,
không phải trạng thái CPU mô phỏng của hệ điều hành khách. Những giá trị này nằm trong
xung đột và có thể gây ra lỗi thực thi.

VMM phụ trách CPU phải chuyển ngữ cảnh của


tiến trình hệ điều hành khách. Một hệ điều hành khách không phải là hệ thống tập hợp gen

được viết để hỗ trợ chuyển đổi ngữ cảnh và có thể lưu trữ dữ liệu quan trọng ở chế độ ẩn.

địa điểm. Khi VMM cố gắng lưu ngữ cảnh, thông tin này có thể bị mất. Khôi phục
toàn bộ bối cảnh của hệ điều hành khách sẽ
không thể thực hiện được và hệ điều hành khách sẽ gây ra lỗi thực thi. Có rất
nhiều kịch bản khác với tác động của kẻ thù.

Giải quyết các thách thức ảo hóa

Để giải quyết các thách thức ảo hóa, các nhà thiết kế màn hình máy ảo đã phát
triển hai phương pháp tiếp cận: Ảo hóa song song và nhị phân.
dịch.

Ảo hóa song song

Đã thảo luận ngắn gọn trước đó, giải pháp này yêu cầu thay đổi mã nguồn của
hệ điều hành khách, đặc biệt là kernel, để có thể chạy trên VMM cụ thể. Ảo hóa
song song chỉ có thể được sử dụng với các hệ điều hành có thể sửa đổi được,
chẳng hạn như Linux.

Dịch nhị phân (hoặc vá lỗi)

Với cách tiếp cận này, VMM thực hiện thay đổi đối với các tệp nhị phân của khách
hệ điều hành khi nó được tải vào máy ảo. Điều này đang diễn ra
giải pháp mở rộng phạm vi của các hệ điều hành có thể được hỗ trợ như
hệ điều hành không cần phải sửa đổi để hỗ trợ phương pháp này nhưng
đi kèm với chi phí hoạt động cao hơn VMM sử dụng
ảo hóa. Cách tiếp cận này cũng đòi hỏi nỗ lực lớn hơn về mặt nào đó của người
thiết kế VMM.
Machine Translated by Google

Công nghệ ảo hóa Intel® (Intel® VT) Giải quyết vấn đề


Vấn đề đặc quyền

Công nghệ ảo hóa Intel, một loạt bộ xử lý dựa trên phần cứng và
cải tiến chipset, cung cấp hỗ trợ để giải quyết một số vấn đề với

giải pháp chỉ dành cho phần mềm. Nó cho phép VMM có thể hoạt động bình thường
hệ thống và ứng dụng, đồng thời cho phép phần mềm khách chạy ở mức đặc quyền dự kiến,
do đó loại bỏ nhu cầu ảo hóa song song và nhị phân.
dịch. Intel VT bao gồm hỗ trợ VT-x cho ảo hóa bộ xử lý IA -32
và hỗ trợ VT-i cho phần mở rộng
® ngành kiến trúc. Đây là một cái nhìn cấp cao về
Itanium cho kiến trúc IA-32.

Hoạt động mở rộng máy ảo (VMX)

VT-x tăng cường kiến trúc IA -32 hiện tại với chế độ CPU mới
hoạt động: VMX, viết tắt của phần mở rộng máy ảo. VMM

chạy ở cấp độ điều hành gốc VMX, được cấp đặc quyền đầy đủ. Khách điều hành
hệ thống chạy ở cấp độ hoạt động không phải root của VMX. Điểm mấu chốt là cả hai
các hình thức hoạt động hỗ trợ cả bốn cấp độ vòng. Hệ điều hành khách chạy trong phạm
vi mức đổ chuông dự kiến và mỗi hệ điều hành đều cho rằng nó điều khiển CPU; tức là
toàn bộ máy. Tuy nhiên, hệ điều hành khách bị hạn chế,
không phải theo cấp độ đặc quyền, mà vì nó chạy ở cấp độ vận hành không phải gốc VMX.
Hai quá trình chuyển đổi được liên kết với VMX. Các lệnh này liên quan đến các quá

trình chuyển đổi này sẽ chuyển quyền kiểm soát qua lại giữa VMM và hệ điều hành khách:

Mục nhập VM VMM- chuyển đổi sang khách, đi vào VMX không phải root

hoạt động

Thoát VM chuyển đổi từ khách sang VMM, đi vào thư mục gốc VMX

hoạt động.

Với lệnh nhập VM, hệ điều hành khách có thể thực thi các hoạt động không phải root VMX
dễ thương. Khi hệ điều hành khách chuyển quyền kiểm soát trở lại VMM bằng lệnh thoát
VM, VMM sẽ trả về việc thực thi nó.

hoạt động root VMX đặc quyền một lần nữa. Cấu trúc điều khiển máy ảo
là một cấu trúc dữ liệu mới quản lý các mục nhập và thoát VM.

Lợi ích của máy ảo

Giảm nhu cầu về phần cứng và phần mềm, cải thiện hiệu suất và khả năng mở rộng cũng
như giảm thời gian ngừng hoạt động là những yếu tố chính trong việc quản lý chi phí trong
công ty của Today . Máy ảo cung cấp phương tiện cho các công ty
đạt được những mục tiêu này. Dưới đây là tổng quan ngắn gọn về những lợi ích bạn có thể mong đợi

đạt được bằng cách sử dụng máy ảo. Những lợi ích này sẽ được đề cập sâu hơn ở phần sau của cuốn
sách này trong các kịch bản phong phú hơn cũng như trong bối cảnh của các kịch bản khác.
Machine Translated by Google

Máy ảo cho phép sử dụng tài nguyên hiệu quả hơn bằng cách

hợp nhất nhiều môi trường hoạt động trên các môi trường không được sử dụng đúng mức
máy chủ lên một số lượng nhỏ hơn các máy chủ ảo hóa.

Máy ảo giúp việc quản lý hệ thống dễ dàng hơn. Ví dụ: bạn không cần tắt máy chủ

để thêm bộ nhớ hoặc nâng cấp CPU.

Sự phức tạp của việc quản trị tổng thể được giảm bớt do môi trường phần mềm của

mỗi máy ảo độc lập với môi trường máy chủ vật lý cơ bản.

Môi trường của máy ảo hoàn toàn tách biệt với máy chủ và môi trường của các máy

ảo khác nên bạn có thể xây dựng các môi trường có độ bảo mật cao phù hợp với nhu

cầu của mình.

thông số kỹ thuật. Ví dụ: bạn có thể định cấu hình bảo mật khác

cài đặt cho từng máy ảo. Ngoài ra, mọi nỗ lực của người dùng nhằm can thiệp vào

hệ thống sẽ bị vô hiệu vì một môi trường ảo không thể truy cập vào môi trường
khác trừ khi ngăn xếp ảo hóa

cho phép điều này. Nếu không, nó sẽ hạn chế quyền truy cập hoàn toàn.

Bạn có thể di chuyển các hệ điều hành cũ mà khó có thể sử dụng được.

có được phần cứng cơ bản thích hợp cho một máy vật lý.

Tương tự như vậy, bạn có thể chạy phần mềm cũ chưa có hoặc

không thể, được chuyển sang nền tảng mới hơn.

Bạn có thể chạy nhiều hệ điều hành khác nhau từ các

các nhà cung cấp đồng thời trên một phần cứng duy nhất.

Vì máy ảo được gói gọn thành các tệp nên bạn có thể dễ dàng lưu và sao chép máy

ảo. Bạn có thể nhanh chóng di chuyển hoàn toàn

cấu hình hệ thống từ máy chủ vật lý này sang máy chủ vật lý khác.

Ảo hóa cho phép bạn cung cấp một môi trường được cấu hình sẵn cho

kịch bản triển khai nội bộ hoặc bên ngoài.

Máy ảo cho phép gỡ lỗi và giám sát hiệu suất mạnh mẽ. Hệ điều hành có thể được

gỡ lỗi mà không làm mất

năng suất và không cần phải thiết lập một quy trình phức tạp hơn

môi trường gỡ lỗi.

Máy ảo cung cấp một sự trừu tượng hóa tương thích để tất cả

phần mềm được viết cho nó sẽ chạy trên nó. Ví dụ: một máy ảo cấp phần cứng sẽ

chạy tất cả phần mềm, hệ điều hành và

các ứng dụng được viết cho phần cứng. Tương tự, một hệ điều hành

máy ảo cấp độ sẽ chạy các ứng dụng cho cụ thể đó

hệ điều hành và máy ảo cấp cao sẽ chạy các chương trình

được viết bằng ngôn ngữ cấp cao.

Bởi vì các máy ảo có thể cô lập những gì chúng chạy nên chúng có thể cung cấp khả

năng ngăn chặn lỗi và lỗi. Bạn có thể chủ động chèn lỗi vào

phần mềm để nghiên cứu hành vi tiếp theo của nó. Bạn có thể lưu trạng thái,

kiểm tra nó, sửa đổi nó, tải lại nó, v.v. Ngoài loại này
Machine Translated by Google

cách ly, lớp ảo hóa có thể thực hiện cách ly hiệu năng để
tài nguyên được sử dụng bởi một máy ảo không nhất thiết
ảnh hưởng đến hiệu suất của các máy ảo khác.

Công nghệ đa lõi và ảo hóa


Công nghệ

Một trong những ứng dụng chính của công nghệ ảo hóa liên quan đến việc chạy
nhiều hệ điều hành cùng lúc trên một máy vật lý.
Đặc biệt, nhiều hệ điều hành là cần thiết trong việc phát triển và
tình huống thử nghiệm trong đó các kỹ sư phải phát triển phần mềm đồng thời
trên các hệ điều hành khác nhau. Chúng cũng rất phổ biến trong các tình huống CNTT
nơi các hệ điều hành cũ cần chạy song song với các hệ điều hành hiện đại hơn
hệ thống. Tuy nhiên với công nghệ ảo hóa, một hệ điều hành được cài đặt
hệ thống như Microsoft Windows không được thiết kế để chia sẻ phần cứng
tài nguyên, chẳng hạn như bộ xử lý, bộ nhớ, dung lượng ổ đĩa, mạng và video,
với các hệ điều hành khác chạy cùng lúc trên cùng một vật lý
máy móc. Để vượt qua hạn chế này, trước khi có ảo hóa, người dùng phải khởi
động kép (hoặc ba khởi động, v.v.) máy giữa các hệ điều hành khác nhau như
Windows XP và Linux .

Khả năng khởi động kép mang lại cho người dùng sự linh hoạt khi sử dụng
nhiều hệ điều hành nhưng có nhược điểm đáng kể là phải tắt hoàn toàn một hệ
điều hành trước khi sử dụng hệ điều hành khác. Để chia sẻ các tệp và tài liệu
dữ liệu cốt lõi, người dùng phải lưu trữ chúng ở vị trí có sẵn cho mỗi hệ điều
hành bất kể hệ điều hành nào hiện đang được khởi động và đang được sử dụng,
điều này càng làm giảm năng suất và tăng độ phức tạp. Mặc dù điều này khả thi
trong một số trường hợp nhưng nó làm chậm quá trình tương tác với máy chủ và
trong một số trường hợp đơn giản không phải là giải pháp khả thi như sẽ được
trình bày trong các chương sau. Ngoài ra, sức mạnh của quy trình phải được áp
dụng hoàn toàn cho việc thực thi hệ điều hành này hay hệ điều hành khác và không
thể dễ dàng phân chia trên tất cả các hệ điều hành mà bạn có thể muốn chạy đồng thời trên đó.
cùng một máy. Ảo hóa giúp loại bỏ tất cả những hạn chế này.

Ngược lại, mỗi hệ điều hành ảo hóa lấy một phần tài nguyên có sẵn như CPU,
bộ nhớ và đĩa vật lý và sử dụng chúng cho các tác vụ do người dùng chỉ định.
Tuy nhiên, việc chia sẻ các tài nguyên vật lý giống nhau
trước đây lẽ ra được dành riêng cho một máy vật lý xuất hiện ở một thời điểm
trị giá. Máy chủ đang chạy các hệ điều hành ảo này phải có nhiều tài nguyên hơn
mức được phân bổ trước đây cho một máy.
Một giải pháp khả thi cho vấn đề nan giải này có thể nằm ở sự xuất hiện của
sức mạnh xử lý tăng lên. Với sự chú trọng ngày nay vào kiến trúc đa lõi và Công
nghệ siêu phân luồng, các quy trình này có thể được sử dụng tốt nhất khi được
đặt trong môi trường sử dụng nhiều ảo hóa. (Các) lõi bổ sung mà các bộ xử lý
này cung cấp có thể được dành riêng cho các hệ thống ảo hóa riêng lẻ.
hệ điều hành để cho phép mở rộng quy mô tối ưu khi sử dụng tài nguyên. Thêm vào
Machine Translated by Google

các lợi ích như tách các tác vụ của người dùng đã xác định thành các hệ điều hành
ảo hóa nhất định có thể cho phép các hệ điều hành ảo hóa chuyên dụng an toàn hơn
hoặc cứng cáp hơn, tất cả đều hoạt động trên cùng một phần cứng vật lý. Việc sử
dụng ảo hóa giúp tận dụng tối đa bộ xử lý mới
kiến trúc và quy trình chuyển từ lõi kép sang lõi tứ, tám lõi,
và hơn thế nữa.

Sử dụng phần cứng Hiệu suất có thể

Tác động

Ảo hóa cơ sở hạ tầng của bạn hoặc thậm chí một số lượng nhỏ máy có thể mang lại
lợi ích to lớn nhưng nó cũng có thể ảnh hưởng đến hiệu suất máy chủ của bạn,
máy trạm hoặc phần cứng máy di động ngay cả với những tiến bộ như bộ xử lý đa lõi.
Điều quan trọng là phải hiểu một số tác động thương mại xảy ra
ở cấp độ phần cứng với ảo hóa. Phần này phác thảo chúng trên một

cơ sở theo từng thành phần.


RAM vật lý, CPU, dung lượng ổ cứng và kết nối mạng đều đóng vai trò trong việc
xác định xem máy chủ có sẵn sàng chạy ứng dụng dựa trên máy ảo hay không. Việc chuẩn
bị đúng cách các máy chủ trước khi chạy máy ảo trên chúng sẽ giúp bạn đạt được độ
ổn định, khả năng mở rộng và
hiệu suất lâu dài cho các máy ảo của bạn. Khi chọn máy chủ,
bạn sẽ cần đảm bảo rằng nó đáp ứng các yêu cầu phần cứng tối thiểu của ứng dụng máy
ảo và hơn nữa là có đủ tài nguyên, đặc biệt là
bộ nhớ, có sẵn cho số lượng máy ảo bạn muốn chạy đồng thời trên máy chủ.

Dưới đây là bảng phân tích các thành phần phần cứng khác nhau thường gây tắc
nghẽn cổ chai và những gì có thể làm để ngăn chặn chúng.

CPU
CPU là một trong những điểm nghẽn đáng kể nhất trong hệ thống khi chạy nhiều máy ảo.
Tất cả các hệ điều hành được
chạy trên máy chủ trong máy ảo đang cạnh tranh quyền truy cập vào CPU.
Một giải pháp hiệu quả cho vấn đề này là sử dụng bộ xử lý đa năng hoặc tốt hơn là sử dụng bộ xử lý đa năng.

máy đa lõi nơi bạn có thể dành một lõi hoặc nhiều lõi cho máy ảo
máy móc. Công nghệ gán lõi cho hình ảnh máy ảo là
chưa được cung cấp đầy đủ bởi các nhà cung cấp ảo hóa hiện tại nhưng dự kiến sẽ
có mặt trong tương lai gần. Trong trường hợp không có bộ xử lý đa lõi, bước tốt
nhất tiếp theo là tìm bộ xử lý nhanh nhất hiện có để đáp ứng nhu cầu của bạn.

Ký ức
Trí nhớ cũng có thể là một nút thắt cổ chai đáng kể nhưng ảnh hưởng của nó có thể được giảm thiểu, trong

bằng cách chọn nhà cung cấp tốt nhất cho giải pháp ảo hóa của bạn vì
các nhà cung cấp khác nhau xử lý việc sử dụng bộ nhớ theo cách khác nhau.
Machine Translated by Google

Bất kể bạn chọn nhà cung cấp nào, bạn phải có một số tiền đáng kể
bộ nhớ một thứ gần tương đương với số lượng bạn có
được gán cho mỗi máy nếu chúng chạy như một máy vật lý. Vì
Ví dụ, để chạy Windows XP Professional trên máy ảo, bạn có thể
phân bổ 256 megabyte (MB) bộ nhớ. Đây là trên 256 MB
được khuyến nghị cho máy chủ, giả sử Windows XP là máy chủ.
Điều này có thể có nghĩa là trong nhiều trường hợp cấu hình máy cơ sở sẽ xuất hiện

tới khoảng 1 2 gigabyte (GB) bộ nhớ hoặc có thể nhiều hơn nữa
gigabyte cho giải pháp ảo hóa dựa trên máy chủ.
Bạn có thể dễ dàng thay đổi cấu hình bộ nhớ cho hệ điều hành khách được ảo
hóa. Thông thường sự thay đổi này được thực hiện từ bên trong ảo hóa
bản thân phần mềm và chỉ yêu cầu tắt máy và khởi động lại chu kỳ của máy ảo để có
hiệu lực. Ngược lại quá trình này với yêu cầu cài đặt bộ nhớ theo cách thủ công
trên mỗi máy vật lý và bạn có thể thấy một trong những lợi ích
của công nghệ ảo hóa.

Đĩa vật lý
Khi nói đến ảo hóa, việc sử dụng không gian đĩa tổng thể cho mỗi máy ảo không phải
là mối quan tâm lớn bằng việc sử dụng thông minh từng ổ đĩa vật lý. Một điểm quan
trọng nữa cần xem xét là tốc độ quay của ổ đĩa đang sử dụng. Bởi vì bạn có thể sử
dụng nhiều máy ảo
trên một ổ đĩa duy nhất, tốc độ quay của ổ đĩa có thể có ảnh hưởng đáng kể
về hiệu suất với tốc độ ổ đĩa lớn hơn. Để có hiệu suất tốt nhất trên hầu hết các
sản phẩm ảo hóa hiện nay, hãy xem xét triển khai nhiều iple
ổ đĩa và sử dụng ổ đĩa nhanh nhất có thể, xét về tốc độ quay của nó,
cho mỗi ổ đĩa.

Một cách để nâng cao hiệu suất của giải pháp ảo hóa ngoài việc
có ổ đĩa nhanh hơn là để đảm bảo rằng máy chủ và hệ điều hành liên quan của nó có
ổ cứng vật lý chuyên dụng và tất cả các ổ đĩa ảo
các máy hoặc có khả năng mỗi máy ảo có một đĩa cứng vật lý riêng được phân bổ cho
nó.

Mạng

Việc sử dụng mạng cũng có thể gây ra các vấn đề tắc nghẽn, tương tự như các vấn đề
ký ức. Mặc dù máy ảo không thêm bất kỳ độ trễ mạng đáng kể nào vào phương trình,
nhưng máy chủ phải có dung lượng
để phục vụ nhu cầu mạng của tất cả các máy ảo đang chạy trên máy chủ
máy móc. Tuy nhiên, cũng như với trí nhớ, bạn vẫn cần áp dụng cách thích hợp.
lượng băng thông mạng và tài nguyên hairk mà bạn sẽ có nếu các máy chạy trên phần
cứng vật lý riêng biệt.
Bạn có thể cần phải nâng cấp card mạng nếu đang chạy nhiều máy ảo trong môi
trường CNTT và tất cả các máy đều đang gặp phải lưu lượng truy cập mạng đồng thời
lớn. Nhưng trong hầu hết các kịch bản ảo hóa máy tính để bàn, bạn sẽ thấy rằng mạng
không phải là vấn đề. Nhiều khả năng thủ phạm chính là
CPU, đĩa hoặc bộ nhớ.
Machine Translated by Google

Phần kết luận

Công nghệ ảo hóa, mặc dù không mới nhưng đang phát triển với tốc độ đáng kể trong
sử dụng trên các máy chủ và máy tính để bàn và từ lâu đã mất kết nối với các hệ thống
máy tính lớn. Trong khi những thách thức vẫn tồn tại, chẳng hạn như sự thống nhất
thuật ngữ, sự phát triển của các giải pháp phần mềm thậm chí còn mạnh mẽ hơn và

việc triển khai hỗ trợ ảo hóa thiết bị lớn hơn, ảo hóa là


vẫn sẵn sàng tạo ra tác động đáng kể đến bối cảnh điện toán trong vài năm tới.

Để biết thêm thông tin về ảo hóa và Intel VT, vui lòng tham khảo cuốn sách

Công nghệ ảo hóa ứng dụng của Sean Campbell và Michael Jeronimo.

Giới thiệu về tác giả

Sean Campbell từng là cố vấn làm việc với Microsoft và Intel®


công nghệ trong hơn một thập kỷ, chuyên phát triển ứng dụng tùy chỉnh
và giải pháp cho các công nghệ mới nổi và chủ đạo.

Trong sự nghiệp phần mềm kéo dài 20 năm của mình, Michael Jeronimo là nhà phát triển, kiến trúc
sư và nhân viên kiến trúc phần mềm của Tập đoàn Intel, nơi ông đã phát triển các khái niệm và
các dự án cho nỗ lực Ngôi nhà Kỹ thuật số của Intel và phát triển công nghệ bảo mật Internet.

Bản quyền © 2006 Tập đoàn Intel. Đã đăng ký Bản quyền.

Bài viết này dựa trên tài liệu tìm thấy trong cuốn sách Ảo hóa ứng dụng

Công nghệ của Sean Campbell và Michael Jeronimo. Ghé thăm Nhà xuất bản Intel
trang web để tìm hiểu thêm về cuốn sách này:

http://www.intel.com/intelpress/sum_vpio.htm

Không phần nào của ấn phẩm này được phép sao chép, lưu trữ trong hệ thống truy xuất

hoặc truyền dưới bất kỳ hình thức nào hoặc bằng bất kỳ phương tiện nào, điện tử,

cơ khí, sao chụp, ghi âm, quét hoặc cách khác, trừ khi
được cho phép theo Mục 107 hoặc 108 của Đạo luật Bản quyền Hoa Kỳ năm 1976 mà
không cần có sự cho phép trước bằng văn bản của Nhà xuất bản hoặc ủy
quyền thông qua việc thanh toán phí mỗi bản sao phù hợp cho
Trung tâm cấp phép bản quyền, 222 Rosewood Drive, Danvers, MA 01923,
(978) 750-8400, fax (978) 750-4744. Yêu cầu Nhà xuất bản
quyền phải được gửi tới Nhà xuất bản, Intel Press, Intel
Corporation, 2111 NE 25 Avenue, JF3-330, Hillsboro, OR 97124-5961.
Email: intelpress@intel.com .

Intel và Intel VT là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Intel
Tập đoàn.
Các tên và thương hiệu khác có thể được coi là tài sản của người khác.

You might also like