Virtualization – Ảo hóa, đây không phải là một từ để chỉ xu hướng của giới trẻ hiện nay, mà là tên một công nghệ có khả năng sẽ làm thay đổi cách mà loài người vẫn đang tương tác với các hệ thống. Nói một cách văn vẻ, ảo hóa là thứ giúp ta có thể lấy được nhiều hơn từ những phần cứng mà hằng ngày ta vẫn sử dụng, giúp ta quên đi nỗi đau trong quá khứ của những vấn đề về tương thích và sự thiếu hiệu quả trong việc quản lý các nguồn tài nguyên hệ thống.

Ảo Hóa là gì?

Hãy tưởng tượng về một thế giới mà ở đó không còn những mối lo âu về tính tương thích phần mềm, và năng lực của phần cứng lúc nào cũng được tận dụng tối đa. Đó chính là những gì mà ảo hóa hứa hẹn đem lại cho chúng ta. Trong khi nhiều người còn chưa rõ ảo hóa là cái mô tê gì, và cũng chẳng hiểu nó được dùng để làm gì thì công nghệ này vẫn đang tiến hóa hằng ngày. Và vozExpress dám chắc là đến một ngày nào đó, các bạn sẽ phải giật mình khi nhận ra rằng Virtualization đã trở thành một khái niệm quen thuộc với chúng ta và là một phần không thể thiếu trong môi trường điện toán tương lai.

Máy ảo Ubuntu chạy trên Windows XP

Máy ảo Ubuntu chạy trên Windows XP

Một ví dụ đơn giản và thô sơ nhất về ảo hóa:  Giả sử bạn đang dùng MS Windows XP nhưng lại muốn nghịch xem Linux nó hay ho ra làm sao mà mọi người bàn tán về nó nhiều vậy. Công việc của bạn là chỉ cần lên mạng tải về một phần mềm ảo hóa miễn phí như VirtualBox hoặc VMWare. Các phần mềm này sẽ tạo ra một máy ảo con chạy trong lòng Windows XP (gọi là máy ảo vì cái gì của nó cũng ảo hết: BIOS, ổ cứng, ổ CD, …).  Cuối  cùng ta chỉ việc nhét đĩa chứa hệ điều hành Linux vào và thực hiện cài đặt.

Trong quá trình này, toàn bộ đều là ảo, nhưng trải nghiệm của bạn là thật 100%. Dĩ nhiên, ảo hóa không chỉ là một công cụ cho các bạn nghịch ngợm trên máy tính cá nhân. Khi xét trong môi trường mạng, ý nghĩa của ảo hóa là một công nghệ cách mạng và tiềm năng phát triển to lớn.

Khái quát về các loại ảo hóa

Ảo hóa được phân làm hai hạng mục: ảo hóa ứng dụng (Application Virtualization) và ảo hóa nền tảng (Platform Virtualization).

Ảo hóa ứng dụng

Mục tiêu của ảo hóa ứng dụng chính là cung cấp các lớp tương thích (compatibility layers), nó có thể giúp người sử dụng có thể chạy các phần mềm của Windows trên Linux chẳng hạn. Dự án mã nguồn mở Wine chính là một ví dụ tiêu biểu của ảo hóa ứng dụng.

Một cách rõ ràng hơn, ảo hóa ứng dụng như một công nghệ phần mềm giúp tăng sự mềm dẻo trong quản lý và tương thích của các ứng dụng bằng cách tách chúng ra khỏi hệ điều hành chủ. Một ứng dụng không tương thích với hệ điều hành chủ, sau khi được kích hoạt để chạy sẽ bị “lừa” để nó lầm tưởng là đang chạy và tương tác trên một hệ điều hành tương thích. Kiểu như bọn tội phạm dụ các bạn gái yêu công nghệ để bán sang Trung Quốc bằng cách làm cho họ tưởng họ đang được đưa đến tham quan tổng hành dinh của vozExpress.

Ảo hóa ứng dụng - Wine

Ảo hóa ứng dụng – Wine cho phép chạy MS Office và IE trên Linux

Ảo hóa nền tảng

Hạng mục thứ hai là ảo hóa nền tảng – ảo hóa toàn bộ một hệ thống hoặc một hệ điều hành nào đó. Có nhiều cách để đạt được mục tiêu này với những giải pháp có mặt trên cả thị trường máy để bàn và máy chủ (server). Một số giải pháp đi theo chiều hướng đa nhân (multiple kernels – kernel là thành phần trung tâm của một OS) chạy song song, mỗi kernel chạy trên một máy ảo (đây gọi là ảo hóa toàn phần – Full Virtualization).

Đây là loại ảo hóa mà ta không cần chỉnh sửa hệ điều hành khách (guest OS) cũng như các phần mềm đã được cài đặt trên nó để chạy trong môi trường hệ điều hành chủ (host OS). Khi một phần mềm chạy trên guest OS, các đoạn code của nó không bị biến đổi mà chạy trực tiếp trên host OS và nó sẽ tưởng là mình đang được chạy trên một hệ thống thực sự. Bên cạnh đó, Full Virtualization có thể gặp một số vấn đề về hiệu năng và độ hiệu quả trong sử dụng tài nguyên hệ thống.

Trình điều khiển máy ảo phải cung cấp cho máy ảo một “ảnh” của toàn bộ hệ thống, bao gồm BIOS ảo, không gian bộ nhớ ảo, và các thiết bị ảo. Trình điều khiển máy ảo cũng phải tạo và duy trì cấu trúc dữ liệu cho các thành phần ảo (đặc biệt là bộ nhớ), và cấu trúc này phải luôn được cập nhật cho mỗi một truy cập tương ứng được thực hiện bởi máy ảo.

. Mô hình Ảo Hóa Toàn Phần - Full Virtualization

Mô hình Ảo Hóa Toàn Phần – Full Virtualization

Trong khi một chiến lược khác – Paravirtualization – lại sử dụng môt kernel đơn để quản lý các server ảo và cho phép chúng chạy cùng một lúc (có thể ngầm hiểu, một server chính là giao diện người dùng được sử dụng để tương tác với hệ điều hành – hay nói cách khác: đây là cách để ta cảm nhận được hệ điều hành). Paravirtualization đem lại tốc độ cao hơn so với Full Virtualization và hiệu quả sử dụng các nguồn tài nguyên cũng cao hơn.

Nhưng nó yêu cầu các guest OS chạy trên máy ảo phải được chỉnh sửa (chỉnh sửa như thế nào thì không biết). Điều này có nghĩa là không phải bất cứ hệ điều hành nào cũng có thể chạy Paravirtualization được (đối với Full Virtualization thì vô tư). XP Mode của Windows 7 là một ví dụ điển hình về Paravirtualization.

Mô hình Paravirtualization

Mô hình Paravirtualization

Ưu điểm

Ưu điểm lớn nhất mà ảo hóa mang lại cho chúng ta là khả năng hợp nhất hàng loạt các server dịch vụ vào một server duy nhất. Thông thường, các server chỉ sử dụng rất ít tài nguyên của hệ thống, trong đó phần lớn là bộ vi xử lý và bộ nhớ. Điều đó cũng có nghĩa là chúng ta đang lãng phí tài nguyên và tăng chi phí cho những gì mà ta không cần. Việc triển khai hàng loạt các máy ảo (mỗi máy áo tương ứng với 1 dịch vụ) trên một server duy nhất sẽ nâng cao hiệu suất sử dụng tài nguyên hệ thống.

Chính vì vậy, ảo hóa chính là tương lai của điện toán đám mây (cloud computing). Mặc dù không phải là bắt buộc, nhưng những mô hình “đám mây” sử dụng công nghệ ảo hóa sẽ có hiệu năng và tính linh hoạt cao hơn nhờ có khả năng chia sẻ các tài nguyên ảo thông qua hệ thống mạng. Thực ra, chia sẻ tài nguyên không phải là cái gì mới mẻ, nhưng bằng cách sử dụng ảo hóa, chi phí triển khai hệ thống sẽ được giảm đáng kể và bên cạnh đó còn đảm bảo được tính hiệu quả trong việc sử dụng các tài nguyên.

Google, IBM và Microsoft là các ông lớn đang trong quá trình tìm tòi, khai phá những tiềm năng của lĩnh vực này. Một ví dụ của điện toán đám mây chính là Microsoft Office Web Applications có dạng một ứng dụng web miễn phí (kèm quảng cáo).

Chạy MS Office trên trình duyệt Internet Explorer

Chạy MS Office trên trình duyệt Internet Explorer

Nhược điểm

Ảo hóa tuy là một lĩnh vực đang được quan tâm và phát triển, nhưng nó vẫn tồn tại trong nó những vấn đề và trở ngại.

Chi phí đào tạo nguồn nhân lực

Mặc dù chi phí dành cho ảo hóa đang ngày một giảm (Windows 7 Professional cung cấp cho người dùng một hệ thống ảo hóa của Windows XP mà không đòi hỏi người dùng phải rút ví), nhưng việc triển khai các giải pháp ảo hóa này vào trong môi trường doanh nghiệp sẽ cần phải sự đầu tư tiền của để đào tạo cho đội ngũ nhân viên – đây rõ ràng là một trở ngại đối với các doanh nghiệp ít vốn nhưng thích làm to. Nhưng về lâu dài, đây chắc chắn sẽ là một hướng đi khôn ngoan.

Giải quyết sự cố

Một vấn đề mà ta không thể không quan tâm nữa chính và nguy cơ gián đoạn dịch vụ. Ảo hóa rất tốt, rất pro, nhưng triết lý làm việc của nó là “tống tất cả trứng vào trong một giỏ” – quả là mạo hiểm khi đặt toàn bộ các server đảm nhiệm các dịch vụ quan trọng vào trong một server duy nhất. Đặc biệt là khi server duy nhất này do phải tải quá nhiều các tác vụ nên lúc nào cũng phải ở trong tình trạng hoạt động hết công suất, điều này sẽ càng làm gia tăng nguy cơ về các sự cố bất thình lình, mà một khi đã xuất hiện sự cố thì cả lò các server ảo nằm trên server đó sẽ tiêu tùng theo.

Tuy nhiên, nhược điểm này có thể giải quyết bằng một server vật lý dự phòng. Khi server vật lý chính phải ngừng hoạt động do hỏng hóc hoặc bảo trì, server vật lý dự phòng sẽ chạy các máy ảo cho đến khi server vật lý chính được xử lý xong. Nhưng mà để có được tính năng này, thì lại phải chi thêm tiền .

Vấn đề bảo mật

Trở ngại cuối cùng của ảo hóa chính là bảo mật. Việc chạy nhiều máy ảo trên một hệ thống phàn cứng duy nhất, chúng ta sẽ phải đối mặt với nguy cơ bị đột nhập. Ví dụ như trong trường hợp XP mode của Windows 7, ta sẽ phải đối mặt với nguy cơ gặp phải kiểu tấn công guest-to-host attack: phía tấn công sẽ tập kích guest OS (Windows XP) sau đó sẽ dựa vào các lỗ hổng bảo mật của phần mềm ảo hóa để vượt qua các cơ chế bảo vệ, để mấy thứ ghi bậy bạ vào vùng bộ nhớ của host OS (Windows 7). Dĩ nhiên, trường hợp ngược lại cũng có thể xảy ra (tấn công host OS trước sau đó mới thịt guest OS).

Kết luận

Công nghệ ảo hóa đang làm thay đổi bộ mặt của thế giới điện toán bằng các công cụ có khả năng được triển khai và quản lý máy ảo đơn giản, hiệu quả. Bằng việc tối ưu  sử dụng các nguồn tài nguyên hệ thống, và chi phí triển khai ban đầu thấp, ảo hóa đem lại cho các doanh nghiệp khả năng nhanh chóng thu hồi vốn đầu tư.

Bên cạnh đó, người dùng cá nhân cũng có thể hưởng lợi từ công nghệ này do nó loại bỏ những nỗi lo âu về tính tương thích giữa các hệ thống, giúp ta có thể thoái mái nghịch ngợm các công nghệ mới mà không phải tốn quá nhiều thời gian, công sức và hạn chế tối các nguy cơ về hư hỏng hệ thống, mất mát dữ liệu do nghịch dại.

Dĩ nhiên, ảo hóa cũng tồn tại những nhược điểm – nhưng đây là những nhược điểm có thể khắc phục được, và dường như nó quá nhỏ bé khi đem ra so sánh với những ưu điểm mà công nghệ này mang lại cho chúng ta.

Nguồn: http://voz.vn/2009/08/03/mot-chut-ba-hoa-ve-ao-hoa/