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

Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa

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 (3.36 MB, 105 trang )



ĐẠI HỌC QUỐC GIA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN







NGUYỄN MẠNH TUẤN







GIẢI PHÁP ĐẢM BẢO AN TOÀN DỮ LIỆU
TRÊN NỀN TẢNG ẢO HÓA






LUẬN VĂN THẠC SĨ










Hà Nội - 1014


ĐẠI HỌC QUỐC GIA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN







NGUYỄN MẠNH TUẤN






GIẢI PHÁP ĐẢM BẢO AN TOÀN DỮ LIỆU
TRÊN NỀN TẢNG ẢO HÓA




Ngành: Công nghệ thông tin

Chuyên ngành: Quản lý hệ thống thông tin
Mã số: Chuyên ngành đào tạo thí điểm



LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. LÊ QUANG MINH





Hà Nội - 2014


1


̀
I CA
̉
M O
̛
N
Trớc tiên, tôi xin đu

̛
ơ
̣
c g
̉
i lơ
̀
i ca
̉
m o
̛
n đến tất ca
̉
quý thầy cô đã gia
̉
ng da
̣
y
trong chu
̛
o
̛
ng trình Cao học Quản trị hệ thống thông tin - Viẹ
̂
n Công Nghệ
Thông Tin, ĐH Quốc Gia Hà Nội, nh
̃
ng ngu
̛
ơ

̀
i đã truyền đa
̣
t cho tôi nh
̃
ng kiến
th
́
c h
̃
u ích về Quản trị hệ thống thông tin làm co
̛

̉
cho tôi th
̣
c hiẹ
̂
n tốt luạ
̂
n
vn này.
Tôi xin chân thành ca
̉
m o
̛
n TS . Nguyễn Vn Đoàn đã tạ
̂
n tình hu
̛

ơ
́
ng dâ
̃
n cho
tôi trong thơ
̀
i gian th
̣
c hiẹ
̂
n luạ
̂
n va
̆
n. Mạ
̆
c dù trong quá trình th
̣
c hiẹ
̂
n luạ
̂
n va
̆
n
có giai đoa
̣
n không đu
̛

ơ
̣
c thuạ
̂
n lơ
̣
i nhu
̛
ng nh
̃
ng gì Thầy đã hu
̛
ơ
́
ng dâ
̃
n , ch bảo
đã cho tôi nhiều kinh nghiẹ
̂
m trong thơ
̀
i gian th
̣
c hiẹ
̂
n luận vn.
Tôi cu
̃
ng xin g
̉

i lơ
̀
i ca
̉
m o
̛
n đến tất ca
̉
các anh chị trong tập thể lớp CIO 03
Viện Công Nghệ Thông Tin – ĐH Quốc Gia Hà Nội, cùng toàn thể bạn bè và
đồng nghiệp đã hỗ trợ cho tốt rất nhiều để tôi và giúp tôi có động lực để tôi hoàn
thành luận vn này.
Sau cùng tôi xin g
̉
i lơ
̀
i biết o
̛
n sâu s́c đến gia đình đã luôn ta
̣
o điều kiẹ
̂
n tốt
nhất cho tôi trong suốt quá trình ho
̣
c cu
̃
ng nhu
̛
th

̣
c hiẹ
̂
n luạ
̂
n va
̆
n.
Do thơ
̀
i gian có ha
̣
n và kinh nghiẹ
̂
m nghiên c
́
u khoa ho
̣
c chu
̛
a nhiều nên luạ
̂
n
vn còn nhiều thiu sót , rất mong nhạ
̂
n đu
̛
ơ
̣
c ý kiến góp ý cu

̉
a Thầy/Cô và các
anh chi
̣
ho
̣
c viên.
Hà Nội, 01 tháng 12 nm 2014.
HỌC VIÊN


NGUYỄN MẠNH TUẤN


2


LỜI CAM ĐOAN

Tôi là : NGUYỄN MẠNH TUẤN.
Lớp : CIO03 – Viện Công Nghệ Thông Tin.
Giáo viên hớng dẫn khoa học : TS. Nguyễn Văn Đoàn.
Tôi xin cam đoan toàn bộ nội dung đợc trình bày trong bản luận vn này
là kt quả tìm hiểu và nghiên cứu của riêng tôi, trong quá trình nghiên cứu đề tài
“Giải pháp đảm bảo an toàn dữ liệu trên nền tảng ảo hóa” các kt quả và dữ
liệu đợc nêu ra là hoàn toàn trung thực và rõ ràng. Mọi thông tin trích dẫn đều
đợc tuân theo luật sở hữu trí tuệ, có liệt kê rõ ràng các tài liệu tham khảo.
Tôi xin chịu hoàn toàn trách nhiệm với những nội dung đợc vit trong
luận vn này.


Hà nội, ngày 1 tháng 12 nm 2014.

HỌC VIÊN




NGUYỄN MẠNH TUẤN





3

Mục Lục
Mở đầu 1
Chƣơng 1: tổng quan về ảo hóa và an toàn dữ liệu 4
1.1. Dữ liệu là gì? 4
1.1.1. Định nghĩa thông tin 4
1.1.2. Định nghĩa dữ liệu 5
1.2. Ảo Hóa là gì? 5
1.2.1. Kiến Trúc Ảo Hóa 5
1.2.2. Máy Ảo là gì? 14
1.2.3. Ƣu và Nhƣợc điểm của Ảo Hóa 24
1.3. An toàn dữ liệu 25
1.3.1. An toàn dữ liệu: 25
1.3.2. Các thuộc tính của an toàn dữ liệu: 26
1.4. Những yêu cầu của an toàn dữ liệu trên nền tảng ảo hóa 26
1.4.1. Phục hồi nhanh các máy ảo 27

1.4.2. Kiểm tra các máy ảo đƣợc sao lƣu 27
1.4.3. Phục hồi mịn 28
1.4.4. Băng thông yêu cầu và ổ cứng lƣu trữ dành cho sao lƣu
thấp 28
Chƣơng 2: Giải pháp an toàn dữ liệu trên nên ảo hóa 30
2. 1. Phƣơng thức sao lƣu và phục hồi dữ liệu 30
2. 1. 1. Phƣơng pháp sao lƣu và phục hồi dữ liệu truyền thống 30
2. 1. 2. Phƣơng pháp sao lƣu dữ liệu trong môi trƣờng ảo hóa 35
2. 1. 3. Phƣơng pháp phục hồi dữ liệu trong môi trƣờng ảo hóa . 46
2. 2. Giải Pháp VMware vSphere Data Protection 50
2. 2. 1. Sao lƣu và phục hồi mức hình ảnh 53
2. 2. 2. sao lƣu và phục hồi VMDK đơn 54
2. 2. 3. Sao lƣu và phục hồi mức khách 55
2. 2. 4. Nhân rộng 55
2. 2. 5. phục hồi mức tệp tin 55
Chƣơng 3: Xây Dựng hệ thống ảo hóa an toàn với VMware vSphere
Data Protection 56
3. 1. Mô hình triển khai 56



4

3. 2. Yêu cầu hệ thống 59
3. 2. 1. Yêu cầu năng lực VDP 59
3. 2. 2. Yêu cầu phần mềm 59
3. 3. 3. Yêu cầu hệ thống 60
3. 3. Cài đặt và cấu hình 61
3. 4. Kết quả đạt đƣợc 61
Chƣơng 4: Đề xuất giải pháp tăng cƣờng an toàn dữ liệu trên nền tảng

ảo hóa. 62
4. 1. Hạ tầng khóa công khai, Chữ kí số và RSA SecureID 62
4. 1. 1. Mã Hoá Khoá Công Khai 62
4. 1. 2. Hạ Tầng Khóa công khai 66
4. 1. 3. Chữ kí số 69
4. 1. 4. RSA SecureID 69
4. 2. Đăng nhập và sử dụng các máy ảo an toàn 70
4.2.1. Thêm mới một ngƣời dùng 70
4.2.2. Quá trình đăng nhập 70
4.2.2. Yêu cầu chứng thƣ số 72
4.2.3. Mã hóa để an toàn trong thời gian sử dụng máy ảo 76
4. 3. Quá trình sao lƣu 77
4.3.1. Sao lƣu mức hình ảnh 77
4.3.2. Sao lƣu mức VMDK đơn 79
4.3.3. Sao lƣu mức khách 80
4. 4. Quá trình phục hồi 80
4.4.1. Phục hồi sao lƣu mức hình ảnh 80
4.4.2. Phục hồi sao lƣu mức VMDK đơn 81
4.4.3. Phục hồi sao lƣu mức khách 82
4. 5. Phục hồi sau thảm họa 83
Chƣơng 5: Kết Luận 84
5. 1. Luận Văn đã giải quyết những vấn đề 84
5. 2. Hƣờng nghiên cứu tiếp theo 85
Tài Liệu Tham Khảo: 86
Phụ Lục 1 88
Cài đặt và cấu hình VDP 88



5



DANH MỤC HÌNH VẼ

Hình 1.1: kiến trúc ảo hóa và thực tế 6
hình 1.2. sự khác nhau giữ Hosted và Bare-metal Hypervisor 8
hình 1.2. sự khác nhau giữ Hosted và Bare-metal Hypervisor 8
Hình 1.3. kiến trúc VMM 10
Hình 1.4. các vòng ảo hóa 11
Hình 1.5. mức trong vòng ảo hóa 12
Hình 1.6. quản lý bộ nhớ trong ảo hóa 13
Hình 1.7. Đóng gói máy ảo 15
Hình 1.8. phần cứng máy ảo 16
Hình 1.9. kết nối máy chủ với máy ảo 17
Hình 1.10. tệp tin VM-fat.vmdl 19
Hình 1.10. tệp tin VM-delta.vmdk 20
Hình 1.11. tệp tin VM-rdm.vmdk 21
Hình 1.12. tệp tin VM-ctk.vmdk 22
Hình 1.13. thick disk và thin disk 24
Hình 2.1. Sao lưu trên máy vật lý 31
Hình 2.2. Sao lưu trên máy chủ ảo hóa 37
Hình 2.3. snapshot 39
Hình 2.4. xóa nhiều snapshot cũ 39
Hình 2.5. xóa nhiều snapshot mới 40
Hình 2.6. mô hình có VCB Proxy 43



6


Hình 2.7. mô hình sao lưu dữ liệu với máy chủ thực 44
Hình 2.8. mô hình sao lưu dữ liệu với máy chủ ảo 44
Hình 2.9. các mức phục hồi dữ liệu máy ảo 48
Hình 3.1. mô hình triển khai căn bản sao lưu dữ liệu với VDP 57
Hình 3.2. mô hình triển khai sao lưu dữ liệu với VDP nâng cao 58
Hình 3.3. mô hình đồng bộ dữ liệu của VDP Advanced 59
Hình 3.4. mô hình triển khai sao lưu dữ liệu với VDPvà EMC Error!
Bookmark not defined.
Hình 4.1. Quá trình truyền dữ liệu với khóa công khai 63
Hình 4.2. Quá trình truyền dữ liệu với chữ kí số 64
Hình 4.3. Quá trình kí và mã hóa một thông điệp 64
Hình 4.4. Quá trình giải mã và xác thực một thông điệp 65
Hình 4.5. Quá trình giải mã và xác thực một thông điệpvới chứng thư số
67
Hình 4.6. from đăng nhập phần mềm 71
Hình 4.7. from đặt mật khẩu của phần mềm 71
Hình 4.8. RSA SecurID cứng 71
Hình 4.9. giao diện phần mềm sau đăng nhập 74




7

DANH MỤC BẢNG BIỂU

Bảng 1. sự khác nhau giữ Hosted và Bare-metal Hypervisor 7
Bảng 2. So sánh VDP và VDP advanced 53
Bảng 3. Yêu cầu tối thiểu của hệ thống VDP 60
Bảng 4. Yêu cầu tối thiểu của hệ thống VDP Advanced 61





8

DANH MỤC TỪ VIẾT TẮT
STT
Ký hiệu, chữ
tiếng anh
Định nghĩa
1
VMM
Virtual Machine Monitor
2
CPU
Central processing unit
3
RAM
Random-Access Memory
4
VT-x
Vitual Technology-x – Intel
5
AMD-V
AMD – Vitual
6
RVI
Rapid Virtualization Indexing
7

EPT
Extended Page Tables
8
RDM
Raw Device Mapping
9
CBT
Change Block Tracking
10
LUN
Logical Unit Number
11
SAN
Storage Area Network
12
SCSI
Small Computer System Interface
13
NFS
Network File System
14
API
Application Programing Interface
15
VCB
VMware Consolidated Backup
16
VADP
vStorage API For Data Protection
17

VDDK
Vitual Disk Development Kit
18
VMDK
Vitual Machine Disk
19
FLR
File Level Recovery
20
DAS
Direct Attach Storage
21
DRS
VMware Dynamic Resources Schuduler
22
HA
High Avalability
23
CA
Certificate Authorization
24
PKI
Public Key Infacetractor



9





1

Mở Đầu:
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin, các máy tính
ra đời với hiệu nng vô cùng lớn nhng một các tổ chức trên th giới ch sử
dụng từ 10% đn 30% hiệu nng của các máy chủ mà họ sở hữu. Điều này
đặt ra cho các nhà khoa học một bài toán là làm th nào để sử dụng máy chủ
ht công suất của chúng, giảm thiểu chi phí về giá thành thit bị, chi phí vận
hành, chi phí bảo trì hệ thống. Chính vì vậy công nghệ ảo hóa ra đời. Ảo hóa
cho phép chúng ta chạy nhiều máy chủ trên một nền tảng phần cứng duy
nhất, điều này làm cho chi phí về phần cứng, chi phí về điện, chi phí bảo trì
hệ thống, không gian lắp đặt máy chủ tại các datacenter, … đồng thời cũng
giúp chúng ta sử dụng ht nng lực của máy chủ vật lý.
Hiện nay, có rất nhiều nhà cung cấp sản phẩm máy chủ và phần mềm đầu t
vào việc nghiên cứu và phát triển công nghệ ảo hóa và đã có rất nhiều sản
phẩm cho phép chúng ta ảo hóa hệ thống mày chủ của mình nh Red Hat,
Oracle, IBM, Microsoft, VMware với rất nhiều sản phẩm đang đợc ngày
một hoàn thiện và chim lĩnh thị trờng trên toàn th giới. Trong đó, với hơn
80% thị phần ảo hóa trên toàn th giới, VMware đang là hãng đi đầu về triển
khai công nghệ ảo hóa.
Một trong những nỗi lo lắng của ngời dùng khi sử dụng công nghệ ảo hóa
là vấn đề an toàn dữ liệu. Hầu ht ngời sử dụng lo lắng về việc dữ liệu của
mình khi dùng chung có thể bị đánh cắp dễ dàng hơn, khả nng khôi phục
khi có sự cố hay thảm họa thiên nhiên, khả nng đáp ứng của hệ thống, và
đặc biệt là vì không thể nhìn thấy nơi mà dữ liệu của chúng ta đợc lu trữ
và cũng không đợc trực tip sao lu và phục hồi nên ngời sử dụng vẫn lo
ngại không muốn chuyển sang dùng ảo hóa.
Trên th giới đã có nhiều hãng sản xuất phần cứng cũng nh phần mềm đầu
t nghiên cứu để cải thiện khả nng đảm bảo an toàn dữ liệu của hệ thống ảo

hóa nh Veeam, Vmware, Microsoft, Trendmicro, Norton, … nhng hầu ht
mới ch đảm bảo đợc một trong những khả nng phục hồi khi có thảm họa


2

xảy ra, khả nng sao lu và phục hồi khi cần thit, khả nng đáp ứng của hệ
thống ảo hóa chứ cha có một giải pháp tổng thể cho vấn đề an ninh dữ liệu
trên nền tảng ảo hóa. Điều này khin ngời dùng trên th giới e ngại khi ảo
hóa máy chủ của doanh nghiệp, máy tính cá nhân và lu trữ những thông tin
nhạy cảm trên mạng.
Nhận thức đợc sự cần thit và khả nng phát triển mạnh mẽ của công nghệ
ảo hóa và yêu cầu cấp thit của việc phát triển công nghệ nhằm đảm bảo sự
an toàn của dữ liệu, Luận vn “Giải Pháp Đảm Bảo An Toàn Dữ Liệu Trên
Nền Tảng Ảo Hóa” của tôi đã phần nào giới thiệu đợc cái nhìn tổng quan
về công nghệ ảo hóa, tổng quan về an toàn dữ liệu trên môi trờng ảo hóa, đi
sâu nghiên cứu về cách thức an toàn dữ liệu trong môi trờng ảo hóa của
VMware, đồng thời đa ra giải pháp cơ bản cho việc an toàn dữ liệu trong
môi trờng ảo hóa. Bố cục của luận vn gồm có 5 chơng:
Chơng 1: Tổng quan về ảo hóa và an toàn dữ liệu: trong chơng này tôi sẽ
trình bày định nghĩa về dữ liệu và an toàn dữ liệu, sơ lợc về công nghệ ảo
hóa cũng nh các phơng thức an toàn dữ liệu trên nền tảng ảo hóa trên nền
tảng VMware. Đồng thời, trong chơng này tôi cũng sẽ đa ra những yêu
cầu đối với an toàn dữ liệu trên nền tảng ảo hóa.
Chơng 2: Giải pháp an toàn dữ liệu trên nền tảng ảo hóa: Trong chơng này
tôi sẽ đi sâu nghiên cứu về các phơng pháp sao lu, phục hồi dữ liệu trên
nền tảng ảo hóa, các phơng pháp để phục hồi sau thảm họa. Đồng thời cũng
đi sâu tùm hiểu về Vmare vPhere Data Protection để an toàn cho hệ thống ảo
hóa VMware.
Chơng 3: Xây Dựng hệ thống ảo hóa an toàn với VMware vSphere Data

Protection: Trong chơng này, tôi sẽ đi xây dựng một hệ thống máy chủ
chạy trên nền ảo hóa VMware vSphere và triển khai một số phơng thức an
toàn dữ liệu VMware vSphere Data Protection.


3

Chơng 4: Đề xuất giải pháp tng cờng an toàn dữ liệu trên nền tảng ảo
hóa: trong chơng này tôi sẽ đa ra những lý thuyt về mã hóa dữ liệu quan
trọng, sau đó là giải pháp của tôi để an toàn dữ liệu trên nền tảng ảo hóa.
Chơng 5: Kt luận: trong chơng này tôi sẽ đi tổng kt lại những gì đã làm
đợc và hớng nghiên cứu tip theo của tôi trong tơng lai.








4


Chƣơng 1: tổng quan về ảo hóa và an toàn dữ liệu
Với sự phát triển nhanh chóng của ngành công nghệ thông tin, các công
nghệ cũ dần dần đã thể hiện nhiều mặt hạn ch và không phù hợp với nhu
cầu thực tiễn nữa, đặc biệt là đối với nhu cầu ngày càng cao và phúc tạp của
các doanh nghiệp nh quản lý tập trung cơ sở dữ liệu, giảm thiểu chi phí về
cơ sở hạ tầng công nghệ, hiệu nng sử dụng, Do đó sự ra đời của công
nghệ ảo hóa là tất yu và là giải pháp.

Công nghệ ảo hóa đang làm thay đổi bộ mặt của th giới điện toán bằng các
công cụ có khả nng đợc triển khai và quản lý đơn giản, hiệu quả. Bằng
việc tối u sử dụng các nguồn tài nguyên hệ thống, và chi phí triển khai ban
đầu thấp, ảo hóa đem lại cho các doanh nghiệp nhiều khả nng và nguồn lợi
to lớn.
Sức mạnh của công nghệ ảo hóa là tận dụng hiệu suất làm việc của các máy
chủ bằng cách cho phép cài đặt nhiều máy chủ ứng dụng trên một máy chủ
vật lý. Và việc quản lý cũng trở nên dễ dàng và tập trung hơn trên một máy
chủ duy nhất
1.1. Dữ liệu là gì?
1.1.1. Định nghĩa thông tin
Thông tin là một khái niệm cơ bản của khoa học cũng à khái niệm trung tâm
của xã hội trong thời đại của chúng ta. Mọi quan hệ, mọi hoạt động của con
ngời đều da trên một hình thức giao lu thông tin nào đó. Mọi tri thức đều
bắt nguồn bằng một thông tin về những điều đã diễn ra, về những điều mà
ngời ta đã bit, đã nói, đã làm. Vậy thông tin là tất cả những sự việc, sự
kiện, ý tởng, phán đoán làm tng thêm hiểu bit của con ngời. Thông tin
hình thành trong quá trình giao tip giữa ngời với ngời, qa các phơng
tiện thông tin đại chúng, từ các ngân hang dữ liệu, hoặc từ tất cả các hiện
tợng quan sát đợc trong môi trờng xung quanh.


5

1.1.2. Định nghĩa dữ liệu
Con ngời tạo ra rất nhiều cách thức để lu trữ thông tin nhằm truyền lại cho
th hệ sau. Những thông tin đợc lu trữ này đợc gọi là dữ liệu.
Cùng với sự bùng nổ thông tin ngày nay, con ngời càng nghĩ ra nhiều công
cụ để quản trị và lu trữ dữ liệu một cách an toàn để đảm bảo những thông
tin đợc lu trữ sẵn sang truy cập với những ngời đợc phép, không bị sửa

đổi một cách trái phép, không bị truy cập trái phép, ….
1.2. Ảo Hóa là gì?
Ảo hóa không phải là một mốt nhất thời, rất nhiều doanh nghiệp trên toàn
th giới chuyển sang sử dụng ảo hóa hoặc có ý định chuyển sang sử dụng ảo
hóa trong tơng lai gần là vì những lợi ích tuyệt vời mà nó mang lại. Công
nghệ ảo hóa trởng thành với một tốc độ nhanh chóng, VMware là hãng dẫn
đầu về công nghệ này trong gần nh tất cả các lĩnh vực với các tính nng
tiên tin và đợc phổ bin rộng rãi toàn th giới. Trong phần này, tôi sẽ đi
vào một số khái niệm quan trọng của ảo hóa, giải thích các loại khác nhau
của ảo hóa cũng nh đi vào chi tit các thành phần của một máy ảo
VMware. Tôi sẽ giới thiệu về các loại máy ảo khác nhau đợc đặt trên một
máy chủ vật lý và tại sao để quản lý các máy ảo cần có một t duy hoàn toàn
khác cũng nh việc sử dụng các công cụ đặc biệt để làm việc với môi trờng
ảo hóa.
1.2.1. Kin Trúc Ảo Hóa
Ảo hóa là một thuật ngữ chung để gọi việc mô phỏng một thực thể vật lý
bằng cách sử dụng một phần mềm. Trong một trung tâm dữ liệu có rất nhiều
thành phần có thể đợc ảo hóa bao gồm: máy chủ, mạng, và các thành phần
lu trữ.
a. Hypervisor:
Các hypervisor là bộ não của ảo hóa. Một Hypervisor là một chơng trình
cho phép nhiều hệ điều hành có thể chia sẻ chung một tài nguyên phần cứng
duy nhất. Mỗi hệ điều hành khách (máy ảo) chạy trên máy chủ đều sẽ yêu
cầu quyền truy cập duy nhất đn các tài nguyên của máy chủ. Tuy nhiên, các


6

Hypervisor kiểm soát tài nguyên của máy chủ vật lý và ch giao cho máy
khách những phần tài nguyên cần thit, đồng thời các hypervsor đảm bảo

rằng các hệ điều hành khách độc lập với nhau. Bằng cách này, các hệ điều
hành khách không thể nhận bit rằng nó hoạt động trên cùng một máy chủ
với rất nhiều máy ảo khác.












Hình 1.1: kiến trúc ảo hóa và thực tế
Có hai loại mô hình ảo hóa, mô hình ảo hóa loại 1 (Bare-metal hypervisor)
là mô hình mà các Hypervisor giao tip trực tip với phần cứng. Mô hình ảo
hóa loại 2 (Hosted Hypervisor) là mô hình mà các Hypervisor, nh một phần
mềm thông thờng, sẽ giao tip với hệ điều hành cài trên máy để yêu cầu sử
dụng các tài nguyên phần cứng. các đặc tính của hai loại đợc liệt kê dới
bảng sau:


7


Hosted hypervisor
Bare-metal hypervisor
Cần có một hệ điều hành đợc

cải đặt trên máy vật lý nh
windows, Linux, Mac… đợc
cài đặt nh một ứng dụng
Đợc cài đặt trực tip trên máy
chủ
Các máy ảo có thể sử dụng tất cả
các tài nguyên mà hệ điều hành
trên máy vật lý có thể nhìn thấy
Những tài nguyên mà máy ảo
có thể sử dụng đợc sẽ bị hạn
ch bởi trình quản trị tài nguyên
nâng cao
Khả nng tơng thích phần cứng
tối đa do hệ điều hành cung cấp
các trình điều khiển thit bị phần
cứng
Chạy trên một phạm vi hẹp các
phần cứng do các trình điều
khiển phần cứng cha thể đợc
hỗ trợ bởi các hệ điều hành
hypervisor
Hệ điều hành nằm giữa máy chủ
vật lý và các máy ảo sẽ lấy đi
một phần tài nguyên của máy
chủ vật lý làm cho hiệu nng
hoạt động của hệ thống ch đạt từ
70% đn 90%
Bởi vì chúng ta ch cần mất một
vài bit dành cho lớp ảo hóa của
hypervisor nên hiệu suất hoạt

động của hệ thống đạt từ 83%
đn 98%
Giới hạn số tính nng đợc cung
cấp
Rất nhiều tính nng nâng cao
dành cho quản lý tài nguyên,
tính sẵn sàng cao và bảo mật
đợc các hãng cung cấp.
Bảng 1. sự khác nhau giữ Hosted và Bare-metal Hypervisor
Bởi vì ch mất một vài bit dành cho lớp ảo hóa nên bare-metal hypervisor sẽ
hõ trợ đợc nhiều máy ảo hơn so với hosted hypervisor trên mỗi CPU vật lý.


8












hình 1.2. sự khác nhau giữ Hosted và Bare-metal Hypervisor
hình 1.2. sự khác nhau giữ Hosted và Bare-metal Hypervisor

Các VMKernel đợc coi nh một microkernel vì nó ch chứa các mã phần

mềm tối thiểu để cung cấp một cơ ch hỗ trợ hệ điều hành. Nó chứa 3 giao
diện cơ bản: một cho phần cứng, một cho hệ điều hành khách (máy ảo) và
một dành cho các giao diện quản trị hệ điều hành. Các VMkernel xử lý trực
tip tất cả các truy cập đn tài nguyên CPU và bộ nhớ, các truy cập tài
nguyên phần cứng khác đợc thực hiện qua các module làm việc cụ thể của
VMkernel. Những module sẽ định nghĩa những phần cứng mà có thể đợc
sử dụng và là cơ sở để các hệ điều hành VMware hỗ trợ cho máy ảo. giống
nh trong windows, nu chúng ta có một thit bị mạng, ổ cứng, … đợc cắm
vào máy mà không cài đặt các trình điều khiển đi kèm thì chúng ta không
thể xử dụng tài nguyên phần cứng đó.
Trong VI3 các VMkernel đợc biên dịch nh một ứng dụng 32-bit, do đó nó
hỗ trợ cả máy chủ phần cứng 32 bit và máy chủ vật lý 64 bit. Mặc dù có một
32 bit VMkernel nhng chúng ta vẫn có thể chạy các máy ảo 64 bit vì các
máy ảo không chạy trực tip trên VMkernel, thay vào đó, các máy ảo chạy
trên một thành phần gọi là Virtual Machine Monitor(VMM). VMM là là một


9

tin trình chạy trong VMkernel có trách nhiệm định nghĩa các phần cứng ảo
và phân phối các phần cứng ảo cho máy ảo. VMM tách riêng máy ảo khỏi
VMkernel và chịu trách nhiệm quản lý các máy ảo và chia sẻ các tài nguyên
máy chủ nh CPU, RAM, HDD, thit bị vào ra… VMM gửi tất cả các yêu
cầu vào ra, yêu cầu lu trữ đn VMkernel và gửi các yêu cầu phần cứng
không quan trọng đn một tin trình đặc biệt VMX, tin trình quản lý các tài
nguyên nh CD-ROM, các cổng USB… mỗi máy ảo cần có một VMM dành
riêng nên một máy chủ có nhiều máy ảo chạy trên nó sẽ có nhiều VMM
dành riêng cho từng máy ảo.

Các VMM chứa tất cả các thành phần logic để chạy với phần cứng ảo 32 bit

hoặc 64 bit, đó là lý do tại sao chúng ta có thể chạy các máy ảo 64 bit trên
nên VMkernel 32 bit. Một hạn ch khác của các ứng dụng 32 bit là ch có
thể sử dụng bộ nhớ trong tối đa là 4GB. Để khắc phục điều này, các
VMkernel sẽ không nhìn vào tổng thể dung lợng của bộ nhớ trong, thay
vào đó nó sẽ lấy các khối 4GB mỗi khi nó cần. các máy ảo cũng một bản đồ
của riêng mình đn bộ nhớ trong trên máy chủ để các máy ảo có thể tự xử
dụng bộ nhớ trong đợc cấp của mình và VMkernel không cần thit phải
quản lý phần bộ nhớ đó nữa. trong vSphere, VMware đã thay đổi VMkernel
và tạo ra nó nh một ứng dụng 64 bit.


10


Hình 1.3. kiến trúc VMM
Các VMM mô phỏng các phần cứng mà hệ điều hành khách có thể nhìn thấy
và cung cấp một loại phần cứng mô phỏng cho mỗi máy ảo. VMM cung cấp
cung cấp các bản đồ từ các phần cứng mô phỏng đợc cung cấp cho máy ảo
đn các phần cứng vật lý trên máy chủ. Điều này đặt ra việc cần thit phải
cung cấp các trình điều khiển đợc cài đặt trong hệ điều hành khách để kt
nối với trình điều khiển của phần cứng vật lý trong VMkernel. VMware tool
cung cấp các trình điều khiển đặc biệt khác với các trình điều khiển mà hệ
điều hành khách có thể nhận bit khi nó đợc cài đặt trên máy ảo. Các trình
điều khiển có thể tận dụng lợi th của các thit bị trên máy chủ để cung cấp
lu lợng vào ra tốt hơn, giảm chi phí CPU. Các VMware Tool cũng cung
cấp một kt nối giữa hệ điều hành khách và VMkernel dành cho các dịch vụ
nh quản lý điện nng, đồng bộ thời gian.
b. Các vòng trong ảo hóa
Các CPU x86 sử dụng một khái niệm gọi là vòng (ring) mà cung cấp một
loạt các đặc quyền trong đó mã bên trong hệ điều hành có thể thực thi. Các

vòng đợc thit k để bảo vệ hệ điều hành từ các lỗi có thể xảy ra, và cung
cấp tính nng bảo mật cho tất cả các mã độc mà có thể đợc chạy từ các hệ


11

điều hành khách. Các vòng cung cấp khả nawg bảo vệ các nguồn tài nguyên
nh bộ nhớ, thit bị vào ra và các máy ảo có đặc quyền trong hệ thống. Việc
thực thi các vòng bảo vệ đợc xử lý bằng CPU vật lý và có thể hoạt động ở
các mức khác nhau. Các vòng đặc quyền có thể giao động từ mức 0, mức
đặc quyền cao nhất có thể tơng tác trực tip với phần cứng vật lý, đn mức
3, mức ít đặc quyền nhất. Hệ điều hành thờng đợc chạy trong vòng 0 và
có thể bit đợc không gian hệ thống, ch độ kernel hoặc ch độ giám sát.
Trình điều khiển thit bị thờng đợc chạy trong vòng 1 và vòng 2, các ứng
dụng thông thờng khác thờng đợc chạy trong vòng 3.

Hình 1.4. các vòng ảo hóa
Truy cập giữa các vòng đợc kiểm soát bởi một cổng đặc biệt mà cho phép
các ứng dụng chạy ở vòng 3 có thể truy cập đn các thit bị ngoại vi bằng
cách gọi một tin trình đặc biệt trong nhân hệ điều hành chạy ở vòng 0. Theo
cách này, hệ điều hành có thể kiểm soát chính xác những gì các ứng dụng
chạy trên vòng 3 có thể làm và truy cập. Với công nghệ ảo hóa mặc dù mô
hình này đã thay đổi do các VMM phải đợc chèn vào giữa các hệ điều hành
chạy trong vòng 0 và phần cứng vậy lý. Điều này đợc xử lý bằng một kĩ
thuật dịch nhị phân, VMM sẽ đợc đặt vào vòng 0 và chuyển hệ điều hành
lên vòng 1. Tuy nhiên các hệ điều hành đợc thit k để chạy trên vòng 0
chứ không thể chạy trên vòng 1, để vợt qua trở ngại này, các VMM đánh
lừa hệ điều hành bằng cách để hệ điều hành hoạt động với đặc quyền của
vòng 0 bên trong máy ảo thay vì trên phần cứng vật lý. Hoạt động này khin
các máy ảo đợc gói gọn trong phần cứng ảo đợc cung cấp cho nó.



12

Hoạt động dịch nhị phân mặc dù có sử dụng thêm CPU và RAM nhng
không làm tang thêm hoạt động so với một hệ điều hành khách chạy trên
máy vật lý. Intel và AMD ghi nhận điều này và thit k thêm tính nng mới
cho CPU của họ có thể loại bỏ quá trình dịch nhị phân. Họ đa ra một mức
độ đặc quyền mới dới vòng 0 nơi các VMM có thể hoạt động và hệ điều
hành sẽ hoạt động ở vòng 0 để không cần thit phải dịch nhị phân nữa. vòng
mới này đợc gọi là vòng -1 và các thit bị có vòng -1 đợc gọi là phần
cứng hỗ trợ ảo hóa. Công nghệ của intel đợc gọi là VT-x và công nghệ của
AMD đợc gọi là AMD-V. Chúng đợc tích hợp sẵn trong hầu ht các máy
chủ hiện đại đợc bán ra.

Hình 1.5. mức trong vòng ảo hóa
Bên cạnh quản lý việc truy cập CPU, các VMM cũng phải quản lý truy cập
bộ nhớ vật lý mà thờng đợc thực hiện bởi các đơn vị quản lý bộ nhớ
MMU của phần cứng vật lý. Đối với việc này, VMM sử dụng một kĩ thuật
phần mềm gọi là Shadow Page tables để làm liên kt tuyn tính cho phần
cứng, ảo hóa và địa ch bộ nhớ máy. Cả intel và AMD đều phát triển công
nghệ của mình giúp các VMM thực hiện bản dịch bộ nhớ. AMD xây dựng
công nghệ Rapid Virtualization Indexing (RVI) còn Intel phát triển công
nghệ Extended Page Tables (EPT), cả hai công nghệ này đều cho hiệu suất
hoạt động tốt hơn so với việc sử dụng Shadow Page Tables.


13



Hình 1.6. quản lý bộ nhớ trong ảo hóa
Với tất cả các công nghệ và kĩ thuật sẵn có để giúp hệ điều hành khách, các
VMM có khả nng lựa chọn sử dụng những thành phần tốt nhất cho máy ảo.
Điều này đợc gọi là ch độ Monitor và đợc xác định khi một máy ảo lần
đầu tiên đợc khởi động, yu tố quyt định để sử dụng một ch độ là dựa
trên tính nng của CPU và phiên bản của hệ điều hành khách và kiểu hệ điều
hành 32 bit hay 64 bit. Các ch độ sẵn có nh sau:
- Dịch nhị phân và sử dụng Shadow Page Table (BT-swMMU)
- VT-x hoặc AMD-v và sử dụng Shadow Page Table (HV-swMMU)
- VT-x và sử dụng EPT hoặc AMD-V và sử dụng RVI (HV-hwMMU)
Đối với hầu ht các máy ảo 32 bit thì công nghệ BT-swMMU thờng đợc
chọn và đối với hầu ht các máy ảo 64 bit thì công nghệ HV-hwMMU
thờng đợc chọn. Các công nghệ này có thể ghi đè lên các MMU đợc
chọn và buộc máy ảo phải chạy trên một ch độ cụ thể nhng điều này
không đợc khuyn cáo vì các MMU thông thờng là sự lựa chọn tốt nhất
cho các máy ảo có hiệu xuất tốt nhất.
c. Lập lịch cho CPU
Lập lịch cho CPU đợc đa vào bên trong VMkernel là một công việc vô
cùng khó khan. Lập lịch CPU có nhiệm vụ tổ chức và xử lý tất cả các yêu
cầu về thời gian CPU từ các máy ảo đang chạy trên máy chủ. Đây là một
công việc vô cùng khó khn, VMkernel bị giới hạn số CPU vật lý nhng
luôn phải xử lý các yêu cầu CPU ảo lớn hơn khoảng từ 4 đn 8 lần.
Với tất cả những yêu cầu thời gian CPU đợc đa ra, lập lịch cần đa ra
những quyt định thông minh để sắp xp và xử lý tất cả các yêu cầu. lập lịch


14

không đơn giản ch là sắp xp các yêu cầu thành một hàng đợi và ngời đn
trớc sẽ đợc phục vụ trớc. Lập lịch cần phải sắp xp các yêu cầu một cách

công bằng cho tất cả các máy ảo để các máy ảo không cần phải chờ đợi quá
lâu và phải làm cho các máy ảo nghĩ rằng nó hoàn toàn sở hữu CPU. Để làm
đợc điều này, lập lịch CPU sử dụng một thuật toán dựa trên thit lập chia sẻ
mà sử dụng các yu tố để tính toán bao gồm thit lập chia sẻ, thời gian đa
ra yêu cầu và giới hạn của máy ảo. u tiên thời gian CPU đợc tính toán
bằng cách sử dụng quyền đợc thit lập bởi ngời quản trị và cách tiêu
thục)sử dụng) tài nguyên CPU khi đợc cấp. T lệ các nguồn tài nguyên
CPU tiêu thụ đợc sử dụng để xác định các u tiên để cung cấp cho máy ảo.
Điều này cho phép công bằng và cân bằng lịch trình CPU và cũng cho phép
các thit lập trên máy ảo xác định độ u tiên của chúng. Ngoài thời gian lập
lịch CPU cũng tối u hóa vị trí của các vCPUs trên các soket khác nhau để
tối đa hóa việc sử dụng cache, và giảm thiểu sự di chuyển các vCPU để tối
u hóa việc sử dụng cache.
1.2.2. Máy Ảo là gì?
Chúng ta nghe về máy ảo ở bất cứ đâu, làm việc với máy ảo hàng ngày, vậy đã
bao giờ bạn tự hỏi chính xác máy ảo là gì? Nó bao gồm những thành phần nào?
Trong khi máy ảo tồn lại trong RAM của máy chủ vật lý, không có một sự hiện
diện vật chất nào. Trong phần này tôi sẽ đi sâu tìm hiểu về các thành phần để tạo
nên một máy ảo.
a. Đóng gói
Một máy ảo đợc đóng gói vào một tệp tin đĩa cứng ảo duy nhất, điều này làm
cho nó có tính cơ động cao. Nu chúng ta phải di chuyển một máy chủ vật lý
sang một máy chủ vật lý khác, công việc chúng ta cần làm vô cùng lớn, chúng ta
cần phải sao chép tất cả các tệp tin của mình và mang sang máy chủ mới. Một hệ
điều hành khách đang chạy trên máy chủ vật lý có tất cả các tệp tin đợc đóng
gói vào một tệp tin đĩa cứng ảo duy nhất. Một máy ảo có thể có nhiều ổ đĩa ảo
nhng các ổ đĩa sẽ đợc đóng gói thành các tệp tin. Lợi ích của việc đóng gói
này là chúng ta có thể dễ dàng sao chép một máy ảo tới một thit bị li trữ khác

×