Hotline: 098 821 7749 info@acinternational.com.vn

Xu hướng CNTT

Virtualization (ảo hóa) là gì?

Cỡ chữ
Ảo hóa là gì?
 
Nội dung bài viết:

1. Ảo hóa là gì?
2. Bộ phận ảo hóa
3. Ảo hóa phần cứng
4. Ảo hóa lồng nhau
5. Ảo hóa khác
6. Lợi ích của ảo hóa
7. Nhược điểm của ảo hóa
8. Vấn đề bảo mật máy ảo


 
1. Ảo hóa là gì?

- Ảo hóa (tiếng Anh là Virtualization) là quá trình tạo một phiên bản ảo “Virtual Version” của một thứ gì đó giống như phần cứng máy tính “Computer Hardware”. Nó liên quan đến việc sử dụng phần mềm chuyên dụng tạo để tạo phiên bản ảo của tài nguyên máy tính “Computing Resouce” thay vì phiên bản thực của cùng tài nguyên đó.
 


2. Các bộ phận của quá trình ảo hóa (Virtualization parts)

- Ví dụ, máy tính ảo “Virtual Computer” là một hệ thống máy tính chỉ tồn tại bên trong phần mềm của một hệ thống khác chứ không phải là một máy tính thực tế với bộ xử lý và bộ lưu trữ riêng. Thông thường, một số tài nguyên ảo có thể được tạo và sử dụng trong một tài nguyên không ảo.
 
- Hãy tưởng tượng một mô phỏng chuyến bay. Một công cụ đủ để đánh lừa một phi công thực sự. Trình mô phỏng sẽ phải bắt chước không chỉ các điều khiển, mà còn cả âm thanh, cảm giác, và thậm chí cả mùi của buồng lái máy bay thực. Nó sẽ phải phản ứng không chỉ với bất kỳ đầu vào nào từ cần điều khiển, núm vặn và đòn bẩy, nó còn phải trả lại phản ứng dự kiến ​​cho từng thứ đó, chẳng hạn như khó quay hơn hoặc tạo ra âm thanh của thiết bị hạ cánh thu lại hoặc mở rộng.
 
- Trong trường hợp này, một phi công sẽ lái máy bay theo cách giống như máy bay thông thường mà không bao giờ biết rằng đó không phải là máy bay thật. Một máy chủ ảo hoạt động theo cách tương tự. Đối với hệ điều hành, các chương trình được cài đặt và thậm chí cả người dùng, máy chủ ảo hóa thực sự nhận tất cả đầu vào và tạo ra tất cả các phản hồi giống hệt như một hệ thống vật lý, mặc dù nó chỉ được mô phỏng.
 
- Bất kể loại ảo hóa nào, hiệu ứng này đạt được bằng cách cài đặt một chương trình chuyên dụng bắt chước bản chất chính xác của những gì đang được ảo hóa. Trong trường hợp ảo hóa một máy chủ vật lý, quá trình ảo hóa sẽ mô phỏng phần cứng thực tế, lấy dữ liệu đầu vào và trả về dữ liệu từ hệ điều hành giống như một máy chủ thực tế. Sự bắt chước này đi xa đến mức máy chủ ảo hóa có thể lập báo cáo trạng thái pin hoặc nhiệt độ CPU, mặc dù chỉ tồn tại một CPU ảo.
 
- Host machine (Máy chủ)
  • Host machine (Máy chủ) là phần cứng vật lý mà quá trình ảo hóa diễn ra. Máy này chạy phần mềm ảo hóa cho phép máy ảo tồn tại. Các thành phần vật lý của nó như bộ nhớ “Memory”, bộ lưu trữ “Storage” và bộ xử lý “Processor” cuối cùng sẽ xử lý các nhu cầu của máy ảo. Các tài nguyên này thường được ẩn hoặc che khỏi máy khách “Guest machine”.
  • Để tạo ra hiệu ứng này, một phần mềm ảo hóa, chẳng hạn như hypervisor, được cài đặt trên phần cứng vật lý thực tế.
  • Mục đích của máy chủ “Host Machine” là cung cấp sức mạnh tính toán vật lý cho các máy ảo dưới dạng CPU, bộ nhớ, bộ lưu trữ và kết nối mạng.
 
- Virtual machine (guest machine) (Máy ảo/ Máy khách)
  • Máy chỉ ở dạng phần mềm “Software-only Machine” chạy trên máy chủ trong môi trường ảo đã tạo. Có thể có nhiều máy ảo chạy trên một máy chủ duy nhất. Một máy ảo không cần phải là một máy tính. Có thể ảo hóa nhiều loại lưu trữ, cơ sở dữ liệu và các hệ thống khác.
  • Một máy ảo chạy môi trường riêng của nó. Nó giả lập hoặc mô phỏng một phần cứng vật lý như máy tính để bàn hoặc máy chủ. Tuy nhiên, mọi thứ đều được chuyển qua hypervisor, nơi thực hiện các yêu cầu thực tế tới phần cứng thực. Phần cứng trả về bất kỳ dữ liệu hoặc phản hồi nào cho hypervisor, dữ liệu này sẽ chuyển nó đến máy ảo.
  • Mỗi máy ảo chạy riêng tách biệt đối với tất cả các máy ảo khác. Trên thực tế, mỗi máy ảo tin rằng nó là hệ thống duy nhất chạy trên phần cứng.
  • Nó cũng có thể mô phỏng phần cứng máy tính thay thế. Ví dụ, một máy ảo giả lập một mảng lưu trữ “Storage Array” có thể được tạo trên phần cứng máy chủ tiêu chuẩn. Mảng lưu trữ ảo sẽ hoạt động giống như khi nó có 20 ổ cứng được nối mạng, vì hypervisor sẽ hoạt động như thể điều đó là đúng.
  • Mục đích của máy khách là chạy các ứng dụng và môi trường người dùng cho mỗi hệ thống ảo.

- Hypervisor (Trình quản lý máy ảo)
  • Đôi khi được gọi là trình quản lý máy ảo, Hypervisor là phần mềm tồn tại để chạy, tạo và quản lý các máy ảo. Hypervisor là thứ giúp cho việc ảo hóa có thể thực hiện được và tạo ra một môi trường ảo trong đó các máy khách chạy. Đối với máy khách, máy ảo của hypervisor là máy duy nhất tồn tại, ngay cả khi có nhiều máy ảo chạy trên cùng một phần cứng vật lý.
  • Type-1 hypervisors, thường gọi là Trình quản lý máy ảo vật lý “Bare-metal Hypervisors”, được cài đặt trực tiếp vào phần cứng vật lý. Do đó, chúng phải chứa hệ điều hành riêng để khởi động, chạy phần cứng và kết nối mạng. Type-1 hypervisors phổ biến bao gồm Microsoft Hyper-V và VMware ESXi.
  • Type-2 hypervisors, thường gọi là Trình quản lý máy ảo lưu trữ “Hosted Hypervisors”, chạy trên hệ điều hành được cài đặt trực tiếp trên phần cứng. Trong trường hợp này, phải cài đặt bản sao Windows hoặc hệ thống dựa trên Unix để khởi động hệ thống và truy cập phần cứng. Khi hệ điều hành đang chạy, hypervisor được lưu trữ có thể khởi chạy. Các Type-2 hypervisors thường được sử dụng để chạy nhiều hệ điều hành trên một máy duy nhất, thay vì để mô phỏng nhiều hệ thống đang chạy trên phần cứng.
  • Các Type-2 hypervisors phổ biến bao gồm VMware Workstation, VirtualBox và Parallels mô phỏng hệ điều hành Windows trong khi chạy trên máy tính chạy Mac.
  • Mục đích của hypervisor là quản lý từng máy ảo và cung cấp cho nó các tài nguyên cần thiết để chạy.

 


3. Ảo hóa phần cứng “Hardware virtualization”

- Loại ảo hóa phổ biến nhất là ảo hóa phần cứng “Hardware virtualization”. Với ảo hóa phần cứng, một chương trình phần mềm trừu tượng hóa phần cứng vật lý như phần cứng ảo. Hypervisor hoạt động như một người trung gian giữa máy ảo và phần cứng vật lý.
 
- Ảo hóa phần cứng tạo ra một phiên bản ảo, chỉ ở dạng phần mềm, của máy vật lý, chẳng hạn như máy tính “Compuer”, bộ định tuyến “Router” hoặc mảng lưu trữ “Storage Array”. Hình thức ảo hóa phần cứng cơ bản nhất là việc tạo ra một máy tính ảo “virtual computer” hoặc máy chủ ảo “virtual server”. Trong trường hợp này, máy tính ảo bắt chước một máy vật lý thực hoàn chỉnh với bộ xử lý, bộ nhớ địa chỉ và dung lượng đĩa cứng. Khi máy ảo tương tác với bộ xử lý hoặc bộ nhớ, nó thực sự tương tác với hypervisor, sau đó sẽ chuyển qua quyền truy cập. Tương tự như vậy, hypervisor nhận bất kỳ dữ liệu nào từ phần cứng vật lý và sau đó chuyển nó đến máy ảo như thể nó có nguồn gốc từ phần cứng ảo.
 
- Bất cứ điều gì người ta có thể làm trên một máy thực tế đều có thể được sao chép trong máy ảo, kể cả việc cài đặt các hệ điều hành khác nhau. Một máy chủ ảo hóa duy nhất có thể chạy một số máy ảo khác nhau, mỗi máy có hệ điều hành riêng, chương trình đã cài đặt, dịch vụ đang chạy, cấp bản vá, v.v. Mỗi máy được cấu hình, chạy và cài đặt theo yêu cầu của việc sử dụng, hoàn toàn tách biệt với bất kỳ máy ảo nào khác.
 
- Vì máy ảo không biết rằng nó đã được ảo hóa nên phần mềm và dịch vụ chạy bên trong không cần phải cài đặt hoặc cấu hình đặc biệt để được ảo hóa.
 
- Nói chung, mỗi máy ảo được phân vùng khả năng sử dụng một tập hợp con toàn bộ sức mạnh của máy chủ. Ví dụ: máy khách có thể được thiết lập với 20 GB RAM, ngay cả khi máy chủ thực tế có RAM 512 GB.
 
- Đối với máy khách, chỉ tồn tại các tài nguyên do hypervisor hiển thị. Trong ví dụ trên, máy ảo sẽ không bao giờ có thể truy cập hơn 20 GB RAM bất kể nhu cầu. Đối với máy ảo chỉ tồn tại số lượng đó.
 
- Tổng tài nguyên hiển thị cho tất cả các máy khách kết hợp không được giới hạn trong tổng tài nguyên của máy chủ. Hypervisor có thể cung cấp 20 GB RAM cho 50 máy ảo khác nhau trên một hệ thống chỉ có 512 GB RAM. Bởi vì hầu hết các hệ thống không sử dụng tối đa tài nguyên sẵn có, nên hypervisor có thể phân bổ động bộ nhớ máy chủ bên dưới cho mỗi hệ thống khi cần. Điều này được gọi là đăng ký quá mức “Oversubscription”.
 
- Ngoài ra, vì hypervisor tạo ra ảo giác về các máy vật lý đơn lẻ, hoàn toàn có thể truy cập được, nên không máy ảo nào có thể nhìn thấy máy ảo khác. Điều này cho phép nhiều máy ảo chạy mà không cần tương tác. Kết quả là, trên cùng một máy chủ, không chỉ có thể tồn tại các máy ảo có kích thước khác nhau mà còn với các hệ điều hành khác nhau.
 
- Điện toán đám mây “Cloud computing” và ảo hóa “Virtualization”
  • Ảo hóa “Virtualization” là chìa khóa của điện toán đám mây “Cloud computing”. Các nhà cung cấp dịch vụ điện toán đám mây cung cấp khả năng tạo, duy trì và quản trị một máy ảo trên phần cứng bên ngoài cơ sở “off-premises hardware”. Bởi vì mỗi máy ảo tồn tại như một hệ thống riêng biệt, không cần phải tách biệt các máy khách “Clients” vì mục đích bảo mật hoặc ổn định. Ngay cả khi người dùng làm hỏng toàn bộ hệ thống của họ, thiệt hại đó không ảnh hưởng gì ngoài máy ảo duy nhất đó.
  • Trước khi ảo hóa, việc lưu trữ và chạy các máy chủ ngoài cơ sở “Off-side server” của nhà cung cấp khác đã được thực hiện dưới dạng lưu trữ từ xa “Remote hosting”. Để làm điều này, nhà cung cấp Cloud sẽ phải cung cấp một máy chủ vật lý thực tế cho mỗi máy được yêu cầu. Việc duy trì tỷ lệ máy chủ vật lý một đối một này với tỷ lệ máy chủ chức năng của khách hàng là rất tốn công sức và rất tốn kém.
  • Với sự ra đời của điện toán đám mây “Cloud computing”, nhà cung cấp không cần phải khớp phần cứng vật lý với từng yêu cầu đối với một máy mới. Thay vào đó, một máy ảo có thể được tạo ra.
  • Các nhà cung cấp đám mây lớn cài đặt và vận hành phần cứng máy chủ cực kỳ mạnh mẽ, bản thân nó thường được ảo hóa từ một loạt phần cứng. Đối với mỗi máy chủ lớn hơn này, nhà cung cấp dịch vụ đám mây tạo ra các máy ảo theo yêu cầu của khách hàng.
  • Ví dụ: một máy khách “client” có thể yêu cầu một máy chủ mới với một lượng sức mạnh xử lý, bộ nhớ và không gian đĩa nhất định. Nhà cung cấp dịch vụ đám mây sẽ “khởi tạo” hoặc khởi động một máy ảo mới với các thông số kỹ thuật đó trên một trong các máy chủ hiện có của chính họ mà không cần cài đặt bất kỳ phần cứng vật lý mới nào. Vì mỗi máy ảo không có quyền truy cập trực tiếp vào phần cứng vật lý bên dưới hypervisor nên không có rủi ro đối với dữ liệu hoặc sự ổn định của hệ thống.


 

- Nhà cung cấp trình quản lý máy ảo “Virtualization hypervisor vendors
  • Có một số công ty cung cấp sản phẩm hypervisor hoặc trình quản lý máy ảo cho phép ảo hóa toàn bộ phần cứng. Lớn nhất là VMware và dòng sản phẩm vSphere của nó, và Microsoft với Hyper-V. Những nhà cung cấp khác bao gồm Citrix XenServer và KVM.
 

4. Ảo hóa lồng nhau “Nested virtualization”

- Điểm nổi bật của ảo hóa là mỗi hệ thống ảo hóa không thể phân biệt được nó có phải là ảo hay không, hay đang chạy trực tiếp trên phần cứng. Điều đó giúp bạn có thể tạo một máy ảo bên trong một máy ảo, một quá trình được gọi là ảo hóa lồng nhau “Nested virtualization”. Ví dụ, một máy ảo được tạo bởi một công ty trên Amazon AWS có thể nằm trong một máy ảo do Amazon tạo ra.
 
- Về mặt nào đó, đây giống như một phiên bản máy tính của Blade Runner. Các máy chủ không biết chúng là máy chủ thực hay máy chủ được tạo ảo, mặc dù mỗi máy chủ đều tin rằng chúng là "thật".
 
- Không có giới hạn cho việc lồng các máy ảo với nhau như thế này. Vì vậy, Amazon có thể lắp đặt một hệ thống máy chủ vật lý “Bare-metal system” trong một trung tâm dữ liệu “Data center”. Nó cài đặt một Trình quản lý máy ảo vật lý “Bare metal hypervisor” trên hệ thống đó để tạo ra một hệ thống cho bộ phận điện toán đám mây của nó sử dụng. Đến lượt mình, bộ phận điện toán đám mây sẽ cài đặt một Trình quản lý máy ảo “Hypervisor” chia từng hệ thống theo khu vực. Khi khách hàng đặt mua một máy ảo mới, bộ phận điện toán đám mây tại Amazon sẽ tạo ra một máy ảo khác. Cuối cùng, máy khách cũng tiếp tục tạo ra hai máy ảo từ đó, một máy dành cho sản xuất và một máy khác dành cho môi trường thử nghiệm. Mỗi máy hoạt động chính xác như một phần cứng vật lý.
 
- Việc lồng ghép này là rất quan trọng để cung cấp một môi trường mà không cần kiến ​​thức về hệ thống trước đó hoặc hữu ích.
 


5. Các kiểu ảo hóa khác
- Ảo hóa không gian làm việc “Workspace virtualization”
  • Thay vì tạo một máy vật lý ảo, có thể tạo một hệ điều hành ảo hoặc máy tính để bàn. Trong trường hợp này, môi trường người dùng, mọi thứ bên trên hệ điều hành được gói gọn trong một màn hình ảo duy nhất. Nhiều máy tính để bàn ảo có thể được cài đặt trên cùng một máy tính. Mỗi bộ ứng dụng và tùy chỉnh được khóa trong màn hình ảo và không ảnh hưởng đến các màn hình ảo khác.
  • Một máy tính để bàn ảo có thể được di chuyển từ máy vật lý này sang máy tính vật lý khác. Khi máy tính để bàn ảo được lưu trữ trên máy chủ nối mạng, điều này cho phép người dùng di chuyển từ máy tính này sang máy tính khác trong khi luôn có môi trường máy tính để bàn của riêng họ. Không giống như ảo hóa phần cứng, sử dụng một Hypervisor để điều khiển các máy ảo bên dưới hệ điều hành, một màn hình ảo chỉ có thể được sử dụng trên một hệ điều hành được cài đặt và cấu hình đúng cách. Ngoài ra, một không gian làm việc ảo có thể nhìn xuyên qua phần cứng vật lý đang chạy trên máy chủ.
 
- Ảo hóa ứng dụng “Application virtualization”
  • Có thể ảo hóa một ứng dụng. Không giống như ảo hóa vật lý, trong đó hypervisor bắt chước cấu hình phần cứng đầy đủ, ảo hóa ứng dụng yêu cầu ứng dụng có thể được ảo hóa. Không giống như ảo hóa máy tính để bàn, ảo hóa ứng dụng thường không cho phép các ứng dụng khác tương tác với ứng dụng được ảo hóa.
  • Ảo hóa ứng dụng được sử dụng chủ yếu để cho phép ứng dụng chạy trên hệ thống mà không cần phải cài đặt ứng dụng đó. Đúng hơn, một ứng dụng ảo chứa môi trường ảo của riêng nó để chạy.
  • Cũng giống như ảo hóa vật lý yêu cầu một hypervisor để tạo và quản lý máy ảo, ảo hóa ứng dụng yêu cầu một trình quản lý ứng dụng như Microsoft App-V hoặc Citrix ZenApp.
 
 
 
6. Lợi ích của ảo hóa

- Nhiều lợi ích của ảo hóa đang thúc đẩy sự phát triển của nó. Hiểu được những lợi ích này cũng thường trả lời câu hỏi tại sao phải ảo hóa.
  • Hợp nhất máy chủ “Server consolidation”
    • Một trong những lợi ích chính của ảo hóa là hợp nhất máy chủ. Theo truyền thống, quyết định mua và cài đặt máy chủ của một doanh nghiệp được thúc đẩy bởi các yếu tố như nhu cầu tài nguyên, sự ổn định và bảo mật. Sử dụng các máy chủ khác nhau được cung cấp cân bằng tải bằng cách cung cấp nhiều tài nguyên cho mọi dịch vụ và ứng dụng quan trọng. Ngoài ra, ở trên các máy chủ khác nhau có nghĩa là nếu một máy chủ bị xâm phạm, máy chủ kia có thể tiếp tục chạy. Với ảo hóa, những lợi ích tương tự có thể được thực hiện trên một phần cứng. Máy chủ vẫn hoàn toàn bị cô lập bởi máy ảo và máy chủ không còn cần kích thước hoặc không gian quá lớn.


  • Tiêu thụ năng lượng “Energy consumption”
    • Mỗi máy chủ mới sử dụng nhiều năng lượng hơn để chạy bộ xử lý và phần cứng khác của nó. Ngoài ra, mỗi bộ phận trong số đó tạo ra nhiệt, nhiệt lượng này phải được hút đi, thường thông qua quạt và điều hòa không khí. Việc thêm máy ảo không thêm phần cứng, không yêu cầu thêm nguồn hoặc làm mát.
 
  • Tính khả dụng tốt hơn “Better availability”
    • Máy ảo rất dễ bị sao chép. Điều này giúp bạn dễ dàng tạo các bản sao mới của cùng một hệ thống mà còn là một cách để cải thiện tính khả dụng. Thay vì lên lịch thời gian ngừng hoạt động vào cuối tuần, để cài đặt các bản vá lỗi hoặc nâng cấp hệ thống, quản trị viên có thể cài đặt các bản vá lỗi hoặc nâng cấp trên bản sao của máy ảo đang chạy, sau đó hoán đổi máy ảo cũ lấy máy mới được nâng cấp.
 
  • Khôi phục thảm họa “Disaster recovery”
    • Ảnh chụp nhanh “Snapshots” của máy ảo cung cấp một cách để tạo hoặc đưa hệ thống về trạng thái chính xác của nó mà không cần phải quay lại cùng một phần cứng. Do đó, ảnh chụp nhanh cung cấp một hình thức khắc phục thảm họa tuyệt vời. Nếu có điều gì đó xảy ra với toàn bộ trung tâm dữ liệu, toàn bộ hoạt động về mặt lý thuyết có thể được khôi phục nhanh chóng bằng cách quay các máy ảo mới ở một vị trí mới bằng cách sử dụng ảnh chụp nhanh của hệ thống gốc.



 
7. Nhược điểm của ảo hóa

- Mặc dù ảo hóa mang lại nhiều lợi thế, nhưng nó lại tạo thêm sự phức tạp cho môi trường máy tính.
 
- Đối với các công ty cài đặt và quản lý ảo hóa trong trung tâm dữ liệu của riêng họ, hypervisor đại diện cho một lớp khác cần được cài đặt, quản lý, cấp phép và nâng cấp. Điều này có thể yêu cầu cá nhân hoặc đào tạo bổ sung.
 
- Vì ảo hóa phụ thuộc vào tài nguyên đủ mạnh để chạy nhiều máy ảo cùng một lúc, nên ảo hóa có thể yêu cầu đầu tư nhiều hơn vào phần cứng, đặc biệt là trả trước. Trong khi một máy chủ mạnh hơn nhiều cuối cùng có thể thay thế hàng chục máy chủ kém mạnh hơn thông qua ảo hóa và giảm chi phí dài hạn, trong một số môi trường có thể mất vài năm để kiếm lại khoản đầu tư ban đầu.
 
- Với rất nhiều khả năng có thể, nhiệm vụ quan trọng, các máy ảo chạy trên một phần cứng vật lý duy nhất, khả năng khắc phục thảm họa và khả năng chịu lỗi thậm chí còn quan trọng hơn, có lẽ làm tăng thêm chi phí và sự phức tạp.
 
 

8. Vấn đề bảo mật máy ảo

- Việc tách biệt hoàn toàn các máy ảo cung cấp khả năng bảo mật tuyệt vời giữa các hệ thống. Bất kỳ vi phạm bảo mật nào, dù là cố ý hay vô tình, đều yêu cầu khả năng truy cập tài nguyên của hệ thống dễ bị tấn công. Với ảo hóa, mỗi hệ thống chạy độc lập và thậm chí không biết đến sự tồn tại của các máy ảo khác. Vì vậy, không có cách nào để gắn bất kỳ loại tấn công bảo mật nào “xuyên qua” bức tường ảo hóa.
 
- Có một mối quan tâm lý thuyết rằng một hypervisor, theo định nghĩa, có một số hình thức truy cập vào mọi máy ảo trên một hệ thống vật lý nhất định. Nếu ai đó có thể xâm phạm chính hypervisor bằng cách nào đó, sẽ có khả năng xảy ra một cuộc tấn công kiểu “người ở giữa” trong đó dữ liệu đi vào và ra khỏi hypervisor có thể bị chặn và sau đó đọc hoặc sửa đổi. Mặc dù không có cuộc tấn công thành công nào thuộc loại này hiện được biết đến, nhưng điều đó không có nghĩa là nó sẽ không bao giờ xảy ra. Khái niệm tấn công hypervisor được gọi là hyperjacking.