Tại sao nên sử dụng lxc thay vì chroot?


10

Một máy chủ Ubuntu có tất cả 3 ứng dụng trên các miền riêng biệt.
Mỗi ứng dụng có nhà phát triển riêng.
Các nhà phát triển ứng dụng thuộc nhóm "sftp" linux.
chrootcho phép truy cập sftp mật khẩu cho mỗi nhà phát triển ứng dụng.

/home/app1/prod
/home/app2/prod
/home/app3/prod

Trong sshd_config

Match Group sftp  
  PasswordAuthentication yes
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no

Mối quan tâm của chúng tôi là một lỗ hổng lập trình trong một ứng dụng gây ra sự cố trong 2 ứng dụng kia.

Có nên sử dụng lxc container thay vì chroot? Tại sao? Thay đổi đối với các thùng chứa lxc sẽ được minh bạch cho các nhà phát triển ứng dụng?


2
Điều duy nhất chrootlàm là thay đổi thư mục gốc cho một quá trình. Nó không cung cấp sự cô lập hay bất cứ điều gì khác.
Zoredache

Câu trả lời:


14

Linux Container (LXC) là một phương thức ảo hóa ở cấp hệ điều hành để chạy nhiều cài đặt máy chủ (container) bị cô lập trên một máy chủ điều khiển duy nhất. LXC không cung cấp một máy ảo mà chỉ cung cấp một môi trường ảo có quy trình và không gian mạng riêng. Nó tương tự như một chroot, nhưng cung cấp sự cô lập hơn nhiều.

Các thùng chứa Linux có một số tính năng / ưu điểm:

Ưu điểm:

Cách ly tốt hơn so với một chroot (chroot jail). Chi phí thấp. LXC sử dụng tài nguyên tối thiểu về RAM và dung lượng ổ cứng mà không cần cài đặt hệ điều hành khách trong máy ảo (VMWare / VirtualBox / KVM).

Các ứng dụng và dịch vụ (máy chủ) chạy ở tốc độ gốc.

Có hỗ trợ cho các container Linux trong libvirt.

Các thùng chứa Linux hoạt động tốt với btrfs.

Nhưng cũng có một nhược điểm:

Các thùng chứa Linux chạy các quy trình Linux trên nhân Linux. Điều này có nghĩa là bạn có thể chạy Linux (bộ chứa Fedora trên máy chủ Ubuntu) nhưng không phải hệ điều hành khác (Không phải BSD / OSX / Windows).

Không có giao diện GUI (đồ họa) để cấu hình hoặc quản lý các thùng chứa.

Có rất ít tài liệu về cách cài đặt và cấu hình một container. Cấu hình một container đòi hỏi một kiến ​​thức và kỹ năng kỹ thuật khiêm tốn (và một hạt lớn của sự kiên nhẫn).


1
hạt nhân nào được sử dụng bên trong LXC? (người từ chủ nhà hay người khách?)
Francesco

4
Rất nhiều ưu điểm & nhược điểm so sánh LXC với ảo hóa hoàn toàn, điều này không liên quan đến câu hỏi được hỏi, và thậm chí có thể gây hiểu nhầm.
Roger Dueck

@Francesco, với LXC, (và các thùng chứa Linux nói chung), chỉ có một hạt nhân - hạt nhân máy chủ. Một số ngoại lệ cho điều này là ví dụ, Docker chạy trên MacOS hoặc Windows, vì chúng sử dụng nhân Linux chạy trong máy ảo; tuy nhiên, tất cả các container Linux trên các nền tảng này vẫn đang sử dụng cùng một kernel.
cơn thịnh nộ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.