GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak nainstalovat OpenVZ na Debian 9

Co je OpenVZ?

OpenVZ je softwarový nástroj pro virtualizaci OS, který umožňuje nasazení, správu a úpravy izolovaných virtuálních prostředí Linuxu z hostitelské distribuce Linuxu. Rozsáhlá řada předpřipravených šablon OS v různých distribucích Linuxu umožňuje uživatelům snadno rychle stahovat a nasazovat virtuální prostředí.

Než začnete

  1. Práce s tímto výukovým programem vyžaduje účet uživatele root a je zapsána tak, jako by byly příkazy zadávány jako uživatel root. Čtenáři, kteří se rozhodnou používat omezený uživatelský účet, budou muset před příkazy zadat sudo kde je to požadováno. Pokud jste si ještě nevytvořili omezený uživatelský účet, postupujte podle kroků v příručce Nastavení a zabezpečení výpočetní instance.

  2. Pokyny v této příručce byly napsány a testovány pouze pro Debian 9. Je nepravděpodobné, že budou fungovat pro jiné distribuce Debian nebo Ubuntu.

  3. Ke spuštění OpenVZ jsou vyžadovány určité zásadní úpravy vašeho systému Debian 9, včetně odstranění a nahrazení Systemd SystemV a použití vlastního linuxového jádra. Než budete pokračovat, ujistěte se, že veškerý software aktuálně nainstalovaný v počítači bude kompatibilní s těmito změnami.

    Poznámka Ačkoli to není nutné, doporučuje se vytvořit samostatný oddíl souborového systému Ext4 pro šablony OpenVZ. Instalační program Debianu 9 i Linode Manager standardně formátují nově vytvořené oddíly pomocí Ext4. Chcete-li získat informace o tom, jak provést tuto konfiguraci, postupujte podle kroků k vytvoření disku v příručce Správa disků a úložiště na Linode.

Volitelné:Vytvořte samostatný oddíl pro šablony OpenVZ

Pokud máte v úmyslu věnovat celý Linode VPS provozování OpenVZ a žádné další služby, doporučuje se vytvořit samostatné oddíly pro hostitelský server a jeho procesy a jakékoli šablony virtuálního serveru OpenVZ. Následující tabulka ilustruje doporučené schéma rozdělení:

Oddíl Popis Typická velikost
/ Kořenový oddíl 4–12 GB
swap Oddíl stránkování 2 krát RAM nebo RAM + 2 GB (v závislosti na dostupném místě na pevném disku)
/vz Oddíl pro hostování šablon OpenVZ Veškerý zbývající prostor na pevném disku
  1. Přihlaste se do svého Linode Manager a vyberte svůj Linode. Vypněte počítač a ověřte dokončení úlohy zobrazením Fronty hostitelských úloh sekce. V části Disky klikněte na Vytvořit nový disk . Přidejte štítek dle vlastního výběru, v Typ vyberte „ext4“. rozbalovací nabídce a v části Velikost přidělte co nejvíce místa pole. Klikněte na Uložit změny; optimální konfigurace bude připomínat obrázek níže.

    <šablona x-if=visible><šablona x-if=$isMobile()>

  2. Pod Hlavním panelem klepněte na svůj hlavní konfigurační profil. V části Blokovat přiřazení zařízení přiřaďte svůj nový oddíl k otevřenému zařízení. Klikněte na Uložit změny až skončí.

    <šablona x-if=visible><šablona x-if=$isMobile()>

  3. Spusťte Linode a přihlaste se přes SSH. Vydáním příkazu níže ověřte, zda byl nový disk vytvořen správně. Výstup zobrazí váš nově vytvořený disk.

    fdisk -l
    
  4. Vytvořte přípojný bod pro nové zařízení:

     mkdir /vztemp
    
  5. Namontujte nový disk. Nezapomeňte nahradit /dev/sdc s názvem vašeho zařízení:

     mount /dev/sdc /vztemp
    

Odebrání funkce Metadata_csum ze svazků Ext4

Před instalací OpenVZ musí být systém nakonfigurován na kompatibilitu. Debian 9 podporuje novou funkci kontrolního součtu, která není kompatibilní s vlastními jádry OpenVZ. V závislosti na vašich preferencích se můžete rozhodnout buď odstranit metadata_csum z připojeného oddílu, nebo přeformátovat postižený oddíl na kompatibilní svazek Ext4. Vyberte si kteroukoli metodu a postupujte podle pokynů v příslušné části níže.

  1. Seznam dostupných diskových oddílů.

     lsblk
    
  2. Zkontrolujte, zda je „metadata_csum“ nainstalováno v jakémkoli připojeném diskovém oddílu zobrazeném v kroku 1 (nezahrnuje oddíl SWAP). Postupujte podle níže uvedeného formátu pro každý oddíl a nahraďte /dev/sda1 s příslušným názvem svazku. Pokud níže uvedený příkaz neposkytuje žádný výstup pro připojené diskové svazky, můžete tuto část přeskočit.

     dumpe2fs -h /dev/sda1 2>/dev/null | grep -e metadata_csum
    

Odebrat metadata_csum z připojených oddílů

  1. Chcete-li přidat kód do fsck, zadejte níže uvedené příkazy soubor:

     echo "copy_exec /sbin/e2fsck" | sudo tee -a /usr/share/initramfs-tools/hooks/fsck
     echo "copy_exec /sbin/tune2fs" | sudo tee -a /usr/share/initramfs-tools/hooks/fsck
    
  2. Vytvořte nový soubor v níže uvedeném adresáři a pojmenujte jej tune . Zkopírujte a vložte níže uvedený text do tohoto nového souboru a uložte:

    Soubor:/ etc/initramfs-tools/scripts/local-premount/tune
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #!/bin/sh
    
    if [ "$readonly" != "y" ] ;
    then exit 0 ;
    fi
    
    e2fsck -f $Volume
    tune2fs -O -metadata_csum $Volume
    e2fsck -f $Volume
  3. Aktualizujte vlastnosti souboru a existující obraz initramfs, aby se načetla tune skript:

     chmod 755 /etc/initramfs-tools/scripts/local-premount/tune
     update-initramfs -u -k all
    
  4. Restartujte systém a spusťte níže uvedený příkaz, abyste ověřili, že metadata_csum byla zakázána ze všech dotčených oddílů. Znovu nahraďte „/dev/sda1“ správnými názvy svazků.

     dumpe2fs -h /dev/sda1 2>/dev/null | grep -e metadata_csum
    

Formátování kompatibilního svazku Ext4

  1. Vyberte svazek Ext4, který chcete naformátovat, a zadejte níže uvedený příkaz, kterým nahraďte /dev/sda3 s vámi zvolenou hlasitostí. Výstup „0“ znamená úspěch.

    Pozor Formátování svazku pomocí mkfs může vést ke ztrátě dat.
     mkfs -t ext4 -O -metadata_csum /dev/sda3
    

Nahradit Systemd za SystemV

  1. Nainstalujte nástroje SystemV.

     apt install sysvinit-core sysvinit-utils
    
  2. Ze Správce Linode restartujte počítač a uvolněte Systemd.

  3. Odeberte Systemd z vašeho počítače:

     apt --auto-remove remove systemd
    
  4. Vytvořte soubor avoid-systemd a vložte obsah níže:

    Soubor:/ etc/apt/preferences.d/avoid-systemd
    1
    2
    3
    
    Package: *systemd*
    Pin: release *
    Pin-Priority: -1

Přidat úložiště OpenVZ

  1. Vytvořte nový zdrojový soubor úložiště a vložte obsah níže:

    Soubor:/ etc/apt/sources.list.d/openvz.list
    deb http://download.openvz.org/debian jessie main
    deb http://download.openvz.org/debian wheezy main
  2. Přidejte klíč úložiště do systému:

     wget -qO - http://ftp.openvz.org/debian/archive.key | sudo apt-key add -
    
  3. K datu vydání této příručky je klíč úložiště OpenVZ neplatný a vydává apt update příkaz vygeneruje varování ze systému. Příkaz by měl být úspěšný. Pokud ne, aktualizujte systém pomocí následujícího argumentu:

     apt --allow-unauthenticated update
    

Instalovat balíčky OpenVZ

  1. Nainstalujte OpenVZ s požadovanými balíčky.

     KPackage="linux-image-openvz-$(dpkg --print-architecture)"
     sudo apt --allow-unauthenticated --install-recommends install $KPackage vzdump ploop initramfs-tools dirmngr
    
  2. Instalace by měla vytvořit nový adresář /vz . Pokud tento adresář po instalaci neexistuje, vytvořte symbolický odkaz pomocí příkazu níže:

     ln -s /var/lib/vz/ /vz
    
  3. Vytvořte soubor vznet.conf a vložte do řádku níže:

    Soubor:/ etc/vz/vznet.conf
    1
    
    EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
  4. Tento krok je volitelný a způsobí zastavení virtuálních instancí OpenVZ při zastavení služby OpenVZ. Pokud je toto chování žádoucí, zadejte níže uvedený příkaz.

     echo 'VE_STOP_MODE=stop' | sudo tee -a /etc/vz/vznet.conf
    

Zavedení do jádra OpenVZ

Systém musí být nakonfigurován tak, aby bootoval jádro OpenVZ při každém restartu serveru.

  1. Otevřete soubor grub.cfg soubor v less nebo váš preferovaný textový editor:

     less /boot/grub/grub.cfg
    
  2. V rámci grub.cfg vyhledejte sekci podobnou následujícímu:

    Soubor:/ boot/grub/grub.cfg
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    . . .
    
    menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-e025e52b-91c4-4f64-962d-79f244caa92a' {
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod ext2
        set root='hd0'
        if [ x$feature_platform_search_hint = xy ]; then
            search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0  e025e52b-91c4-4f64-962d-79f244caa92a
        else
            search --no-floppy --fs-uuid --set=root e025e52b-91c4-4f64-962d-79f244caa92a
        fi
        echo    'Loading Linux 4.9.0-3-amd64 ...'
        linux   /boot/vmlinuz-4.9.0-3-amd64 root=/dev/sda ro console=ttyS0,19200n8 net.ifnames=0
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-4.9.0-3-amd64
        }
    submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-e025e52b-91c4-4f64-962d-79f244caa92a'
    
    . . .
    Copy the text entry preceeding `submenu`, in this example the text would be: **Advanced options for Debian GNU/Linux**.
    
  3. V rámci grub.cfg pod řádkem „submenu“, uvidíte několik odsazených sekcí „menuentry“. Ty představují dostupná jádra. V nich musíte najít nově nainstalovanou položku nabídky jádra OpenVZ. Mělo by to vypadat podobně jako obsah níže. Všimněte si, že některá budou obnovovací jádra a měli byste je ignorovat:

    Soubor:/ boot/grub/grub.cfg
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    . . .
    
        menuentry 'Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-2.6.32-openvz-042stab123.9-amd64-advanced-e025e52b-91c4-4f64-962d-79f244caa92a' {
                gfxmode $linux_gfx_mode
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod ext2
                set root='hd0'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0 --hint-efi=hd0 --hint-baremetal=ahci0  e025e52b-91c4-4f64-962d-79f244caa92a
                else
                  search --no-floppy --fs-uuid --set=root e025e52b-91c4-4f64-962d-79f244caa92a
                fi
                echo    'Loading Linux 2.6.32-openvz-042stab123.9-amd64 ...'
                linux   /boot/vmlinuz-2.6.32-openvz-042stab123.9-amd64 root=/dev/sda ro console=ttyS0,19200n8 net.ifnames=0
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-2.6.32-openvz-042stab123.9-amd64
        }
    
    . . .
      Again, write down the text directly after "menuentry" in single quotes. Here, the text to copy is **Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64**.
    
  4. Zavřete grub.cfg soubor a otevřete /etc/default/grub ve vašem preferovaném textovém editoru. Najděte řádek, který začíná GRUB_DEFAULT= . Odstraňte výchozí hodnotu tohoto parametru a zadejte text, který jste zkopírovali v předchozích krocích, ve formátu níže. Ve výše uvedeném příkladu by hodnota byla následující:

     GRUB_DEFAULT="Advanced options for Debian GNU/Linux>Debian GNU/Linux, with Linux 2.6.32-openvz-042stab123.9-amd64"
    

    Všimněte si, že oba zkopírované řetězce jsou odděleny znakem mrkve „>“.

  5. Uložte a zavřete grub a zadejte níže uvedený příkaz k opětovnému načtení zavaděče grub s novou hodnotou jádra:

     update-grub
    
  6. Ve výchozím nastavení načítání jádra nezpracovává Grub, ale Linode Manager. Přihlaste se do svého Linode Manager a vyberte svůj Linode. Klikněte na svůj konfigurační profil. V části „Nastavení spouštění“ vyberte z rozevíracího seznamu jádra „GRUB 2“ (viz obrázek níže). Uložte změny a ukončete.

  7. Restartujte server a zadáním příkazu níže ověřte, že bylo načteno jádro OpenVZ:

     uname -r
    

    Pokud nebylo načteno jádro OpenVZ, je to s největší pravděpodobností grub soubor, který je špatně nakonfigurovaný. Zkontrolujte a ujistěte se, že bylo vybráno a správně zadáno správné jádro.

Stáhnout a nasadit šablonu OS

  1. Spusťte službu OpenVZ:

     service vz start
     service vz status
    
  2. Zaregistrujte se v oficiálním úložišti šablon OpenVZ:

     sudo gpg --recv-keys $(echo $(sudo gpg --batch --search-keys [email protected] 2>&1 | grep -ie ' key.*created' | sed -e 's|key|@|g' | cut -f 2 -d '@') | cut -f 1 -d ' ' | cut -f 1 -d ',')
    
  3. Upravte /etc/vz/vz.conf a změňte následující řádek na simfs místo ploop :

    Soubor:/ etc/vz/vz.conf
    1
    
    VE_LAYOUT=simfs
  4. Seznam dostupných šablon OS ke stažení:

     vztmpl-dl --list-remote
    
  5. Z dostupného seznamu šablon vyberte jednu, kterou chcete stáhnout. Pomocí níže uvedeného formátu zadejte následující příkaz, kterým nahradíte centos7-x86_64 se šablonou, kterou jste vybrali:

     vztmpl-dl --gpg-check centos7-x86_64
    
  6. OpenVZ označuje každou nainstalovanou šablonu OS jako „kontejner“. Pro každou staženou šablonu musíte vytvořit ID kontejneru (CTID). Zadejte níže uvedený příkaz a nahraďte [CTID] libovolným číslem (doporučuje se 101) a název šablony CentOS 7 staženou šablonou.

     vzctl create [CTID] --ostemplate centos7-x86_64
    
  7. Pokud nastavíte samostatný oddíl disku pro šablony OpenVZ, vytvořte kontejner na novém disku pomocí příkazu níže. Nahraďte –stemplate s názvem vaší šablony a –název s popisným názvem dle vašeho výběru:

    vzctl create [CTID] --ostemplate debian-8.0-x86_64 --layout simfs --name centos7 --private /vztemp/vz/private/$VEID --root /vztemp/vz/root/$VEID --config basic
    
  8. Nyní bude vytvořen konfigurační soubor pro vaši šablonu operačního systému. Umístění tohoto souboru je zadáno jako součást výstupu předchozího příkazu. Otevřete tento soubor nyní a proveďte níže uvedené změny. Konfigurační soubor bude pojmenován ve formátu [CTID].conf.

    • Přidělte svému virtuálnímu prostředí IP adresu. Doporučený formát je 192.168.0.[CTID]. V tomto případě by to bylo 192.168.0.101.
    • Poskytněte jmenný server. Jmenný server Google (8.8.8.8) by měl stačit.
    • Pokud máte potíže se zaváděním do virtuálního prostředí, můžete zkusit změnit VE_LAYOUT zpět na ploop z simfs .

    Můžete také nakonfigurovat další možnosti podle svého uvážení, jako je SWAP a přidělení RAM. Uložte a po dokončení zavřete.

    Soubor:/ etc/vz/conf/101.conf
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    . . .
    
    # RAM
    PHYSPAGES="0:256M"
    
    # Swap
    SWAPPAGES="0:512M"
    
    # Disk quota parameters (in form of softlimit:hardlimit)
    DISKSPACE="2G:2.2G"
    DISKINODES="131072:144179"
    QUOTATIME="0"
    
    # CPU fair scheduler parameter
    CPUUNITS="1000"
    
    NETFILTER="stateless"
    VE_ROOT="/var/lib/vz/root/$VEID"
    VE_PRIVATE="/var/lib/vz/private/$VEID"
    VE_LAYOUT="simfs"
    OSTEMPLATE="centos7-x86_64"
    ORIGIN_SAMPLE="vswap-256m"
    NAMESERVER="8.8.8.8"
    IP_ADDRESS="192.168.0.101/24"
    HOSTNAME="centos-7"
  9. Spusťte svůj nově vytvořený kontejner pomocí příkazů níže. Nahraďte [CTID] číslem CTID vašeho kontejneru. Chcete-li ukončit libovolnou relaci kontejneru a zároveň nechat virtuální prostředí spuštěné, zadejte exit v příkazovém řádku.

     vzctl start [CTID]
     vzctl enter [CTID]
    

Konfigurace internetového přístupu ke kontejnerům

Kontejnery nemají žádný způsob, jak se dostat na internet nebo být přístupné z internetu. Hostitelský server musí být nakonfigurován tak, aby předával požadavky do az každého nainstalovaného virtuálního prostředí.

Konfigurace přístupu z kontejneru k internetu

Poznámka Možná se budete muset přihlásit jako root pomocí su - za účelem spuštění příkazů iptables-save v této sekci.
  1. Na hostitelském serveru zadejte následující příkaz pomocí Iptables. Nahraďte závorky a obsah příslušnými informacemi. U adresy IP kontejneru ji nezapomeňte uvést v notaci CIDR. Zahrnout IP adresu a podsíť nebo xxx.xxx.xxx.xxx/xx s cílem obsáhnout řadu IP adres, které umožní přístup ke všem kontejnerům přidaným v budoucnu. Například zadání 192.168.0.0/24 nastaví směrování pro IP adresy 192.168.0.0 až 192.168.0.255:

     iptables -t nat -A POSTROUTING -s [container IP] -o eth0 -j SNAT --to [host server IP]
    
  2. Pokud máte iptables-persistent nainstalován, tento krok přeskočte. Uložte nová pravidla Iptables:

     iptables-save > /etc/iptables.conf
    
  3. Nakonfigurujte bránu firewall tak, aby umožňovala předávané požadavky. Pokud nepoužíváte iptables-persistent uložte pravidlo:

     iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
     iptables-save > /etc/iptables.conf
    
  4. Nyní byste měli mít přístup k internetu z prostředí vašeho kontejneru. Zkuste aktualizovat balíčky z vašeho kontejneru a ověřit připojení.

Konfigurace přístupu z internetu do kontejneru

  1. Pokud potřebujete přistupovat ke konkrétní službě na vašem kontejneru z internetu, budete si muset vyhradit port na hostitelském počítači a směrovat přístup přes něj. Zadejte následující příkaz a nahraďte všechny hodnoty v hranatých závorkách příslušnými informacemi:

     iptables -t nat -A PREROUTING -p tcp -d [host_ip] --dport [host_port_number] -i eth0 -j DNAT --to-destination [container_ip:container_port_number]
    
  2. Uložte nové pravidlo. Pokud máte iptables-persistent, tento krok přeskočte nainstalováno:

     iptables-save > /etc/iptables.conf
    

Kam jít odtud

Po instalaci OpenVZ, stažení šablony, vytvoření kontejneru a konfiguraci přístupu k internetu bude vaše virtuální prostředí fungovat přesně jako každé normální prostředí Linuxu:vyžaduje pravidelné aktualizace, konfiguraci zabezpečení atd. Většinu konfigurace lze provést z hostitelského serveru pomocí příkazů OpenVZ .

Viz odkaz „Základní operace OpenVZ“ v Externích zdrojích sekce, abyste se seznámili se základními příkazy administrace. Lze si také stáhnout další šablony vytvořené uživatelem, které nejsou zahrnuty v hlavním seznamu šablon. Můžete je najít kliknutím na odkaz „Šablony přidané uživatelem OpenVZ“.

Další informace

Další informace o tomto tématu můžete získat v následujících zdrojích. Přestože jsou poskytovány v naději, že budou užitečné, vezměte prosím na vědomí, že nemůžeme ručit za přesnost nebo aktuálnost externě hostovaných materiálů.

  • Základní operace OpenVZ
  • Šablony přidané uživatelem OpenVZ

Docker
  1. Jak nainstalovat Debian 10 (Buster)

  2. Jak nainstalovat Python 3.9 na Debian 10

  3. Jak nainstalovat TeamViewer na Debian 10

  1. Jak nainstalovat Memcached na Debian 10

  2. Jak nainstalovat Git na Debian 9

  3. Jak nainstalovat Go na Debian 9

  1. Jak nainstalovat Pip na Debian 9

  2. Jak nainstalovat R na Debian 9

  3. Jak nainstalovat Ruby na Debian 9