Tại sao phải ảo hóa
Hệ thống các máy chủ luôn làm việc ở trạng thái rỗi nên hiệu quả sử dụng tài nguyên (bộ xử lý và bộ nhớ) thường rất thấp, gây lãng phí rất lớn. Để tăng hiệu quả sử dụng tài nguyên tức là khai thác tối đa năng lực máy chủ, tạo ra môi trường làm việc cho nhiều người cùng chia sẻ máy chủ, ý tưởng này có từ thời mainframe nay gọi là “ảo hóa”.
Điện toán đám mây (Cloud Computing) thực chất là điện toán máy chủ ảo, trong đó sử dụng công nghệ máy tính và phát triển trên cơ sở Internet. Như vậy “đám mây” chính là Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó. Người dùng truy cập các dịch vụ của nhà cung cấp trên đám mây cho dù người đó không hiểu biết, chưa từng có bất cứ kinh nghiệm nào về công nghệ đó, người dùng hoàn toàn không biết về cơ sở hạ tầng cung cấp công nghệ đó, thông tin được lưu trữ tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các phương tiện máy tính cầm tay, …”- đó là Ảo Hóa.
Ư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 máy chủ dịch vụ vào một máy chủ tức là thiết lập nhiều máy chủ ảo (mỗi máy tương đương với một dịch vụ) trên một máy chủ thực. Nói nôm na, ảo hóa cho phép một máy tính làm việc trong nhiều môi trường khác nhau, Ví dụ, công nghệ ảo hóa hệ điều hành Linux, các phần mềm nguồn mở và phần mềm thương mại trên nền Linux, MS Windows, Andoid OS ảo hóa cho phép đồng thời sử dụng một máy Linux và một máy Windows cùng trên một hệ thống.
Về mặt kĩ thuật, ảo hóa tách biệt người sử dụng và ứng dụng về những đặc tính phần cứng chuyên biệt của các hệ thống mà họ sử dụng để thực hiện các công việc của máy tính. Công nghệ này hứa hẹn mở ra một làn sóng cách mạng phần cứng và phần mềm hoàn toàn mới.
Ảo hóa làm đơn giản hóa quá trình nâng cấp các hệ thống (trong một số trường hợp, không cần nâng cấp hệ thống), bằng việc cho phép người sử dụng nắm bắt được trạng thái của máy ảo (VM), và sau đó chuyển trạng thái đó trong tình trạng nguyên vẹn từ hệ thống cũ sang một hệ thống mới. Ngoài ra, ảo hóa cũng hứa hẹn tạo ra khả năng điện toán với hiệu quả cao hơn. Số lượng thực các bộ xử lý, bộ nhớ, và các nguồn lưu trữ … cần có cho hệ thống ngày nay sẽ được điều chỉnh và quyết định bởi các tính năng tính toán của ảo hóa. công nghệ ảo hóa hệ điều hành Linux, các phần mềm nguồn mở và phần mềm thương mại trên nền Linux, MS Windows, Andoid OS
Có thể nói rằng ảo hóa quyết định tương lai điện toán đám mây, mô hình “đám mây” áp 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 mạng. Chia sẻ tài nguyên không phải 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. Ảo hóa trở thành lựa chọn tối ưu vì chi phí quản trị, nguồn nuôi, khai thác bảo dưỡng hệ thống máy chủ là rất lớn.
Ảo hóa làm tăng hiệu quả phần cứng, thật dễ dàng nhận biết, hệ thống máy chủ ở các trung tâm dữ liệu chỉ làm việc với hiệu suất khoảng 20% – 30% năng lực, như vậy khoảng 70% – 80% công suất bị lãng phí trong khi đó các điều kiện phòng ốc, điện năng, điều hòa khí hậu, . . . vẫn phải đảm bảo, như vậy chi phí rất lớn. Tài nguyên đang bị lãng phí nhưng các máy chủ vẫn được cải tiến để mạnh hơn, nếu hiệu quả sử dụng tài nguyên phần cứng vẫn dậm chân tại chỗ thì vô hình chung thiệt hại về chí phí tăng theo cấp số nhân. Ảo hóa để chỉ dùng một máy chủ hỗ trợ cùng một lúc nhiều hệ thống chính là cách giảm chi phí tăng hiệu suất sử dụng tài nguyên.
Nhu cầu điện tử hóa văn bản, tài liệu hay còn gọi là “Số hóa văn bản” đang bùng nổ ở khắp mọi nơi, cần rất nhiều máy chủ để lưu trữ lượng thông tin khổng lồ này tại các trung tâm dữ liệu, nhưng vấn đề đặt ra là : Dung lượng lưu trữ của chúng dần cạn kiệt và không thể tăng máy chủ lên vô tận vì vấp phải vấn đề kiến trúc mạng. Do đó công nghệ ảo hóa lưu trữ dữ liệu ra đời, nghĩa là lưu trữ này được xử lý bằng bất kỳ phần cứng độc lập nào. Công nghệ này cho phép host cùng lúc các hệ thống máy khách trên chỉ một máy chủ, như vậy các trung tâm dữ liệu được nâng cấp dung lượng lưu trữ, do đó giảm chi phí tăng dung lượng trung tâm dữ liệu (cách làm truyền thống không ảo hóa lưu trữ dữ liệu), đó là lợi ích do ảo hóa lưu trữ mang lại.
2. Ảo hóa máy chủ
Ba cách ảo hóa máy chủ : Ảo hóa hệ điều hành; mô phỏng phần cứng;
và paravirtualization (tạm gọi ảo hóa song song), một khái niệm tương đối mới phân chia thành các khối lượng công việc nhỏ hơn và hoạt động tốt hơn.
2.1. Giải pháp thứ nhất
Mô phỏng phần cứng, tạo nhiều máy chủ ảo trên một máy chủ thực, mỗi máy ảo chạy hệ điều hành riêng và được cấp riêng số xung nhịp bộ xử lý trung tâm (CPU), dung lượng lưu trữ và băng thông mạng. Tài nguyên máy chủ có thể được cấp theo nhu cầu của từng máy ảo, giải pháp này tạo khả năng hòa mạng các hệ thống máy chủ cồng kềnh (Hình 1).
Trong phương pháp mô phỏng phần cứng, phần mềm dùng để ảo hóa (thường được biết đến là một hypervisor) trình diễn một môi trường phần cứng đã mô phỏng để các hệ điều hành khách hoạt động trên đó. Môi trường phần cứng được mô phỏng này thường ám chỉ phần mềm điều khiển máy ảo (Virtual Machine Monitor – VMM), nó tạo ra môi trường phần cứng được chuẩn hóa trên đó hệ điều hành khách khu trú và tương tác. Do hệ điều hành máy khách và VMM tạo ra một gói thống nhất, gói này có thể được chuyển từ máy này sang máy khác, mặc dù các cấu hình thực của hệ thống mà gói chạy trên đó có thể khác. Hypervisor khu trú giữa VMM và phần cứng vật lý chuyển yêu cầu tài nguyên từ VMM sang máy chủ thực.
Như vậy các ứng dụng chạy trên một hệ điều hành khách hoàn toàn biệt lập với ít nhất một hệ điều hành khách đang hoạt động (một hệ điều hành chạy trên mỗi VMM), Các VMM đều khu trú trên một hypervisor ảo, như vậy nó không chỉ hỗ trợ nhiều hệ điều hành, mà còn hỗ trợ nhiều hệ điều hành khác nhau. Những hệ điều hành này có thể khác nhau về phiên bản hoặc hoàn toàn khác nhau như Windows và Linux có thể chạy đồng thời trên phần mềm ảo hóa phần cứ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.
Hình 1. Mô phỏng phần cứng
Ảo hóa phần cứng được sử dụng rộng rãi trong phát triển phần mềm và bảo đảm chất lượng (QA), vì nó đảm bảo các hệ điều hành khác nhau chạy đồng thời trên một máy, cho phép phát triển song song hoặc thử nghiệm phần mềm ở nhiều môi trường hệ điều hành khác nhau. Mô phỏng phần cứng cũng được dùng để hợp nhất máy chủ, ở đó các môi trường ứng dụng/hệ điều hành được copy và chuyển từ nhiều máy chủ thực riêng rẽ sang một máy chủ thực chạy phần mềm ảo. Một trong những nhược điểm của việc mô phỏng phần cứng là nó ảnh hưởng đến khả năng hoạt động của hệ thống khiến cho các ứng dụng trên các máy ảo chạy chậm hơn bình thường.
Một nhược điểm khác là phần mềm ảo hóa xuất hiện trước hệ điều hành khách trong một giao diện phần cứng được tiêu chuẩn hóa (VMM). Hypervisor mang đến cho VMM một giao diện, sau đó chuyển thành các yêu cầu đối với các tài nguyên thực trên máy. Nghĩa là hypervisor phải giữ các giao diện cho các tài nguyên của máy; các tài nguyên này được gọi là các trình điều khiển thiết bị. Vấn đề của trình điều khiển thiết bị đối với mô phỏng phần cứng đó là hypervisor đã có các trình điều khiển và người sử dụng không thể cài đặt các trình điều khiển mới (không giống như trên máy tính cá nhân). Do đó, nếu một máy có tài nguyên phần cứng và hypervisor không có trình điều khiển, phần mềm ảo hóa không thể chạy trên máy. Điều này có thể gây vấn đề, đặc biệt cho các công ty muốn sử dụng các phần cứng mới.
Các công ty cung cấp phần mềm ảo hóa mô phỏng phần cứng gồm có VMWare (ở hai phiên bản VMWare Server và ESX Server) và Microsoft. Microsoft cung cấp một sản phẩm được gọi là Virtual Server. VMWare chỉ hỗ trợ các máy chủ x86, đặc biệt là Hệ điều hành Microsoft. Phần mềm Virtual Server của Microsoft được dự đoán là sẽ bị Hyper-V thay thế, phần mềm này được biết đến là một phần của Microsoft Windows Server 2008. Một phần mềm khác đó là Xen, phần mềm thay thế nguồn mở dựa trên hypervisor.
2.2. Giải pháp thứ hai
Ảo hóa hệ điều hành là sử dụng bản sao của một hệ điều hành để tạo các máy chủ ảo ngay trên hệ điều hành, nếu Linux là hệ điều hành chủ – cho phép tạo thêm nhiều bản Linux làm việc trên cùng máy, như vậy chỉ cần một hệ điều hành có bản quyền, nhưng không thể chạy nhiều hệ điều hành cùng một máy.
Một hệ điều hành được khai thác ngay trên một hệ điều hành chủ có sẵn cho phép cung cấp một tập hợp các thư viện tương tác với các ứng dụng, khiến cho mỗi ứng dụng được hỗ trợ cảm thấy như đang chạy trên một máy chủ thực. Từ phối cảnh của ứng dụng, nó được nhận thấy và tương tác với các ứng dụng chạy trên hệ điều hành ảo, và tương tác với hệ điều hành ảo mặc dù nó kiểm soát tài nguyên hệ điều hành ảo. Nói chung, không thể thấy các ứng dụng này hoặc các tài nguyên hệ điều hành đặt trong hệ điều hành ảo khác.
Ảo hóa hệ điều hành rất tốt cho các công ty máy chủ Web, ảo hóa container (OS ảo) để khiến cho một trang Web chủ “tin rằng” trang web này kiểm soát toàn bộ máy chủ Tuy nhiên, trên thực tế mỗi trang Web chủ chia sẻ cùng một máy với các trang Web khác, mỗi trang Web này lại có một container riêng.
Giải pháp này yêu cầu rất ít tài nguyên hệ thống, bảo đảm hầu hết tài nguyên máy sẵn có cho các ứng dụng chạy trên container. Tuy vậy nó giới hạn lựa chọn hệ điều hành, container hóa (các container cung cấp một hệ điều hành tương tự như hệ điều hành chủ và thậm chí thống nhất về phiên bản và các bản vá lỗi).
Như chúng ta có thể tưởng tượng, có thể xảy ra vấn đề nếu nhà cung cấp muốn chạy các ứng dụng khác nhau trên các container, do các ứng dụng thường được chứng thực cho một phiên bản hệ điều hành và các bản vá lỗi. Do đó, ảo hóa hệ điều hành thích hợp nhất với cấu hình thuần nhất, trong các tình huống này ảo hóa hệ điều hành là sự lựa chọn hoàn hảo.
2.3. Giải pháp thứ 3
Phần mềm ảo hóa là một lớp dồn các truy cập các hệ điều hành máy chủ vào tài nguyên máy chủ thực, dùng một hạt nhân đơn để quản lý các máy chủ ảo và cho phép chúng chạy cùng một lúc, một máy chủ 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 (cách để cảm nhận được hệ điều hành) gọi là ảo hóa song song (Hình 2). Nó đạt được tốc độ cao hơn, sử dụng tài nguyên hiệu quả hơn ảo hóa khác, nhưng các hệ điều hành khách chạy trên máy ảo phải được chỉnh sửa, tức là không phải bất cứ hệ điều hành nào cũng có thể chạy song song được.
Hình 2. Ảo hóa song song
Ảo hóa song song chi phi thấp do lượng mã ít, ngược lại mô phỏng phần cứng chèn toàn bộ một lớp mô phỏng phần cứng giữa hệ điều hành chủ và phần cứng thực, ảo hóa song song cho phép một hệ điều hành chủ truy cập các tài nguyên phần cứng thực, đồng thời ngăn không cho các hệ điều hành chủ khác truy cập các nguồn tài nguyên đó.
Ảo hóa song song không giới hạn các trình điều khiển thiết bị trong phần mềm ảo hóa, sử dụng các trình điều khiển thiết bị có trong một hệ điều hành chủ, như vậy tận dụng tối đa phần cứng các máy chủ, không bị giới hạn phần cứng mà các trình điều khiển phải sẵn có trong phần mềm ảo hóa như trường hợp mô phỏng phần cứng. Nhưng dồn truy cập vào một phần cứng gốc, ảo hóa song song yêu cầu các hệ điều hành chủ phải thay đổi để tương tác với giao diện song song tức là phải truy cập mã nguồn hệ điều hành.
3. Ảo hóa lưu trữ và ứng dụng
Nội dung số bùng nổ, kinh doanh ứng dụng số trên nền Web cũng bùng nổ do đó nhiều ứng dụng đã tạo ra lượng dữ liệu lớn hơn dung lượng lưu trữ trên một máy chủ do đó giải quyết vấn đề lưu trữ dữ liệu là yêu cầu cấp bách của các công ty. Mặt khác nhiều máy cần truy cập cùng dữ liệu của các ứng dụng trên nền Internet, như vậy các dữ liệu trễ trên một máy dễ gây ra tắc nghẽn, đấy là chưa kể đến khả năng các máy chủ có thể không hoạt động nếu một máy chủ chứa toàn bộ dữ liệu của ứng dụng gặp sự cố. Vấn đề nảy sinh khi hàng trăm ngàn máy có yêu cầu sao lưu dữ liệu, cách giải quyết tốt nhất là “ảo hóa dữ liệu tức là người ta lưu trữ tập trung (lưu trữ ảo hóa), giảm chi phí và tăng hiệu quả quản lý dữ liệu.
Thực chất ảo hóa dẫn đến dỡ bỏ nhiều máy chủ, dịch chuyển các hệ điều hành đến các máy ảo, các máy chủ còn lại hỗ trợ tất cả các máy ảo vì thế vai trò của chúng đặc biệt quan trọng. Nếu mỗi ứng dụng một máy chủ, nếu nó bị sự cố sẽ ảnh hưởng đến một nhóm người dùng. Ảo hóa, một máy chủ hỗ trợ nhiều máy ảo với nhiều nhiều ứng dành cho người dùng, nếu nó gặp sự cố sẽ làm gián đoạn nhiều ứng dụng và người dùng.
Ảo hóa ứng dụng là tạo ra các lớp tương thích (compatibility layers) hỗ trợ người dùng chạy các phần mềm Windows trên Linux là một ví dụ. Như vậy, ảo hóa ứng dụng là tách chúng ra khỏi hệ điều hành chủ. Ví dụ, một ứng dụng không tương thích với hệ điều hành chủ, nếu 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.
4. Thay lời kết
Ảo hóa mang lại rất nhiều lợi ích cho người dùng : giảm số lượng máy chủ, tiết kiệm nguồn nuôi và diện tích đặt máy chủ, điều hòa, khôi phục máy chủ nhanh vì nếu thiết bị gặp sự cố chỉ cần dịch chuyển dữ liệu của máy ảo sang máy chủ khác, dù một trong các máy chủ ngưng hoạt động cũng không ảnh hưởng đến các dịch vụ khác đang được sử dụng. Ảo hóa làm tăng khả năng quản lý và quản lý chặt hơn. Khác với mô hình truyền thống, trên một máy chủ cung cấp nhiều loạt ứng dụng, nhờ cấu trúc ảo có thể phân tách thành máy chủ ảo cho mỗi ứng dụng, như vậy nếu cần dừng một ứng dụng vì bất cứ lý do gì cũng không ảnh hưởng đến các ứng dụng khác.
Tuy lợi ích lớn như vậy nhưng nhiều ý kiến cho rằng ảo hóa chỉ nên áp dụng cho các hệ thống lớn, các hệ thống vừa và nhỏ nếu áp dụng sẽ gặp nhiều khó khăn và hiệu quả thấp và không khác gì dùng dao mổ trâu để giết gà. Khi thiết lập máy ảo phải test tốc độ vận hành ứng dụng vừa triển khai rồi mới tiến hành triển khai máy chủ ảo tiếp theo lên cùng một hệ thống host. Với mỗi máy ảo, cần bổ sung 20% nguồn lực mà nó chiếm giữ để hỗ trợ và cũng phải thêm một chút nguồn lực nào đó nữa để “nuôi sống” hệ thống host nếu không hệ thống sẽ chậm và giảm hiệu suất. Phải có thiết bị chuyên dùng chứ không thể mua một loạt máy chủ rồi thiết lập theo cách cũ thì độ tin cậy sẽ không cao. Không nên nghe theo các nhà cung cấp thiết bị trên các hội thảo công nghệ, mặt khác phải dùng phần mềm ảo hoá chuyên nghiệp và rất đắt tiền chứ không thể dùng phần mềm miễn phí. Nguồn nhân lực rất khó kiếm vì không thể sử dụng các sinh viên mới làm việc quản trị ảo hóa, rất khó kiếm các chuyên gia có trình độ cao, am hiểu sâu về ảo hóa.
(Cnth theo Thnh)