Что такое LXC?
Аббревиатура расшифровывается просто 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)
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 Amd64pansa
14.06.2017 00:04+1когда один и тот же экземляпр контейнера выполняется сразу на нескольких физических машинах и в случае выхода из строя одного сервера работа контейнера не приостанавливается ни на минуту.
Вот тут имеются в виду, вероятно, таки разные экземпляры одного контейнера-шаблона? Или поясните, пожалуйста, что конкретно и где выполняется одновременно.
ky0
Я бы поостерёгся связываться с хостером, который в 2017 году на KVM-виртуалке (и, видимо, настоящем сервере) не умеет изменять размер диска без ребута.
ondys
Ок научите увеличивать размер диска в KVM без остановки контейнера
ky0
Для начала — мы о виртуальных машинах, а не о контейнерах (где, к слову, аналогичная операция ещё более тривиальна).
https://serverfault.com/a/522797
ondys
Да извините мы о виртуальных машинах, но по вашей ссылке
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)*.
ondys
Хотя согласен, впринципе можно обойтись и без перезагрузки
farcaller
virsh qemu-monitor-command $VMNAME block_resize drive-virtio-disk0 ${SIZE} --hmp
Все.
MasMaX
Все нормально ресайзится. У меня зоопарк этих KVM постоянно диски меняю размеры и добавляю новые. Ребута машины не требуется. Все настройки KVM дефолтные…