I.Giớithiệuchung 2 1.Đặtvấnđề 2 2.GiớithiệuvềVirtualMachine 2 II.TìmhiểuvềVirtualMachine 2 1.Địnhnghĩa 2 2.Lịchsửpháttriển 3 3.MộtsốloạiVirtualMachineđiểnhình 4 4.Phầncứnghỗtrợ 4 III.Côngnghệtriểnkhai 5 1.CáchthứchoạtđộngcủaVirtualMachine 5 2.CáchthứchoạtđộngcủaVirtualization 5 3.Kháiniệmcơbảnvềhypervisorvàcáchthứchoạtđộngcủahypervisor 5 4.CácloạicơbảncủaHypervisor. 6 IV.VaitròvàứngdụngcủaVirtualMachine 6 1.Vaitrò 6 2.Ứngdụng 7 V.Sosánhvớicáccôngnghệảohóakhác 8 1.MộtsốphầnmềmVirtualMachinephổbiến 8 2.MộtsốcôngnghệkhácdùngVirtualization 9 3.SosánhcôngnghệContainerizationvàVirtualization 9 a.Cácđiểmgiốngvàkhác 9 b.Ưuđiểmvànhượcđiểm 10 c.Nhậnxét 11 VI.Kếtluận 11 1.TổngkếtvềVirtualMachine 11 2.TriểnvọngvàtươnglaicủaVirtualMachine 12 Tàiliệuthamkhảo 13
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÁO CÁO BÀI TẬP LỚN MÔN HỌC: NGUYÊN LÝ HỆ ĐIỀU HÀNH CHỦ ĐỀ: VIRTUAL MACHINE Giảng viên : Nguyễn Thị Hậu Mã học phần : INT2214 02 Nhóm 5: Lê Minh Thuận – 21020409 Triệu Thanh Tùng – 21020799 Mục lục I Giới thiệu chung Đặt vấn đề Giới thiệu Virtual Machine II Tìm hiểu Virtual Machine Định nghĩa Lịch sử phát triển Một số loại Virtual Machine điển hình Phần cứng hỗ trợ III Công nghệ triển khai Cách thức hoạt động Virtual Machine Cách thức hoạt động Virtualization Khái niệm hypervisor cách thức hoạt động hypervisor Các loại Hypervisor IV Vai trò ứng dụng Virtual Machine Vai trò Ứng dụng 2 2 4 5 5 6 V So sánh với cơng nghệ ảo hóa khác Một số phần mềm Virtual Machine phổ biến Một số công nghệ khác dùng Virtualization So sánh công nghệ Containerization Virtualization a Các điểm giống khác b Ưu điểm nhược điểm c Nhận xét 8 9 10 11 VI Kết luận Tổng kết Virtual Machine Triển vọng tương lai Virtual Machine Tài liệu tham khảo 11 11 12 13 I Giới thiệu chung Đặt vấn đề Ở thời đại số hóa ngày nay, cơng nghệ trở thành phần thiếu sống người Sự phát triển ứng dụng phần mềm đặt nhiều thách thức hiệu suất, bảo mật quản lý hệ thống doanh nghiệp Ngồi ra, giáo dục cơng nghệ thơng tin có nhu cầu ngày cao Trong bối cảnh này, Virtual Machine (VM) lên giải pháp linh hoạt tiết kiệm tài nguyên Bài báo cáo nhóm cung cấp nhìn tổng quan virtual machine Trong nội dung báo cáo, sâu vào khái niệm, lịch sử phát triển, công nghệ triển khai, phần cứng hỗ trợ đặc trưng, đồng thời đưa ví dụ hệ thống tiêu biểu, so sánh đánh giá ứng dụng Virtual Machine thực tế Giới thiệu Virtual Machine Virtual Machine công nghệ giúp tạo môi trường máy tính ảo máy tính thật sử dụng phần mềm ảo hóa Điều cho phép chạy nhiều hệ điều hành ứng dụng máy tính vật lý, giúp tối ưu hóa sử dụng tài nguyên hệ thống Ngồi ra, Virtual Machine giúp cải thiện hiệu suất, độ tin cậy, bảo mật quản lý hệ thống máy tính Virtual Machine sử dụng rộng rãi nhiều lĩnh vực, từ công nghệ thông tin đến khoa học, y tế giáo dục II Tìm hiểu Virtual Machine Định nghĩa Máy ảo - Virtual Machine phần mềm giả lập tài nguyên phần cứng máy tính cho phép nhiều hệ điều hành, ứng dụng chạy máy tính vật lý Một máy ảo chạy tiến trình máy gốc mà không ảnh hướng đến hệ thống vật lý 2 Lịch sử phát triển Khái niệm máy ảo (VM) bắt nguồn từ năm 1960, IBM phát triển hệ thống điều hành CP/CMS cho máy tính trung tâm họ, System/360 CP/CMS cho phép nhiều hệ thống điều hành chạy đồng thời máy trung tâm, cách sử dụng hypervisor để cung cấp lớp trừu tượng phần cứng hệ thống điều hành Trong năm 1960, IBM phát triển hệ thống điều hành CP/CMS cho máy tính trung tâm họ, System/360 Với mục tiêu tối đa hóa khả sử dụng phần cứng tăng hiệu suất hệ thống, IBM áp dụng công nghệ máy ảo (VM) cách sử dụng hypervisor để cung cấp lớp trừu tượng phần cứng hệ thống điều hành, cho phép nhiều hệ thống điều hành chạy đồng thời máy trung tâm Trong năm 1970, VM cho máy tính cá nhân phát triển cơng ty có tên Digital Research, cho hệ điều hành CP/M họ Điều cho phép CP/M chạy nhiều loại phần cứng khác nhau, cách cung cấp lớp máy ảo hệ điều hành phần cứng Trong năm 1980, công nghệ VM trở nên phổ biến với phát triển Java Virtual Machine (JVM) Sun Microsystems JVM cho phép chương trình Java chạy tảng cài đặt JVM, mà không cần phải biên dịch lại Trong năm 1990, công nghệ VM tiếp tục phát triển, với việc giới thiệu Microsoft Virtual Machine (MSVM) cho Windows MSVM cho phép chương trình Java chạy tảng Windows, sau thay Microsoft NET Framework, bao gồm Common Language Runtime (CLR) máy ảo Trong thập kỷ 2000, dự án Xen bắt đầu trở thành tảng mã nguồn mở hỗ trợ máy ảo, tập trung vào hiệu suất cao Năm 2013, Docker đời, tập trung vào việc tạo quản lý container, mang lại linh hoạt so với máy ảo truyền thống Hiện tại, vào thập kỷ 2020s, cơng nghệ Kubernetes (k8s) đóng vai trị quan trọng việc quản lý container tự động hóa triển khai ứng dụng hạ tầng máy tính Ngày nay, máy ảo sử dụng rộng rãi mơi trường đám mây tính, nơi cho phép nhiều máy chủ ảo chạy máy chủ vật lý nhất, tiết kiệm chi phí linh hoạt tăng cao Cơng nghệ ảo hóa áp dụng vào máy tính để bàn, cho phép nhiều hệ điều hành chạy đồng thời máy tính Một số loại Virtual Machine điển hình - Process Virtual Machine (Máy ảo tiến trình): mơi trường thực thi tạo phần mềm giả lập, sử dụng để chạy chương trình mà khơng cần phải biên dịch lại mã nguồn thành mã máy tùy thuộc vào tảng cụ thể, ví dụ điển hình cho trường hợp Java virtual machine - System Virtual Machine (Máy ảo hệ thống): ảo hóa hồn tồn thay cho máy tính vật lý Nền tảng hệ thống hỗ trợ chia sẻ tài nguyên vật lý máy chủ nhiều máy ảo, máy ảo chạy riêng hệ điều hành Ví dụ VirtualBox phần mềm cho phép người dùng tạo quản lý nhiều máy ảo máy tính vật lý Phần cứng hỗ trợ - CPU hỗ trợ ảo hóa: CPU phải có tính ảo hóa để hỗ trợ cho việc chạy máy ảo Bộ vi xử lý hỗ trợ ảo hóa (virtualization support) yếu tố quan trọng Các công nghệ Intel VT-x AMD-V cung cấp hỗ trợ ảo hóa tốt hơn, giúp tối ưu hóa hiệu suất VM - RAM: Tổng dung lượng RAM phải đủ cho toàn máy ảo chạy máy chủ vật lý Nếu khơng đủ RAM làm giảm hiệu suất - Network Interface Cards (NICs): Máy chủ cần có đủ số lượng card mạng để kết nối đến mạng vật lý, giúp cho máy ảo kết nối mạng Đơi khi, VM cần hỗ trợ tính đặc biệt mạng ảo, cần card mạng ảo tương thích - Dung lượng ổ đĩa: Phải có đủ nhớ để cài đặt lưu trữ hệ điều hành ứng dụng máy ảo - GPU: Điều cần thiết máy ảo cần xử lý đồ họa tạo hiệu ứng hình ảnh 3D III Công nghệ triển khai Cách thức hoạt động Virtual Machine Virtual Machine chạy dạng tiến trình cửa sổ ứng dụng, tương tự ứng dụng khác hệ điều hành máy chủ vật lý Virtual Machine dùng công nghệ Virtualization để tạo mơi trường ảo bên máy tính vật lý Các ứng dụng hệ điều hành chạy Virtual Machine thể chúng chạy máy tính độc lập Cách thức hoạt động Virtualization Với Virtualization, thiết bị, hệ điều hành hay lưu trữ liệu tách biệt khỏi phần mềm phần cứng bên Virtualization dùng lớp phần mềm mỏng gọi hypervisor tái tạo lại phần cứng phần mềm bên cho phần cứng phần mềm trừu tượng - dùng cho máy ảo Điều cho phép máy tính vật lý tách hệ điều hành ứng dụng khỏi phần cứng giúp tự phân thành nhiều máy ảo độc lập Sau đó, máy ảo chạy hệ điều hành ứng dụng riêng chúng cách độc lập chia sẻ tài nguyên ban đầu từ máy chủ hypervisor quản lý Khái niệm hypervisor cách thức hoạt động hypervisor - Hypervisor loại phần mềm, gọi “Virtual Machine Manager”, sử dụng để tạo quản lý máy ảo máy tính vật lý Hypervisor cho phép Virtual Machine chạy độc lập với nhau, Virtual Machine chạy hệ điều hành ứng dụng khác - Hypervisor quản lý chia sẻ tài nguyên vật lý máy chủ, bao gồm CPU, nhớ, điều khiển đĩa, card mạng, v.v., máy ảo Mỗi VM cung cấp phần tài nguyên cụ thể - Hypervisor cho phép quản lý giám sát VM, bao gồm việc khởi độ, tắt, di chuyển chép chúng Nó cung cấp tính bảo mật cách ly mạng kiểm sốt quyền truy cập Tóm lại Hypervisor đạo phân bổ tài nguyên cho máy ảo khác nhau, đảm bảo chúng không làm gián đoạn không xung đột lẫn giúp tối ưu hóa sử dụng tài nguyên phần cứng cho phép ứng dụng khác chạy máy chủ vật lý Các loại Hypervisor - Loại (bare-metal): Chạy trực tiếp phần cứng vật lý không gián tiếp qua hệ điều hành trung gian Có hiệu suất cao loại quản lý tài ngun xác hơn, nhiên cài đặt phức tạp - Loại (hosted): Hoạt động dạng ứng dụng chạy hệ điều hành (host operating system) máy tính chủ Khi type khởi động, tương tác với hệ điều hành chủ yêu cầu quyền truy cập vào phần cứng máy Sau đó, sử dụng tài nguyên vật lý hệ điều hành host để tạo máy ảo Các máy ảo chạy ứng dụng bình thường hệ điều hành chủ IV Vai trò ứng dụng Virtual Machine Vai trò - Phát triển phần mềm: Virtual machine môi trường lý tưởng để phát triển phần mềm cho phép nhà phát triển kiểm tra ứng dụng nhiều hệ điều hành khác máy tính Các nhà phát triển tạo nhiều virtual machine để kiểm tra ứng dụng phiên khác hệ điều hành cách nhanh chóng dễ dàng - Kiểm thử phát triển ứng dụng: VM cung cấp môi trường thử nghiệm an toàn cho việc phát triển kiểm thử ứng dụng Nhà phát triển tạo nhiều môi trường khác để kiểm tra tương tác ứng dụng với cài đặt hệ điều hành khác - Sao chép di chuyển dễ dàng: VM chép, di chuyển lưu trữ dạng file Điều đồng nghĩa với việc dễ dàng tạo sao, di chuyển VM máy chủ khác nhau, sử dụng công cụ quản lý VM để triển khai ứng dụng - Bảo mật: Virtual machine giúp tăng cường bảo mật virtual machine hoạt động độc lập với với hệ thống vật lý Do đó, cô lập giúp ngăn chặn virus, phần mềm độc hại lỗi khác từ việc tác động đến toàn hệ thống - Truy cập từ xa: Virtual machine cho phép người dùng truy cập vào ứng dụng liệu từ xa cách dễ dàng, cần kết nối internet đăng nhập vào hệ thống - Tối ưu hóa tài nguyên: Virtual machine giúp tối ưu hóa tài nguyên phần cứng cách chia sẻ tài nguyên virtual machine khác nhau, giúp tăng cường khả sử dụng giảm chi phí đầu tư cho phần cứng Ứng dụng - Điện toán đám mây: Trong 10 năm qua, Virtual Machine trở thành đơn vị điện toán cloud, cho phép hàng chục loại ứng dụng khối lượng công việc khác chạy mở rộng quy mô - Hỗ trợ DevOps: Virtual Machine cách hiệu để hỗ trợ nhà phát triển doanh nghiệp cấu hình mẫu Virtual Machine với cài đặt cho quy trình thử nghiệm phát triển phần mềm họ VM góp phần vào quy trình tự động hóa từ mơi trường Dev đến mơi trường Product - Phát triển ứng dụng đa tảng: Với loại Process Virtual Machine JVM, PVM, lập trình viên code lần biên dịch mã bytecode, sử dụng tảng khác nhau, tăng hiệu suất công việc - Học tập đào tạo: VMs cho phép người học thực hành mơi trường ảo hồn tồn lập, điều đảm bảo lỗi vấn đề xảy q trình học tập khơng ảnh hưởng đến hệ thống hoạt động máy tính - Kiểm tra phần mềm độc hại: Máy ảo hữu ích cho nghiên cứu phần mềm độc hại, ảo hóa ngăn chặn phần mềm độc hại lây lan sang máy chủ - Chạy phần mềm không tương thích: Máy ảo cung cấp nhiều phiên hệ điều hành khác để chạy phần mềm lỗi thời khơng tương thích V So sánh với cơng nghệ ảo hóa khác Một số phần mềm Virtual Machine phổ biến - Microsoft Hyper – V: Là tảng ảo hóa tích hợp hệ điều hành Windows Server Microsoft, cho phép người dùng chạy nhiều máy ảo máy chủ vật lý - VMware vSphere: Là hệ thống ảo hóa sử dụng phổ biến doanh nghiệp, cung cấp tính bảo mật, độ tin cậy hiệu suất cao - VirtualBox: Là phần mềm miễn phí mã nguồn mở cho phép người dùng tạo quản lý máy ảo máy tính Nó phát triển Oracle hỗ trợ nhiều hệ điều hành Windows, macOS, Linux Solaris VirtualBox cung cấp tính snapshot, cloning, tích hợp với ứng dụng khác để tăng hiệu làm việc - UTM: Là ứng dụng mã nguồn mở sử dụng để tạo máy ảo thiết bị macOS UTM hỗ trợ nhiều loại hệ điều hành, bao gồm Windows, Linux, macOS phiên khác hệ điều hành Một số công nghệ khác dùng Virtualization - Storage Virtualization: Là công nghệ giúp quản lý kết hợp tài nguyên lưu trữ khác thành tài nguyên để sử dụng hiệu Thông qua việc ảo hóa tài nguyên lưu trữ, storage virtualization giúp tăng tính linh hoạt, khả mở rộng tiết kiệm chi phí cho hệ thống lưu trữ - Networking Virtualization: Là cơng nghệ giúp ảo hóa phần mềm phần cứng mạng, giúp máy tính hệ thống mạng truy cập tài nguyên mạng cách hiệu - Desktop Virtualization: Là công nghệ giúp tạo desktop ảo, cho phép người dùng truy cập quản lý ứng dụng tài nguyên từ đâu thơng qua máy tính thiết bị di động Desktop virtualization giúp tăng tính linh hoạt khả quản lý hệ thống máy tính, đồng thời giảm chi phí cho doanh nghiệp So sánh công nghệ Containerization Virtualization a Các điểm giống khác - Giống nhau: Cả hai cơng nghệ Containerization Virtualization ảo hóa, nghĩa chúng phụ thuộc vào mơ hình tương tự giải vấn đề chạy ứng dụng phần mềm ứng dụng mơi trường ảo hóa Các công nghệ cho phép tạo nhiều môi trường độc lập máy chủ vật lý tăng tính linh hoạt, độ tin cậy quản lý tài nguyên hiệu - Khác nhau: Tuy nhiên, hai cơng nghệ có khác mặt chất: Containerization hoạt động mức độ cao hệ điều hành Nó cho phép tạo môi trường chứa ứng dụng tách biệt hệ điều hành, chia sẻ tài nguyên phần cứng máy chủ vật lý cách hiệu Các container chạy kernel hệ điều hành chung chia sẻ tài nguyên hệ thống, bao gồm thư viện, chương trình thực thi, tệp cấu hình thư mục Virtualization hoạt động cách tạo máy ảo độc lập với phần cứng vật lý, máy ảo chạy hệ điều hành riêng biệt chứa ứng dụng liệu khác Các máy ảo cần tài nguyên phần cứng máy chủ vật lý để hoạt động, bao gồm CPU, RAM, ổ cứng, b Ưu điểm nhược điểm - Containerization: + Ưu điểm: ● Tăng tốc độ phát triển: Container có kích thước nhỏ nhẹ, chúng nhanh chóng để sửa đổi thử nghiệm lại => giúp nhóm phát triển phần mềm nhanh phát triển triển khai sản phẩm nhanh chóng hiệu ● Có tính linh hoạt hệ sinh thái mạnh mẽ: Các nhà phát triển chia sẻ container cho cộng đồng để sử dụng tái sử dụng + Nhược điểm: ● Lỗ hổng hệ thống: Do container sử dụng hệ thống phần cứng vật lý với container khác nên container bị hacker cơng hacker dễ dàng truy cập vào container khác truy cập vào hệ thống máy chủ vật lý ● Rủi ro bảo mật: Do image container chia sẻ cơng cộng nên có rủi ro bảo mật khơng kiểm sốt kỹ lưỡng - Virtualization: + Ưu điểm: ● Tính cách ly bảo mật đầy đủ: Do máy ảo chạy mơi trường hồn tồn độc lập lập hồn toàn với máy ảo khác chạy 10 máy chủ vật lý Do giúp người dùng giảm thiểu rủi ro an ninh mạng ● Khả tương tác phát triển: Máy ảo cho phép người dùng tùy chỉnh thành phần phần cứng để phù hợp với ứng dụng phần mềm mình, cịn container sử dụng phần mềm sẵn có đóng gói bên + Nhược điểm: ● Tốc độ phát triển chậm: Do máy ảo chứa toàn hệ thống stack nên nhiều thời gian để tái tạo xây dựng Bên cạnh thay đổi cấu trúc hệ thống phải khởi động lại tồn máy ảo ● Chi phí lưu trữ: Máy ảo chiếm nhiều không gian lưu trữ chúng cần chứa tồn hệ điều hành Do có nhiều máy ảo máy chủ dẫn đến vấn đề hiệu năng,chi phí c Nhận xét Vì vậy, hai cơng nghệ khác cách thức hoạt động cách sử dụng tài nguyên phần cứng máy chủ Tuy nhiên, hai cơng nghệ giúp tối ưu hóa việc sử dụng tài nguyên phần cứng quản lý ứng dụng cách linh hoạt Mỗi cơng nghệ có ưu nhược điểm riêng, việc lựa chọn phụ thuộc vào nhu cầu cụ thể trường hợp sử dụng VI Kết luận Tổng kết Virtual Machine Tổng kết lại, Virtual Machine công nghệ vô quan trọng phổ biến ngành công nghệ thông tin Nhờ khả tạo nhiều máy ảo độc lập phần cứng, Virtual Machine giúp tăng hiệu sử dụng tài nguyên phần cứng, giảm thiểu chi phí đầu tư quản lý hệ thống Ngồi ra, Virtual Machine cịn mang lại nhiều lợi ích khác tăng tính linh hoạt, dễ dàng chép di chuyển máy ảo hệ thống Tuy nhiên, công nghệ khác, Virtual Machine có hạn chế thách thức định, chẳng hạn tốc độ xử lý thấp so với máy 11 tính vật lý, khả quản lý tài nguyên hypervisor, vấn đề bảo mật an ninh thông tin, Triển vọng tương lai Virtual Machine Về tương lai Virtual Machine, dự báo cho thấy công nghệ tiếp tục phát triển mở rộng ứng dụng tương lai Với phát triển cơng nghệ đám mây (cloud computing), Virtual Machine sử dụng rộng rãi để triển khai dịch vụ đám mây IaaS (Infrastructure as a Service), PaaS (Platform as a Service) hay SaaS (Software as a Service) Ngoài ra, Virtual Machine sử dụng để triển khai ứng dụng tảng điện toán đạt độ tin cậy cao (High Assurance Computing), đảm bảo tính bảo mật an ninh thông tin Với triển vọng tiềm lớn vậy, Virtual Machine chắn tiếp tục công nghệ quan trọng mang lại nhiều giá trị cho ngành công nghệ thông tin tương lai 12 Tài liệu tham khảo What is a Virtual Machine? | VMware Glossary What are virtual machines? | IBM What is Virtualization and How Does it Work | ResellerClub Blog Types of Virtual Machines - GeeksforGeeks Máy ảo – Wikipedia tiếng Việt What Is a Virtual Machine? Process, Types, and Software Containers vs Virtual Machines | Atlassian 13