GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menginstal OpenVZ Di Debian 9

Apa itu OpenVZ?

OpenVZ adalah alat virtualisasi OS berbasis perangkat lunak yang memungkinkan penyebaran, manajemen, dan modifikasi lingkungan Linux virtual yang terisolasi dari dalam distribusi Linux host. Rangkaian ekstensif template OS bawaan dalam berbagai distribusi Linux memungkinkan pengguna mengunduh dan menerapkan lingkungan virtual dengan cepat dan mudah.

Sebelum Anda Mulai

  1. Bekerja melalui tutorial ini memerlukan akun pengguna root, dan ditulis seolah-olah perintah dikeluarkan sebagai pengguna root. Pembaca yang memilih untuk menggunakan akun pengguna terbatas harus mengawali perintah dengan sudo di mana diperlukan. Jika Anda belum membuat akun pengguna terbatas, ikuti langkah-langkah di panduan Menyiapkan dan Mengamankan Instans Komputasi.

  2. Instruksi dalam panduan ini ditulis untuk dan diuji pada Debian 9 saja. Mereka tidak mungkin bekerja untuk distribusi Debian atau Ubuntu lainnya.

  3. Modifikasi penting tertentu pada sistem Debian 9 Anda diperlukan untuk menjalankan OpenVZ, termasuk penghapusan dan penggantian Systemd dengan SystemV, dan penggunaan kernel Linux khusus. Sebelum melanjutkan, pastikan bahwa semua perangkat lunak yang saat ini diinstal pada mesin akan kompatibel dengan perubahan ini.

    Catatan Meskipun tidak diperlukan, disarankan untuk membuat partisi sistem file Ext4 terpisah untuk template OpenVZ. Secara default, penginstal Debian 9 dan Linode Manager memformat partisi yang baru dibuat dengan Ext4. Untuk informasi tentang cara menyelesaikan konfigurasi ini, ikuti langkah-langkah untuk membuat disk di panduan Mengelola Disk dan Penyimpanan di Linode.

Opsional:Buat Partisi Terpisah Untuk Template OpenVZ

Jika Anda bermaksud untuk mendedikasikan seluruh VPS Linode untuk menjalankan OpenVZ dan tidak ada layanan lain, disarankan untuk membuat partisi terpisah untuk server host dan prosesnya, dan semua template server virtual OpenVZ. Tabel berikut mengilustrasikan skema partisi yang disarankan:

Partisi Deskripsi Ukuran Tipikal
/ Partisi root 4-12 GB
swap Partisi halaman 2 kali RAM atau RAM + 2GB (tergantung pada ruang hard drive yang tersedia)
/vz Partisi untuk meng-host template OpenVZ Semua sisa ruang hard drive
  1. Masuk ke Manajer Linode Anda dan pilih Linode Anda. Matikan mesin, dan verifikasi pekerjaan yang diselesaikan dengan melihat Antrian Pekerjaan Host bagian. Di bawah Disk tab, klik Buat Diska baru . Tambahkan label pilihan Anda, pilih “ext4” di Jenis menu tarik-turun, dan alokasikan ruang sebanyak mungkin di Ukuran bidang. Klik Simpan Perubahan; konfigurasi optimal akan menyerupai gambar di bawah ini.

  2. Di bawah Dasbor tab, klik Profil Konfigurasi utama Anda. Di bawah Blokir Penetapan Perangkat tab, tetapkan partisi baru Anda ke perangkat yang terbuka. Klik Simpan Perubahan setelah selesai.

  3. Boot Linode dan masuk melalui SSH. Keluarkan perintah di bawah ini untuk memverifikasi bahwa disk baru telah dibuat dengan benar. Outputnya akan menampilkan disk yang baru Anda buat.

    fdisk -l
    
  4. Buat titik pemasangan untuk perangkat baru:

     mkdir /vztemp
    
  5. Pasang disk baru. Pastikan untuk mengganti /dev/sdc dengan nama perangkat Anda:

     mount /dev/sdc /vztemp
    

Hapus Fitur Metadata_csum Dari Volume Ext4

Sebelum OpenVZ dapat diinstal, sistem harus dikonfigurasi untuk kompatibilitas. Debian 9 mendukung fitur checksum baru yang tidak kompatibel dengan kernel OpenVZ kustom. Tergantung pada preferensi Anda, Anda dapat memilih untuk menghapus metadata_csum dari partisi yang dipasang atau memformat ulang partisi yang terpengaruh ke volume Ext4 yang kompatibel. Pilih salah satu metode dan ikuti petunjuk di bagian yang sesuai di bawah ini.

  1. Daftar partisi disk yang tersedia.

     lsblk
    
  2. Periksa apakah "metadata_csum" diinstal di semua partisi disk terpasang yang ditunjukkan pada Langkah 1 (tidak termasuk partisi SWAP). Ikuti format di bawah untuk setiap partisi, ganti /dev/sda1 dengan nama volume yang sesuai. Jika perintah di bawah ini tidak menghasilkan output untuk volume disk yang dipasang, Anda dapat melewati bagian ini.

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

Hapus Metadata_csum Dari Partisi yang Dipasang

  1. Keluarkan perintah di bawah ini untuk menambahkan kode ke fsck berkas:

     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. Buat file baru di direktori yang ditunjuk di bawah ini dan beri nama tune . Salin dan tempel teks di bawah ini ke file baru ini dan simpan:

    File:/ 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. Perbarui properti file dan gambar initramfs yang ada untuk memuat tune naskah:

     chmod 755 /etc/initramfs-tools/scripts/local-premount/tune
     update-initramfs -u -k all
    
  4. Nyalakan ulang sistem Anda dan jalankan perintah di bawah ini untuk memverifikasi bahwa metadata_csum telah dinonaktifkan dari semua partisi yang terpengaruh. Sekali lagi, ganti “/dev/sda1” dengan nama volume yang benar.

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

Memformat Volume Ext4 yang Kompatibel

  1. Pilih volume Ext4 yang ingin Anda format dan jalankan perintah di bawah ini, menggantikan /dev/sda3 dengan volume yang Anda pilih. Keluaran “0” menunjukkan keberhasilan.

    Hati-hati Memformat volume dengan mkfs perintah dapat mengakibatkan hilangnya data.
     mkfs -t ext4 -O -metadata_csum /dev/sda3
    

Ganti Systemd dengan SystemV

  1. Instal utilitas SystemV.

     apt install sysvinit-core sysvinit-utils
    
  2. Dari Linode Manager, reboot mesin Anda untuk melepaskan Systemd.

  3. Hapus Systemd dari mesin Anda:

     apt --auto-remove remove systemd
    
  4. Buat file avoid-systemd dan rekatkan konten di bawah ini:

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

Tambahkan Repositori OpenVZ

  1. Buat file sumber repositori baru dan rekatkan konten di bawah ini:

    File:/ etc/apt/sources.list.d/openvz.list
    deb http://download.openvz.org/debian jessie main
    deb http://download.openvz.org/debian wheezy main
  2. Tambahkan kunci repositori ke sistem Anda:

     wget -qO - http://ftp.openvz.org/debian/archive.key | sudo apt-key add -
    
  3. Pada tanggal publikasi panduan ini, kunci repositori OpenVZ tidak valid, dan mengeluarkan apt update perintah akan menghasilkan peringatan dari sistem. Perintah harus berhasil. Jika tidak, perbarui sistem dengan argumen berikut:

     apt --allow-unauthenticated update
    

Instal Paket OpenVZ

  1. Instal OpenVZ dengan paket yang diperlukan.

     KPackage="linux-image-openvz-$(dpkg --print-architecture)"
     sudo apt --allow-unauthenticated --install-recommends install $KPackage vzdump ploop initramfs-tools dirmngr
    
  2. Instalasi harus membuat direktori baru, /vz . Jika direktori ini tidak ada setelah instalasi, buat tautan simbolis menggunakan perintah di bawah ini:

     ln -s /var/lib/vz/ /vz
    
  3. Buat file vznet.conf dan paste di baris di bawah ini:

    File:/ etc/vz/vznet.conf
    1
    
    EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
  4. Langkah ini opsional, dan akan menyebabkan instans virtual OpenVZ berhenti ketika layanan OpenVZ dihentikan. Jika perilaku ini diinginkan, jalankan perintah di bawah ini.

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

Boot Ke Kernel OpenVZ

Sistem harus dikonfigurasi untuk mem-boot kernel OpenVZ setiap kali server di-restart.

  1. Buka grub.cfg file dalam less , atau editor teks pilihan Anda:

     less /boot/grub/grub.cfg
    
  2. Di dalam grub.cfg file, cari bagian yang menyerupai berikut ini:

    File:/ 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. Di dalam grub.cfg file di bawah baris "submenu", Anda akan melihat beberapa bagian "menuentry" yang menjorok. Ini mewakili kernel yang tersedia. Dari sini, Anda perlu menemukan entri menu kernel OpenVZ yang baru diinstal. Seharusnya terlihat mirip dengan konten di bawah ini. Perhatikan bahwa beberapa akan menjadi kernel pemulihan dan harus diabaikan:

    File:/ 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. Tutup grub.cfg file dan buka /etc/default/grub di editor teks pilihan Anda. Cari baris yang dimulai dengan GRUB_DEFAULT= . Hapus nilai default untuk parameter ini dan masukkan teks yang Anda salin pada langkah sebelumnya, dengan mengikuti format di bawah ini. Dengan contoh di atas, nilainya akan menjadi sebagai berikut:

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

    Perhatikan bahwa kedua string yang disalin dipisahkan dengan karakter wortel ">".

  5. Simpan dan tutup grub file, dan jalankan perintah di bawah ini untuk memuat ulang bootloader grub dengan nilai kernel baru:

     update-grub
    
  6. Secara default, pemuatan kernel tidak ditangani oleh Grub, tetapi oleh Manajer Linode. Masuk ke Manajer Linode Anda dan pilih Linode Anda. Klik pada profil konfigurasi Anda. Di bawah bagian "Pengaturan Boot", pilih "GRUB 2" dari daftar drop-down Kernel (lihat gambar di bawah). Simpan perubahan Anda dan keluar.

  7. Nyalakan ulang server Anda dan jalankan perintah di bawah ini untuk memverifikasi bahwa kernel OpenVZ telah dimuat:

     uname -r
    

    Jika kernel OpenVZ tidak dimuat, kemungkinan besar itu adalah grub file yang salah dikonfigurasi. Periksa dan pastikan kernel yang benar dipilih dan dimasukkan dengan benar.

Unduh Dan Terapkan Template OS

  1. Mulai layanan OpenVZ:

     service vz start
     service vz status
    
  2. Daftar dengan repositori template OpenVZ resmi:

     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. Edit /etc/vz/vz.conf dan ubah baris berikut untuk menggunakan simfs bukannya ploop :

    File:/ etc/vz/vz.conf
    1
    
    VE_LAYOUT=simfs
  4. Daftar template OS yang tersedia untuk diunduh:

     vztmpl-dl --list-remote
    
  5. Dari daftar template yang tersedia, pilih salah satu untuk diunduh. Menggunakan format di bawah, jalankan perintah berikut, menggantikan centos7-x86_64 dengan template yang Anda pilih:

     vztmpl-dl --gpg-check centos7-x86_64
    
  6. OpenVZ mengacu pada setiap template OS yang diinstal sebagai "Container." Anda harus membuat ID Penampung (CTID) untuk setiap template yang diunduh. Keluarkan perintah di bawah ini, ganti [CTID] dengan nomor apa pun (disarankan 101) dan nama template CentOS 7 dengan template yang Anda unduh.

     vzctl create [CTID] --ostemplate centos7-x86_64
    
  7. Jika Anda menyiapkan partisi disk terpisah untuk templat OpenVZ, gunakan perintah di bawah ini untuk membuat wadah di dalam disk baru. Ganti –template dengan nama template Anda, dan –nama dengan nama deskriptif pilihan Anda:

    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. File konfigurasi sekarang telah dibuat untuk template OS Anda. Lokasi file ini ditentukan sebagai bagian dari output dari perintah sebelumnya. Buka file ini sekarang untuk membuat perubahan berikut di bawah ini. File konfigurasi akan diberi nama dalam format [CTID].conf.

    • Berikan alamat IP lingkungan virtual Anda. Format yang disarankan adalah 192.168.0.[CTID]. Dalam hal ini akan menjadi 192.168.0.101.
    • Sediakan server nama. Server nama Google (8.8.8.8) seharusnya sudah memadai.
    • Jika Anda mengalami masalah saat boot ke lingkungan virtual, Anda dapat mencoba mengubah VE_LAYOUT kembali ke ploop dari simfs .

    Anda juga dapat mengonfigurasi opsi lain sesuai kebijaksanaan Anda, seperti alokasi SWAP dan RAM. Simpan dan tutup setelah selesai.

    File:/ 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. Boot ke wadah yang baru Anda buat menggunakan perintah di bawah ini. Ganti [CTID] dengan nomor CTID container Anda. Untuk keluar dari sesi penampung apa pun sambil membiarkan lingkungan virtual berjalan, ketik exit di baris perintah.

     vzctl start [CTID]
     vzctl enter [CTID]
    

Konfigurasi Akses Internet Ke Container

Wadah tidak memiliki cara untuk mengakses internet atau diakses dari internet. Server host harus dikonfigurasi untuk meneruskan permintaan ke dan dari setiap lingkungan virtual yang diinstal.

Konfigurasikan Akses Dari Kontainer Ke Internet

Catatan Anda mungkin perlu login sebagai root dengan su - untuk menjalankan perintah iptables-save di bagian ini.
  1. Di server host, jalankan perintah berikut menggunakan Iptables. Ganti tanda kurung dan isi dengan informasi yang sesuai. Untuk alamat IP container, pastikan untuk mencantumkannya dalam notasi CIDR. Sertakan alamat IP dan subnet, atau xxx.xxx.xxx.xxx/xx , untuk mencakup rentang alamat IP yang akan memungkinkan akses ke penampung apa pun yang ditambahkan di masa mendatang. Misalnya, memasukkan 192.168.0.0/24 akan mengatur perutean untuk alamat IP 192.168.0.0 hingga 192.168.0.255:

     iptables -t nat -A POSTROUTING -s [container IP] -o eth0 -j SNAT --to [host server IP]
    
  2. Jika Anda memiliki iptables-persistent terinstal, lewati langkah ini. Simpan aturan Iptables baru:

     iptables-save > /etc/iptables.conf
    
  3. Konfigurasikan firewall Anda untuk mengizinkan permintaan yang diteruskan. Jika Anda tidak menggunakan iptables-persistent simpan aturannya:

     iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
     iptables-save > /etc/iptables.conf
    
  4. Anda sekarang harus memiliki akses ke internet dari dalam lingkungan wadah Anda. Coba perbarui paket dari penampung Anda untuk memverifikasi koneksi.

Konfigurasikan Akses Dari Internet Ke Container

  1. Jika Anda perlu mengakses layanan tertentu pada wadah Anda dari internet, Anda perlu memesan port pada mesin host dan merutekan akses melaluinya. Keluarkan perintah berikut, ganti nilai yang dikurung dengan informasi yang sesuai:

     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. Simpan aturan baru Anda. Lewati langkah ini jika Anda memiliki iptables-persistent terpasang:

     iptables-save > /etc/iptables.conf
    

Ke mana Harus Pergi Dari Sini

Setelah menginstal OpenVZ, mengunduh template, membuat wadah, dan mengonfigurasi akses internet, lingkungan virtual Anda akan berfungsi persis seperti lingkungan Linux normal lainnya:memerlukan pembaruan rutin, konfigurasi keamanan, dll. Sebagian besar konfigurasi dapat dilakukan dari server host melalui perintah OpenVZ .

Lihat tautan “Operasi Dasar OpenVZ” di Sumber Daya Eksternal bagian untuk membiasakan diri Anda dengan perintah administrasi dasar. Template tambahan yang dibuat pengguna juga dapat diunduh, yang tidak termasuk dalam daftar template utama. Anda dapat menemukannya dengan mengikuti tautan “Template Kontribusi Pengguna OpenVZ”.

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Operasi Dasar OpenVZ
  • Template Kontribusi Pengguna OpenVZ

Docker
  1. Cara Menginstal Debian 10 (Buster)

  2. Cara Menginstal Python 3.9 di Debian 10

  3. Cara Menginstal TeamViewer di Debian 10

  1. Cara Menginstal Memcached di Debian 10

  2. Cara Menginstal Git di Debian 9

  3. Cara Menginstal Go di Debian 9

  1. Cara Menginstal Pip di Debian 9

  2. Cara Menginstal R di Debian 9

  3. Cara Menginstal Ruby di Debian 9