Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:виртуализация:lxc [2012/10/27 10:55] [Безопасность] |
wiki:руководство_по_ubuntu_server:виртуализация:lxc [2014/05/15 13:56] (текущий) [Настройка основной системы] |
||
---|---|---|---|
Строка 54: | Строка 54: | ||
**LXC** сохраняет информацию контейнеров и корневую файловую систему (с резервным хранилищем по умолчанию) в **/var/lib/lxc**. Также шаблоны создания контейнеров предпочитают хранить закешированную информацию по дистрибутивам в **/var/cache/lxc**. | **LXC** сохраняет информацию контейнеров и корневую файловую систему (с резервным хранилищем по умолчанию) в **/var/lib/lxc**. Также шаблоны создания контейнеров предпочитают хранить закешированную информацию по дистрибутивам в **/var/cache/lxc**. | ||
- | Если вы хотите использовать для **/var** иную файловую систему, вы можете смонтировать в этот каталог другую файловую систему большего объема. Если у вас есть диск, предназначенный для этих целей, вы можете просто смонтировать его в **/var/lib/lxc**. Если вы предпочитаете использовать другое расположение, такое как /srv, вы можете примонтировать его к этому каталогу или создать символическую ссылку. Например, если /srv является большой смонтированной файловой системой, создайте два каталога и символьные ссылки на них: | + | Дефолтный путь, называемый **lxcpath**, может быть переопределён в командной строке ключом **-P** или навсегда через **lxcpath = /новый/путь** в **/etc/lxc/lxc.conf** |
+ | Если вы переопределяете **lxcpath**, то каталог снимков **snap** добавляется к **lxcpath** и магическим образом за ним следует. Кэш шаблонов, к сожалению, жёстко вшит и не просто его сменить. | ||
+ | Но можно всё сделать через символические ссылки. Например, если /srv является большой смонтированной файловой системой, создайте каталог и символьную ссылку на него: | ||
<code> | <code> | ||
- | sudo mkdir /srv/lxclib /srv/lxccache | + | sudo mkdir /srv/lxccache |
- | sudo rm -rf /var/lib/lxc /var/cache/lxc | + | sudo rm -rf /var/cache/lxc |
- | sudo ln -s /srv/lxclib /var/lib/lxc | + | |
sudo ln -s /srv/lxccache /var/cache/lxc | sudo ln -s /srv/lxccache /var/cache/lxc | ||
</code> | </code> | ||
или, используя монтирование: | или, используя монтирование: | ||
<code> | <code> | ||
- | sudo mkdir /srv/lxclib /srv/lxccache | + | sudo mkdir /srv/lxccache |
sudo sed -i '$a \ | sudo sed -i '$a \ | ||
- | /srv/lxclib /var/lib/lxc none defaults,bind 0 0 \ | ||
/srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab | /srv/lxccache /var/cache/lxc none defaults,bind 0 0' /etc/fstab | ||
sudo mount -a | sudo mount -a | ||
Строка 79: | Строка 79: | ||
Если основная система имеет **/var**, размеченный как **btrfs**, средства администрирования LXC распознают это и автоматически будут использовать для клонирования контейнеров снимки btrfs. | Если основная система имеет **/var**, размеченный как **btrfs**, средства администрирования LXC распознают это и автоматически будут использовать для клонирования контейнеров снимки btrfs. | ||
+ | ===ZFS=== | ||
+ | |||
+ | Подобно **btrfs**, использование **zfs** позволит применять возможности, но уже **ZFS**: подтом (subvolume) для контейнера, быстрое создание снимков и клонов, более эффективное использование места на диске за счёт дедупликации. | ||
===Apparmor=== | ===Apparmor=== | ||
- | LXC поставляется с профилем Apparmor, предназначенным для защиты основной системы от случайного неправильного использования привилегий внутри контейнера. Нпример, контейнер не должен иметь возможности писать в каталог /proc/sysrq-trigger или менять большинство файлов в каталоге /sys. | + | LXC поставляется с профилем Apparmor, предназначенным для защиты основной системы от случайного неправильного использования привилегий внутри контейнера. Например, контейнер не должен иметь возможности писать в каталог /proc/sysrq-trigger или менять большинство файлов в каталоге /sys. |
Профиль **usr.bin.lxc-start** используется при запуске **lxc-start**. Этот профиль в основном предотвращает монтирование **lxc-start** новых файловых систем вне корневой файловой системы контейнера. Перед инициализацией контейнера LXC запрашивает переключение на профиль контейнера. По умолчанию используется профиль **lxc-container-default**, определенный в **/etc/apparmor.d/lxc/lxc-default**. Этот профиль запрещает контейнеру доступ к многим опасным каталогам и монтирование большинства файловых систем. | Профиль **usr.bin.lxc-start** используется при запуске **lxc-start**. Этот профиль в основном предотвращает монтирование **lxc-start** новых файловых систем вне корневой файловой системы контейнера. Перед инициализацией контейнера LXC запрашивает переключение на профиль контейнера. По умолчанию используется профиль **lxc-container-default**, определенный в **/etc/apparmor.d/lxc/lxc-default**. Этот профиль запрещает контейнеру доступ к многим опасным каталогам и монтирование большинства файловых систем. | ||
Строка 198: | Строка 201: | ||
===Клонирование=== | ===Клонирование=== | ||
- | Для быстрой подготовки к работе вы можете решить изменить canonical контейнер в соответствии с вашими требованиями и затем сделать множество его копий. Это можно осуществить с помощью программы lxc-clone. Дан существующий контейнер с именем C1, новый контейнер C2 мможет быть создан: | + | Для быстрой подготовки к работе вы можете решить изменить canonical контейнер в соответствии с вашими требованиями и затем сделать множество его копий. Это можно осуществить с помощью программы lxc-clone. Дан существующий контейнер с именем C1, новый контейнер C2 может быть создан: |
<code>sudo lxc-clone -o C1 -n C2</code> | <code>sudo lxc-clone -o C1 -n C2</code> | ||
Строка 495: | Строка 498: | ||
По умолчанию LXC контейнеры запускаются под управлением политики Apparmor для ограничения некоторых действий. Несмотря на то, что более строгая безопасность является задачей следующих редакций, в 12.04 LTS задачей политики Apparmor является не прекращение злонамеренных действий, а предупреждения случайных повреждений основной системы из гостевой. | По умолчанию LXC контейнеры запускаются под управлением политики Apparmor для ограничения некоторых действий. Несмотря на то, что более строгая безопасность является задачей следующих редакций, в 12.04 LTS задачей политики Apparmor является не прекращение злонамеренных действий, а предупреждения случайных повреждений основной системы из гостевой. | ||
- | Смотрите [[http://wiki.ubuntu.com/LxcSecurity|LXC security wiki]] страницу для дополнительной актуальной информации. | + | Смотрите [[http://wiki.ubuntu.com/LxcSecurity|LxcSecurity wiki]] страницу для дополнительной актуальной информации. |
===Используемые системные вызовы=== | ===Используемые системные вызовы=== | ||
Строка 503: | Строка 506: | ||
====Ссылки==== | ====Ссылки==== | ||
- | The DeveloperWorks article LXC: Linux container tools was an early introduction to the use of containers. | + | ~~ Статья в DeveloperWorks [[https://www.ibm.com/developerworks/linux/library/l-lxc-containers/|LXC: Linux container tools]] является введением в использование контейнеров. |
- | + | ~~ [[http://www.ibm.com/developerworks/linux/library/l-lxc-security/index.html|The Secure Containers Cookbook]] демонстрирует использование модулей безопасности с целью сделать контейнеры более безопасными. | |
- | The Secure Containers Cookbook demonstrated the use of security modules to make containers more secure. | + | ~~ Страницы руководств могут быть найдены по данным ссылкам: |
- | + | ~~ [[http://manpages.ubuntu.com/manpages/en/man7/capabilities.7.html|capabilities]]. | |
- | Manual pages referenced above can be found at: | + | ~~ [[http://manpages.ubuntu.com/manpages/en/man5/lxc.conf.5.html|lxc.conf]]. |
- | + | ~~ Основное развитие проекта LXC на [[http://lxc.sf.net/|Sourceforge]]. | |
- | capabilities | + | ~~ Проблемы безопасности приведены и обсуждаются на странице [[http://wiki.ubuntu.com/LxcSecurity|LxcSecurity wiki]]. |
- | lxc.conf | + | ~~ Для дополнительной информации по пространствам имен в Linux смотрите: [[http://dl.acm.org/citation.cfm?id=1400097.1400109&coll=DL&dl=GUIDE&CFID=133158545&CFTOKEN=80778967|S.Bhattiprolu, E.W.Biederman, S.E.Hallyn, and D.Lezcano. Virtual Servers and Checkpoint/Restart in Mainstream Linux. SIGOPS Operating Systems Review, 42(5), 2008]]. |
- | + | ~~ Стефан Грабер (Stéphane Graber), в предверии выхода 20 февраля 2014 года релиза LXC 1.0, опубликовал цикл статей о Linux Containers. [[https://www.stgraber.org/2013/12/20/lxc-1-0-blog-post-series/|LXC 1.0: Blog post series]] ([[http://vasilisc.com/lxc-1-0-blog-post-series|перевод]]). | |
- | The upstream LXC project is hosted at Sourceforge. | + | |
- | + | ||
- | LXC security issues are listed and discussed at the LXC Security wiki page | + | |
- | + | ||
- | For more on namespaces in Linux, see: S. Bhattiprolu, E. W. Biederman, S. E. Hallyn, and D. Lezcano. Virtual Servers and Check- point/Restart in Mainstream Linux. SIGOPS Op- erating Systems Review, 42(5), 2008. | + | |
---- | ---- | ||
Строка 524: | Строка 521: | ||
[[wiki:руководство_по_ubuntu_server:виртуализация:ubuntu_cloud|<-назад]] | | [[wiki:руководство_по_ubuntu_server:виртуализация:ubuntu_cloud|<-назад]] | | ||
[[wiki:руководство_по_ubuntu_server:кластеризация|далее->]]</style> | [[wiki:руководство_по_ubuntu_server:кластеризация|далее->]]</style> | ||
- |