Máy ảo là gì?
Ở cấp độ cơ sở, máy ảo (VM) là phần mềm chạy các chương trình hoặc ứng dụng mà không bị ràng buộc bởi thiết bị vật lý. Trong một phiên bản VM, một hoặc nhiều máy khách (ảo) có thể chạy trên một máy chủ vật lý.
Mỗi máy ảo có hệ điều hành riêng và tính năng riêng so với các máy ảo khác, ngay cả khi chúng nằm trên cùng một máy chủ vật lý. Máy ảo thường chạy trên máy server, nhưng chúng cũng có thể chạy trên hệ thống máy tính để bàn hoặc thậm chí là trên nền tảng nhúng. Nhiều máy ảo có thể chia sẻ tài nguyên từ máy chủ vật lý, bao gồm chu trình CPU, băng thông mạng và bộ nhớ.
Máy ảo có nguồn gốc từ những ngày đầu của máy tính vào những năm 1960 khi việc chia sẻ thời gian cho những người dùng mainframe (hệ thống máy tính lớn) là bằng phần mềm phân chia trên một hệ thống máy chủ vật lý. Máy ảo được định nghĩa vào đầu những năm 1970 là “một bản sao hiệu quả, biệt lập của một máy tính thực”.
Các máy ảo như chúng ta biết ngày nay, đã đạt được thành tựu trong hơn 15 năm qua khi các công ty áp dụng server virtualization để sử dụng sức mạnh tính toán của máy chủ vật lý của họ hiệu quả hơn, giảm nhu cầu về máy chủ vật lý và tiết kiệm không gian trong trung tâm dữ liệu. Vì các ứng dụng có các yêu cầu hệ điều hành khác nhau có thể chạy trên một máy chủ vật lý duy nhất, nên không cần phần cứng máy chủ khác nhau cho mỗi máy chủ.
Nhìn chung, có hai loại máy ảo: Máy ảo quy trình - tách biệt thành một quy trình duy nhất, và máy ảo hệ thống - cung cấp sự tách biệt hoàn toàn của hệ điều hành và ứng dụng ra khỏi máy tính vật lý. Ví dụ về máy ảo quy trình bao gồm Máy ảo Java, .NET Framework và máy ảo Parrot.
Các máy ảo hệ thống dựa vào các hypervisors, như một công cụ chuyển tiếp giữa việc cho phép phần mềm truy cập tài nguyên phần cứng. Những tên tuổi lớn trong lĩnh vực hypervisors bao gồm VMware (ESX / ESXi), Intel / Linux Foundation (Xen), Oracle (MV Server cho SPARC và Oracle VM Server cho x86) và Microsoft (Hyper-V).
Hệ thống máy tính để bàn cũng có thể sử dụng máy ảo. Ví dụ điển hình nhất là một Mac-user chạy phiên bản Windows 10 ảo trên phần cứng Mac vật lý của họ.
Ưu điễm của máy ảo
Do phần mềm tách biệt với máy chủ vật lý, người dùng có thể chạy nhiều phiên bản hệ điều hành trên một phần cứng duy nhất, tiết kiệm thời gian, chi phí quản lý và không gian của công ty. Một lợi thế khác là máy ảo có thể hỗ trợ các ứng dụng cũ, giúp bớt hoặc bỏ nhu cầu và chi phí để di chuyển một ứng dụng cũ sang hệ điều hành đã được cập nhật hoặc là một hệ điều hành khác.
Ngoài ra, các nhà phát triển sử dụng máy ảo để kiểm tra các ứng dụng trong môi trường an toàn, cô lập (sandboxed). Điều này còn có thể giúp tách biệt các phần mềm độc hại mà có thể lây nhiễm một phiên bản VM nhất định. Vì phần mềm bên trong máy ảo không thể giả mạo máy chủ nên phần mềm độc hại không thể lan rộng các thiệt hại.
Nhược điễm của máy ảo
Máy ảo có một vài nhược điểm. Việc chạy nhiều máy ảo trên một máy chủ vật lý có thể dẫn đến hiệu suất không ổn định, đặc biệt nếu các yêu cầu về cơ sở hạ tầng cho một ứng dụng cụ thể không được đáp ứng. Điều này cũng làm cho chúng kém hiệu quả hơn trong nhiều trường hợp khi đem ra so sánh với một máy tính vật lý. Hầu hết các hoạt động CNTT đều thực hiện cân bằng giữa các hệ thống vật lý và ảo.
Các hình thức ảo hóa khác
Thành công của VM trong sự ảo hóa server đã dẫn đến việc áp dụng ảo hóa cho các lĩnh vực khác bao gồm lưu trữ, mạng network và máy tính để bàn. Nếu trong data center đang có một một loại phần cứng nào đó được dùng thì khái niệm ảo hóa vẫn đang được khai phá (tương tự như trường hợp application delivery controllers).
Trong ảo hóa mạng, các công ty đã khai thác các tùy chọn dịch vụ mạng và các chức năng của mạng ảo hóa (NFV), sử dụng các server commodity (server chứa các chương trình server-side) thay thế các thiết bị mạng chuyên dụng để tăng tính linh hoạt và mở rộng cho các dịch vụ. Khác một chút so với mạng điều khiển bằng phần mềm (Software-Defined Networking - SDN), việc này tách network control plane ra khỏi forwarding plane cho phép cung cấp và quản trị dựa trên chính sách một cách tự động hơn. Công nghệ thứ ba, các chức năng của virtual network, là các dịch vụ dựa trên phần mềm có thể chạy trong môi trường NFV, bao gồm các quy trình như Routing, Firewall, WAN acceleration, Load balancing, và mã hóa.
VMs và containers (vùng chứa)
Sự phát triển của máy ảo đã dẫn đến sự phát triển hơn nữa của các công nghệ containers, đưa khái niệm này lên một mức độ mới và đang thu hút sự quan tâm của các nhà phát triển ứng dụng web. Trong cài đặt containers, một ứng dụng duy nhất cùng các thứ thuộc nó, có thể được ảo hóa. Với chi phí thấp hơn nhiều so với một máy ảo, một containers chỉ bao gồm các tệp nhị phân, thư viện và ứng dụng.
Một số người nghĩ rằng sự phát triển của các containers có thể xóa bỏ VM, tuy nhiên VM vẫn có các tính năng và lợi ích mà chỉ có nó mang lại và giúp nó có thể tiếp tục được phát triển. Ví dụ: VM vẫn hữu ích khi chạy nhiều ứng dụng cùng nhau hoặc khi chạy các ứng dụng cũ trên hệ điều hành cũ hơn.
Ngoài ra, một số người cảm thấy rằng containers ít an toàn so với VM hypervisors vì containers thì các ứng dụng chia sẻ một hệ điều hành duy nhất, trong khi các máy ảo có thể cô lập ứng dụng và hệ điều hành.
Gary Chen, giám đốc nghiên cứu bộ phận Software-Defined Compute của IDC, cho biết thị trường phần mềm VM vẫn là một công nghệ nền tảng, ngay cả khi khách hàng khám phá các kiến trúc đám mây và containers. Chen đã viết trong Worldwide Virtual Machine Software Forecast, 2019-2022 của IDC : “Thị trường phần mềm máy ảo đã rất kiên cường và sẽ tiếp tục tăng trưởng tích cực trong vòng 5 năm tới, mặc dù đã trưởng thành và sắp bão hòa.”
VMS, 5G và edge computing
VMs được xem như là một phần của các công nghệ mới tương tự 5G và Edge computing. Lấy ví dụ, các nhà cung cấp Virtual Desktop Infrastructure (VDI) như Microsoft, VMware và Citrix đang tìm cách mở rộng hệ thống VDI của họ cho các nhân viên hiện đang làm việc tại nhà do hậu quả của đại dịch COVID-19. Mahadev Satyanarayanan, giáo sư khoa học máy tính tại Đại học Carnegie Mellon cho biết: “Với VDI, bạn cần độ trễ cực kỳ thấp bởi vì bạn đang thao tác gõ phím và di chuyển chuột của mình đến một máy tính từ xa”. Vào năm 2009, Satyanarayanan đã viết về cách các mà các cloudlets dựa trên máy ảo có thể được sử dụng để cung cấp khả năng xử lý tốt hơn cho các thiết bị di động trên nền tảng Internet, từ đó dẫn đến sự phát triển của điện toán biên - edge computing.
Giống như nhiều công nghệ khác đang được sử dụng ngày nay, những công nghệ này sẽ không được phát triển nếu nó không dành cho các khái niệm máy ảo ban đầu đã được giới thiệu hàng thập kỷ trước.
(tin sưu tầm)
» Tin mới nhất:
» Các tin khác: