ĐẠ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
LƠ
̀
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
̛
sơ
̉
cho tôi th
̣
c hiẹ
̂
n tốt luạ
̂
n
vn này.
Tôi xin chân thành ca
̉
m o
̛
n TS . Nguyễn Vn Đ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 vn.
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 vn này.
Sau cùng tôi xin g
̉
i lơ
̀
i biết o
̛
n sâu ś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
vn còn nhiều thiu 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 nm 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 vn này
là kt 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 kt 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 vit trong
luận vn này.
Hà nội, ngày 1 tháng 12 nm 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 nng vô cùng lớn nhng một các tổ chức trên th giới ch sử
dụng từ 10% đn 30% hiệu nng 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ủ
ht công suất của chúng, giảm thiểu chi phí về giá thành thit 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 ht nng 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à chim 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 ht 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ả nng khôi phục
khi có sự cố hay thảm họa thiên nhiên, khả nng đá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 lu trữ
và cũng không đợc trực tip sao lu 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ả nng đảm bảo an toàn dữ liệu của hệ thống ảo
hóa nh Veeam, Vmware, Microsoft, Trendmicro, Norton, … nhng hầu ht
mới ch đảm bảo đợc một trong những khả nng phục hồi khi có thảm họa
2
xảy ra, khả nng sao lu và phục hồi khi cần thit, khả nng đáp ứng của hệ
thống ảo hóa chứ cha 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 khin 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à lu trữ những thông tin
nhạy cảm trên mạng.
Nhận thức đợc sự cần thit và khả nng phát triển mạnh mẽ của công nghệ
ảo hóa và yêu cầu cấp thit 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 vn “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 vn 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 lu, 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 tng 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ý thuyt 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: Kt luận: trong chơng này tôi sẽ đi tổng kt lại những gì đã làm
đợc và hớng nghiên cứu tip 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 nng sử dụng, Do đó sự ra đời của công
nghệ ảo hóa là tất yu 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ả nng đợ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ả nng 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 da trên một hình thức giao lu 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 đã bit, đã 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 tng thêm hiểu bit của con ngời. Thông tin
hình thành trong quá trình giao tip 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 để lu trữ thông tin nhằm truyền lại cho
th hệ sau. Những thông tin đợc lu 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à lu trữ dữ liệu một cách an toàn để đảm bảo những thông
tin đợc lu 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 nng
tiên tin và đợc phổ bin 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 tit 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. Kin 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
lu 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 thit, đồ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 bit 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 tip trực tip 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 tip 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 tip 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ả nng 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 thit 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 cha 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 nng
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 nng đợc cung
cấp
Rất nhiều tính nng 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
tip 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, nu chúng ta có một thit 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 nhng 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 tip 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
tin 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, thit bị vào ra… VMM gửi tất cả các yêu
cầu vào ra, yêu cầu lu trữ đn VMkernel và gửi các yêu cầu phần cứng
không quan trọng đn một tin trình đặc biệt VMX, tin 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 thit 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 thit 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 để kt
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 bit 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 thit bị trên máy chủ để cung cấp
lu 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 kt 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 nng, đồ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 thit 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 nng 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ớ, thit 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 tip 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ể bit đợc không gian hệ thống, ch độ kernel hoặc ch độ giám sát.
Trình điều khiển thit 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 thit bị ngoại vi bằng
cách gọi một tin 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 thit 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 khin
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 nhng
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à thit k thêm tính nng 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 thit 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 thit 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 ht 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 kt tuyn 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ả nng 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, yu tố quyt định để sử dụng một ch độ là dựa
trên tính nng 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 ht các máy ảo 32 bit thì công nghệ BT-swMMU thờng đợc
chọn và đối với hầu ht 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ể nhng điều này
không đợc khuyn 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ó khn, VMkernel bị giới hạn số CPU vật lý nhng
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 quyt định thông minh để sắp xp 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 xp 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 xp 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 thit lập chia sẻ
mà sử dụng các yu tố để tính toán bao gồm thit 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 thit 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 thit 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. Nu 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
nhng 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 thit bị li trữ khác