Mengapa menggunakan lxc bukan chroot?

10

Satu server ubuntu menampung 3 aplikasi semuanya pada domain terpisah.
Setiap aplikasi memiliki pengembangnya sendiri.
Pengembang aplikasi milik grup linux "sftp".
chrootmemungkinkan akses kata sandi sftp untuk setiap pengembang aplikasi.

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

Di sshd_config

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

Kekhawatiran kami adalah kerentanan pemrograman pada satu aplikasi yang menyebabkan masalah pada 2 aplikasi lainnya.

Haruskah kita menggunakan wadah lxc bukan chroot? Mengapa? Apakah perubahan ke kontainer lxc transparan untuk pengembang aplikasi?

csi
sumber
2
Satu-satunya hal yang chrootdilakukan adalah mengubah direktori root untuk suatu proses. Itu tidak menawarkan isolasi atau apa pun.
Zoredache

Jawaban:

14

Linux Containers (LXC) adalah metode virtualisasi tingkat sistem operasi untuk menjalankan beberapa pemasangan server terisolasi (wadah) pada satu host kontrol. LXC tidak menyediakan mesin virtual, melainkan menyediakan lingkungan virtual yang memiliki proses dan ruang jaringan sendiri. Ini mirip dengan chroot, tetapi menawarkan lebih banyak isolasi.

Wadah Linux memiliki beberapa fitur / keunggulan:

Keuntungan:

Isolasi yang lebih baik dibandingkan dengan chroot (chroot jail). Overhead rendah. LXC menggunakan sumber daya minimal dalam hal RAM dan ruang hard drive tanpa overhead menginstal OS tamu di mesin virtual (VMWare / VirtualBox / KVM).

Aplikasi dan layanan (server) berjalan dengan kecepatan asli.

Ada dukungan untuk wadah Linux di libvirt.

Wadah Linux berfungsi baik dengan btrfs.

Tetapi ada juga sisi negatifnya:

Wadah Linux menjalankan proses Linux pada kernel Linux. Ini berarti Anda dapat menjalankan Linux (wadah Fedora pada host Ubuntu) tetapi tidak pada sistem operasi lain (Bukan BSD / OSX / Windows).

Tidak ada antarmuka GUI (grafis) untuk mengkonfigurasi atau mengelola wadah.

Ada kekurangan dokumentasi tentang cara menginstal dan mengkonfigurasi suatu wadah. Mengkonfigurasi wadah membutuhkan pengetahuan dan keterampilan teknis sederhana (dan banyak kesabaran).

Abhishek Anand Amralkar
sumber
1
kernel mana yang digunakan di dalam LXC? (Yang dari tuan rumah atau yang tamu?)
Francesco
4
Banyak kelebihan & kekurangan membandingkan LXC dengan virtualisasi penuh, yang tidak relevan dengan pertanyaan yang diajukan, dan bahkan mungkin menyesatkan.
Roger Dueck
@Francesco, dengan LXC, (dan wadah Linux secara umum), hanya ada satu kernel - kernel host. Beberapa pengecualian untuk ini misalnya, Docker berjalan pada MacOS atau Windows, karena mereka menggunakan kernel Linux yang berjalan di mesin virtual; namun, semua wadah Linux pada platform ini masih menggunakan kernel yang sama.
mengamuk