Что такое 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 руб
За дополнительными скидками велкам в личку

Поделиться с друзьями
-->

Комментарии (11)


  1. ky0
    13.06.2017 15:26
    +3

    Я бы поостерёгся связываться с хостером, который в 2017 году на KVM-виртуалке (и, видимо, настоящем сервере) не умеет изменять размер диска без ребута.


    1. ondys
      13.06.2017 15:38
      -2

      Ок научите увеличивать размер диска в KVM без остановки контейнера


      1. ky0
        13.06.2017 16:03

        Для начала — мы о виртуальных машинах, а не о контейнерах (где, к слову, аналогичная операция ещё более тривиальна).

        https://serverfault.com/a/522797


        1. ondys
          13.06.2017 16:10
          -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)*.


        1. ondys
          13.06.2017 16:13

          Хотя согласен, впринципе можно обойтись и без перезагрузки


      1. farcaller
        13.06.2017 16:40
        +3

        1. Ресайзим хранилище (lvm, rbd) штатными методами
        2. Посылаем в qemu команду на изменение размера диска через всторенную консоль или libvirt:

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


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

        Все.


      1. MasMaX
        14.06.2017 11:48

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


  1. GreenStore
    13.06.2017 16:02
    -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. pansa
    14.06.2017 00:04
    +1

    когда один и тот же экземляпр контейнера выполняется сразу на нескольких физических машинах и в случае выхода из строя одного сервера работа контейнера не приостанавливается ни на минуту.


    Вот тут имеются в виду, вероятно, таки разные экземпляры одного контейнера-шаблона? Или поясните, пожалуйста, что конкретно и где выполняется одновременно.


  1. Fox_exe
    14.06.2017 09:28

    LXC, Spice… Вы перешли на Proxmox? :P


    1. m00gl3
      15.06.2017 12:25
      +2

      Если судить по гифке с консолью, то да. Логотип 4.x Proxmox в верхнем, левом углу + на пару мгновений при старте там пишется «Proxmox Console»