Tải bản đầy đủ (.pdf) (92 trang)

Công nghệ ảo hóa máy chủ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.74 MB, 92 trang )

ĐÀO DUY PHONG

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC
NGÀNH: CÔNG NGHỆ THÔNG TIN
CÔNG NGHỆ THÔNG TIN

CÔNG NGHỆ ẢO HÓA MÁY CHỦ

ĐÀO DUY PHONG

2007-2009
Hà Nội
2010

HÀ NỘI 2010


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------------------

LUẬN VĂN THẠC SĨ KHOA HỌC
Ngành: Công nghệ thông tin

CÔNG NGHỆ ẢO HÓA MÁY CHỦ

ĐÀO DUY PHONG



Người hướng dẫn: PGS.TS. Đặng Văn Chuyết

Hà Nội 2010


Trang 1

MỞ ĐẦU
Ảo hóa đã và đang thay đổi sâu sắc ngành công nghiệp thông tin trên nhiều
lĩnh vực ứng dụng như mạng máy tính, hệ điều hành, các ứng dụng và lưu trữ.
Ảo hóa không còn là ngành học mà chỉ những người nghiên cứu tin học thuần
túy mới biết đến nữa. Nó đã từng bước phổ biến đối với cả những nhà quản trị
hệ thống và ban lãnh đạo của các doanh nghiệp. Các công ty nhận ra rằng các
mô hình máy chủ truyền thống của họ trước đây chỉ làm việc với hiệu suất
10% hoặc thấp hơn, nhưng lại luôn đòi hỏi thêm không gian làm việc, nguồn
điện cung cấp cũng như hệ thống làm mát. Nếu hạn chế tình trạng này sẽ có
tác động trực tiếp đến chi phí, giảm gánh nặng về mặt tài chính của công ty và
ngoài ra còn gián tiếp giảm lượng khí thải vào môi trường. Công nghệ ảo hóa
là giải pháp mà nhiều công ty đã lựa chọn và trở thành xu hướng chủ đạo. Và
với việc xuất hiện của công nghệ ảo hóa được hỗ trợ từ phần cứng của Intel
và AMD-V, công việc ảo hóa đã trở nên dễ dàng hơn rất nhiều, đạt hiệu suất
gần như tự nhiên nhất, việc quản trị cũng trở nên đơn giản hơn góp phần
không nhỏ vào xu hướng hợp nhất máy chủ. Sự tăng cường đầu tư và thực
hiện ảo hóa có thể được so sánh với việc tham gia sử dụng Internet của các
công ty ở cuối thập kỷ 90. Tuy nhiên cũng giống như việc tham gia sử dụng
Internet trước đây, vấn đề bảo mật và vấn đề lựa chọn đúng công nghệ, đúng
giải pháp để triển khai sao cho hiệu quả luôn làm đau đầu các nhà quản trị hệ
thống.
Luận văn này sẽ trình bày nghiên cứu của tác giả để hệ thống các kiến thức

liên quan tới công nghệ ảo hóa, tìm hiểu về những giải pháp kỹ thuật hiện có,
phát hiện những hạn chế còn tồn tại, xem xét một số vấn đề bảo mật còn bỏ
ngỏ, và thử nghiệm với một số sản phẩm để làm thế nào có thể nâng cao hiệu
quả sử dụng và triển khai an toàn khi áp dụng ảo hóa vào môi trường thực tế
đặc biệt là đối với hạ tầng mạng máy chủ - xương sống của nhiều doanh
nghiệp ứng dụng công nghệ thông tin.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 2

MỤC LỤC
MỞ ĐẦU ........................................................................................... 1
THUẬT NGỮ ................................................................................... 6
DANH MỤC HÌNH VẼ .................................................................. 7
DANH MỤC BẢNG BIỂU ............................................................. 9
Chƣơng 1.

TỔNG QUAN VỀ ẢO HÓA................................... 10

1.1 Ý tưởng của ảo hóa ............................................................................. 10
1.2 Ảo hóa là gì? ....................................................................................... 10
1.3 Ảo hóa máy chủ .................................................................................. 12
1.4 Lịch sử của ảo hóa .............................................................................. 13
1.4.1

Giai đoạn 1: Ảo hóa các máy tính cỡ lớn.................................. 13


1.4.2

Giai đoạn 2: Sự cần thiết phải ảo hóa kiến trúc x86 ................. 13

1.4.3

Giai đoạn 3: Ảo hóa hoàn toàn phần cứng x86......................... 15

1.4.4

Giai đoạn 4: Công nghệ Intel-VT và AMD-V .......................... 17

1.5 Popek và Goldberg ............................................................................. 17
1.6 Lợi ích của ảo hóa............................................................................... 19
1.6.1

Yếu tố lịch sử ............................................................................ 19

1.6.2

Tạo môi trường tốt để phát triển và nghiên cứu ....................... 20

1.6.3

Kiểm thử các ứng dụng ............................................................. 20

1.6.4

Tiết kiệm chi phí ....................................................................... 20


Chƣơng 2.

MỘT SỐ KHÁI NIỆM ........................................... 22

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 3
2.1 Mô hình bảo mật vòng. ....................................................................... 22
2.2 Ảo hóa CPU ........................................................................................ 23
2.3 Tổ hợp điều phối ảo hóa ..................................................................... 26
2.4 Máy ảo ................................................................................................ 26
2.4.1

Đặc tính của máy ảo .................................................................. 27

2.4.2

Các thành phần của máy ảo....................................................... 28

2.5 Phép Dịch nhị phân ............................................................................ 30
2.6 Quản lý bộ nhớ ................................................................................... 31
2.7 Quản lý ổ đĩa....................................................................................... 32

Chƣơng 3.

CÁC KỸ THUẬT ẢO HÓA ................................... 34


3.1 Ảo hóa hoàn toàn ................................................................................ 34
3.2 Cận ảo hóa .......................................................................................... 38
3.3 Ảo hóa có sự trợ giúp của phần cứng ................................................. 41

Chƣơng 4.

CÁC PHẦN MỀM ẢO HÓA ................................. 44

4.1 VMware .............................................................................................. 44
4.1.1

Nền tảng ESX............................................................................ 45

4.1.2

VMware ESXi ........................................................................... 47

4.2 Xen ...................................................................................................... 48
4.3 Microsoft ............................................................................................ 51
4.3.1

Microsoft Virtual PC................................................................. 51

4.3.2

Microsoft Hyper-V .................................................................... 52

4.4 VirtualBox .......................................................................................... 55


Chƣơng 5.

BẢO MẬT TRÊN MÁY ẢO .................................. 56

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 4
5.1 Một số khái niệm quan trọng .............................................................. 56
5.1.1

Sự cô lập .................................................................................... 58

5.1.2

Điều khiển các máy ảo từ máy lưu trữ ...................................... 59

5.2 Phân tích các lỗ hổng bảo mật trong ảo hóa ....................................... 60
5.2.1

Tấn công từ máy kí sinh tới máy chủ........................................ 60

5.2.2

Các lỗ hổng liên quan tới việc quản lý từ xa ............................ 62

5.2.3


Tấn công từ chối dịch vụ........................................................... 63

5.2.4

Rootkit trên máy ảo ................................................................... 64

5.2.5

Phương pháp phòng chống, phát hiện....................................... 67

5.2.6

Vấn đề khôi phục bản chụp nhanh ............................................ 68

Chƣơng 6.

THỰC NGHIỆM ..................................................... 69

6.1 Kiểm tra hiệu suất ............................................................................... 69
6.1.1

Kiểm tra đối với Bộ vi xử lý ..................................................... 71

6.1.2

Kiểm tra đối với Bộ nhớ ........................................................... 73

6.1.3

Kiểm tra ổ đĩa lưu trữ ................................................................ 76


6.2 Kiểm tra quá trình hoạt động .............................................................. 77
6.2.1

Cài đặt máy chủ mới ................................................................. 77

6.2.2

Tăng thêm sức mạnh cho bộ vi xử lý ........................................ 78

6.2.3

Tăng thêm không gian lưu trữ................................................... 79

6.2.4

Chuyển ứng dụng tới các phần cứng vật lý khác ...................... 79

6.2.5

Khôi phục hệ thống sau khi phần mềm bị lỗi ........................... 80

6.2.6

Khôi phục hệ thống sau khi phần cứng bị lỗi ........................... 80

6.2.7

Di chuyển máy chủ ................................................................... 81


Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 5
6.3 Kiểm tra tính cô lập và bảo mật ......................................................... 81
6.3.1

Chỉnh sửa và truy cập các tệp tin ảnh ổ đĩa .............................. 81

6.3.2

Kiểm tra truyền thông mạng ..................................................... 82

6.3.3

Sự cô lập bộ nhớ và các tiến trình ............................................. 85

KẾT LUẬN .................................................................................... 87
TÀI LIỆU THAM KHẢO ............................................................ 88

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 6

THUẬT NGỮ

x86

Kiến trúc vi xử lý dựa tập lệnh 8086.

AMD-V

Công nghệ ảo hóa AMD

API

Giao diện lập trình ứng dụng

BSoD (Blue Screen of Death)

Màn hình xanh chết chóc

CPU (Control Proccessing Unit)

Bộ vi xử lý

Full virtualization

Ảo hóa hoàn toàn

Guest System

Hệ thống kí sinh

Guest Operating System


Hệ điều hành kí sinh

Hardware-Assisted virtualization

Ảo hóa có hỗ trợ của phần cứng

HCL (Hardware Compatibility List)

Danh sách phần cứng tương thích

Hypervisor

Tổ hợp điều phối
trình điều phối ảo hóa

Hyper-V

Công nghệ ảo hóa Microsoft

Host

Máy chủ, máy lưu trữ

I/O

Vào/Ra

Intel – VT

Công nghệ ảo hóa Intel


ISA (Instruction Set Architecture)

Kiến trúc tập lệnh

Live Migration

Di trú nóng

Migration

Sự di trú

OS (Operating System)

Hệ điều hành

Paravitualization

Cận ảo hóa

Para-virtualization

Cận ảo hóa

Virtualization

Ảo hóa

VM (Virtual Machine)


Máy ảo

VMM (Virtual Machine Monitor)

Giống Hypervisor

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 7

DANH MỤC HÌNH VẼ
Hình 1.1: Trung tâm dữ liệu truyền thống và môi trường được ảo hóa .......... 10
Hình 1.2: Bốn máy ảo được cài đặt trên một máy vật lý ................................ 12
Hình 1.3: Máy tính cỡ lớn IBM 370 (năm 1967) ........................................... 13
Hình 1.4: Chip vi xử lý Intel 8086 .................................................................. 14
Hình 1.5: Phiên bản VMware Workstation đầu tiên ....................................... 16
Hình 2.1: Các vành đai an ninh ....................................................................... 23
Hình 2.2: Các vòng an ninh của kiến trúc x86. ............................................... 24
Hình 2.3: Hai kiểu tổ hợp điều phối (Hypervisor/VMM) ............................... 25
Hình 2.4: Cấu trúc phân lớp của việc quản lý bộ nhớ..................................... 31
Hình 2.5: Hệ thống vào/ra thông thường và hệ thống được ảo hóa ................ 32
Hình 3.1: Ảo hóa hoàn toàn của VMware ...................................................... 36
Hình 3.2: Mô hình kiến trúc cận ảo hóa.......................................................... 39
Hình 3.3: Mô hình cận ảo hóa của VMware ................................................... 40
Hình 3.4: Mô hình ảo hóa có sự hỗ trợ của phần cứng ................................... 42
Hình 3.5: Mô hình ảo hóa trước và sau khi có công nghệ Intel-VT ............... 43

Hình 4.1: Báo cáo của Gartner 8/2009 ............................................................ 44
Hình 4.2: Ba thành phần chính của VMware ESX Server.............................. 46
Hình 4.3: Mô hình kiến trúc của VMware ESXi ............................................ 48
Hình 4.4: Mô hình kiến trúc của Xen.............................................................. 50
Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 8
Hình 4.5: Giao diện của phần mềm Microsoft Virtual PC ............................. 51
Hình 4.6: Mô hình kiến trúc ảo hóa Hyper-V của Microsoft ......................... 53
Hình 5.1: Hợp nhất các máy ảo ....................................................................... 56
Hình 5.2: Mô hình tiềm ẩn nguy cơ khi chưa ảo hóa (a) và khi ảo hóa (b) .... 58
Hình 5.3: Giao diện điều khiển hạ tầng ảo hóa của phần mềm HyperVM ..... 63
Hình 5.4: Tấn công Từ chối dịch vụ ............................................................... 64
Hình 6.1: Thử nghiệm 4 cài đặt khác nhau ..................................................... 69
Hình 6.2: Kiểm tra lưu thông mạng trên hệ thống ảo hóa .............................. 84

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 9

DANH MỤC BẢNG BIỂU
Bảng 1: Đánh giá hiệu suất bộ vi xử lý bằng phần mềm PerformanceTest.... 72
Bảng 2: Đánh giá hiệu suất bộ vi xử lý bằng phần mềm Sisoftware Sandra .. 73
Bảng 3: Đánh giá bộ nhớ bằng TestPerformance ........................................... 74

Bảng 4: Kiểm tra băng thông bộ nhớ bằng SiSoftware Sandra ...................... 75
Bảng 5: Kiểm tra băng thông bộ nhớ theo năng lượng tiêu thụ bằng
SiSoftware Sandra ........................................................................................... 75
Bảng 6: Kiểm tra theo kích thước khối nhớ .................................................... 76
Bảng 7: Kiểm tra ổ đĩa bằng PerformanceTest ............................................... 77

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 10

CHƢƠNG 1. TỔNG QUAN VỀ ẢO HÓA
1.1 Ý TƢỞNG CỦA ẢO HÓA
Ý tưởng chính của kỹ thuật ảo hóa là làm sao để cung cấp các nguồn tài
nguyên tính toán dưới dạng một kho tài nguyên chung. Tùy theo nhu cầu của
các ứng dụng, các tài nguyên được gán cho chúng bằng tay hoặc tự động.
Phạm vi áp dụng của ảo hóa rất rộng, có thể là một thiết bị đơn lẻ nào đó cho
tới các trung tâm dữ liệu lớn và trên nhiều lĩnh vực khác nhau chẳng hạn hệ
thống máy chủ, hệ thống mạng, hệ thống lưu trữ và các ứng dụng.
Sự khác biệt giữa một trung tâm dữ liệu truyền thống và một môi trường đã
được ảo hóa được biểu diễn như Hình 1.1.

H nh 1.1: Trung tâm dữ liệu truyền thống và môi trƣờng đƣợc ảo hóa

1.2 ẢO HÓA LÀ GÌ?
Việc định nghĩa ảo hóa là một công việc không dễ dàng chút nào bởi vì như
chúng ta sẽ thấy trong các phần sau, có rất nhiều kiểu ảo hóa khác nhau và để
đạt được một định nghĩa bao hàm được tất cả hoàn toàn không đơn giản.


Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 11
Singh [21] mô tả ảo hóa như là “...khung sườn hoặc hệ phương pháp phân
chia các nguồn tài nguyên của máy tính thành nhiều môi trường thực thi, bằng
cách áp dụng một hoặc nhiều khái niệm hoặc kỹ thuật chẳng hạn như là phân
chi theo phần mềm / phần cứng, chia sẻ thời gian (time-sharing), mô hình hóa
toàn phần hoặc một phần, mô phỏng, chất lượng của dịch vụ và nhiều cái
khác nữa...”. Tuy nhiên định nghĩa này bỏ sót những trường hợp như là ảo
hóa mạng, ảo hóa ứng dụng hay ảo hóa lưu trữ. Kiyanclar [22] thì mô tả ảo
hóa như là “... sự sao chụp lại một cách trung thành toàn bộ kiến trúc bằng
phần mềm, cung cấp ảnh ảo của máy tính thật để tất cả các phần mềm vẫn
chạy được trên đó”. Nếu xét ở lĩnh vực ảo hóa máy chủ (server virtualization)
thì phần lớn các định nghĩa đều chính xác, ngược lại nếu cần một định nghĩa
tổng quát, ta có thể định nghĩa như sau:
Ảo hóa là một bộ khung để phân chia các nguồn tài nguyên thiết bị của môi
trường thực thi (bao gồm: các bộ vi xử lý, bộ nhớ, thiết bị ngoại vi), thành
nhiều môi trường tương đồng. Những nguồn tài nguyên này không nhất thiết
phải nằm trên một máy tính vật lý mà có thể được tập hợp lại trên toàn hệ
thống.
Ngược lại với một hệ thống không được ảo hóa, trong đó mỗi hệ điều hành
một mình điều khiển tất cả các nguồn tài nguyên phần cứng thì đối với hệ
thống được ảo hóa, một tầng mới của phần mềm - tầng điều phối ảo hóa sẽ
được tạo ra, tầng này cung cấp một tập các giao diện ảo của phần cứng bên
dưới giúp cho hệ thống đó có thể tách thành nhiều máy tính khác nhau - máy
tính ảo. Trên các máy tính ảo có thể cài đặt các hệ điều hành khác nhau từ

Windows cho tới Linux, Mac, OS/2… (gọi là hệ điều hành kí sinh hoặc hệ
điều hành kí sinh). Những máy tính ảo này có thể chạy song song cùng lúc,
thực hiện các chức năng bình thường như một máy tính vật lý thật, tận dụng
tối đa năng lực xử lý và các nguồn tài nguyên của hệ thống. Ngoài ra có thể di
chuyển chúng dễ dàng từ nơi này sang nơi khác, thậm chí ngay cả khi đang
chạy.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 12

H nh 1.2: Bốn máy ảo đƣợc cài đặt trên một máy vật lý

1.3 ẢO HÓA MÁY CHỦ
Ảo hóa máy chủ đặt trọng tâm vào việc phân hoạch một thể hiện vật lý của hệ
điều hành vào một thể hiện ảo hay máy ảo. Các sản phẩm ảo hóa máy chủ cho
phép ảo hóa bất cứ hệ điều hành nền tảng x86 hay x64 nào chẳng hạn như
Windows, Linux và một số dạng của Unix. Có 2 hướng ảo hóa máy chủ:
 Ảo hóa bằng phần mềm: Trong kỹ thuật này hệ điều hành được ảo hóa
chạy trên nền tảng ảo hóa bằng phần mềm trên một hệ điều hành đã có.
 Ảo hóa dựa trên phần cứng: Trong kỹ thuật này hệ điều hành được ảo
hóa chạy trên nền tảng ảo hóa nằm trực tiếp trên phần cứng mà không
cần tới sự có mặt của hệ điều hành. Phương tiện được sử dụng để chạy
ảo hóa bằng phần cứng thường được gọi là trình điều phối. Mục đích
của phương tiện này là mang những tài nguyên phần cứng tới cho các
hệ điều hành ảo hóa.
Khi làm việc với ảo hóa máy chủ, máy chủ vật lý trở thành nơi lưu trữ tất cả

hệ điều hành đã ảo hóa hay các máy ảo.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 13
1.4 LỊCH SỬ CỦA ẢO HÓA
1.4.1 GIAI ĐOẠN 1: ẢO HÓA CÁC MÁY TÍNH CỠ LỚN

Cách đây gần 50 năm (tức là vào những năm 1960), khái niệm ảo hóa đã được
đưa ra lần đầu tiên bởi hãng IBM khi họ thực hiện tối ưu hiệu quả sử dụng các
máy tính cỡ lớn (mainframe) bằng cách phân vùng logic chúng vào các máy
riêng biệt. Những phân vùng này sẽ cho phép các máy tính cỡ lớn thực hiện
đa tác vụ (multi-task), chạy nhiều tiến trình và ứng dụng cùng lúc.

H nh 1.3: Máy tính cỡ lớn IBM 370 (năm 1967)

Nguyên nhân dẫn đến ý tưởng này là vì vào thời điểm đó những máy tính cỡ
lớn có giá rất đắt và họ buộc phải tìm mọi cách để tận dụng tối đa các tài
nguyên của nó.
1.4.2 GIAI ĐOẠN 2: SỰ CẦN THIẾT PHẢI ẢO HÓA KIẾN TRÚC X86

Sau đó, trong thập niên 80, 90 của thế kỷ trước, ảo hóa đã mất dần ảnh hưởng
khi có sự xuất hiện của máy tính cá nhân và dòng máy chủ có kiến trúc x861
có giá thành rẻ; các ứng dụng khách-chủ (client-server) thực hiện theo mô
hình phân tán cũng làm cho chi phí tính toán trên các máy chủ giảm đi đáng
kể. Cùng với đó, việc chấp nhận rộng rãi hệ điều hành Windows và sự nổi lên


1

Máy tính mà bộ vi xử lý có kiến trúc tập lệnh x86 (giai đoạn này dùng chip vi xử lý 8086/8088  80386)

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 14
của hệ điều hành Linux với vai trò hệ điều hành máy chủ trong những năm 90
đã khiến cho các máy chủ x86 trở thành một tiêu chuẩn công nghiệp.

H nh 1.4: Chip vi xử lý Intel 8086

Tuy nhiên song hành với sự tăng trưởng trong việc triển khai các máy tính để
bàn và máy chủ kiến trúc x86, những thách thức mới lại xuất hiện. Những
thách thức này bao gồm:
 Hiệu quả sử dụng thấp: Để tránh rủi ro về bảo mật và sự xung đột
giữa các ứng dụng, các tổ chức thường áp dụng chính sách “không bỏ
nhiều trứng vào một giỏ” tức là chỉ chạy một vài dịch vụ trên mỗi máy
chủ. Do vậy, các máy chủ x86 thường đạt hiệu năng thấp, khi chỉ sử
dụng từ 10%-15% năng lực thực sự của chúng.
 Tăng chi phí cơ sở hạ tầng: Chi phí vận hành để hỗ trợ cho sự tăng
trưởng của cơ sở hạ tầng vật lý luôn tăng đều trong những năm qua.
Hầu hết toàn bộ hệ thống cần phải hoạt động liên tục dẫn đến việc tiêu
tốn điện năng cung cấp cho hệ thống, điện năng làm mát mà các chi phí
này lại không thay đổi cho dù mức độ sử dụng nhiều hay ít.
 Tăng chi phí cho việc quản lý: Khi hệ thống càng ngày càng mở rộng
và trở nên phức tạp hơn thì lúc đó đòi hỏi những nhân viên vận hành

phải có kinh nghiệm và chuyên môn cao hơn và bởi vậy chi phí thuê
nhân viên cũng tăng theo. Thêm vào đó các tổ chức phải tiêu tốn nhiều
thời gian và nguồn lực để đào tạo, hướng dẫn sử dụng cũng như các

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 15
công việc liên quan đến bảo trì máy chủ và vì thế lại mất thêm nhân sự
để hoàn thành các nhiệm vụ này.
 Vấn đề bảo mật, phòng ngừa rủi ro và khôi phục sau thảm họa:
Các tổ chức đang ngày càng bị ảnh hưởng bởi thời gian chết của các
ứng dụng máy chủ quan trọng và không tiếp cận của người sử dụng
cuối. Các mối đe dọa của các cuộc tấn công, thiên tại, dịch bệnh y tế và
khủng bố đã nâng tầm quan trọng của kế hoạch liên tục kinh doanh đối
với cả máy để bàn và máy chủ.
 Tăng việc bảo tr đối với máy tính của ngƣời sử dụng cuối: Việc
quản lý và bảo mật cho các máy tính để bàn trong doanh nghiệp hiện
nay gặp rất nhiều khó khăn và thách thức. Làm sao để kiểm soát một
môi trường với nhiều máy tính phân tán và áp dụng các chính sách bảo
mật, chính sách truy cập và quản lý mà không gây khó dễ đến khả năng
làm việc của người sử dụng rất phức tạp và tốn kém. Để loại bỏ các lỗ
hổng bảo mật còn phải liên tục cài đặt các bản vá các bản nâng cấp cho
các máy tính để bàn.
1.4.3 GIAI ĐOẠN 3: ẢO HÓA HOÀN TOÀN PHẦN CỨNG X86

Đến năm 1999, hãng VMware đánh dấu sự trở lại vững chắc của lĩnh vực ảo
hóa khi tung ra giải pháp ảo hóa dành cho các hệ thống kiến trúc x86 để giải

quyết nhiều vấn đề được nói tới ở trên. Công nghệ này cho phép chuyển đổi
các hệ thống x86 vào một mục đích chung, chia sẻ hạ tầng phần cứng nhưng
có đặc tính cô lập hoàn toàn, có tính linh động và sự lựa chọn hệ điều hành
cho các môi trường ứng dụng.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 16

H nh 1.5: Phiên bản VMware Workstation đầu tiên

Ảnh chụp hệ điều hành Windows 95 đang chạy trên VMWare phiên bản đời
đầu, trên máy tính Pentium II - 350 MHz, RAM 128MB, cài đặt hệ điều hành
Linux nhân 2.2.x. Tác giả: Chris Erway, Khoa Khoa học máy tính, Đại học
Brown, Hoa Kỳ, ngày 15/03/1999, nguồn: chris.erway.org/vmware/
Những trở ngại trong việc ảo hóa kiến trúc x86
Không giống như các máy tính cỡ lớn, thiết kế máy tính x86 không cho phép
hỗ trợ ảo hóa hoàn toàn (full virtualization) và VMware đã phải nỗ lực ghê
gớm để tạo ra các máy ảo trên máy tính x86.
Chức năng cơ bản của hầu hết các bộ vi xử lý (cả trong các máy tính cỡ lớn
và máy tính để bàn) là để thực hiện một chuỗi các chỉ lệnh đã được lưu trữ
(thí dụ: một chương trình phần mềm). Trong các bộ vi xử lý x86, có 17 chỉ

Công nghệ ảo hóa máy chủ

Đào Duy Phong



Trang 17
lệnh phát sinh vấn đề khi được ảo
hóa, chúng làm cho hệ điều hành
hiển thị các cảnh báo, gây ngắt
chương trình hoặc chỉ đơn giản là
sụp đổ hoàn toàn. 17 chỉ lệnh này
chính là một trở ngại đáng kể đầu
tiên khi thực hiện việc ảo hóa đối
với các máy tính x86.
Để xử lý các vấn đề chỉ lệnh trong
kiến trúc x86, VMware đã phát triển một kỹ thuật ảo hóa thích nghi cho phép
“bẫy” những chỉ lệnh này khi chúng được tạo ra và chuyển chúng thành các
chỉ lệnh an toàn để có thể được ảo hóa, trong khi đó vẫn cho các chỉ lệnh khác
được phép thực hiện bình thường mà không cần can thiệp gì. Kết quả là máy
ảo đạt hiệu suất thực thi cao và đảm bảo sự tương thích với toàn bộ các phần
mềm.
VMware đi tiên phong trong kỹ thuật này và hãng cũng giúp đỡ rất nhiều
trong việc phát triển các khái niệm liên quan tới ảo hóa. Và ngày nay
VMware cũng chính là hãng dẫn đầu trên thị trường ảo hóa khi cung cấp rất
nhiều giải pháp ảo hóa từ máy để bàn cho tới hệ thống máy chủ và các trung
tâm dữ liệu.
1.4.4 GIAI ĐOẠN 4: CÔNG NGHỆ INTEL-VT VÀ AMD-V

Vào năm 2005-2006 hai hãng sản xuất chip vi xử lý lớn nhất thế giới là Intel
và AMD đã lần lượt công bố vi xử lý hỗ trợ công nghệ ảo hóa ưu việt với tên
gọi tương ứng là Intel-VT và AMD-V. Công nghệ này cho phép viêc ảo hóa
được thực hiện dễ dàng hơn, đạt hiệu suất cao – máy ảo có thể chạy với hiệu
năng như máy vật lý.


1.5 POPEK VÀ GOLDBERG

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 18
Vào năm 1974, Popek và Goldberg viết một bài báo đưa ra các yêu cầu kinh
điển đối với ảo hóa có tựa đề “Các yêu cầu chính thức đối với các kiến trúc
thế hệ thứ ba có khả năng ảo hóa” (Formal requirements for Virtualizable
Third Generation Architectures) [15] được coi như chuẩn so sánh chất lượng
phổ biến nhất và có thể được sử dụng như là một tiêu chí để đánh giá các loại
ảo hóa khác nhau. Phân tích ban đầu của Popek và Goldberg được dùng cho
các hệ thống máy tính thế hệ thứ ba, ví dụ như IBM System/370, Honeywell
6000 và Digital PDP-10 nhưng nó vẫn có giá trị đối với các máy tính hiện
nay. Trong bài viết, các tác giả khái quát các yêu cầu mà phần mềm ảo hóa
phải đảm bảo khi cung cấp sự trừu tượng hóa cho các máy ảo. Những yêu cầu
này gồm có:
- Tính hiệu quả: Phần lớn các thao tác cần phải được thực hiện trên các
tài nguyên thực hơn là bị chặn lại bởi lớp ảo hóa.
- Sự an toàn: Lớp ảo hóa nên được toàn quyền điều khiển các tài nguyên
đã được ảo hóa.
- Tính tƣơng đƣơng: Một chương trình chạy trên tài nguyên ảo cần phải
hành xử y hệt như khi nó chạy trên tài nguyên thực.
Theo Golberg và những người khác, vấn đề mà những nhà phát triển phần
mềm máy ảo cần phải giải quyết để có thể tạo ra một trình điều phố ảo hóa thì
nó phải đáp ứng được 3 điều kiện ở trên khi thao tác cùng với những đặc
trưng riêng của kiến trúc tập lệnh trên nền tảng của phần cứng đích. Kiến trúc
tập lệnh được chia làm 3 nhóm chỉ lệnh:

- Có đặc quyền: các chỉ lệnh mà bẫy chỉ nếu bộ xử lý ở trong chế độ
người dùng và không bẫy nếu nó ở trong chế độ siêu người dùng.
- Điều khiển nhạy cảm: Những chỉ lệnh mà cố gắng thay đổi cấu hình
của các tài nguyên thực trên nền tảng phần cứng
- Diễn biến: Những chỉ lệnh mà ở đó cấu hình của các tài nguyên sẽ bị
ảnh hưởng lên diễn biến hoặc kết quả.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 19
1.6 LỢI ÍCH CỦA ẢO HÓA
1.6.1 YẾU TỐ LỊCH SỬ

Một trong những lợi ích của ảo hóa mang yếu tố lịch sử và liên quan tới việc
sử dụng sai máy chủ, mà nguyên nhân chính là hệ điều hành Microsoft
Windows NT Server. Hệ điều hành này bắt đầu được sử dụng rộng rãi và
chiếm một tỷ lệ lớn trong các trung tâm dữ liệu từ năm 1990 trở lại đây. Tuy
nhiên Windows NT luôn gây một lỗi khó chịu và lỗi này được gán bằng một
cái tên mỹ miều: “Màn hình xanh chết chóc” (BSoD – Blue Screen of Death).
Lỗi này làm treo toàn bộ hoạt động của hệ thống và buộc chúng ta phải khởi
động lại máy. Để an toàn và giảm thiểu rủi ro, các quản trị viên đã áp dụng
triết lý “không bỏ nhiều trứng vào một giỏ” – tức là chỉ chạy một ứng dụng
trên một máy chủ. Khi đó, nếu một ứng dụng gặp lỗi và gây ra màn hình
BSoD, nó sẽ không làm ảnh hưởng tới những ứng dụng đang chạy trên những
máy chủ khác. Vì lý do đó, mỗi khi triển khai thêm một ứng dụng mới, họ lại
sử dụng một máy chủ mới. Microsoft đã dần giải quyết vấn đề này nhưng
theo thói quen các quản trị viên vẫn làm như cũ. Tuy nhiên, nói như vậy

không có nghĩa là chỉ do lỗi của Microsoft. Nhiều nhà sản xuất phần mềm đều
yêu cầu khi cài đặt các ứng dụng của họ, để chúng có thể chạy tốt nhất và họ
có thể hỗ trợ, chúng cần phải được đặt đặt độc lập. Thêm vào đó, là khía cạnh
bảo mật vì nếu càng cài đặt ít ứng dụng thì nguy cơ bị tấn công càng giảm.
Tuy nhiên giải pháp trên cũng có mặt trái của nó, khi nhiều công ty đã nhận ra
rằng hầu hết các hệ thống của họ đang chạy với mức độ nhỏ hơn 10% năng
lực thực sự của hệ thống trong khi vẫn yêu cầu không gian lưu trữ, sức mạnh
và hệ thống làm mát như bất kỳ máy tính nào khác. Và vì thế, thay vì phải có
những máy chủ để chạy các ứng dụng riêng lẻ như vậy, họ có thể đầu tư một
máy chủ tốt hơn và hợp nhất những những ứng dụng riêng lẻ này vào các máy
ảo phân tách tương ứng. Mỗi khi cần triển khai hay nâng cấp ứng dụng nào đó
họ chỉ cần thực hiện trên máy ảo mà không phải nâng cấp máy chủ vật lý.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 20
Tính bảo mật của hệ thống cũng được nâng cao bởi vì họ có một môi trường
dễ điều khiển hơn, dễ sao lưu và khôi phục.
1.6.2 TẠO MÔI TRƢỜNG TỐT ĐỂ PHÁT TRIỂN VÀ NGHIÊN CỨU

Ảo hóa còn cung cấp một môi trường hoàn hảo để phát triển và nghiên cứu.
Theo Silberschatz và những người khác, việc thay đổi một hệ điều hành là
một nhiệm vụ khó khăn bởi vì chúng là một tổ hợp phức tạp của các chương
trình và khi chúng thực thi ở chế độ nhân, tác động của việc thay đổi một con
trỏ có thể gây phá hủy toàn bộ hệ thống tệp tin. Bởi vậy, thật là cần thiết để
kiểm tra tất cả những thay đổi đối với hệ điều hành. Với ảo hóa, lập trình viên
hệ thống có thể có máy ảo của riêng họ và việc triển khai hệ thống hay kiểm

tra có thể được thực hiện trên các máy ảo thay vì các máy tính thực. Điều đó
làm giảm thời gian và chi phí triển khai, gián tiếp tăng năng suất.
1.6.3 KIỂM THỬ CÁC ỨNG DỤNG

Một lợi ích khác của ảo hóa là khả năng có nhiều hệ điều hành cùng chạy,
thậm chí những hệ điều hành đó có thể đã lỗi thời và bình thường không thể
chạy trên các phần cứng mới nếu không có sự hỗ trợ của máy ảo. Điều đó cho
phép dễ dàng kiểm tra các ứng dụng. Một công ty có thể thử một số giải pháp
mà không cần phải có những máy chủ thực. Những phát triển viên có thể mô
phỏng môi trường sản phẩm một cách tốt nhất mà họ muốn để phát hiện và gỡ
lỗi của ứng dụng trước khi đưa ra sử dụng trên môi trường thực. Ngoài ra,
máy ảo cũng là môi trường lý tưởng để kiểm tra những bản vá hay bản nâng
cấp phần mềm trước khi họ phát hành chúng.
1.6.4 TIẾT KIỆM CHI PHÍ

Ngày 9 tháng 2 năm 2009, công ty Microsoft đã công bố số liệu nghiên cứu
về hiệu quả của công nghệ ảo hóa trong các doanh nghiệp. Nghiên cứu cho
thấy một số khách hàng đã tiết kiệm trung bình 470.000 đô la Mỹ mỗi năm
khi sử dụng phần mềm ảo hóa của Microsoft cho các dự án công nghệ thông

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 21
tin. Việc ứng dụng thành công ảo háo đã giúp các khách hàng của Microsoft
giảm bớt chi phí quản lý, chi phí đầu tư nhờ việc tiết kiệm năng lượng, cắt
giảm chi phí cho phần cứng, tự động quản lý hệ thống máy chủ và mạng, tự
động triển khai các ứng dụng trung tâm.

Chi phí cho một hệ thống công nghệ thông tin ngày càng tăng do sự tăng giá
của năng lượng, thêm vào đó là một khoản tiền không nhỏ bắt buộc phải đầu
tư cho cơ sở hạ tầng và hệ thống làm mát. Năm 2008, Giáo sư Jonathan
Koomey của trường đại học Stanford đã có bài viết “Nguồn năng lượng của
thế giới được sử dụng trong các trung tâm dữ liệu”. Theo ông thì nguồn năng
lượng cung cấp cho các trung tâm dữ liệu chiếm tới 1,5% lượng điện của Mỹ
trong năm 2005, và 80% trong số đó được dùng cho máy móc và hệ thống
làm mát. Còn theo một nghiên cứu độc lập của Gartner Inc cho thấy “việc ứng
dụng hiệu quả công nghệ ảo hóa có thể giúp tiết kiệm tới 82% nguồn năng
lượng cung cấp cho máy chủ và 85% diện tích sử dụng.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


Trang 22

CHƢƠNG 2. MỘT SỐ KHÁI NIỆM
2.1 MÔ HÌNH BẢO MẬT VÒNG.
Các bộ xử lý hiện đại cài đặt một kiến trúc bảo mật được gọi là “Vòng”. Bộ
xử lý điều khiển truy cập tới các vòng khác nhau. Số lượng vòng có thể khác
nhau đối với từng loại bộ xử lý, nhưng thông thường, phần cứng CPU cài đặt
các vòng dưới đây (các vành đai bảo vệ):
Vòng an ninh

Chức năng

Hypervisor


Đây là một mở rộng gần đây đối với các bộ xử lý
AMD, Intel mà cho phép một Trình theo dõi máy ảo
điều khiển các hệ điều hành kí sinh. Chế độ này có
đặc quyền cao hơn so với chệ độ nhân mà hệ điều
hành chủ đang chạy.

Vòng (-1)

Nhân
Vòng (0)

Một hệ điều hành chủ chạy trong chế độ “tự nhiên”
này. Chế độ nhân cho phép truy cập tới tất cả các
đoạn của bộ nhớ, cho phép và vô hiệu hóa các ngắt
và sự thực hiện các chỉ lệnh được ưu tiên.

Trình điều khiển thiết bị Trình điều khiển thiết bị cần nhiều đặc quyền hơn so
với mã lệnh người sử dụng bởi vì chúng cần phải
Vòng “1” và “2”
điều khiển bộ nhớ và các ngắt khác nhau.
Người sử dụng
Vòng “3”

Công nghệ ảo hóa máy chủ

Các ứng dụng của người dùng chạy trong chế độ
này. Nếu một ứng dụng gặp sự cố, nó sẽ không tác
động lên hệ điều hành. Hay nói một cách khác ứng
dụng đó không thể truy cập tới các tài nguyên nhân
một cách không kiểm soát được.


Đào Duy Phong


Trang 23

Ring 3
Ring 2
Ring 1

Ring 0

H nh 2.1: Các vành đai an ninh

Các trình điều khiển thiết bị nằm ở chế độ hạt nhân có đặc quyền hoặc chế độ
người dùng không đặc quyền.
2.2 ẢO HÓA CPU
Kiến trúc x86 là kiến trúc CPU được sử dụng nhiều nhất trong các trung tâm
dữ liệu doanh nghiệp ngày nay và ảo hóa có thể mang lợi những lợi ích cho
nó. Bộ vi xử lý 80286, được giới thiệu vào tháng 3/1982 là bộ vi xử lý họ x86
đầu tiên cung cấp 2 phương pháp chính để đánh địa chỉ bộ nhớ: chế độ thực
(real mode) và chế độ bảo vệ (protected mode). Sau đó, vào năm 1985, Intel
giới thiệu chipset 80386, với một chế độ mới được gọi là chế độ 8086 ảo
(VM86 - virtual 8086 mode). Chế độ VM86 cho phép các tiến trình chế độ
thực có thể chạy đồng thời trong khi mang đầy đủ những tiến bộ của cơ chế
bảo vệ 80386. Chế độ thực sớm trở nên lỗi thời bởi vì nó có một số bất lợi
chẳng hạn như nó bị giới hạn 1MB bộ nhớ và tại một thời điểm chỉ chạy được
một chương trình. Theo cùng cách đó, chế độ ảo đã bị khóa lại với 16bit và
trở nên lỗi thời với hệ điều hành 32-bit. Nói cách khác, chế độ bảo vệ là môi
trường 32-bit tự nhiên của bộ vi xử lý 80386 cung cấp nhiều tính năng để mà

hỗ trợ đa nhiệm, chẳng hạn như hỗ trợ phần cứng đối với bộ nhớ ảo và bộ vi
xử lý phân chia.

Công nghệ ảo hóa máy chủ

Đào Duy Phong


×