Giới thiệu ảo hóa- Ngày nay công nghệ ảo hóa đã trở nên phổ biến và được ứng dụng rất nhiều trong các doanh nghiệp, nhất là các doanh nghiệp lớn - Dưới đây là hình ảnh cho thấy sự khác n
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BM KHOA HỌC VÀ KỸ THUẬT THÔNG TIN
-∞|∞ -BÁO CÁO ĐỒ ÁN
NGUỒN MỞ KVM VÀ TRIỂN KHAI THỬNGHIỆM
GV hướng dẫn: Thầy Nguyễn Tấn Cầm
SV thực hiện: Lê Thị Tài Ngân
Trần Diệu Đức Hạnh Nguyễn Đức Tài Phùng Quốc Việt Phạm Minh Phụng
Hồ Chí Minh, Tháng 05 Năm 2015
Trang 2MỤC LỤC
MỤC LỤC 2
NHẬN XÉT CỦA GIẢNG VIÊN 3
TỔNG QUAN 4
Đánh giá nhóm 4
I Giới thiệu ảo hóa 5
1 Ảo hóa là gì 5
2 Cấu tạo của một máy ảo 6
3 Các lợi ích chính của máy ảo 7
3.1 Chia nhỏ 7
3.2 Cô lập 8
3.3 Đóng gói 8
3.4 Độc lập với phần cứng 9
4 Hợp nhất 9
II Giới thiệu KVM 10
1 Giới thiệu chung về KVM 10
1.1 Linux as a VMM 10
1.2 Resource management 11
1.3 The KVM control interface 11
1.4 Emulation of hardware 11
2 Hoạt động của KVM 12
3 So sánh KVM và VSphere 13
III Triển khai thử nghiệm 17
IV Tổng kết, đánh giá 17
1 Tổng kết 17
2 Đánh giá 17
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
Trang 4
TỔNG QUAN
Thông tin nhóm
Lê Thị Tài Ngân 13520535 13520535@gm.uit.edu.vn
Trần Diệu Đức Hạnh 13520246 13520246@gm.uit.edu.vn
Nguyễn Đức Tài 13520730 13520730@gm.uit.edu.vn
Phùng Quốc Việt 13521036 13521036@gm.uit.edu.vn
Phạm Minh Phụng 13520646 13520646@gm.uit.edu.vn
Đánh giá nhóm
MSSV Họ Tên Công việc được
giao Tỷ lệ %
công việc hoàn thành
Nhận xét
1352053
5 Lê Thị Tài Ngân - Soạn slide.- I: Giới thiệu ảo
hóa
- Kiểm tra và sắp xếp nội dung
98 Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ Tích cực đóng góp ý kiến
1352024
6 Trần Diệu Đức Hạnh - Tìm kiếm tài liệu
- Kiểm tra sắp xếp nội dung
95 Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ Tích cực tìm kiếm giải pháp
& thông tin
1352073
0
Nguyễn Đức Tài - Đăng ký đề tài
- II.3: So sánh KVM và Vsphere
- III: Triển khai thử nghiệm
- Nộp đồ án
98 Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ
1352103
6 Phùng Quốc Việt - II.1: Giới thiệu chung về KVM
- II.2: Hoạt động của KVM
- Kiểm tra và sắp xếp nội dung
97 Thực hiện tốt nhiệm vụ
Đi họp nhóm đầy đủ
1352064
6
Trang 5I Giới thiệu ảo hóa
- Ngày nay công nghệ ảo hóa đã trở nên phổ biến và được ứng dụng rất nhiều trong các doanh nghiệp, nhất là các doanh nghiệp lớn
- Dưới đây là hình ảnh cho thấy sự khác nhau giữa một hệ thống x86 (hoặc x64) không sử dụng phần mềm ảo hóa và một hệ thống x86 (hoặc x64) có sử dụng phần mềm ảo hóa
Hình 1: So sánh giữa Hệ thống ảo hóa và Hệ thống không ảo hóa
1 Ảo hóa là gì
- Hệ thống máy tính x86 hoặc x64 ngày nay được thiết kế để chạy duy nhất một hệ điều hành
và các ứng dụng chạy trên nó đa phần chiếm rất ít tài nguyên của hệ thống, nhất là CPU (chỉ
sử dụng khoảng 3% - 10% số ít sử dụng 30%) Điều này dẫn đến tài nguyên của hệ thống dư thừa rất nhiều và không được tận dụng hết
- Với các thiết kế Multi core hiện tại sự phí phạm tài nguyên còn cao hơn nhiều, nhất là trong các hệ thống máy chủ với nhiều CPU và mỗi CPU có nhiều core
- Để tận dụng nguồn tài nguyên dư thừa này người ta thường cài nhiều ứng dụng trên một máy chủ thật, điều này dẫn đến việc dễ xảy ra xung đột giữa các ứng dụng với nhau và khi một ứng dụng xảy ra lỗi thì nó sẽ liên quan tới tất cả các ứng dụng khác
Trang 6- Với công nghệ ảo hóa, chúng ta có thể chạy nhiều máy tính ảo trên một máy tính vật lý và chúng chia sẻ tài nguyên phần cứng với nhau, giúp tận dụng được tài nguyên dư thừa của hệ thống Điều này cũng có nghĩa là chúng ta có thể chạy nhiều hệ điều hành khác nhau
(Windows 2000, Windows 2003, Windows 2008, Windows 2012, Linux, Ubuntu, ) đồng thời trên cùng một máy vật lý
- Ảo hóa là công nghệ được thiết kế để tạo ra tầng trung gian giữa hệ thống phần cứng máy chủ và phần mềm chạy trên nó Công nghệ ảo hóa máy chủ là từ một máy vật ký đơn lẻ có thể tạo thành nhiều máy ảo độc lập Mỗi máy ảo đều có một thiết lập nguồn hệ thống riêng rẽ, hệ điều hành và các ứng dụng riêng Người dùng không cần quan tâm tới hệ thống đang ở đâu, các hoạt động tính toán, xử lý dữ liệu xảy ra như thế nào Người dùng chỉ cần gửi yêu cầu và nhận kết quả Có 2 hình thức ảo hóa máy chủ:
+ Virtualization Management layer: Đây là hình thức ảo hóa ban đầu của máy chủ Thường gọi là Hosted Chức năng ảo hóa được xây dựng trên một nền OS thông dụng Một số sản phẩm thông dụng: Microsoft's Virtual PC, and VMWare's Workstation
+ Dedicated Virtualization: Hình thức ảo hóa này thường được gọi là "bare-metal", được chạy trực tiếp trên phần cứng của máy chủ Vì vậy sẽ giúp sử dụng tài nguyên máy chủ tối
ưu hơn là hình thức Hosted, tốc độ xử lý nhanh hơn Các sản phẩm thông dụng: ESX, Xen, and Hyper-V
2 Cấu tạo của một máy ảo
- Mỗi máy ảo là một hệ thống hoàn chỉnh gói gọn trong một tập hợp các tập tin (set of
software files)
- Mỗi máy ảo (Virtual Machine - VM) cótrên hệ thống bên trái được thể hiện như hình bên phải gồm các thành phần phần cứng (như: CPU, RAM, NIC, HBA, Disk, ), hệ điều hành (Operating System) và các ứng dụng (Applications) như một máy tính theo kiến trúc
x86/x644
Trang 7Hình 2: Cấu tạo của một máy ảo
3 Các lợi ích chính của máy ảo
3.1 Chia nhỏ
- Với công nghệ ảo hóa chúng ta có thể chạy nhiều máy ảo trên một máy thật với các hệ điều hành khác nhau, điều này có nghĩa là chúng ta có thể tách từng dịch vụ ra đề cài trên từng máy ảo
- VD: Khi chưa sử dụng ảo hóa, để tận dụng sức mạnh của Server chúng ta cài các dịch vụ như
AD, Web, FTP, SQL trên cùng một máy thì giờ đây chúng ta có thể tách riêng chúng ra để cài trên 4 máy ảo khác nhau (AD và SQL cài trên hai máy ảo Windows, Web và FTP cài trên 2 máy ảo Linux)
Hình 3: Lợi ích chia nhỏ của máy ảo
Trang 83.2 Cô lập
Khi mỗi dịch vụ quan trọng được cài trên một máy ảo riêng biệt thì nếu xảy ra lỗi một dịch vụ thì không ảnh hưởng gì tới các dịch vụ chạy trên các máy ảo khác Thậm chí hệ điều hành chạy dịch vụ đó hư hỏng nặng và không thể phục hồi lại được thì cũng không ảnh hưởng gì Trong trường hợp này chúng ta chỉ phải cài lại và triển khai lại máy ảo (VM) và dịch vụ bị lỗi
Hình 4:Lợi ích cô lập khi dung máy ảo
3.3 Đóng gói
Một máy ảo chạy trên nền tảng ảo hóa thực chất là một tập hợp các tập tin cấu hình và dữ liệu (set of software files), điều này dẫn đến việc cho phép chúng ta có thể chép toàn bộ các tập tin này ra ngoài để đưa sang một hệ thống ảo hóa khác để chạy hoặc backup chúng (khi backup chúng ta thực hiện backup cả hệ điều hành, dịch vụ và dữ liệu của máy ảo này) và khi có sự
cố xảy ra thì chúng ta có thể phục hồi lại tất cả mà không cần cài đặt và cấu hình cũng như chép lại dữ liệu (điều này không thể thực hiện được khi chạy trên máy thật)
Hình 5: Lợi ích của việc đóng gói
Trang 93.4 Độc lập với phần cứng
Với công nghệ ảo hóa, một máy ảo có thể di chuyển từ một môi trường ảo hóa này (Server cài phần mềm ảo hóa) sang môi trường ảo hóa khác tương tự để chạy mà không gây ra bất cứ khó khăn nào (Thậm chí chúng ta có thể chuyển đổi máy ảo từ môi trường ảo hóa này sang môi trường ảo hóa khác có kiến trúc khác bằng các công cụ được hỗ trợ hoặc bằng thủ công) Điều này giúp chúng ta dễ dàng nâng cấp phần cứng (vật lý) mà không cần cài lại các máy ảo (thậm chí với chức năng Migrate của VMware khi tiến hành nâng cấp phần cứng thì các máy ảo vẫn chạy và phục vụ công việc bình thường - người dùng không cảm nhận được các VMs đang được chuyển từ Server vật lý này sang Server vật lý khác)
Hình 6: Lợi ích khi độc lập với phần cứng
4 Hợp nhất
- Để việc tận dụng tài nguyên tốt hơn và để đảm bảo các máy ảo không bị tắt khi máy thật bị lỗi, người ta đưa ra mô hình hợp nhất các máy chủ vật lý
- Trong mô mình này khi một máy chủ vật lý gặp sự cố, các máy ảo sẽ được di chuyển qua các máy thật khác và chúng vẫn tiếp tục hoạt động (Quá trình này diễn ra bằng với thời gian khởi động lại máy ảo)
- Để triển khai được mô hình này thì ngoài các server vật lý ra chúng ta còn phải trang bị thêm một thiết bị lưu trự chuyên dụng (Storage - SAN), hoặc sử dụng các phần mềm để mô phỏng SAN như: FreeNAS, Openfiler hoặc VSA của VMware,
Trang 10Hình 7: Mô hình hợp nhất các máy chủ vật lý để chạy các máy ảo
II Giới thiệu KVM
1 Giới thiệu chung về KVM
KVM ban đầu được phát triển bởi Qumranet – một công ty nhỏ, sau đó được Redhat mua lại vào tháng 9 năm 2008 Ta có thể thấy KVM là thế hệ tiếp theo của công nghệ ảo hóa KVM được sử dụng mặc định từ bản RHEL (Redhat Enterprise Linux) từ phiên bản 5.4 và phiên bản Redhat Enterprise Virtualization dành cho Server
Qumranet phát hành mã của KVM cho cộng đồng mã nguồn mở Hiện nay, các công ty nổi tiếng như IBM, Intel và AMD cũng đã cộng tác với dự án Từ phiên bản 2.6.20, KVM trở thành một phần của hạt nhân Linux
1.1 Linux as a VMM
Linux có tất cả các cơ chế của một VMM cần thiết để vận hành các máy ảo Chính vì vậy, các nhà phát triển không xây dựng lại mà chỉ thêm vào đó một vài thành phần để hỗ trợ ảo hóa KVM được triển khai như một modul hạt nhân có thể được nạp vào để mở rộng Linux bởi những khả năng này
Trang 11Trong một môi trường Linux thông thường mỗi process chạy hoặc sử dụng user-mode hoặc kernel-mode KVM đưa ra một chế độ thứ 3, đó là guest-mode Nó dựa trên CPU có khả năng
ảo hóa với kiến trúc Intel VT hoặc AMD SVM, một process trong guest-mode bao gồm cả kernel-mode và user-mode
1.2 Resource management
Các nhà phát triển KVM hướng tới tái sử dụng nhiều mã nguồn có thể Do đó họ chủ yếu sửa đổi việc quản lý bộ nhớ Linux cho phép ánh xạ bộ nhớ vật lý vào không gian địa chỉ ảo Do
đó họ bổ sung thêm các bản shadow, điều này rất cần thiết trong những ngày đầu cảu ảo hóa x86, khi Intel và AMD không phát hành EPT tương ứng với NPT
Trong những hệ điều hành hiện nay, có rất nhiều process hơn so với số CPU sẵn có để chạy chúng Việc lập lịch (Scheduler) của một hệ điều hành để đưa ra 1 trật tự cho mỗi process được giao cho một trong những CPU sẵn có Bằng cách này, tất cả các process đang chạy sẽ chia sẻ thời gian tính toán Kể từ khi các nhà phát triển KVM muốn tái sử dụng hầu hết các cơ chế của Linux, họ đơn giản chỉ hướng đến mỗi máy ảo như một process, dựa vào đó lập lịch, gán sức mạnh tính toán cho các máy ảo
1.3 The KVM control interface
Một khi modul nhân KVM được load vào, node /dev/kvm sẽ được sinh ra trong hệ thống tập tin Linux Đây là một node đặc biệt, nó cho phép kiểm soát hypervisor thông qua một tập hợp các ioctls Nó được sử dụng trong hệ điều hành như một interface cho các process đang chạy trong user-guest để giao tiếp với drive Ioctl() gọi hệ thống cho phép thực hiện một số hoạt động để tạo ra các máy ảo mới, phân chia bộ nhớ cho máy ảo, phân chia và khởi động các CPU ảo
1.4 Emulation of hardware
Để cung cấp phần cứng như ổ cứng, ổ đĩa CD hay card mạng cho máy ảo, KVM sử dụng QEMU Đây là tên gọi của một công cụ nền tảng ảo hóa, cho phép giả lập toàn bộ một nền
Trang 12tảng máy tính bao gồm đồ họa, mạng, ổ đĩa và nhiều hơn nữa Mỗi một máy ảo khởi động một process QEMU được bắt đầu dưới chế độ user và kèm theo đó là các thiết bị được mô phỏng Khi một máy ảo thực hiện I/O, nó bị chặn bởi KVM và chuyển hướng đến các quá trình liên quan đến QEMU cho khách
2 Hoạt động của KVM
Hình dưới đây mô tả mô hình thực hiện của KVM Đây là một vòng lặp của các hành động diễn ra để vận hành các máy ảo Những hành động này được phân cách bằng 3 phương thức chúng ta đã đề cập trước đó: user-mode, kernel-mode, guest-mode
Như ta thấy:
- User – mode: Các modul KVM gọi đến sử dụng ioclt() để thực thi mã khách cho đến khi hoạt động I/O khởi xướng bởi guest hoặc một sự kiện nào đó bên ngoài xảy ra Sự kiện này có thể
là sự xuất hiện của một gói tin mạng, cũng có thể là trả lời của một gói tin mạng được gửi bởi các máy chủ trước đó Những sự kiện như vậy được biểu diễn như là tín hiệu dẫn đến sự gián đoạn của thực thi mã khách
- Kernel – mode: Kernel làm phần cứng thực thi các mã khách tự nhiên Nếu bộ xử lý thoát khỏi guest do cấp phát bộ nhớ hay I/O hoạt động, kernel thực hiện các nhiệm vụ cần thiết và tiếp tục luồng thực hiện Nếu các sự kiện bên ngoài như tín hiệu hoặc I/O hoạt động khởi xướng bởi các guest tồn tại, nó thoát tới user – mode
Trang 13- Guest – mode: Đây là cấp độ phần cứng, nơi mà các lệnh mở rộng thiết lập của một CPU có khả năng ảo hóa được sử dụng để thực thi mã nguồn gốc, cho đến khi một lệnh được gọi như vậy cần sự hỗ trợ của KVM, một lỗi hoặc một gián đoạn bên ngoài
Khi một máy ảo chạy, có rất nhiều chuyển đổi giữa các chế độ Từ kernel – mode tới guest – mode và ngược lại rất nhanh, bởi vì chỉ có mã nguồn gốc được thực hiện trên phần cứng cơ bản Khi I/O hoạt động diễn ra các luồng thực thi tới user – mode, rất nhiều thiết bị ảo I/O được tạo ra, do vậy rất nhiều I/O thoát ra và chuyển sang chế độ user – mode chờ Hãy tưởng tượng mô phỏng một đĩa cứng và một guest đang đọc các block từ nó Sau đó QEMU mô phỏng các hoạt động bằng cách giả lập các hoạt động bằng các mô phỏng hành vi của các ổ đĩa cứng và bộ điều khiển nó được kết nối Để thực hiện các hoạt động đọc, nó đọc các khối tương ứng từ một tập tin lớp và trả về dữ liệu cho guest Vì vậy, user – mode giả lập I/O có xu hướng xuất hiện một nút cổ chai làm chậm việc thực hiện máy ảo
3 So sánh KVM và VSphere
(1) Hypervisor (còn gọi là ảo hóa phần cứng) Hypervisor có thể là phần cứng, phần mềm
hoặc là một bản firmware nào đó có thể chạy trực tiếp trên một hệ thống máy tính, có
chức năng cho nhiều máy ảo chạy trên nó
(2) Virtualization Management layer: Đây là hình thức ảo hóa ban đầu của máy chủ
Thường gọi là Hosted Chức năng ảo hóa được xây dựng trên một nền OS thông dụng Một số sản phẩm thông dụng: Microsoft's Virtual PC, and VMWare's Workstation
(3) Dedicated Virtualization: Hình thức ảo hóa này thường được gọi là "bare-metal",
được chạy trực tiếp trên phần cứng của máy chủ Vì vậy sẽ giúp sử dụng tài nguyên
máy chủ tối ưu hơn là hình thức Hosted, tốc độ xử lý nhanh hơn Các sản phẩm thông
dụng: ESX, Xen, and Hyper-V
Trang 14Intended users Small-Medium
Business
Personal
Small-Medium Business
Awards
Top 50 Most Influential Channel Chiefs in 2014 Virtualization Review gave VMware Horizon View its
2014 Reader's Choice Award
in the Desktop Virtualization and VDI category
Notable Customers NYSE Euronext, Revlon,
Ducati.
TECHNICAL SPECIFICATIONS
Hypervisor Type Bare Metal (Type 1) Hosted (Type 2)
Virtualization Type
Full Virtualization
Hardware Assisted Virtualization
Paravirtualization
Full Virtualization
Paravirtualization
Architecture x86
x64
x86
x64
Power
Supported Storage
DAS FC FCoE NAS SSD for Swap USB
USB
VIRTUAL MACHINE LIMITS
Trang 15RAM per VM 4000GB
Virtual Disks per VM 62
Virtual NICs per VM 10
Virtual CPUs per VM 128VCPUS
HOST SERVER LIMITS
VIRTUALIZATION MANAGEMENT
Management Features
Configuration Mapping
Dynamic Resource Allocation
Failover
Live Migration
Thin Provisioning
Asset Management
Configuration Snapshots
Live Migration
Performance Metrics
Storage Migration
VM Migration
REQUIREMENTS
Supported Host Operating
Systems
Free BSD
MS DOS
CentOS
Fedora
Red Hat Linux
Ubuntu
Supported Guest Operating
Mandrake Linux
MS DOS
Novell Linux Desktop
CentOS
Fedora
Free BSD
MS DOS
Novell Linux