Skip to content
Thuan Bui's Blog
Go back

Tìm hiểu về công nghệ ảo hoá - [Phần 2] Ảo hoá hệ điều hành: LXC vs Docker

Tiếp tục nghiên cứu về các công nghệ ảo hoá, bài viết [Phần 2] này mình sẽ giới thiệu về các giải pháp ảo dựa trên nền hệ điều hành (OS-level virtualization).

I. Ảo hoá nền hệ điều hành là gì?

Ảo hoá nền hệ điều hành (OS-level virtualization) là phương pháp ảo hoá được thực hiện trực tiếp trên nền hệ điều hành được cài đặt trên máy chủ vật lý. Công nghệ này tận dụng tính năng phân chia không gian người dùng (user space) trong nhân của hệ điều hành, tạo ra các hệ điều hành ảo riêng biệt.

Các máy ảo trong công nghệ ảo hoá nền hệ điều hành (OS-level virtualization) thường được gọi là Container hoặc Instance, để phân biệt với tên gọi Virtual Machine trong công nghệ ảo hoá phần cứng Hardware-level virtualization.

1. Ưu điểm

Nguồn: Containers vs VMs (redhat.com)
Nguồn: Containers vs VMs (redhat.com)

2. Nhược điểm

II. Các công nghệ ảo hoá hệ điều hành

Các hệ điều hành phổ biến đều đang có những công nghệ ảo hoá OS-level virtualization khác nhau:

Danh sách chi tiết các công nghệ ảo hoá hệ điều hành các bạn có thể tham khảo ở đây: OS-level virtualization - Wikipedia.

Số lượng công nghệ ảo hoá hệ điều hành tuy nhiều nhưng trên thực tế hiện tại chỉ còn 2 công nghệ được sử dụng phổ biến trong ngành điện toán đám mây (cloud computing): LXCDocker. OpenVZ đã từng được dùng phổ biến cách đây khoảng 8-10 năm nhưng sau đó dần bị thay thế bởi LXC.

Do đó trong bài viết này mình chỉ tập trung giới thiệu về LXC và Docker.

III. LXC là gì?

LXC (LinuX Container) là giải pháp ảo hoá trên nền hệ điều hành cho phép nhiều hệ thống Linux cùng hoạt động trên một máy chủ vật lý, sử dụng chung Linux kernel.

LXC kết hợp hai tính năng đặc biệt của nhân Linux: cgroups (cho phép giới hạn và ưu tiền tài nguyên hệ thống) và namespace (cho phép tạo phân vùng tài nguyên độc lập trên hệ điều hành) để tạo ra các môi trường ảo hoá (VE - Virtual Environment) để triển khai ứng dụng.

LXC là dự án mã nguồn mở (link Github), được phát triển từ năm 2008. Hiện tại, nó đang được đóng góp bởi các tập đoàn lớn như Virtuozzo (công ty tạo ra OpenVZ), IBM và Google.

Bên cạnh LXC, chúng ta còn có thêm LXD - công cụ quản lý container và máy ảo được cải tiến từ LXC. LXD được sáng tạo và phát triển bởi Canonical (công ty tạo ra hệ điều hành Ubuntu).

LXC thường được dùng bởi các công ty Cloud Hosting để cung cấp các dịch vụ Hosting cao cấp. Trong đó có hai cái tên nổi tiếng là Kinsta và SiteGround.

IV. Docker là gì?

Docker là cung là một giải pháp ảo hóa nền hệ điều hành để cung cấp phần mềm được đóng gói dưới dạng Container.

Docker được ra mắt vào năm 2013 với hình thức mã nguồn mở tên gọi Docker Engine. Thời điểm đó, Docker sử dụng LXC làm trình điều khiển cho container. Từ phiên bản 0.9, Docker đã thay thế LXC bằng trình điều khiển riêng với tên gọi libcontainer.

Trong khi thế mạnh của LXC là tạo môi trường ảo cho hệ điều hành, thế mạnh của Docker tạo ra môi trường ảo dành cho ứng dụng. Mỗi ứng dụng hoạt động độc lập trong một môi trường ảo (Docker container) tách biệt. Các container giao tiếp với nhau thông qua phần mềm điều khiển Docker Engine được cài trên hệ điều hành của máy chủ vật lý.

Docker
Docker
Virtual Machine
Virtual Machine

Ưu điểm của Docker

Docker hiện nay đang được ứng dụng cực kỳ phổ biến trong ngành công nghiệp điện toán đám mây (Cloud Computing) nhờ vào sự hậu thuẫn của các tập đoàn công nghệ lớn: Netflix, Google, Redhat, IBM, Microsoft,…

V. Lựa chọn công nghệ ảo hoá

Nắm được sự khác nhau giữa các công nghệ ảo hoá sẽ giúp bạn lựa chọn dịch vụ phù hợp với nhu cầu sử dụng của mình.

Nguồn: Section, Docker, Redhat


Share this post on:

Previous Post
So sánh tốc độ kết nối VPN của WireGuard vs. OpenVPN: Ai nhanh hơn?
Next Post
Tổng hợp danh sách các dịch vụ Cloud VPS miễn phí