Khái niệm về Hypervisor: - Là một phần mềm, phần cứng hoặc một chương trình, có vai trò khởi tạo, quản lývà điều khiển nhiều máy ảo trên cùng một máy chủ vật lý duy nhất.- Mỗi Hypervisor
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC QUẢN TRỊ MẠNG VÀ HỆ THỐNG
TRIỂN KHAI HỆ THỐNG MÁY ẢO BẰNG KVM
TRÊN UBUNTU 22.04.4
NHÓM 07
Giáo viên hướng dẫn – Bùi Thanh Bình
22520141 Tăng Dũng Cẩm
22520399 Lê Anh Hào
22520744 Phạm Thanh Lâm
22520067 Phạm Đức Anh
Trang 2Mục lục
I Cơ sở lý thuyết 3
1 Khái niệm về Hypervisor 3
2 Khái niệm về QEMU (Quick Emulator) 4
3 Khái niệm về KVM (Kernel Virtualization Machine) 4
4 Các khái niệm khi thiết lập hệ thống máy ảo 5
5 Khái niệm về Libvirt 6
II Mô hình triển khai 7
III Cài đặt, cấu hình 7
1 Kiểm tra và cài đặt môi trường 7
2 Tạo KVM 9
3 Cài đặt VM bằng command: 12
4 Tạo VM bằng GUI: 16
5 Các tương tác cơ bản với VM: 18
6 Cài đặt tool của phần mềm quản lý máy ảo: 19
7 Cài đặt kết nối VNC: 21
8 Cài đặt hệ thống quản lí network (các máy ảo kvm): 23
IV Kết quả và Kết luận 24
V Tài liệu tham khảo 29
Page 2
Trang 3I Cơ sở lý thuyết
1 Khái niệm về Hypervisor:
- Là một phần mềm, phần cứng hoặc một chương trình, có vai trò khởi tạo, quản lý
và điều khiển nhiều máy ảo trên cùng một máy chủ vật lý duy nhất
- Mỗi Hypervisor cho phép mỗi một máy ảo hoặc khách truy cập vào các lớp tàinguyên vật lý bên dưới, bao gồm CPU, bộ nhớ lưu trữ hoặc RAM Ngoài ra,Hypervisor cũng có thể giới hạn số lượng tài nguyên phân chia cho từng máy ảo,đảm bảo nhiều máy ảo có thể cùng hoạt động trên một hệ thống
1.1 Hypervisor loại 1 (Native): Một hypervisor ở dạng native (hay còn gọi
“bare-metal”) chạy trực tiếp trên phần cứng Nó nằm giữa phần cứng và mộthoặc nhiều hệ điều hành khách (guest operating system); được khởi độngtrước cả hệ điều hành và tương tác trực tiếp với kernel Điều này mang lại hiệusuất cao nhất có thể vì không có hệ điều hành chính nào cạnh tranh tài nguyênmáy tính với nó và nhìn chung nó chạy nhanh hơn, hiểu quả hơn hostedhypervisors
VD: Vmware ESXi, Microsoft Hyper-V, Apple Boot Camp
1.2 Hypervisor loại 2 (Hosted): Một hypervisor dạng hosted được cài đặt trên
một máy tính chủ (host computer), mà trong đó có một hệ điều hành đã đượccài đặt Nó chạy như một ứng dụng cũng như các phần mềm khác trên máytính; cho phép cài các hệ điều hành khác chạy trên nó Tuy nhiên, nó sẽ có độtrễ cao hơn so với bare-metal hypervisors vì phải giao tiếp với phần cứng
Trang 42 Khái niệm về QEMU (Quick Emulator): là một trình giả lập và ảo hóa Nó có
mô phỏng nhiều thiết bị trong phần cứng như CPU, bộ nhớ, ổ nhớ và các cổngmạng QEMU cũng có thể tạo máy ảo có các hệ điều hành và ứng dụng chạy trênmôi trường tách biệt với máy chủ
3 Khái niệm về KVM (Kernel Virtualization Machine): là một công nghệ ảo hóa
mã nguồn mở tích hợp vào nhân Linux Nó cho phép tạo và quản lý các máy ảotrên các máy chủ vật lý KVM hoạt động như một hypervisor, tạo môi trường ảo
để chạy nhiều hệ điều hành và ứng dụng độc lập trên cùng một máy chủ
Page 4
Trang 5* Nhìn chung, KVM hiệu quả và tối ưu hơn QEMU về mặt hiệu năng Bởi KVM sử
dụng công nghệ ảo hóa tích hợp trong phần cứng để sử dụng tài nguyên trực tiếp, cònQEMU chỉ mô phỏng lại phần cứng trong phần mềm
4 Các khái niệm khi thiết lập hệ thống máy ảo:
4.1 Khái niệm về Bridge network: thường được sử dụng trong môi trường ảo
hóa và môi trường điện toán đám mây để kết nối các máy ảo (VMs) hoặc cáccontainer với mạng vật lý Khi sử dụng bridge network, một bridge sẽ hoạtđộng như một "cây cầu" giữa các máy ảo và mạng vật lý, cho phép chúng giaotiếp với nhau và với các thiết bị khác trên cùng một mạng
4.2 VNC (Virtual Network Computing): là một công nghệ cho phép bạn điều
khiển, quản lý và truy cập vào một máy tính từ xa thông qua internet một cáchthuận tiện và dễ dàng VNC hoạt động dựa trên mô hình client/server:
4.2.1 VNC Server: là một phần mềm cho phép người dùng có thể truy
cập và điều khiển nó từ một thiết bị khác VNC Server sử dụng giaothức TCP và cổng 5900 trở lên Nó hoạt động bằng cách ghi nhậnnội dung framebuffer và chia sẻ chúng với VNC Client
4.2.2 VNC Client (Viewer): Thông qua một kết nối mạng, VNC Client có
thể hiển thị và điều khiển màn hình máy tính từ xa như làm việc trực
Trang 64.2.3 Cách thức hoạt động của VNC
VNC Server ghi nhận dữ liệu framebuffer, là các thông tin về hình ảnh hiểnthị trên màn hình máy tính Dữ liệu này được chuyển đổi thành các gói tin vàgửi từ VNC Server tới VNC Client thông qua kết nối mạng
Khi nhận được các gói tin từ VNC Server, VNC Client tạo ra một bản sao táihiện của màn hình máy tính nguồn trên màn hình của mình Điều này chophép người dùng từ xa xem và tương tác với màn hình máy tính nguồn
Kết quả là, mọi hành động và tương tác từ người dùng trên VNC Client sẽđược chuyển tiếp tới VNC Server thông qua kết nối mạng và VNC Server sẽthực hiện các thao tác tương ứng trên máy tính nguồn Điều này cho phépngười dùng từ xa điều khiển và làm việc trên máy tính một cách dễ dàng vàhiệu quả từ một nơi khác
5 Khái niệm về Libvirt:
- Libvirt là một bộ các phần mềm mà cung cấp các cách thuận tiện để quản lý máy
ảo và các chức năng của ảo hóa, như là chức năng quản lý lưu trữ và giao diệnmạng Những phần mềm này bao gồm một thư viện API, daemon (libvirtd) và cácgói tiện tích giao diện dòng lệnh (virsh)
Page 6
Trang 7II Mô hình triển khai
Ở mô hình này nhóm thiết lập mạng bridge, dùng để kết nối các máy ảo với mạngvật lý của máy chủ chứa chúng Khi tạo mạng bridge trên máy chủ chạy KVM(192.168.189.132), nhóm tạo ra một giao diện mạng ảo mới (đặt tên là nm-bridge,
và có IP là 192.168.189.130) trên máy chủ đó Các máy ảo có thể được kết nối vớimạng bằng cách gắn giao diện mạng ảo của chúng với giao diện mạng này
Với mạng bridge, các máy ảo có thể giao tiếp với các thiết bị và mạng vật lý khácnhư các máy tính và thiết bị mạng trong cùng một mạng mà máy chủ chứa KVMđang kết nối đến (khi đó các máy ảo sẽ thuộc lớp mạng 192.168.189.0/24) Điềunày cho phép các máy ảo chạy trên KVM hoạt động như các máy vật lý trong cùngmột mạng với các ứng dụng và dịch vụ khác trên mạng
III Cài đặt, cấu hình
1 Kiểm tra và cài đặt môi trường
* Kiểm tra và cập nhật các gói phần mềm lên phiên bản mới nhất:
* Kiểm tra CPU có hỗ trợ ảo hóa Intel VT hay không:
- Vào trang web Intel để kiểm tra thông số của CPU để đảm bảo có hỗ trợ ảo hóa:
Trang 8- Vào cửa sổ Window Features, sau đó bỏ tick Windows Hypervisor Platform và Virtual Machine Platform.
- Restart máy và sử dụng câu lệnh “egrep -c '(vmx|svm)' /proc/cpuinfo” để kiểm traCPU có hỗ trợ ảo hóa hay không (Nếu giá trị trả về khác 0 thì hỗ trợ ảo hóa):
Page 8
Trang 92 Tạo KVM
- Thêm người dùng vào KVM, vào nhóm libvirt.
- Cấu hình mạng Bridge cho hệ thống KVM (phương pháp để kết nối nhiều thiết bị
mạng lại với nhau để tạo thành một mạng lớn hơn, trong đó các thiết bị này có thểgiao tiếp với nhau như thể chúng kết nối trực tiếp)
- Dùng nmtui để cấu hình mạng bridge vào mạng chính
Trang 10- Chọn Edit a connection, lựa chọn mạng chính đầu tiên và chọn Add để tạo một
bridge mới
- Bridge được tạo có tên là nm-bridge
- Sau đó thêm mạng Ethernet vào trong Slaves của mạng bridge này bằng Add.
Page 10
Trang 11- Sau đó ra ngoài và xóa mạng wire connection 1 đi.
- Đợi khoảng 1 phút sau đó vào xem ip mạng bridge đã được cài đặt.
Trang 13o B1: Chọn keyboard theo ý muốn.
o B2: Ở “choose type of install” chọn theo ý muốn
o B3: Thiết lập kết nối mạng
o B4: Thiết lập proxy
o B5: Thiết lập thông tin người dùng, user của máy ảo:
Trang 14 Đặt password: 123456ab.
o B6: Cài đặt SSH
- Đăng nhập vào client, qua lệnh :
Page 14
Trang 15- Tạo một bản sao của máy ảo “ubuntu2204” và lưu nó vào một tệp image mới
“template.ing” trong đường dẫn /var/kvm/images/ Điều này để tạo ra một bản saotiêu chuẩn để triển khai nhiều máy ảo khác nhau dựa trên cùng một cấu hình banđầu
Trang 17- Tạo VM mới, sẽ có kết quả sau đây:
- Ở mục network selection chọn mạng bridge và nhập tên của mạng bridge đã tạo ở
trước đó (nm-bridge)
Trang 18- Cài đặt máy ảo ubuntu trong KVM như bình thường, với thông tin sau:
5 Các tương tác cơ bản với VM:
- Khởi động máy ảo:
- Truy câp vào console của máy ảo:
Page 18
Trang 19- Tắt máy ảo, mở chế độ tự động mở máy ảo khi khởi động host, và tắt chế độ đó:
6 Cài đặt tool của phần mềm quản lý máy ảo:
Trang 20- Ý nghĩa các lệnh:
“virt-ls -l -d ubuntu2204 /root”: sẽ liệt kê nội dung của thư mục /root trongmáy ảo có tên là "ubuntu2204", và hiển thị thông tin chi tiết về các tệp vàthư mục trong đó
“virt-cat -d ubuntu2204 /etc/passwd”: sẽ hiển thị nội dung của tệp/etc/passwd trong máy ảo có tên là "ubuntu2204" Điều này có thể hữu ích
để xem thông tin về các tài khoản người dùng trong máy ảo đó
“virt-edit -d ubuntu2204 /etc/fstab”: sẽ mở tệp /etc/fstab trong máy ảo cótên là "ubuntu2204" để có thể chỉnh sửa nó Điều này có thể hữu ích đểđiều chỉnh cài đặt hệ thống tệp của máy ảo, chẳng hạn như thêm hoặc chỉnhsửa các phân vùng được gắn kết tự động
“virt-df -d ubuntu2204”: nó sẽ hiển thị thông tin về việc sử dụng dunglượng đĩa của máy ảo "ubuntu2204", bao gồm thông tin về dung lượng sửdụng, dung lượng trống và tổng dung lượng của các phân vùng đĩa trên máy
ảo đó Điều này có thể giúp bạn kiểm tra tình trạng sử dụng dung lượng đĩacủa máy ảo và quản lý không gian đĩa một cách hiệu quả
“virt-top”: cung cấp một giao diện dòng lệnh để theo dõi các thông số nhưtài nguyên sử dụng (CPU, bộ nhớ), tình trạng hoạt động của các máy ảo,thống kê về I/O, và nhiều thông tin khác
Page 20
Trang 217 Cài đặt kết nối VNC:
- Dùng lệnh virsh dưới quyền sudo để chỉnh sửa file.
- Thêm các cấu hình và cài đặt password theo ý mình, đặt một số cố định và độc
nhất cho slot
- Dùng lệnh để cài đặt giao diện mặc định cho máy ảo được cài bằng command,
đồng thời cũng là máy ảo dùng để tạo kết nối VNC
- Sau đó reboot để áp dụng cài đặt.
- Sử dụng phần mềm Remote Viewer để liên kết đến máy ảo:
Trang 22* Với: 10.0.0.131 là địa chỉ IP của máy host.
5900 là cổng port đã cài đặt trước đó
- Nhấn connect để bắt đầu kết nối đến máy ảo và có thể thao tác trực tiếp vào máy
ảo thông qua Remote Viewer
8 Cài đặt hệ thống quản lí network (các máy ảo kvm):
- Sau khi cài đặt Virtual BMC xong, ta gắn một Virtual BMC vào máy ảo.
Page 22
Trang 23- Khởi động Virtual BMC với tên ubuntu.ver1.
- Mở máy ảo ubuntu.ver1 bằng Virtual BMC
- Tắt máy ảo ubuntu.ver1 bằng Virtual BMC
IV Kết quả và Kết luận
Trang 24- Nhập username và password như những gì đã cài đặt
- Kết quả:
Tạo 1 VM băng Graphic (app)
- Tạo máy ảo ubuntu.ver1 bằng app Virtual Machine Manager, đồng thời app cũng
hiện máy ảo ubuntu2204 được tạo bằng command
- Login vào máy ảo
Page 24
Trang 25 Đảm bảo các VM hoạt động và ra internet
- Để đảm bảo các máy ảo hoạt động thì máy ảo chính và 2 máy ảo được tạo ra phải
ping được đến nhau và ra internet
IP của máy ảo chính: 10.0.0.131
IP của ubuntu.ver1: 10.0.0.132
IP của ubuntu2204: 10.0.0.133
- Ping từ máy ảo chính đến máy ảo được tạo bằng command (ubuntu2204) và ngược
lại
Trang 26- Ping 2 máy ảo với nhau
- Từ các máy ảo ping ra internet ( youtube.com )
- Ping từ máy chính ra internet
Page 26
Trang 27 Cài đặt spice server (VNC)
- Dùng phần mềm Remote Viewer để thao tác gián tiếp lên máy ảo đã cài đặt VNC
- Dùng lệnh để kết nối Với 10.0.0.131 là địa chỉ IP của máy chính, port 5900 là số
cổng đã cài đặt vào máy ảo trước đó
- Sau khi kết nối, cửa sổ phần mềm hiện ra giao diện desktop của máy ảo và ta có
thể thao tác thẳng trên máy ảo đó thông qua chính cửa sổ này
Trang 28 Link Video DEMO
- Các máy ảo hoạt động bình thường, ra được internet và dùng Remote Viewer
(VNC)
https://drive.google.com/drive/folders/1MFSxcsbgFk9RQlkquuMxezCm3UxyqFo4?usp=drive_link
Page 28
Trang 29V Tài liệu tham khảo
1) ty (2023) Hypervisor là gì? Từ A-Z về phần mềm giám sát máy ảo Hypervisor [online] CMC Cloud Available at: https://cmccloud.vn/tin-tuc/hypervisor-la-gi-
142 [Accessed 2 May 2024].
2) ty (2023) KVM là gì? Những điều cơ bản doanh nghiệp cần biết về KVM
[online] CMC Cloud Available at: https://cmccloud.vn/tin-tuc/kvm-la-gi-138 [Accessed 2 May 2024].
3) Blog | TheGioiMayChu (n.d.) Hypervisor [online] Available at:
https://thegioimaychu.vn/blog/thuat-ngu/hypervisor/ [Accessed 2 May 2024] 4) www.linkedin.com (n.d.) QEMU vs KVM: A Quick Comparison [online]
Available at: raja-nagori-#:~:text=KVM%20generally%20outperforms%20QEMU%20in [Accessed 2 May 2024].
https://www.linkedin.com/pulse/qemu-vs-kvm-quick-comparison-5) cloud.z.com (2023) Từ A-Z về CentOS So sánh CentOS Stream và CentOS LinuxZ.com Cloud – Tốc Độ Cao Khởi Tạo Nhanh Chóng [online] Available at: https://cloud.z.com/vn/en/news/centos/ [Accessed 2 May 2024].
6) VietTuanS (n.d.) VNC là gì? Tính năng và lợi ích nổi bật của VNC [online] Việt Tuấn - Phân Phối Thiết Bị Mạng, Wifi, Thiết Bị Lưu Trữ NAS Available at:
https://viettuans.vn/vnc-la-gi [Accessed 2 May 2024].
8) lạc, C vịt (2020) Giải ngố Virtualization – Phần 6: Cơ chế cấp IP Address trên Kali Linux VM, đọc ngay để tránh bị ăn hành bởi VMware network [online] Dummytip Available at: https://dummytip.com/giai-ngo-virtualization-phan-6-co- che-cap-ip-address-tren-kali-linux-vm-doc-ngay-de-tranh-bi-an-hanh-boi-
vmware-network/ [Accessed 6 May 2024].
9) lạc, C vịt (2020) Giải ngố Virtualization – Phần 5: 3 chế độ VMware Network configuration mà bạn nhất định phải biết [online] Dummytip Available at:
configuration-ma-ban-nhat-dinh-phai-biet/ [Accessed 6 May 2024].
https://dummytip.com/giai-ngo-virtualization-phan-5-3-che-do-vmware-network-10) lạc, C vịt (2020) Giải ngố Virtualization – Phần 7: Cấu hình thủ công IP
Address trên Kali Linux và đả thông kinh mạch đường mạng [online] Dummytip Available at: https://dummytip.com/giai-ngo-virtualization-phan-7-cau-hinh-thu-