Powiedzmy, że mamy jeden serwer z zainstalowanym LXC i kontener LXC używany jako podstawowy obraz /var/lib/lxc/ubuntu_base
. Dla uproszczenia zapomnijmy o zmianach konfiguracji po skopiowaniu podstawowego img.
niektórzy sugerują używanie podwoluminów i migawek do tworzenia nowych kontenerów, ale można łatwo zrobić cp - reflink z podobnymi wynikami.
Jaki jest zatem odpowiedni sposób (lub który jest lepszy) do zarządzania wieloma kontenerami?
- migawki
Ten sposób wydaje się najlepszy, ale polecenia takie jak lxc-destroy nie będą działać, ponieważ nie będzie w stanie usunąć katalogu.
btrfs subvolume snapshot /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
- CP z reflink
Nie jestem pewien, czy istnieje jakakolwiek różnica w wydajności między tym a migawkami
cp --reflink=always /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
- lub Czy jest jakiś inny lepszy sposób na zrobienie tego, o czym nie wiem.
edytować:
Jedną rzeczą, którą widziałem z opcją reflink, jest to, że nie możesz usunąć kontenera podstawowego, jeśli inne są uruchomione, ponieważ /proc
i /dev
są zamontowane i nigdy się nie zmieniają, ponieważ odwołanie jest zawsze takie samo. Ale zamknięcie wszystkich skopiowanych pojemników wydaje się pomocne.
źródło
Odpowiedzi:
Jestem na Ubuntu LTS 14 i właśnie uruchomiłem następujące (nawet po raz pierwszy) i działało to jak urok:
Użycie -s z lxc-clone wykona migawkę, jeśli sklep z zapleczem to btrfs (w twoim przypadku).
Sprawdź nowe klonowanie / migawki za pomocą
Mam nadzieję, że to pomaga!
źródło
-s
opcji, i że trzy ostatnie (lxc_start, lxc_stop, lxc_snapshot) są tylko proces pomocniczy do zarządzania przyszłymi ewolucjami kontenerów. Czy to jest poprawne ?jeśli będziesz używać podwoluminów btrfs dla lxc, musisz dodać opcję
user_subvol_rm_allowed
w swoim/etc/fstab
. Przykład wyodrębniony z jednego pliku fstab:UUID=XXXXXXXXXXXXXXXXXXXXXX / btrfs subvol=@,user_subvol_rm_allowed,defaults 0 0
opcja pozwoli ci usunąć subvol bez rootowania, tylko zwykły użytkownik. Z tej możliwości korzysta lxc, gdy migawki przechodzą w podwoluminach btrfs
źródło
Zgadnij, zależy to od tego, jak duży jest twój podstawowy obraz. Prawdopodobnie stworzyłbym nowy kontener i użyłbym Soli / Kukiełki itp., Aby dostarczyć moje pojemniki i klon LXC tylko dla stosunkowo większych pojemników (np. Pojemniki deweloperskie z dużą ilością zainstalowanych i skonfigurowanych narzędzi).
Zauważ, że klon lxc użyje tego samego magazynu kopii zapasowych co źródło. Aby użyć podobjętości, musisz utworzyć swoje kontenery za pomocą „-B btrfs”. Na przykład:
Następnie sklonuj go za pomocą:
Jeśli używasz zfs do przechowywania twoich pojemników, istnieje dodatkowa
--zfsroot
opcja do lxc-create, dzięki czemu możesz wybrać zpool inny niż domyślny „tank”. Na przykład:Udostępnij i ciesz się!
źródło
-B btrfs
jest używana domyślnie - zakładam, ponieważ mój debian jest skonfigurowany z BTRFS. Właściwie stworzyłem swój pierwszy kontener (32-bitowy serwatkowy debian) bez tej opcji i stworzono dla niego podobjętość.-B best
działa, ale warto wiedzieć!