Tìm hiểu về công nghệ ảo hoá – [Phần 2] Ảo hoá hệ điều hành: LXC vs Docker | Thuận Bùi Blog
Mục Lục
Tìm hiểu về công nghệ ảo hoá – [Phần 2] Ảo hoá hệ điều hành: LXC vs Docker | Thuận Bùi Blog
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ệ quản lý ( OS-level virtualization ) là giải pháp ảo hoá được thực thi trực tiếp trên nền hệ điều hành quản lý được setup trên sever vật lý. Công nghệ này tận dụng tính năng phân loại khoảng trống người dùng ( user space ) trong nhân của hệ quản lý và điều hành, tạo ra những hệ quản lý ảo riêng không liên quan gì đến nhau .
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.
Bạn đang đọc: Tìm hiểu về công nghệ ảo hoá – [Phần 2] Ảo hoá hệ điều hành: LXC vs Docker | Thuận Bùi Blog
1. Ưu điểm
- Linh hoạt: Quản lý, cấp phát và chia sẻ tài nguyên hiệu quả hơn. Tài nguyên được chia sẻ linh hoạt giữa các container, không bị giới hạn tài nguyên “cứng” như virtual machine
- Tiết kiệm tài nguyên hệ thống vì không phải lãng phí tài nguyên (CPU, RAM, Storage) cho Hypvisor và hệ điều hành khách như khi dùng Virtual Machine.
- Hiệu năng: Hoạt động nhanh và mượt hơn vì chạy trực tiếp trên cùng một nhân hệ điều hành. Không phải thông qua thông qua Hypervisor và hệ điều hành khách như hình thức ảo hóa phần cứng.
2. Nhược điểm
- Kém ổn định: Hiệu năng hoạt động của Container không ổn định nếu không quản lý hợp lý. Lý do vi tài nguyên hệ thống được chia sẻ giữa các Container, không được phân chia “cứng” như trên máy ảo Virtual Machine. Nếu 1 container chiếm dụng quá nhiều tài nguyên sẽ ảnh hưởng đến các container khác trong cùng hệ thống.
- Hạn chế lựa chọn: Không thể tạo ra máy ảo container sử dụng hệ điều hành khác với hệ điều hành Host.
II. Các công nghệ ảo hoá hệ điều hành
Các hệ quản lý thông dụng đều đang có những công nghệ ảo hoá OS-level virtualization khác nhau :
Danh sách cụ thể những công nghệ ảo hoá hệ quản lý và điều hành những bạn hoàn toàn có thể tìm hiểu thêm ở đâ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): LXC và Docker. 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 chuyên sâu ra mắt 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 phối hợp hai tính năng đặc biệt quan trọng của nhân Linux : cgroups ( được cho phép số lượng giới hạn và ưu tiền tài nguyên mạng lưới hệ thống ) và namespace ( được cho phép tạo phân vùng tài nguyên độc lập trên hệ quản lý ) để tạo ra những môi trường tự nhiên ảo hoá ( VE – Virtual Environment ) để tiến hành ứng dụng .
LXC là dự án Bất Động Sản mã nguồn mở ( link Github ), được tăng trưởng từ năm 2008. Hiện tại, nó đang được góp phần bởi những tập đoàn lớ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 những công ty Cloud Hosting để phân phối những dịch vụ Hosting hạng sang. 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ệ quản lý để phân phối ứng dụng được đóng gói dưới dạng Container .
Docker được ra đời 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 và tinh chỉnh cho container. Từ phiên bản 0.9, Docker đã thay thế sửa chữa LXC bằng trình điều khiển và tinh chỉnh riêng với tên gọi libcontainer .
Trong khi thế mạnh của LXC là tạo thiên nhiên và môi trường ảo cho hệ điều hành quản lý, thế mạnh của Docker tạo ra thiên nhiên và môi trường ảo dành cho ứng dụng. Mỗi ứng dụng hoạt động giải trí độc lập trong một thiên nhiên và môi trường ảo ( Docker container ) tách biệt. Các container tiếp xúc với nhau trải qua ứng dụng tinh chỉnh và điều khiển Docker Engine được cài trên hệ quản lý của sever vật lý .
Virtual Machine
Ưu điểm của Docker
- Cơ động: Ứng dụng được đóng gói trong Container giúp triển khai nhanh chóng trên mọi hệ thống, bảo đảm tính đồng nhất từ môi trường Development ra Production.
- Linh hoạt: Docker có thể được triển khai đa nền tảng Linux / Windows / Mac OS, trong khi LXC chỉ có thể triển khai trên Linux.
- Tối ưu tài nguyên: Docker Engine phân bố tài nguyên đến Container trực tiếp từ tài nguyên vật lý của Host, không phải thông qua hệ điều hành khách như khi sử dụng LXC. Do đó bạn có thể vận hành nhiều Docker Container hơn so với số lượng LXC Container trên cùng một máy chủ.
- Nhanh và nhỏ gọn: Bạn không cần phải thiết lập máy ảo mới để triển khai ứng dụng. Mọi thông số cấu hình của ứng dụng được tích hợp sẵn trong Docker container. Bạn có thể khởi động, tạm dừng hay khởi động lại container trong tích tắc.
Docker lúc bấy giờ đang được ứng dụng cực kỳ thông dụng 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 những tập đoàn lớ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 những công nghệ ảo hoá sẽ giúp bạn lựa chọn dịch vụ tương thích với nhu yếu sử dụng của mình .
- Nếu bạn đang cần sử dụng máy chủ ảo VPS, hãy chọn lựa các nhà cung cấp máy chủ ảo KVM / Xen để bảo đảm hiệu năng và sự ổn định. Đừng chọn LXC.
- Nếu bạn cần thiết lập nhiều ứng dụng trên cùng một máy chủ ảo / máy chủ vật lý, hãy chọn Docker Container để đơn giản hoá việc cài đặt và cấu hình.
- Nếu bạn cần thiết lập máy ảo Linux trong môi trường Homelab, LXC là lựa chọn tối ưu nhờ kích thước nhỏ gọn và khả năng tối ưu tài nguyên hệ thống.
Nguồn : Section, Docker, Redhat
Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!
MỜI BIA
Bài viết liên quan
Source: https://dvn.com.vn
Category: Công Nghệ