LXC aka Linux Container: простота и надёжность

    Что такое LXC? image




    Аббревиатура расшифровывается просто Linux Container. Это контейнерная система виртуализации, которая действует в пределах операционной системы Linux. Что это значит? С LXC можно запустить несколько полностью изолированных и независимых друг от друга экземпляров ОС Linux на одном компьютере. Помимо этого есть возможность создать надежный кластер из нескольких десятков серверов, когда один и тот же экземляпр контейнера выполняется сразу на нескольких физических машинах и в случае выхода из строя одного сервера работа контейнера не приостанавливается ни на минуту. Так же данные контейнера находятся сразу на нескольких хранилищах, реализуется это различными методами (ceph ). Что позволяет помимо живой миграции контейнера между нодами кластера так же еще больше повысить надежность хранения данных, гибко увеличивать дисковую подсистему контейнера в пределах … ну пределы практически неограничены –настолько насколько хватит хранилища, а хранилища могут быть очень большие, например, в нашем случае мы сейчас строим хранилище в несколько петабайт информации.


    Немного о механизмах виртуализации




    В чем разница между виртуальными машинами и контейнерами? традиционные типы виртуализации, например, KVM тратят ресурсы сервера на обcлуживание самой виртуальной среды, в случае же контейнера до 95% мощности отдается непосредственно в контейнер и он работает по сути на уровне хостовой машины. Замеры производительности контейнеров мы приведем ниже в этой статье.


    Сравнение LXC и KVM




    LXC KVM
    Изменение размера диска – в случае контейнера LXC увеличение или уменьшение диска происходит очень быстро практически на «лету» Так как KVM это полноценно изолированный контейнер измение размера диска требует перезагрузки виртуальной машины, все как на физическом сервере
    Расщирение RAM, ядер CPU, диска etc. Не требует перезагрузки, если требуется непрерывная работа виртуальной машины то выбор очевиден При любых изменениях в параметрах VPS требуется перезагрузка
    Быстрая перезагрузка контейнера Как писали выше – KVM требует столько же времени на рестарт как и обычный сервер
    Быстрая установка любого образа как операционной системы так и готовых шаблонов (OpenVPN, TorrenServer,OpenLDAP,MediaServer, OwnCloud у нас больше 100 различных шаблонов на все случаи жизни) Возможность установки различных версий Windows и FreeBSD как из шаблонов так и из собственного ISO
    Создание собственной внутренней сети между контейнерами Создание собственной внутренней сети между контейнерами

    По сути, LXC и не является полноценной системой виртуализации. Виртуального аппаратного окружения как такового нет, зато создаётся безопасное изолированное пространство. LXC отличается высокой функциональностью, компактностью и гибкостью в отношении ресурсов, необыкновенной результативностью, простотой использования. С этим механизмом вы сможете создать дата-центр состоящий из нескольких контейнеров для различных целей. Как пример один контейнер мы настраиваем как роутер и firewall за ним распологаем в сегменте DMZ –web, почтовый и file сервера.


    Создание контейнера на примере нашего хостинга





    Итак приступим к заказу (ссылка на корзину) – выбираем имя хоста, пароль для root, параметры CPU, RAM и диска, далее переходим к выбору шаблона для контейнера и жмем «Далее», для тестов мы сделали промо-код HelloHabr, который позволит месяц тестировать совершенно бесплатно. Далее регистрируемся в билинге и если что-то пошло не так создаем запрос в сапорт. Заходим в клиентский кабинет выбираем свежесозданный контейнер и приступаем к тестам. Какие же возможности по доступу нам предлагают в личном кабинете – самое простое это noVNC консоль которая позволяет управлять контейнером непосредственно из браузера:



    … далее SPICE консоль — представляет собой систему отображения (рендеринга) удаленного дисплея, построенную для виртуальной среды, которая позволяет вам просматривать виртуальный «рабочий стол» вычислительной среды не только на машине, на которой он запущен, но и откуда угодно через Интернет(из wiki), так же в разделе Backup мы можем сделать как мгновенный снимок контейнера, так и полное резервное копирование виртуально машины, есть возможность выбрать как тип архива, так и вид копии.



    Также мы можем настроить задания для Backup которые будут выполнятся по определенному расписанию с оповещением на емейл.



    Также хотел бы отметить еще одну удобную опцию – настройка firewall непосрдественно из бразуера, что очень удобно для тех кто не владеет тонкими настройками firewall в Linux. Все очень удобно как для опытных администраторов, так и совсем начинающих.



    Тестирование производительности




    Я для тестов взял самую начальную конфигурацию и теперь хочу посмотреть насколько ее хватает для простых задач, тестировать производительность я буду с помощью пакета unixbench сначала добавим недостающие пакеты


    apt-get install build-essential libx11-dev libgl1-mesa-dev libxext-dev

    далее скачиваем сам unixbench и приступаем к тестированию —


    cd /tmp/
    wget https://github.com/kdlucas/byte-unixbench/archive/master.zip
     unzip master.zip

    и запускаем


    ./Run

    Ждем пока unixbench потестирует контейнер и любуемся результатом


    BYTE UNIX Benchmarks (Version 5.1.3)
    
       System: test: GNU/Linux
       OS: GNU/Linux -- 4.4.59-1-pve -- #1 SMP PVE 4.4.59-87 (Tue, 25 Apr 2017 09:01:58 +0200)
       Machine: x86_64 (unknown)
       Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
       CPU 0: Intel(R) Xeon(R) CPU E5649 @ 2.53GHz (5076.7 bogomips)
              Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
       09:14:27 up 33 min,  2 users,  load average: 0.23, 0.06, 0.06; runlevel Jun
    
    ------------------------------------------------------------------------
    Benchmark Run: Tue Jun 13 2017 09:14:28 - 09:42:27
    24 CPUs in system; running 1 parallel copy of tests
    
    Dhrystone 2 using register variables       29175436.4 lps   (10.0 s, 7 samples)
    Double-Precision Whetstone                     3707.9 MWIPS (8.9 s, 7 samples)
    Execl Throughput                               4656.0 lps   (30.0 s, 2 samples)
    File Copy 1024 bufsize 2000 maxblocks        874980.2 KBps  (30.0 s, 2 samples)
    File Copy 256 bufsize 500 maxblocks          243115.0 KBps  (30.0 s, 2 samples)
    File Copy 4096 bufsize 8000 maxblocks       1778945.2 KBps  (30.0 s, 2 samples)
    Pipe Throughput                             1587733.6 lps   (10.0 s, 7 samples)
    Pipe-based Context Switching                 273143.4 lps   (10.0 s, 7 samples)
    Process Creation                              11873.0 lps   (30.0 s, 2 samples)
    Shell Scripts (1 concurrent)                   5665.4 lpm   (60.0 s, 2 samples)
    Shell Scripts (8 concurrent)                   1061.0 lpm   (60.0 s, 2 samples)
    System Call Overhead                        1897076.6 lps   (10.0 s, 7 samples)
    
    System Benchmarks Index Values               BASELINE       RESULT    INDEX
    Dhrystone 2 using register variables         116700.0   29175436.4   2500.0
    Double-Precision Whetstone                       55.0       3707.9    674.2
    Execl Throughput                                 43.0       4656.0   1082.8
    File Copy 1024 bufsize 2000 maxblocks          3960.0     874980.2   2209.5
    File Copy 256 bufsize 500 maxblocks            1655.0     243115.0   1469.0
    File Copy 4096 bufsize 8000 maxblocks          5800.0    1778945.2   3067.1
    Pipe Throughput                               12440.0    1587733.6   1276.3
    Pipe-based Context Switching                   4000.0     273143.4    682.9
    Process Creation                                126.0      11873.0    942.3
    Shell Scripts (1 concurrent)                     42.4       5665.4   1336.2
    Shell Scripts (8 concurrent)                      6.0       1061.0   1768.3
    System Call Overhead                          15000.0    1897076.6   1264.7
                                                                       ========
    System Benchmarks Index Score                                        1372.3
    
    ------------------------------------------------------------------------
    Benchmark Run: Tue Jun 13 2017 09:42:27 - 10:10:50
    24 CPUs in system; running 24 parallel copies of tests
    
    Dhrystone 2 using register variables       28791897.2 lps   (10.1 s, 7 samples)
    Double-Precision Whetstone                     3650.7 MWIPS (9.0 s, 7 samples)
    Execl Throughput                               4573.6 lps   (29.9 s, 2 samples)
    File Copy 1024 bufsize 2000 maxblocks        899496.3 KBps  (30.0 s, 2 samples)
    File Copy 256 bufsize 500 maxblocks          243438.3 KBps  (30.0 s, 2 samples)
    File Copy 4096 bufsize 8000 maxblocks       1960457.7 KBps  (30.0 s, 2 samples)
    Pipe Throughput                             1588441.9 lps   (10.1 s, 7 samples)
    Pipe-based Context Switching                 221247.7 lps   (10.0 s, 7 samples)
    Process Creation                              10910.9 lps   (30.0 s, 2 samples)
    Shell Scripts (1 concurrent)                   8683.0 lpm   (60.1 s, 2 samples)
    Shell Scripts (8 concurrent)                   1088.9 lpm   (60.8 s, 2 samples)
    System Call Overhead                        1899698.1 lps   (10.1 s, 7 samples)
    
    System Benchmarks Index Values               BASELINE       RESULT    INDEX
    Dhrystone 2 using register variables         116700.0   28791897.2   2467.2
    Double-Precision Whetstone                       55.0       3650.7    663.8
    Execl Throughput                                 43.0       4573.6   1063.6
    File Copy 1024 bufsize 2000 maxblocks          3960.0     899496.3   2271.5
    File Copy 256 bufsize 500 maxblocks            1655.0     243438.3   1470.9
    File Copy 4096 bufsize 8000 maxblocks          5800.0    1960457.7   3380.1
    Pipe Throughput                               12440.0    1588441.9   1276.9
    Pipe-based Context Switching                   4000.0     221247.7    553.1
    Process Creation                                126.0      10910.9    865.9
    Shell Scripts (1 concurrent)                     42.4       8683.0   2047.9
    Shell Scripts (8 concurrent)                      6.0       1088.9   1814.9
    System Call Overhead                          15000.0    1899698.1   1266.5
                                                                       ========
    System Benchmarks Index Score                                        1399.9
    

    Немного рекламы


    Также хотел бы напомнить про наши выделенные сервера с защитой от ДДОС атак
    Сейчас вы можете заказать 2x Intel Xeon E5540 с 32Gb ECC DDR3 RAM с полной защитой и SSD диском на 240Gb всего за 3127 руб. Также всегда в наличии Intel Core i7-7700 от 3769 руб
    За дополнительными скидками велкам в личку

    Контел
    Company
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 11

      +3
      Я бы поостерёгся связываться с хостером, который в 2017 году на KVM-виртуалке (и, видимо, настоящем сервере) не умеет изменять размер диска без ребута.
        –2
        Ок научите увеличивать размер диска в KVM без остановки контейнера
          0
          Для начала — мы о виртуальных машинах, а не о контейнерах (где, к слову, аналогичная операция ещё более тривиальна).

          https://serverfault.com/a/522797
            –3
            Да извините мы о виртуальных машинах, но по вашей ссылке
            Turn off VM (guest machine).
            In your host machine add new storage device.
            Turn on guest.
            Open System -> Administration -> Logical Volume Management (or type sudo system-config-lvm in terminal)*.
              0
              Хотя согласен, впринципе можно обойтись и без перезагрузки
              +3
              1. Ресайзим хранилище (lvm, rbd) штатными методами
              2. Посылаем в qemu команду на изменение размера диска через всторенную консоль или libvirt:

              virsh qemu-monitor-command $VMNAME block_resize drive-virtio-disk0 ${SIZE} --hmp


              1. Ресайзим разделы внутри kvm (если вообще есть таблица разделов) и ресайзим fs.

              Все.

                0
                Все нормально ресайзится. У меня зоопарк этих KVM постоянно диски меняю размеры и добавляю новые. Ребута машины не требуется. Все настройки KVM дефолтные…
              –1
              В статье нет списка доступных шаблонов, поэтому перенесу сюда для тех, кому интересно:

              Длинный список из 140 шаблонов
              Alpine 3.3 Default 20160427 Amd64.tar.xz
              Alpine 3.4 Default 20161206 Amd64.tar.xz
              Archlinux Base 20161207 1 Amd64
              Centos 6 Default 20161207 Amd64.tar.xz
              Centos 7 Default 20161207 Amd64.tar.xz
              Debian 6.0 Standard 6.0 7 Amd64
              Debian 7.0 Standard 7.11 1 Amd64
              Debian 8 Turnkey Ansible 14.1 1 Amd64
              Debian 8 Turnkey Asp Net Apache 14.1 1 Amd64
              Debian 8 Turnkey B2evolution 14.1 1 Amd64
              Debian 8 Turnkey Bugzilla 14.1 1 Amd64
              Debian 8 Turnkey Cakephp 14.1 1 Amd64
              Debian 8 Turnkey Canvas 14.1 1 Amd64
              Debian 8 Turnkey Codeigniter 14.1 1 Amd64
              Debian 8 Turnkey Codeigniter 14.2 1 Amd64
              Debian 8 Turnkey Collabtive 14.1 1 Amd64
              Debian 8 Turnkey Collabtive 14.2 1 Amd64
              Debian 8 Turnkey Concrete5 14.1 1 Amd64
              Debian 8 Turnkey Core 14.1 1 Amd64
              Debian 8 Turnkey Core 14.2 1 Amd64
              Debian 8 Turnkey Couchdb 14.1 1 Amd64
              Debian 8 Turnkey Django 14.1 1 Amd64
              Debian 8 Turnkey Dokuwiki 14.1 1 Amd64
              Debian 8 Turnkey Domain Controller 14.1 1 Amd64
              Debian 8 Turnkey Drupal7 14.1 1 Amd64
              Debian 8 Turnkey Drupal7 14.2 1 Amd64
              Debian 8 Turnkey Drupal8 14.2 1 Amd64
              Debian 8 Turnkey E107 14.1 1 Amd64
              Debian 8 Turnkey E107 14.2 1 Amd64
              Debian 8 Turnkey Elgg 14.1 1 Amd64
              Debian 8 Turnkey Elgg 14.2 1 Amd64
              Debian 8 Turnkey Espocrm 14.1 1 Amd64
              Debian 8 Turnkey Etherpad 14.1 1 Amd64
              Debian 8 Turnkey Ezpublish 14.1 1 Amd64
              Debian 8 Turnkey Fileserver 14.1 1 Amd64
              Debian 8 Turnkey Foodsoft 14.1 1 Amd64
              Debian 8 Turnkey Gallery 14.1 1 Amd64
              Debian 8 Turnkey Ghost 14.1 1 Amd64
              Debian 8 Turnkey Gitlab 14.1 1 Amd64
              Debian 8 Turnkey Gnusocial 14.1 1 Amd64
              Debian 8 Turnkey Icescrum 14.1 1 Amd64
              Debian 8 Turnkey Jenkins 14.1 1 Amd64
              Debian 8 Turnkey Joomla3 14.1 1 Amd64
              Debian 8 Turnkey Lamp 14.1 1 Amd64
              Debian 8 Turnkey Lamp 14.2 1 Amd64
              Debian 8 Turnkey Lapp 14.1 1 Amd64
              Debian 8 Turnkey Lapp 14.2 1 Amd64
              Debian 8 Turnkey Laravel 14.1 1 Amd64
              Debian 8 Turnkey Lighttpd Php Fastcgi 14.1 1 Amd64
              Debian 8 Turnkey Lighttpd Php Fastcgi 14.2 1 Amd64
              Debian 8 Turnkey Limesurvey 14.1 1 Amd64
              Debian 8 Turnkey Lxc 14.1 1 Amd64
              Debian 8 Turnkey Magento 14.1 1 Amd64
              Debian 8 Turnkey Mahara 14.1 1 Amd64
              Debian 8 Turnkey Mambo 14.1 1 Amd64
              Debian 8 Turnkey Mantis 14.1 1 Amd64
              Debian 8 Turnkey Mattermost 14.1 1 Amd64
              Debian 8 Turnkey Mattermost 14.2 1 Amd64
              Debian 8 Turnkey Mediaserver 14.1 1 Amd64
              Debian 8 Turnkey Mediawiki 14.1 1 Amd64
              Debian 8 Turnkey Mediawiki 14.2 1 Amd64
              Debian 8 Turnkey Mibew 14.1 1 Amd64
              Debian 8 Turnkey Mibew 14.2 1 Amd64
              Debian 8 Turnkey Moinmoin 14.1 1 Amd64
              Debian 8 Turnkey Mongodb 14.1 1 Amd64
              Debian 8 Turnkey Moodle 14.1 1 Amd64
              Debian 8 Turnkey Moodle 14.2 1 Amd64
              Debian 8 Turnkey Mysql 14.1 1 Amd64
              Debian 8 Turnkey Mysql 14.2 1 Amd64
              Debian 8 Turnkey Nginx Php Fastcgi 14.1 1 Amd64
              Debian 8 Turnkey Nginx Php Fastcgi 14.2 1 Amd64
              Debian 8 Turnkey Nodejs 14.1 1 Amd64
              Debian 8 Turnkey Observium 14.1 1 Amd64
              Debian 8 Turnkey Observium 14.2 1 Amd64
              Debian 8 Turnkey Odoo 14.1 1 Amd64
              Debian 8 Turnkey Omeka 14.1 1 Amd64
              Debian 8 Turnkey Openldap 14.1 1 Amd64
              Debian 8 Turnkey Openvpn 14.1 1 Amd64
              Debian 8 Turnkey Orangehrm 14.1 1 Amd64
              Debian 8 Turnkey Orangehrm 14.2 1 Amd64
              Debian 8 Turnkey Oscommerce 14.1 1 Amd64
              Debian 8 Turnkey Otrs 14.1 1 Amd64
              Debian 8 Turnkey Owncloud 14.1 1 Amd64
              Debian 8 Turnkey Phpbb 14.1 1 Amd64
              Debian 8 Turnkey Phplist 14.1 1 Amd64
              Debian 8 Turnkey Phreebooks 14.1 1 Amd64
              Debian 8 Turnkey Piwik 14.1 1 Amd64
              Debian 8 Turnkey Pligg 14.1 1 Amd64
              Debian 8 Turnkey Plone 14.1 1 Amd64
              Debian 8 Turnkey Postgresql 14.1 1 Amd64
              Debian 8 Turnkey Postgresql 14.2 1 Amd64
              Debian 8 Turnkey Prestashop 14.1 1 Amd64
              Debian 8 Turnkey Processmaker 14.1 1 Amd64
              Debian 8 Turnkey Processmaker 14.2 1 Amd64
              Debian 8 Turnkey Projectpier 14.1 1 Amd64
              Debian 8 Turnkey Punbb 14.1 1 Amd64
              Debian 8 Turnkey Punbb 14.2 1 Amd64
              Debian 8 Turnkey Rails 14.1 1 Amd64
              Debian 8 Turnkey Redmine 14.1 1 Amd64
              Debian 8 Turnkey Revision Control 14.1 1 Amd64
              Debian 8 Turnkey Roundup 14.1 1 Amd64
              Debian 8 Turnkey Sahana Eden 14.1 1 Amd64
              Debian 8 Turnkey Silverstripe 14.1 1 Amd64
              Debian 8 Turnkey Silverstripe 14.2 1 Amd64
              Debian 8 Turnkey Simpleinvoices 14.1 1 Amd64
              Debian 8 Turnkey Simplemachines 14.1 1 Amd64
              Debian 8 Turnkey Sitracker 14.1 1 Amd64
              Debian 8 Turnkey Sugarcrm 14.1 1 Amd64
              Debian 8 Turnkey Sugarcrm 14.2 1 Amd64
              Debian 8 Turnkey Suitecrm 14.1 1 Amd64
              Debian 8 Turnkey Symfony 14.1 1 Amd64
              Debian 8 Turnkey Tkldev 14.1 1 Amd64
              Debian 8 Turnkey Tomatocart 14.1 1 Amd64
              Debian 8 Turnkey Tomcat Apache 14.1 1 Amd64
              Debian 8 Turnkey Tomcat Apache 14.2 1 Amd64
              Debian 8 Turnkey Tomcat 14.1 1 Amd64
              Debian 8 Turnkey Tomcat 14.2 1 Amd64
              Debian 8 Turnkey Torrentserver 14.1 1 Amd64
              Debian 8 Turnkey Trac 14.1 1 Amd64
              Debian 8 Turnkey Tracks 14.1 1 Amd64
              Debian 8 Turnkey Twiki 14.1 1 Amd64
              Debian 8 Turnkey Typo3 14.1 1 Amd64
              Debian 8 Turnkey Ushahidi 14.1 1 Amd64
              Debian 8 Turnkey Vanilla 14.1 1 Amd64
              Debian 8 Turnkey Vanilla 14.2 1 Amd64
              Debian 8 Turnkey Vtiger 14.1 1 Amd64
              Debian 8 Turnkey Web2py 14.1 1 Amd64
              Debian 8 Turnkey Wordpress 14.1 1 Amd64
              Debian 8 Turnkey Wordpress 14.2 1 Amd64
              Debian 8 Turnkey Xoops 14.1 1 Amd64
              Debian 8 Turnkey Yiiframework 14.1 1 Amd64
              Debian 8 Turnkey Zencart 14.1 1 Amd64
              Debian 8 Turnkey Zurmo 14.1 1 Amd64
              Debian 8 Turnkey Zurmo 14.2 1 Amd64
              Debian 8.0 Standard 8.6 1 Amd64
              Fedora 24 Default 20161207 Amd64.tar.xz
              Gentoo Current Default 20161206 Amd64.tar.xz
              Ubuntu 14.04 Standard 14.04 1 Amd64
              Ubuntu 16.04 Standard 16.04 1 Amd64
              Ubuntu 16.10 Standard 16.10 1 Amd64
                +1
                когда один и тот же экземляпр контейнера выполняется сразу на нескольких физических машинах и в случае выхода из строя одного сервера работа контейнера не приостанавливается ни на минуту.


                Вот тут имеются в виду, вероятно, таки разные экземпляры одного контейнера-шаблона? Или поясните, пожалуйста, что конкретно и где выполняется одновременно.
                  0
                  LXC, Spice… Вы перешли на Proxmox? :P
                    +2
                    Если судить по гифке с консолью, то да. Логотип 4.x Proxmox в верхнем, левом углу + на пару мгновений при старте там пишется «Proxmox Console»

                  Only users with full accounts can post comments. Log in, please.