2013-06-11 11 views
8

Próbuję podjąć decyzję, kiedy kontener LXC może być lepszym wyborem niż przy użyciu pełnej maszyny wirtualnej.Jakie są typowe przypadki użycia LXC w porównaniu z VM?

Czy masz jakieś konkretne przypadki użycia, które mogą wnieść pewne argumenty w taki czy inny sposób?

Czy LXC jest bardziej zorientowany na "PaaS", aby uruchamiać aplikacje bez kontroli sprzętowej? Czy zawsze musimy używać VM w perspektywie "IaaS", w której chcemy kontrolować infrastrukturę?

Pozdrawiam,

Odpowiedz

5

Nie sądzę, że IaaS potrzebuje maszyn wirtualnych. Za pomocą LXC możesz zdefiniować # cpushare i limit użytkownika pamięci.

Rzecz w tym, że maszyny wirtualne są dość ciężkie, więc na przykład PHP/MySQL/Apache, miałbyś 1 VM. Jak lxc są lekkie, można mieć 3 lxc, więc znacznie lepiej do skalowania, (jeśli trzeba shard mysql, tylko powielać lxc mysql)

1

Dla mnie Zaletą lxc jest pomóc, aby mieć naprawdę małego środowiska. Wykorzystuje więc pełne zasoby, gdy masz do uruchomienia tylko jedną aplikację. Jeśli chcesz, aby kilka aplikacji działało w Twoim środowisku, VM jest lepsza. Innym przypadkiem, w którym VM jest lepsza, jest użycie innego jądra niż jądro hosta.

Dla mnie lxc to po prostu naprawdę lekki system VM. Z większą prędkością i rozmiarem. Ale przymus nie może być tym, czego potrzebujesz.

8

LXC jest jak więzienie chroot na sterydach. Ze względu na argument, można uznać, że jest to lekka maszyna wirtualna (nawet jeśli w ogóle nie jest maszyną wirtualną).

Jeśli już przeszedłeś próbę napisania aplikacji zaprojektowanej do życia w efemerycznej infrastrukturze, LXC po prostu pozwala to zrobić z mniejszym narzutem.

Dla mnie najfajniejszą rzeczą w LXC jest rosnąca wokół niej społeczność. Rozważmy coś w rodzaju docker - obraz w doku jest względnie przenośny. Udostępnia narzędzia do konfigurowania identycznych kontenerów na fizycznym sprzęcie lub w maszynie wirtualnej VirtualBox działającej na komputerze lub w maszynach wirtualnych dostarczanych przez Amazon lub Rackspace. To zbliża nas do marzenia o jednorazowym uruchomieniu zapisu.

+3

LXC jest bardziej zbliżony do chroota na sterydach niż lekka maszyna wirtualna. LXC nie wirtualizuje maszyny, a tym samym nie jest Wirtualną Maszyną. –

+0

Dzięki zaktualizowałem to dla większej przejrzystości –

2

LXC uruchamiają się znacznie szybciej niż maszyny wirtualne i zużywają mniej zasobów hosta na pojemnik niż maszyny wirtualne, więc są idealne do łączenia pakowania wielu izolowanych procesów na jednym komputerze i/lub ich częstego uruchamiania.

Jeden przypadek użycia służy do przeprowadzania testów jednostkowych w powtarzalnych środowiskach (w połączeniu z snapshotted system plików, jak zapewnia Docker). Możesz rozpędzić cały kontener, uruchomić test i zamknąć go tak szybko, jak tylko możesz uruchomić test. Zaletą LXC byłoby to, że wszystkie zależności jądra testu od jądra znajdowałyby się w kontenerze. Może to być nawet inny odcień Linuksa (np. Host może być Ubuntu, a kontener może uruchamiać Centos, ale musi udostępniać jądro hosta).

Powiązane problemy