Ảo hóa là gì và các loại ảo hóa?
(Giúp bạn)
Bạn nào pro cho mình hỏi ảo hóa là gì vậy, liệt kê cho mình các loại ảo hóa nữa nhé.
Đối với những người hay sử dụng máy tính, chắc hẳn bạn đã từng nghe đến các cụm từ như tạomáy ảo, tạo ổ đĩa ảo hay RAM ảo… trong đó cái chúng ta thường thấy và sử dụng nhất đó chính là tạo máy ảo để chạy song song hai hệ điều hành. Nói chung, tất cả những cái đó đều được gọi làcông nghệ ảo hóa (Virtualization), nói nôm na là tạo ra thêm một phiên bản phụ (phiên bản ảo) của một số phần mềm, linh kiện trong máy tính hay thậm chí là ảo hóa toàn bộ chiếc máy tính luôn. Hôm nay chúng ta sẽ tìm hiểu về công nghệ ảo hóa và các lợi ích của nó.
Như mình đã nói, ảo hóa là tạo ra thêm một phiên bản ảo của thứ gì đó trong máy tính. Có rất nhiều thứ có thể được ảo hóa, từ tạo ổ đĩa ảo, RAM ảo, ổ cứng ảo, máy chủ ảo cho đến cả hệ điều hành cũng ảo. Vì công nghệ ảo hóa khá phức tạp và có nhiều nhánh nhỏ nên để cho dễ hiểu, mình sẽ chỉ tập trung nói về một số loại mà chúng ta hay sử dụng nhất mà thôi.
Lợi ích của ảo hóa
Cái hay của ảo hóa là nó giúp cho chúng ta có thể chạy được nhiều thứ hơn trên một chiếc máy tính duy nhất, từ đó tiết kiệm chi phí mua sắm thiết bị mới cho gia mình hay cho doanh nghiệp. Ví dụ bạn là một lập trình viên và xài máy Mac, một số phần mềm lập trình chỉ có thể chạy trên Windows, thay vì tốn thêm mớ tiền để mua một cái máy Win nữa thì bạn chỉ việc tạo máy ảo Windows chạy ngay bên trong máy Mac là có thể sử dụng song song cùng lúc 2 hệ điều hành chỉ với 1 cái máy tính duy nhất. Đối với các nhà quản trị mạng, công nghệ ảo hóa giúp người ta có thể tận dụng hết tài nguyên máy tính, tài nguyên mạng của hệ thống để đem lại hiệu quả xử lý cao hơn.
Các loại ảo hóa
1. Hệ điều hành ảo (tạo máy ảo)
Đây là cái chúng ta hay thấy nhất. Ta có thể tạo ra nhiều máy ảo trên một chiếc máy tính duy nhất và đặc biệt là có thể chạy song song cùng lúc 2 hệ điều hành. Có thể là Mac chạy song song Windows, Win XP và Win 7, Win 7 và Win 8, Windows và Linux… Việc chuyển đổi qua lại giữa 2 hệ điều hành cũng đơn giản giống như chuyển qua lại giữa 2 cửa sổ trên máy tính, bạn cũng có thể chia sẻ dữ liệu giữa máy thực và máy ảo với nhau hoàn toàn dễ dàng.
Để tạo máy ảo, ta cần có một phần mềm chuyên dụng. Có rất nhiều phần mềm giúp ta tạo máy ảo, ví dụ như trên Win thì có VMware, VirtualBox, Virtual PC… Trên Mac thì cũng có VMware Fusion và Parallels. Cách cài đặt cũng rất đơn giản, ví dụ như VMware, bạn chỉ việc cài VMware vào máy tính, tải file ảnh của hệ điều hành thứ hai về, sau đó làm theo hướng dẫn trong đó là OK.
Do nó cũng là một hệ điều hành (gần như hoàn chỉnh) nên máy ảo cũng cần có CPU, RAM, ổ cứng cũng như các linh kiện phần cứng có liên quan. Ở đây máy ảo sẽ dùng chung các phần cứng đó với máy tính của bạn. Nghĩa là giờ đây thay vì chỉ chạy một hệ điều hành thì máy tính của bạn phải gồng mình lên để chạy đến 2 cái hệ điều hành cùng lúc, lúc đó máy sẽ chạy ì ạch hơn. Vì vậy nếu cấu hình máy của bạn quá yếu thì không nên dùng máy ảo quá nhiều. Thường khi tạo thêm máy ảo thì nó sẽ cắt ra khoảng vài GB RAM dùng cho máy ảo đó, CPU dùng chung và ổ cứng cũng phải chia ra thêm một khoảng kha khá để chứa hệ điều hành thứ 2 này.
2. Ảo hóa phần cứng
Trên đây là cách tạo máy ảo phổ thông mà chúng ta hay dùng nhất. Ngoài ra, ở phân khúc cao cấp hơn người ta còn có thêm một cách nữa đó là dùng 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ó.
Điểm khác biệt của Hypervisor so với cách dùng phần mềm tạo máy ảo đó là nó không cần phải có hệ điều hành chủ trước đó. Ở cách đầu tiên ta phải có một máy tính chạy hệ điều hành trước, sau đó cài phần mềm máy ảo rồi mới tạo máy ảo được. Trong khi đó Hypervisor không cần có hệ điều hành, nó có thể chạy trực tiếp trên phần cứng luôn.
Có nhiều loại ảo hóa phần cứng:
Ảo hóa toàn phần
Toàn bộ phần cứng của máy tính sẽ được ảo hóa hết để một hệ điều hành ảo khác có thể chạy trên đó một cách đầy đủ và bình thường, không bị thay đổi hay chỉnh sửa. Khi được ảo hóa toàn phần thì máy ảo có thể truy cập và sử dụng hết mọi tính năng của từng phần cứng một, bao gồm cả BIOS, driver, các lệnh nhập/xuất dữ liệu, truy cập bộ nhớ... Ứng dụng của ảo hóa toàn phần bao gồm: chia sẻ một máy tính cho nhiều người sử dụng cùng lúc, cách ly các tài khoản người dùng với nhau cũng như để tăng cường tính bảo mật, độ ổn định và hiệu suất làm việc của một hệ thống máy tính.
Ảo hóa một phần
Khác với ảo hóa toàn phần, ảo hóa một phần chỉ tiến hành ảo hóa một số phần cứng nhất định của máy tính nên nó không đủ tài nguyên để vận hành một hệ điều hành ảo hoàn chỉnh, thay vào đó nó chỉ cho phép chúng ta chạy một số phần mềm mà thôi. Ưu điểm của áo hóa một phần là nó dễ triển khai hơn ảo hóa toàn phần, nó tỏ ra cực kỳ hữu ích khi người ta chỉ muốn dùng máy ảo để chạy một phần mềm quan trọng nào đó, họ sẽ dùng ảo hóa một phần để tạo ra đủ tài nguyên cần thiết để chạy nó mà không cần phải ảo hóa cả một hệ thống phức tạp. Nếu dùng ảo hóa toàn phần chỉ để chạy một phần mềm duy nhất thì coi như là ta đã lãng phí tài nguyên máy tính một cách vô ích.
Ảo hóa song song
Khái niệm này khá rắc rối nên mình cũng không muốn giải thích quá sâu, nói một cách tóm gọn thì ảo hóa song song khác với 2 loại ảo hóa kể trên ở chỗ nó không mô phỏng phần cứng để chạy hệ điều hành ảo mà thay vào đó nó sẽ tạo một một lớp giao diện phần mềm (hay một tập lệnh API) để các hệ điều hành ảo và hypervisor có thể giao tiếp với nhau, và xem API đó như là ngôn ngữ chung giữa 2 phía, mục đích là để giảm thiểu thời gian cần thiết mỗi khi thi hành các câu lệnh trên hệ thống.
CPU hỗ trợ ảo hóa
Để tăng cường hiệu quá ảo hóa, người ta còn nhờ đến một thành phần rất quan trọng trong hệ thống đó là CPU. Những con CPU hỗ trợ ảo hóa từ bên trong CPU được thiết kế đặc biệt để chúng có thể hỗ trợ bạn tối đa trong việc tạo và chạy các máy ảo. Vì tính năng này có liên quan trực tiếp đến phần cứng (cụ thể là CPU) nên bạn cần phải kiếm tra xem CPU của mình có hỗ trợ sẵn chức năng ảo hóa hay không, không phải CPU nào cũng hỗ trợ ảo hóa từ phần cứng của nó, để kiểm tra, bạn có thể tải về phần mềm Intel Processor Identification Utility (dành cho CPU Intel) hoặcAMD Virtualization Compatibility Tool (dành cho AMD).
Một số phần máy ảo ví dụ như XP Mode (tạo Win XP chạy song song trong Win 7) đòi hỏi CPU của bạn phải hỗ trợ ảo hóa. May mắn là hầu hết các CPU Sandy Bridge và Ivy Bridge ra mắt gần đây đều hỗ trợ chức năng ảo hóa VT-x từ Intel.
3. Ổ đĩa ảo:
Nếu bạn nào thường tải game hay đĩa phim DVD về xem trên máy tính thì sẽ quen với khái niệm này. Khi máy tính của chúng ta có gắn ổ quang (hay DVD) thì trong My Computer sẽ xuất hiện thêm một ổ đĩa, đó là ổ đĩa thực. Tuy nhiên, một số file game, phần mềm và phim DVD tải về thường có dạng file ảnh (*.ISO, *.IMG…), muốn đọc được các file này mà không cần ghi ra đĩa, bạn phải cài thêm phần mềm đọc file *.ISO hoặc là cài ổ đĩa ảo. Nhiệm vụ của ổ đĩa ảo là nó sẽ giúp cho máy tính có thể đọc được các file ảnh nói trên mà chúng ta không cần phải ghi ra đĩa, và thậm chí máy của bạn cũng không cần gắn ổ quang luôn.
Sau khi tạo ổ đĩa ảo (rất dễ) thì trong My Computer sẽ suất hiện thêm một ổ đĩa ảo và nó giống hệt ổ đĩa thực của bạn. Trên Windows bạn có thể dùng các phần mềm để tạo ổ đĩa ảo như Alcohol hay DAEMON Tools.
4. Desktop ảo:
Cái này thường thấy trong hệ thống máy chủ của các doanh nghiệp, công ty. Ví dụ, trong công ty người ta có một máy chủ trung tâm, chứa toàn bộ dữ liệu, phần mềm và các chương trình cần thiết để các nhân viên có thể sử dụng. Tuy nhiên do có quá nhiều nhân viên, họ có thể ngồi ở phòng riêng hay nhà riêng, người ta không thể đầu tư cho mỗi người một cái máy tính đầy đủ như thế (vì sẽ rất tốn kém), thay vào đó người ta tạo ra cái gọi là Desktop ảo.
Bạn có thể hiểu như thế này: một máy chủ trung tâm có thể tạo ra nhiều Desktop ảo (giống như Desktop máy tính của bạn vậy). Mỗi một nhân viên sẽ được cấp một Desktop ảo của máy chủ đó và cái hay của nó là người ta có thể ngồi làm việc từ xa, dùng một máy tính khác hay thậm chí là các thiết bị di động như điện thoại hay tablet để truy cập vào Desktop ảo và bắt đầu làm việc. Họ có thể sử dụng mọi phần mềm và dữ liệu có trên Desktop ảo, tất cả các dữ liệu sẽ được xử lý và lưu trữ từ xa ngay trên máy chủ trung tâm. Người nhân viên không cần phải có một máy tính quá cao cấp để có thể làm việc với máy chủ trên. Như vậy, nhờ có Dekstop ảo mà chỉ cần một máy chủ, ta có thể phân phát cho nhiều người làm việc cùng lúc trên máy tính đó mà vẫn đảm bảo được tính hiệu quả và độ an toàn của dữ liệu.
5. RAM ảo:
Các hệ thống máy chủ cũng rất hay dùng RAM ảo. RAM ảo được tạo ra từ việc gộp chung toàn bộ số RAM thực đang có trong các máy tính của một Data Center và tạo thành một "cục" RAM (memory pool) chung cho toàn hệ thống. Các máy tính con trong hệ thống máy chủ hay các ứng dụng con có thể truy cập và sử dụng số RAM ảo mày mà không bị giới hạn về mặt phần cứng và có thể dùng số RAM đó để làm bộ nhớ cache tốc độ cao hay làm bộ nhớ cho CPU và GPU. Ưu điểm của RAM ảo là nó cho phép các ứng dụng có thể tận dụng được số RAM cực kỳ lớn, giảm thiểu tình trạng "thắt nghẽn cổ chai" do thiếu RAM và tăng hiệu suất máy tính, tận dụng số RAM nhàn rỗi trong hệ thống máy chủ.
Đó là RAM ảo trên máy chủ, còn máy tính cá nhân thì sao? Có luôn, nhất là các máy Windows, người dùng máy tính Windows thường có cái cách là dùng một phần ổ cứng chia ra để làm RAM ảo, mục đích là để giảm tải gánh nặng xử lý trên RAM thật khi RAM thật không đủ để xử lý các ứng dụng.
6. Máy chủ ảo (VPS - Virtual Private Server):
Là nhiều máy chủ ảo chạy trên một máy chủ thực. Một máy chủ có thể tạo ra nhiều máy chủ ảo để vận hành các website. Nói nôm na thì nó giống như việc bạn tạo máy ảo trên máy tính của mình vậy. Bạn có thể tạo ra nhiều máy ảo chạy nhiều hệ điều hành trên chiếc máy tính của mình thì người quản trị mạng cũng có thể tạo ra nhiều máy chủ ảo chạy nhiều hệ điều hành khác nhau trên cùng một máy chủ thực. Ưu điểm của VPS là nó giúp người ta có thể tiết kiệm đáng kể chi phí dùng để đầu tư cho việc mua, thuê server.
Lấy ví dụ bạn cần thuê một máy chủ để vận hàng website của mình. Vì là website nhỏ nên không cần có một máy chủ quá mạnh, nếu bạn đi thuê hẳn một server thực (Dedicated Server) thì sẽ rất tốn kém và cũng ít khi dùng hết tài nguyên sức mạnh của máy chủ đó. Vì vậy người ta mới dùng tới VPS. Giống như tạo máy ảo, VPS sẽ chia nhỏ sức mạnh của một máy chủ thực và tạo thành nhiều máy chủ nhỏ hơn, nhờ đó mà bạn sẽ tiết kiệm được tiền thuê server, đồng thời người quản trị mạng có thể tận dụng nguồn tài nguyên cúa máy chủ mình một cách tốt hơn, cùng là một máy chủ nhưng có thể tạo ra nhiều VPS để cho nhiều người thuê mướn cùng lúc.