.5 – Tiếp cận ảo hóa trên phần cứng cho nền tảng x86

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Hệ thống quản trị máy ảo cho ứng dụng công nghệ điện toán đám mây trong doanh nghiệp (Trang 51)

Trạng thái của máy ảo được lưu trong cấu trúc vận hành máy ảo (Virtual Machine Control Structures (Intel VT-x)) hoặc khối vận hành máy ảo (Virtual Machine Control Blocks(AMD-V)).

Do quá tải cao trong chuyển dịch từ nhân ảo hóa tới máy ảo và mô hình lập trình chặt, trong hầu hết các trường hợp, cơ chế tiếp cận dịch nhị phân của VMware hiện tại đạt được hiệu xuất cao hơn so với thế hệ ảo hóa hỗ trợ bởi phần cứng thế hệ đầu tiên. Mô hình lập trình chặt trong thế hệ đầu tiên đem lại ít hơn sự linh hoạt cho phần mềm trong việc quản lý tần xuất hoặc chi phí của việc chuyển dịch giữa nhân ảo hóa và máy khác. Vì vậy, VMware chỉ đạt được thuận lợi trong một số trường hợp giới hạn như các hệ điều hành 64-bit trên nền vi xử lý của Intel.

b) Ảo hóa bộ nhớ:

Sau ảo hóa vi xử lý thì ảo hóa bộ nhớ là một thành phần rất quan trọng, nó liên quan mật thiết tới việc chia sẻ bộ nhớ vật lý và cấp phát linh hoạt bộ nhớ cho các máy ảo. Cơ chế ảo hóa bộ nhớ máy ảo tương tự như là hỗ trợ bộ nhớ ảo được cung cấp bởi các hệ điều hành hiện đại. Ứng dụng sẽ nhìn thấy được một vùng không gian địa chỉ liên tiếp mà hoàn toàn không cần gắp trực tiếp với bộ nhớ vật lý. Hệ điều hành thiết lập bản đồ mối liên hệ giữa số thứ tự trang nhớ ảo với số thứ tự của trang nhớ vật lý vào một bảng gọi là bảng các trang nhớ. Tất cả các dòng vi xử lý hiện đại trên nền x86, đều bao gồm một đơn vị quản lý bộ nhớ (memory management unit - MMU) và một vùng đệm biên dịch (translation lookaside buffer – LTB) để tối ưu hiệu xuất bộ nhớ ảo.

Để chạy nhiều máy ảo hơn trên một hệ thống vật lý, yêu cầu có một cơ chế để ảo hóa bộ nhớ, hay ảo hóa đơn vị quản lý bộ nhớ của vi xử lí để hỗ trợ hệ điều hành máy ảo. Hệ điều hành máy ảo tiếp tục giám sát việc thiết lập bản đồ địa chỉ nhớ ảo với địa chỉ ở phần bộ nhớ vật lý, tuy nhiên hệ điều hành trên máy máy ảo không thể truy cập tới bộ nhớ của hệ thống vật lý thực tế. VMM có trọng trách thiết lập bản đồ bộ nhớ vật lý của máy máy ảo tới phần bộ nhớ vật lý thực tế, và nó sử dụng một bảng trang nhớ ẩn để tăng tốc quá trình tạo lập bản đồ mối liên kết này. Hình 3.6 mô tả việc VMM sử dụng một vùng đệm ở phần cứng vật lý thiết lập bản đồ mối liên quan vùng nhớ ảo trực tiếp tới bộ nhớ của máy vật lý, để tránh việc biên dịch ở hai lần trong mọi truy cập bộ nhớ.

Hình 3.6 – Ảo hóa bộ nhớ19

Khi hệ điều hành máy ảo thay đổi bộ nhớ ảo thành bộ nhớ vật lý, VMM cập nhật bảng trang nhớ ẩn cho phép việc truy xuất bộ nhớ ảo thành truy xuất trực tiếp. Do đó, VMM sẽ tạo ra một số quá tải khi tiếp cận ảo hóa theo hướng này, nhưng các thế hệ phần cứng thế hệ thứ hai đã hỗ trợ việc thiết lập bảng trang nhớ ẩn trực tiếp trên phần cứng, khiến cho cơ chế ảo hóa được hiệu quả hơn.

c) Ảo hóa thiết bị truy xuất vào ra

Thành phần ảo hóa cuối cùng dưới vi xử lí và bộ nhớ là thiết bị và truy xuất vào ra giữa các thiết bị ảo và phần cứng vật lý . Quá trình ảo hóa các thiết bị này liên quan mâ ̣t thiết đến viê ̣c đi ̣nh tuyến các yêu cầu truy xuất giữa thiết bi ̣ ảo và các phần cứng được sử du ̣ng chia sẻ tài nguyên.

Nếu so sánh với viê ̣c truy xuất trực tiếp phần cứng thì phần mềm quản lí và ảo hóa truy xuất đem lại rất nhiều tiện ích và đơn giản hóa quá trình quản trị . Ví dụ điển hình là trường hợp t ruy xuất ma ̣ng, các thiết bị mạng ảo tạo ra giao dịch mạng ảo giữa các thiết bị với nhau mà không ảnh hưởng đến băng thông vật lí của thiết bị mạng ảo phía ngoài . Các cơ chế như thiết lập nhóm các card mạng vâ ̣t lí xuất hiê ̣n như mô ̣t thiết bi ̣ và có khả năng chi ̣u lỗi trong suốt với các máy ảo và các máy ảo có thể được chuyển sang các hệ thống khác mà vẫn giữ

nguyên đi ̣a chỉ vật lí của nó. Điểm mấu chốt đem đến hiê ̣u suất của ảo hóa đó là dành trước một phần tài nguyên dành cho ảo hóa và tận dụng một phần nhỏ tài nguyên của vi xử lí.

Hình 3.7 – Ảo hóa các thiết bị và truy xuất vào ra20

Nhân ảo hóa tiến hành ảo thiết bi ̣ phần cứng và các thiết bi ̣ phần cứng trên máy ảo là một tập hợp tập các phần cứng ảo hóa tiêu chuẩn . Những thiết bi ̣ này được giả lâ ̣p giống như các kiểu phần cứng tiêu chuẩn và sẽ di ̣ch các yêu cầu truy xuất dữ liê ̣u xuống hê ̣ thống phần cứng. Cách thức chuẩn hóa hệ thống trình điều khiển thiết bi ̣ này tiến hành mô ̣t cách thống nhất giúp cho viê ̣c chuẩn hóa hê ̣ thống máy ảo , và giúp hệ thống máy ảo có thể chuyển sang hoạt động trên các nền tảng phần cứng khá c nhau và không bi ̣ phu ̣ thuô ̣c vào các phần cứng cu ̣ thể nào đó.

3.5 Công nghệ ảo hóa dƣ̣a trên viê ̣c sƣ̉a nhân của hê ̣ điều hành và ảo hóa hỗ trợ

phần cƣ́ng– công nghê ̣ ảo hóa của Citrix, Microsoft, RedHat/Ubuntu

a) Công nghê ̣ ảo hóa dựa trên viê ̣c sửa nhân của hệ điều hành:

Ảo hóa dựa trên viê ̣c sửa nhân hệ điều hành (paravirtualization) hướng tới việc giao tiếp giữa hệ điều hành máy ảo và nhân ảo hóa để cải thiện hiệu năng và hiệu quả.

Hình 3.8 – Tiếp cập ảo hóa theo hướng sửa nhân hê ̣ điều hành trên nền tảng x8621

Paravirtualization liên quan tới việc sửa nhân hệ điều hành để thay thế các lệnh không ảo hóa với các lệnh gọi ảo hóa để liên lạc trực tiếp với nhân ảo hóa bên dưới. Nhân ảo hóa đồng thời cung cấp các giao diện cho các thao tác quan trọng khác của nhân hệ điều hành khác như quản lí bộ nhớ, thực hiện các câu lệnh gọi ngắt trên vi xử lý và quản trị xung nhịp thời gian.

Công nghệ paravirtualization khác với ảo hóa theo cơ chế dịch nhị phân là các hệ điều hành gốc khi chạy hoàn toàn không quan tâm hạ tầng ảo hóa bên dưới và những lời gọi hệ điều hành nhạy cảm được bẫy thông qua cơ chế dịch nhị phân. Giá trị của paravirtualization là hệ thống ảo hóa ít bị quá tải hơn nhưng hiệu xuất vượt trội của paravirtualization so với ảo hóa toàn bộ hoàn toàn phụ thuộc vào các loại hệ điều hành khác nhau. Như vậy, paravirtualization không thể hỗ trợ các hệ điều hành không được sửa đổi (ví dụ Windows XP), nó có khả năng tương thích và chuyển đổi kém. Paravirtualization có thể đem đến những nỗ lực lớn trong hỗ trợ và đảm bảo vấn đề tương thích trong môi trường sảu xuất vì nó yêu cầu can thiệp sâu ở nhân của hệ điều hành. Mã nguồn mở Xen là một ví dụ của paravirtualization, nó xuất phát từ một dự án ảo hóa dựa trên việc sửa đổi nhân hệ điều hành Linux và ảo hóa truy xuất I/O bằng cách sử dụng các trình điều khiển thiết bị của hệ điều hành được tùy biến.

b) Công nghệ ảo hóa trên nền KVM của RedHat

KVM (kernel-based virtual machine) được phát triển từ một dự án mã nguồn mở, khởi xướng bởi công ty Qumranet tại Israel và công ty này được RedHat mua lại vào năm 2008. Mục đích đầu tiên phát triển KVM là hướng tới việc triển khai một giải pháp ảo hóa máy trạm tập trung cho các máy trạm Windows. Sau khi được RedHat mua lại, KVM được RedHat hướng tới việc ảo hóa hệ thống máy chủ, và được gắn với các hệ thống mã nguồn mở trên nền Linux.

KVM hiện tại được hỗ trợ mạnh mẽ từ cộng đồng và có sự cam kết hỗ trợ từ những hãng công nghệ lớn như IBM, RedHat và SUSE. IBM đầu tư mạnh vào KVM từ những năm 2007 bằng những đóng góp cho các thành phần quản trị bộ nhớ, hiệu năng và ảo hoá thiết bị vào ra, đồng thời IBM có một nhóm hơn 60 nhà phát triển phần mềm chuyên làm việc để phát triển các công nghệ ảo hóa cho nền tảng KVM. SUSE cũng có sự đóng góp rất lớn vào KVM trong việc bổ xung các công nghệ liên quan tới ảo hóa máy chủ và máy ảo chạy trên nền KVM.

Hình 3.9 – Kiến trúc ảo hóa của KVM22

KVM được thiết kế như một một module nhân có thể nạp được vào để chuyển nhân Linux thành một nhân ảo hóa (bare-metal hypervisor). KVM hiện tại được RedHat tích hợp vào trong phiên bản RedHat Enterprise Linux 6 do nó được công nhận là một công nghệ giúp cho nhân ảo hóa đạt được hiệu năng cao và khả năng vượt qua được các phần mềm ảo hóa khác.

KVM được thiết kế sau khi Intel và AMD hỗ trợ ảo hóa phần cứng trên hai dòng vi xử lý Intel VT-X và AMD-V cho phép các đặc tính ảo hóa được thực hiện ngay trên vi xử lý. Nên nhân ảo hóa KVM yêu cầu bắt buộc là phần cứng phải hỗ trợ ảo hóa chứ không phải là phần mềm tự tối ưu theo sự tồn tại của ảo hóa trên phần cứng.

Về mặt kiến trúc, KVM được thiết kế như là một tiến trình bình thường trên Linux, lập lịch dựa trên lịch chuẩn của Linux. Trên thực tế, mỗi vi xử lý ảo được coi như một tiến trình Linux bình thường. Nó cho phép KVM tận dụng được tất cả các lợi ích từ nhân của Linux. Việc giả lập các thiết bị phần cứng ảo được thực hiện nhờ phiên bản cải tiến của QEMU, nó cung cấp giả lập cho BIOS, PCI bus, USB bus và các thiết bị phần cứng tiêu chuẩn như các thiết bị điều khiển IDE và SCSI và thiết bị mạng

c) Công nghệ ảo hóa của Microsoft

Microsoft Hyper-V là mô ̣t công nghê ̣ ảo hóa cho nền x 64 dựa trên Windows Server 2008. Đây là mô ̣t công nghê ̣ ảo hóa dựa trên nhân của hê ̣ điều hành vì khi triển khai có thể cài đă ̣t ở da ̣ng tắt đi các chức năng của hê ̣ điều hành Windows Server hoă ̣c bâ ̣t các tính năng của hê ̣ điều hành Windows Server đi kèm với các tính năng quản trị.

Hình 3.10 – Kiến trúc ảo hóa của Microsoft Hyper-V23

Kiến trúc ảo hóa của Hype r-V hỗ trợ quá trình cô lâ ̣p các hê ̣ điều hành cài trên nó thông qua viê ̣c phân vùng (partition). Mô ̣t phân vùng là mô ̣t đơn vi ̣ lô gíc cô lâ ̣p, hỗ trợ bởi nhân ảo hóa, là vùng mà hệ điều hành hoạt động . Mô ̣t nhân ảo hóa sẽ có ít nhất một phân vùng chính , gọi là phân vùng cha (parent partition). Nhân ảo hóa hoa ̣t đô ̣ng ta ̣i phân vùng cha , và truy xuất trực tiếp xuống các thiết bị vật lý ở lớp dưới . Phân vùng cha có nhiê ̣m vu ̣ ta ̣o ra các phân vùng co n cho các hệ điều hành khách hoạt động.

Môt phân vùng ảo hóa không truy xuất trực tiếp tới vi xử lí vâ ̣t lý , và nó không tương tác trực tiếp với các ngắt vâ ̣t lí. Thay vào đó, nó tương tác với phần vi xử lí ảo hóa và c hạy trên các địa chỉ máy khác ảo , đi ̣a chỉ này phu ̣ thuô ̣c vào cấu hình của mỗi thế hê ̣ nhân ảo hóa , và có thể không phải toàn bộ không gian đi ̣a chỉ. Nhân ảo hóa có thể cho ̣n lựa chỉ cho phép mô ̣t phần của vi xử lí làm viê ̣c với mỗi phân vùng ảo hóa . Lúc này, nhân ảo hóa sẽ nhâ ̣n các lê ̣nh từ các phân vùng ảo hóa và chuyển hướng chúng đến những phân vùng xác đi ̣nh, thông qua cơ chế go ̣i là Synthetic Interrupt Controller (SynIC). Cơ chế ảo hóa này làm viê ̣c đươc cả với hê ̣ thống phần cứng hỗ trợ ảo hóa của Intel và AMD.

Phân vùng con vì không truy xuất phần cứng trực tiếp , mà truy xuất tài nguyên thông qua các thiết bi ̣ ảo . Bất cứ yêu cầu nào từ hê ̣ điều hành kh ách thông qua thiết bi ̣ ảo sẽ cha ̣y vào vùng điều khiển thiết bi ̣ trên phân vùng chính , vùng này gọi là VMBus, và được xử lý thông qua đó . VMBus là mô ̣t kênh lôgíc thiết lâ ̣p cơ chế giao tiếp trung gian giữa các phân vùng. Các yêu cầu từ phía các thiết bi ̣ ảo trên các phân vùng con và phản hồi cho các yêu cầu đó cũng đều cha ̣y trên VMBus . Phân vùng này cha ̣y mô ̣t tiến trình go ̣i là Virtualization Service Provider (VSP), kết nối phần VMBus và xử lí các yêu cầu cha ̣y từ phía các phân vùng con . Các thiết bị ảo trên phân vùng con chạy mộ t tiến trình go ̣i là Virtualization Service Client, thực thi các lời go ̣i tới VSPs cha ̣y trên phân vùng chính thông qua VMBus.

Do dựa trên nền tảng hê ̣ điều hành Windows , sử du ̣ng các trình điều khiển thiết bi ̣ của Windows nên Hyper-V sẽ hỗ trợ nhiều loa ̣i thiết bi ̣ phần cứng hơn so với các hê ̣ thống ảo hóa khác . Tuy nhiên, các trình điều khiển thiết bị này lại không hoàn toàn thiết kế cho mu ̣c đích ảo hóa ngay từ đầu , điều này khiến cho hiê ̣u năng của hê ̣ thống Windows giảm đi rất nhiều.

d) Công nghệ ảo hóa của Citrix

Kiến trúc ảo hóa của Citrix được đưa ra thi ̣ trường trên hê ̣ thống XenServer . Đây là phần mềm ảo hóa được xây dựng dựa trên bộ mã nguồn mở Xen

hypervisor. Do là phần mềm mã nguồn mở nên nhân ảo hóa của Xen được rất nhiều hãng sử du ̣ng để phát triển thành các hê ̣ thống ảo hóa của riêng ho ̣ : RedHat đã sử dụng nhân ảo hóa của Xen trong các phiên bản RedHat Enterprise Linux 5.x, Oracle sử du ̣ng nhân ảo hóa Xen trong các sản phẩn Oracle VM , và Amazon Elastic Compute Cloud.

Nhân ảo hóa Xen sử du ̣ng đồng thời hai công nghê ̣ là ảo hóa hỗ trợ bởi viê ̣c sửa nhân hê ̣ điều hành và ảo hóa phần cứng . Về bản chất, kiến trúc ảo hóa nằm trong nhân ảo hóa Xen tương tự như Hyper -V và KVM. Tất cả các máy ảo khi tương tác với hê ̣ thống phần cứng phía dưới sẽ tương tá c với giao diê ̣n quản tri ̣ hê ̣ thống này ta ̣i mô ̣t vùng quản tri ̣ go ̣i là Domain 0.

Hình 3.11 – Kiến trúc ảo hóa của Xen24

Domain 0 là nhân hệ điều hành Linux được thay đổi hỗ trợ cho mu ̣c đích ảo hóa, nó được coi như là một má y ảo duy nhất cha ̣y được trên nhân ảo hóa , có quyền ưu tiên cao nhất trong truy xuất trực tiếp tài nguyên phần cứng phía dưới và tương tác với các máy ảo khác trong hệ thống . Khi hoa ̣t đô ̣ng , Domain 0 sẽ chạy trước tiên trước b ất kỳ máy ảo nào .Các vùng khác gọi là các Domain U là các miền khách không có đặc quyền (unprivileged domain guests). Domain U là nơi hê ̣ điều hành của các máy ảo hoa ̣t đô ̣ng , các hệ điều hành này hoàn toàn không truy xuất trực tiếp tài nguyên phần cứng phía dưới . Tại Domain 0, có hai trình điều khiển thiết bị hoạt động hỗ trợ cho thiết bị mạng và truy xuất thiết bị lưu trữ từ các máy ảo khác ta ̣i các Domain U . Các lời gọi yêu cầu truy xuấ t qua hê ̣ thống ma ̣ng sẽ xuất phát từ Domain U , chạy tới Network Backend Driver và kết nối tới tài nguyên ma ̣ng . Block Backend Driver sẽ tương tác với hê ̣ thống lưu trữ để đo ̣c và ghi dữ liê ̣u khi có yêu cầu từ các máy ảo thuô ̣c Domain U.

3.6 Đánh giá về các công nghê ̣ ảo hóa của các hãng

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Hệ thống quản trị máy ảo cho ứng dụng công nghệ điện toán đám mây trong doanh nghiệp (Trang 51)

Tải bản đầy đủ (PDF)

(107 trang)