https://www.altlinux.org/api.php?action=feedcontributions&user=SlavaDubrovskiy&feedformat=atomALT Linux Wiki - Вклад [ru]2024-03-29T13:15:53ZВкладMediaWiki 1.38.2https://www.altlinux.org/index.php?title=Etcnet&diff=27894Etcnet2014-01-02T11:55:09Z<p>SlavaDubrovskiy: /* Настройка Ethernet-моста */</p>
<hr />
<div>{{DISPLAYTITLE:etcnet}}<br />
{{span|font-size: 180%|Подсказки пользователю /etc/net}}<br />
<br />
{|<br />
|-valign="top"<br />
|Дополнительные страницы:<br />
* [[etcnet/qos|настройка QoS]]<br />
* [[etcnet/firewall|настройка сетевого экрана (firewall)]]<br />
Совсем быстрая настройка «с нуля»:<br />
# сконфигурируйте интерфейсы вручную, как надо;<br />
# запустите {{cmd|/etc/net/scripts/contrib/initconf write}};<br />
# проверьте содержимое подкаталогов {{path|/etc/net/ifaces/}}.<br />
|<br />
{| style="border:1px solid #AAA; background:#F9F9F9; width:280px; margin: 0 0 1em 1em; padding:.2em; text-align:center;" class=noprint<br />
|-<br />
|[[Image:Information.svg|20x20px]]Начиная с [[Branches/p5|пятой ветки]],<br /> <div style="display: inline; color: red;">в ALT Linux может использоваться и<br />[[NetworkManager/feature|NetworkManager]]</div> (используйте <tt>NM_CONTROLLED=no</tt><br />в {{path|$iface/options}}, если хотите использовать etcnet).<br />
|}<br />
|<br />
{| style="border:1px solid #AAA; background:#F9F9F9; width:155px; margin: 0 0 1em 1em; padding:.2em; float: right;" class=noprint<br />
|-<br />
|[[Image:Information.svg|20x20px]] external links:<br />
* [http://sisyphus.ru/en/srpm/etcnet package info]<br />
* [http://git.altlinux.org/people/sbolshakov/packages/?p=etcnet.git;a=summary source git repo]<br />
|}<br />
|}<br />
<br />
<!-- Не убирайте div-ы, на них есть внешние ссылки! --><br />
<div id="quickstart"></div><br />
<br />
== Быстрый старт ==<br />
<div id="docs"></div><br />
<br />
=== Источники информации по /etc/net ===<br />
Обратите внимание, что начиная с версии 0.8.0 документация по /etc/net была собрана из комментариев, расположенных во множестве файлов, в несколько страниц руководств (man). Список всех файлов документации пакета <tt>etcnet</tt> можно получить командой:<br />
<pre>$ rpmquery -d etcnet</pre><br />
<br />
<div id="onecard"></div><br />
<br />
=== Быстрая настройка сетевого интерфейса стандарта Ethernet ===<br />
Для настройки одного сетевого интерфейса следует выполнить следующие шаги:<br />
<br />
Шаг 1: Создать каталог {{path|/etc/net/ifaces/eth0}}. Это каталог конфигурации данного интерфейса (<tt>eth0</tt>), в котором будут храниться файлы с настройками.<br />
<br />
Шаг 2: Определить, какой модуль необходим для вашей сетевой карты. Для этого можно использовать команды: <tt>lspci, lspcidrake, pciscan</tt>.<br />
<br />
Шаг 3: В каталоге конфигурации сетевого интерфейса создать файл <tt>options</tt> и записать в этот файл строку:<br />
<pre>MODULE=<имя модуля></pre> <br />
На данном этапе работу с файлом <tt>options</tt> можно завершить.<br />
<div style='padding:6px;border:1px solid red;'>Шаг 3 имеет смысл только в случае, если модули сетевых карт не грузятся автоматически другими средствами, например посредством udev. Если модуль уже загружен, параметр MODULE бесполезен.</div><br />
<br />
Шаг 4: Выяснить, какой IP-адрес должен быть назначен вашему интерфейсу. Если ваш сетевой интерфейс конфигурируется по DHCP, то в файл {{path|/etc/net/ifaces/eth0/options}} следует записать строку:<br />
<pre>BOOTPROTO=dhcp</pre><br />
и перейти к шагу 7.<br />
<br />
'''Замечание:''' В ряде случаев в файле <tt>options</tt> может понадобиться запись:<br />
<pre>DHCP_HOSTNAME=<имя машины без домена></pre><br />
Эта опция описана в странице руководства <tt>etcnet-options(5)</tt>.<br />
<br />
'''Замечание:''' В конце файла <tt>options</tt> необходимо наличие пустой строки.<br />
<br />
У сетевого интерфейса существуют два взаимосвязанных атрибута: <br />
* IP-адрес;<br />
* сетевая маска (mask). <br />
Шаг 5: Текущие значение адреса можно просмотреть командой:<br />
{{cmd|# /sbin/ip address show}} <br />
Вероятнее всего вы увидите, что интерфейс-петля lo (loopback) уже сконфигурирован с адресом 127.0.0.1/8 (что эквивалентно IP-адресу 127.0.0.1 и маске подсети 255.0.0.0). <tt>/8</tt> означает длину префикса CIDR (Classless InterDomain Routing).<br />
Для задания IP-адреса и маски подсети интерфейса <tt>eth0</tt> необходимо создать файл {{path|/etc/net/ifaces/eth0/ipv4address}}, в который следует записать IP-адрес с длиной маски, например:<br />
<pre>10.0.0.20/24</pre> <br />
<br />
Наиболее популярны маски /24 (т.е. длина префикса CIDR равная 24 эквивалентна маске сети 255.255.255.0 - это одна сеть класса C на 254 хоста) и /30. Для справки приводится таблица соответствия сетевых масок в различных нотациях.<br />
<ref><br />
{|<br />
|<br />
{| class="standard"<br />
|-<br />
!маска<br />в битах!!маска<br />точечно-<br />десятичная<br />
|-<br />
|/32||255.255.255.255<br />
|-<br />
|/31||255.255.255.254<br />
|-<br />
|/30||255.255.255.252<br />
|-<br />
|/29||255.255.255.248<br />
|-<br />
|/28||255.255.255.240<br />
|-<br />
|/27||255.255.255.224<br />
|-<br />
|/26||255.255.255.192<br />
|-<br />
|/25||255.255.255.128<br />
|-<br />
|/24||255.255.255.0<br />
|-<br />
|/23||255.255.254.0<br />
|-<br />
|/22||255.255.252.0<br />
|-<br />
|/21||255.255.248.0<br />
|-<br />
|/20||255.255.240.0<br />
|-<br />
|/19||255.255.224.0<br />
|-<br />
|/18||255.255.192.0<br />
|-<br />
|/17||255.255.128.0<br />
|}<br />
|<br />
| ||<br />
{| class="standard"<br />
|-<br />
!маска<br />в битах!!маска<br />точечно-<br />десятичная<br />
|-<br />
|/16||255.255.0.0<br />
|-<br />
|/15||255.254.0.0<br />
|-<br />
|/14||255.252.0.0<br />
|-<br />
|/13||255.248.0.0<br />
|-<br />
|/12||255.240.0.0<br />
|-<br />
|/11||255.224.0.0<br />
|-<br />
|/10||255.192.0.0<br />
|-<br />
|/9||255.128.0.0<br />
|-<br />
|/8||255.0.0.0<br />
|-<br />
|/7||254.0.0.0<br />
|-<br />
|/6||252.0.0.0<br />
|-<br />
|/5||248.0.0.0<br />
|-<br />
|/4||240.0.0.0<br />
|-<br />
|/3||224.0.0.0<br />
|-<br />
|/2||192.0.0.0<br />
|-<br />
|/1||128.0.0.0<br />
|}<br />
|}<br />
</ref><br />
<br />
Шаг 6: Выяснить адрес вашего шлюза (маршрут по умолчанию). Например, IP-адрес вашего шлюза — <tt>10.0.0.254</tt>. Тогда необходимо создать файл {{path|/etc/net/ifaces/eth0/ipv4route}}, в который записать строку:<br />
<pre>default via 10.0.0.254</pre><br />
Шаг 7: Убедиться, что всё выполнено правильно, выполнив команду:<br />
{{cmd|# service network restart}}<br />
Ваш интерфейс <tt>eth0</tt> должен быть успешно сконфигурирован. Если вы конфигурировали <tt>eth0</tt>, используя DHCP-сервер, но адрес интерфейсу не был назначен, то следует искать сообщение от DHCP-сервера в файле {{path|/var/log/messages}}.<br />
<br />
<div id="ifplugd"></div><br />
<br />
=== Настройка ifplugd ===<br />
Начиная с версии 0.7.10, /etc/net управляет ifplugd самостоятельно. Это было сделано для лучшей интеграции пакетов и для возможности следить за несколькими сетевыми интерфейсами одновременно. Для корректного использования ifplugd необходимо выполнить команду:<br />
# chkconfig ifplugd off<br />
<br />
и назначить переменную <tt>USE_IFPLUGD</tt> в файлах <tt>options</tt> соответствующих интерфейсов (<tt>/etc/net/ifaces/<имя интерфейса>/options</tt>). Комментарий по данной переменной дан в странице руководства <tt>etcnet-options(5)</tt>.<br />
<br />
<div id="ppp"></div><br />
<br />
=== Настройка PPP-интерфейса ===<br />
Для настройки обычного модемного PPP-соединения необходимо:<br />
# Создать каталог конфигурации PPP-интерфейса, например, {{path|/etc/net/ifaces/ppp5}}. Вы можете задавать имена PPP-интерфейса вида pppN, pppNN, pppNNN и т. п., где N - любая цифра от 0 до 9;<br />
# Прочитать файл: {{path|/etc/net/ifaces/default/options-ppp}};<br />
# Создать файлы конфигурации. Вероятнее всего вам понадобятся <tt>pppconnect</tt> и <tt>pppdisconnect</tt>, чтобы <tt>pppd</tt> "знал", как дозваниваться и соединяться. Это скрипты для программы <tt>chat(8)</tt>. Кроме этого в файле <tt>pppoptions</tt> можно (часто нужно) перечислить опции <tt>pppd(8)</tt>, определяющие способ авторизации, скорость и название порта и т. п.;<br />
# Заполнить {{path|/etc/ppp/chap-secrets}} или {{path|/etc/ppp/pap-secrets}}.<br />
<br />
==== Настройка USB 3G-модема ====<br />
{{main|Установка и настройка 3G USB модема Huawei E1550}}<br />
<br />
<div id="ppp-pptp-pppoe"></div><br />
<br />
==== Настройка PPTP-интерфейса и PPPoE-интерфейса ====<br />
{{main|VPN (PPTP PPPoE)}}<br />
<br />
Хотя PPtP-соединения могут быть настроены и как обычные PPP-соединения, в /etc/net версии 0.7.10 для удобства пользователей была введена опция <tt>PPPTYPE</tt>. Она может принимать следующие значения:<br />
* <tt>dialup</tt> - обычный PPP-интерфейс.<br />
* <tt>pppoe</tt> - интерфейс PPPoE. Для такого интерфейса необходимо в опции <tt>HOST</tt> указывать имя Ethernet-интерфейса, через который будет производиться работа PPPoE. Побочным положительным эффектом будет то, что этот интерфейс будет при необходимости автоматически подниматься (т.е настраиваться) (см. [[#Зависимости между интерфейсами|Зависимости между интерфейсами]]).<br />
* <tt>pptp</tt> - интерфейс PPTP. Для такого интерфейса необходимо в опции <tt>PPTP_SERVER</tt> указывать имя хоста или IP-адрес PPtP-сервера, к которому будет производиться подключение. Обратите внимание, что хотя такие интерфейсы не имеют опции <tt>HOST</tt>, в большинстве случаев есть необходимость указать в опции <tt>REQUIRES</tt> интерфейс, через который будет достижим хост, указанный в <tt>PPTP_SERVER</tt>.<br />
<br />
См. также [[#Замечания о настройке VPN-подключения и туннелей|Замечания о настройке VPN-подключения и туннелей]].<br />
<br />
<div id="DNSandPPP"></div><br />
<br />
==== DNS и PPP-соединения ====<br />
<div style="display: inline; color: red;">Внимание: здесь описывается проблема, которая на самом деле была создана, а не решена — т.е. ради специфики [https://bugzilla.altlinux.org/show_bug.cgi?id=13789 kppp] была создана чётная ошибка в [https://bugzilla.altlinux.org/show_bug.cgi?id=13773 ppp-common]; последняя уже исправлена.</div><br />
<br />
Довольно долгое время существовала проблема неправильной модификации {{path|/etc/resolv.conf}} при установке PPP-соединений: [https://bugzilla.altlinux.org/show_bug.cgi?id=4249 #4249]. Сейчас она решена, но необходимо дать пояснения. Прежде всего убедитесь, что в файле {{path|/etc/resolv.conf}} есть строка:<br />
<pre># ppp temp entry</pre><br />
Если этой строки нет, то в файле не будут модифицироваться строки nameserver, если только какая-нибудь программа типа kppp это не сделает специально. Если такая строка есть, то {{path|/etc/resolv.conf}} будет модифицироваться в зависимости от значения булевой (логической) переменной RESOLV_MODS, которую необходимо задать в файле {{path|/etc/sysconfig/network}}.<br />
<br />
<div style="display: inline; color: red;">Внимание</div>: при ppp-common >= 0.4-alt1 строки <tt># ppp temp entry</tt> в файле {{path|/etc/resolv.conf}} при отсутствии PPP-соединения, поднятого какой-либо программой-«звонилкой», запущенной от администратора системы (пользователь root) — быть '''не должно'''! Если это есть, следует убрать, чтобы {{cmd|/etc/ppp/ip-up}} занимался обновлением записей про DNS в этом файле.<br />
<br />
<div id="restartreload"></div><br />
<br />
=== restart, reload и другие команды ===<br />
У сервиса <tt>network</tt> имеется ряд команд:<br />
* <tt>start</tt> - запустить все стационарные интерфейсы. hotplug-интерфейсы будут сконфигурированы при поступлении соответствующего вызова от hotplug.<br />
* <tt>startwith <имя профиля> </tt> - старт с указанным именем профиля, а не определённым автоматически.<br />
* <tt>stop</tt> - остановить все стационарные интерфейсы. hotplug-интерфейсы будут расконфигурированы при поступлении соответствующего вызова от hotplug.<br />
* <tt>stopwith <имя профиля> </tt> - стоп с указанным именем профиля, а не определённым автоматически.<br />
* <tt>restart</tt> - эквивалентно <tt>stop</tt> с последующим <tt>start</tt>, как и в большинстве других сервисов.<br />
* <tt>restartwith <имя профиля> </tt> - рестарт в контексте указанного профиля, эквивалентно <tt>stopwith <имя профиля> и startwith <имя профиля></tt>.<br />
* <tt>switchto <имя профиля> </tt> - переключение в указанный профиль, эквивалентно <tt>stop</tt> и <tt>startwith <имя профиля></tt>.<br />
* <tt>reload</tt> - семантически обозначает «актуализировать текущую конфигурацию». Для всех сконфигурированных в настоящий момент интерфейсов будет выполнена реконфигурация при наличии конфигурации.<br />
* <tt>check</tt> - автоматическая проверка конфигурационной базы.<br />
<br />
<div id="bootproto"></div><br />
<br />
=== Протоколы конфигурации адресов ===<br />
С помощью опции <tt>BOOTPROTO</tt> вы можете управлять тем, как у интерфейса будут появляться адреса и маршруты (это относится только к протоколу IPv4, так как протоколы IPv6 и IPX получают адреса только статически).<br />
* <tt>static</tt> — адреса и маршруты будут взяты из <tt>ipv4address</tt> и <tt>ipv4route</tt>.<br />
* <tt>dhcp</tt> — интерфейс будет сконфигурирован по DHCP.<br />
* <tt>ipv4ll</tt> — интерфейс будет сконфигурирован с помощью IPv4LL (link-local), ранее известному как ZCIP (zeroconf IP). Это значит, что из сети 169.254.0.0/16 будет подобран ещё не использованный адрес и назначен на интерфейс.<br />
Существует несколько комбинированных способов:<br />
* <tt>dhcp-static</tt> — если конфигурация по DHCP не удалась, конфигурировать методом static.<br />
* <tt>dhcp-ipv4ll</tt> — если конфигурация по DHCP не удалась, конфигурировать методом ipv4ll.<br />
* <tt>dhcp-ipv4ll-static</tt> — если конфигурация по DHCP не удалась, конфигурировать методом ipv4ll. Если и это не удалось, конфигурировать методом static.<br />
<br />
<div id="internals"></div><br />
<br />
== Устройство /etc/net ==<br />
<div id="generalinfo"></div><br />
<br />
=== Общие сведения ===<br />
/etc/net — это система конфигурации сети в Linux, т.е. эта система позволяет администратору Linux достаточно просто произвести настройки сети. Если же вы читаете эту страницу, то, вероятно, у вас возникли трудности с её использованием. Для решения возможных проблем полезно знать:<br />
<br />
<!--# [http://etcnet.org/ http://etcnet.org/] - сайт проекта, на котором можно найти примеры конфигурации и статьи по настройке системы. ?Рекурсия? --><br />
# /etc/net интегрирован в ALT Linux Sisyphus в виде пакетов:<br />
#* {{pkg|etcnet}} - базовые сценарии;<br />
#* {{pkg|etcnet-full}} - виртуальный пакет с зависимостями на все пакеты, которые могут использоваться сценариями /etc/net, с указанием их точных версий;<br />
#* {{pkg|etcnetconf}} - '''прототип''' конфигуратора;<br />
#* {{pkg|etcnet-defaults-desktop}} - умолчания для рабочей станции;<br />
#* {{pkg|etcnet-defaults-server}} - умолчания для сервера; <br />
# Пакеты {{pkg|etcnet}} и {{pkg|net-scripts}} — две конфликтующие реализации «подсистемы конфигурации сети» (network-config-subsystem).<br />
# При установке etcnet вместо net-scripts (или наоборот) сервис <tt>network</tt> оказывается выключенным. Это означает, что при загрузке системы сеть не будет сконфигурирована, что можно проверить командой {{cmd|chkconfig --list network}}. Для быстрого исправления проблемы можно дать команду {{cmd|chkconfig network reset}}.<br />
# etcnet '''НЕ''' импортирует автоматически настройки net-scripts. Если вы только что установили etcnet, и ваши сетевые интерфейсы всё ещё остаются сконфигурированными (несмотря на уже отсутствующий пакет net-scripts), то вы можете запустить сценарий {{cmd|/etc/net/scripts/initconf}}. Он попытается проанализировать текущее состояние интерфейсов и выведет вам результат. Никаких файлов при этом записано не будет. Если вам подходит вывод initconf, то запустите его с параметром write и он проделает то же самое, но уже с сохранением конфигурации.<br />
# Для корректной работы системы в целом необходимо, чтобы содержимое файла {{path|/etc/sysconfig/network}} было корректным.<br />
# Переменные <tt>sysctl</tt> в ОС ALT Linux конфигурируются в следующих местах<ref>{{altbug|26498}}</ref>:<br />
#* {{path|/etc/sysctl.conf}} (глобальные системные);<br />
#* {{path|/etc/sysconfig/network-scripts/sysctl.conf}} (общие сетевые в net-scripts);<br />
#* {{path|/etc/net/sysctl.conf}} (общие сетевые в /etc/net);<br />
#* <tt>/etc/net/ifaces/*/sysctl.conf*</tt> (частные для конкретных интерфейсов или их типов в /etc/net).<br />
<br />
<div id="options.d"></div><br />
<br />
=== Организация опций /etc/net по умолчанию ===<br />
Методология /etc/net предусматривает несколько шагов наследования опций, первый из которых — загрузка опций по умолчанию. В ранних версиях это происходило из одного файла <tt>/etc/net/options</tt>, сейчас же в вашем распоряжении есть каталог {{path|/etc/net/options.d}}, из которого будут последовательно прочитаны все файлы.<br />
<br />
Иными словами, оригинальный архив etcnet содержит только файл {{path|/etc/net/options.d/00-default}}. Упаковщик etcnet, вместо того, чтобы добавить патч в какой-либо дистрибутив, просто добавляет файл с бОльшим номером, который переопределяет нужные опции.<br />
<br />
Ввиду решения различных задач, администратору системы может не подойти содержание дистрибутивного набора. В этом случае администратор может создать файл с ещё более высоким номером и определить настройки умолчания для своей системы. В результате такого подхода:<br />
# Уменьшается количество патчей (хотя их свойство "отваливаться" от пакета при его упаковке бывает полезным).<br />
# Не изменяются файлы с опциями, принадлежащие пакету. Это делает обновление пакета намного более корректным.<br />
# Можно легко увидеть, какие опции переопределяются на каждом этапе.<br />
<br />
<div id="iftab"></div><br />
<br />
=== Назначение iftab ===<br />
<br />
Начиная с дистрибутивов, основанных на ветках p5 и 5.1, переименование интерфейсов возложено на udev; см. тж. [http://lists.altlinux.org/pipermail/sisyphus/2009-June/340033.html это письмо] и <s>[https://bugzilla.altlinux.org/show_bug.cgi?id=19313 #19313]</s> и [http://sisyphus.ru/srpm/wireless-tools/changelog %changelog ifrename].<br />
<br />
Имена сетевых интерфейсов по умолчанию, как правило, содержат их тип (eth, ppp, wifi, ipsec) и индекс: 0 - для первого созданного интерфейса, 1 - для второго и т. д. При этом соответствие автоматически назначенных имён физическим устройствам может не сохраняться.<br />
<br />
Эта особенность неудобна, когда машина с Linux имеет более одного интерфейса каждого типа. Типичными примерами являются маршрутизаторы и ноутбуки. В маршрутизаторах, как правило, используются однотипные сетевые карты и при их замене или изменении порядка на PCI-шине соответствие оказывается нарушенным. В ноутбуках используются ethernet и wifi-устройства с горячим подключением, при этом слотов и карт может быть более чем 1. В этом случае пользователь/администратор скорее всего пожелает закрепить за каждой сменной картой её конфигурацию.<br />
<br />
/etc/net при конфигурации интерфейса использует то имя, под которым он сконфигурирован, а именно имя каталога, в котором хранятся файлы конфигурации интерфейса.<br />
<br />
Для привязки сетевой карты к имени интерфейса в простых случаях можно воспользоваться файлом {{path|/etc/iftab}}, man-страница по формату которого входит в пакет <tt>ifrename</tt> (<tt>iftab(5)</tt>).<br />
<br />
Использование {{path|/etc/iftab}} удобно, поскольку позволяет сохранять традиционные имена интерфейсов (например, eth0), но этот механизм не поддерживает расширенную функциональность /etc/net (в частности, ''профили'' /etc/net).<br />
<br />
Средством, позволяющим использовать все возможности <tt>etcnet</tt>, является файл {{path|/etc/net/iftab}}, обрабатываемый не утилитой <tt>ifrename</tt>, а непосредственно <tt>etcnet</tt>. Синтаксис этого файла совпадает с синтаксисом {{path|/etc/iftab}}. Ограничением же является невозможность использовать стандартные имена интерфейсом (<tt>ethX</tt>, <tt>pppX</tt>), так как переименование интерфейсов происходит уже после конфигурации интерфейса ядром. В случае, если вам необходим {{path|/etc/net/iftab}}, имеет смысл переименовать интерфейсы, давая им либо двухзначные номера (<tt>eth00</tt>, <tt>eth01</tt>...), либо осмысленные названия (<tt>isplink</tt>, <tt>lan</tt>...)<br />
<br />
См. письмо про [http://lists.altlinux.org/pipermail/sisyphus/2009-March/337924.html важность /etc/iftab]<br />
и тж. это письмо про [http://lists.altlinux.org/pipermail/devel/2007-October/065097.html отличия etcnet и сервиса ifrename]:<br />
{{начало цитаты}} Комментарии к письмам этого треда (с некоторыми пояснениями):<br />
<br />
1. «etcnet уже научился менять местами eth0 и eth1?»<br />
<br />
Освоение этого приема обладает сомнительной пользой. Рекомендуется <br />
рассматривать eth0 как временное имя с малым сроком жизни,<br />
а для повышения комфорта пользователей Ethernet-интерфейсы предлагается<br />
называть eth00, eth01, eth02 etc.<br />
<br />
2. «Существование (номинальное) net-scripts вынуждает поддерживать<br />
ряд сервисов, которые иначе могли бы быть упразднены»<br />
<br />
Эти сервисы можно "обезвредить" (отключить) контролем CONFMETHOD<br />
из /etc/sysconfig/network. При этом зависимости на пакет etcnet<br />
не возникнет, только на network-config-subsystem. Примеры таких<br />
пакетов должны быть в Sisyphus.<br />
<br />
3. «после приведения в порядок /etc/udev/rules.d/19-udev-ifrename.rules<br />
нужности в /etc/net/iftab я не заметил»<br />
<br />
Важнейшее принципиальное отличие /etc/net/iftab от /etc/iftab —<br />
нахождение /etc/net/iftab в специальном пространстве имён. Для него<br />
действуют механизмы определения профиля и хоста конфигурации. Это,<br />
например, позволит, при необходимости, составить конфигурацию так, что срочный<br />
ремонт маршрутизатора сведётся к переносу диска (или массива)<br />
из сгоревшего шасси в запасное. Возможны и другие примеры, которые<br />
станут невозможными при помещении iftab в /etc и его прямой<br />
интерпретации.<br />
<br />
Конечно, пользователю единственного ноутбука с одним-двумя сетевыми<br />
интерфейсами такая практика — полный overkill (т.е. такая практика ему не нужна), но его никто и не<br />
заставляет видеть всю подводную часть (т.е. все тонкости работы и настройки). В этом и гибкость.{{конец цитаты}}<br />
<br />
<div id="specifaces"></div><br />
<br />
=== Интерфейсы lo, default и unknown ===<br />
Сразу после установки пакета <tt>etcnet</tt> в каталоге {{path|/etc/net/ifaces}} (в котором хранятся конфигурации интерфейсов) находятся три каталога: <br />
* lo<br />
* default<br />
* unknown<br />
<br />
Интерфейс '''lo''' — стандартная "петля" (loopback), которая должна быть во всякой Linux-системе, поэтому конфигурация для него включена по умолчанию. В остальном он ничем не отличается от любого другого интерфейса и конфигурируется точно так же файлами <tt>options</tt> и <tt>ipv4address</tt>.<br />
<br />
Интерфейс '''default''' — это не интерфейс, а специальный каталог, файлы в котором обрабатываются следующим образом:<br />
* <tt>resolv.conf</tt> — если присутствует, то копируется в {{path|/etc/resolv.conf}}.<br />
* <tt>options</tt> — файл опций, читается после опций по умолчанию.<br />
* <tt>options-<вид интерфейса></tt> — этот файл содержит опции, специфичные для данного вида интерфейсов. Некоторые из них не обязательны и позволяют использовать особенности данного вида интерфейсов, например, <tt>LINKDETECT</tt> в <tt>options-eth</tt>; другие обязательны, например, <tt>HOST</tt> в <tt>options-bri</tt>. Обратите внимание, что эти файлы не рекомендуется редактировать. Если вам нужно задать опцию для интерфейса, то, как правило, это можно сделать в файле <tt>options</tt> в конфигурационном каталоге данного интерфейса. Это облегчит процесс обновления пакета etcnet.<br />
* <tt>sysctl.conf-<вид интерфейса></tt> — файл с переменными sysctl, которые необходимо изменить. Сейчас единственный такой файл — <tt>sysctl.conf-dvb</tt>, который отключает <tt>return path filter</tt>, что всегда нужно в случае асимметричной маршрутизации.<br />
* <tt>iplink-<вид интерфейса></tt> — файл с командами iplink, специфичными для данного вида.<br />
* <tt>selectprofile</tt> — если этот файл исполняемый, то он будет вызван из сценариев <tt>ifup/ifdown</tt>, <tt>setup/shutdown</tt> для того, чтобы вернуть на стандартном выводе имя профиля, которое необходимо использовать. Это позволяет автоматически переключать профили в зависимости от каких-либо условий. В поставку включен пример сценария: {{path|/etc/net/scripts/contrib/selectprofile}}.<br />
* <tt>fw</tt> — каталог с настройками сетевого экрана по умолчанию.<br />
<br />
Интерфейс '''unknown''' — специальная конфигурация, которая будет использована в том случае, когда /etc/net просят сконфигурировать hotplug-интерфейс, для которого не существует каталога конфигурации. Это будет работать только в том случае, если включена опция <tt>ALLOW_UNKNOWN</tt>.<br />
<br />
<div id="broadcast"></div><br />
<br />
=== broadcast address===<br />
<br />
Периодически возникает вопрос: почему после старта /etc/net при запуске <tt>ifconfig</tt> можно видеть <tt>Bcast:0.0.0.0</tt>, хотя при использовании net-scripts это поле было правильным? <br />
<br />
Ответ: net-scripts оперируют адресом, маской, адресом сети и широковещательным адресом, пытаясь определить неизвестные компоненты из известных, а <tt>config-ipv4</tt> просто передаёт утилите <tt>ip</tt> содержимое файла <tt>ipv4address</tt>, не проверяя его содержание.<br />
Важно заметить, что:<br />
* Если <tt>iproute2</tt> изменит свой синтаксис, то с очень вероятно, что администратору будет необходимо редактировать только конфигурационные файлы.<br />
* Не было найдено проблем с «отсутствующим» broadcast address. Он есть в таблице маршрутизации <tt>local</tt>. <br />
* Администратор всегда может назначить адрес broadcast в файле <tt>ipv4address</tt>. Это можно сделать с помощью выражения <tt>broadcast +</tt><ref><br />
Выдержка из файла ip-cref.ps, который входит в документацию пакета iproute2:<br />
<br />
<pre><br />
* broadcast ADDRESS<br />
<br />
the broadcast address on the interface.<br />
It is possible to use the special symbols '+' and '-' instead of the broadcast address. In this case, <br />
the broadcast address is derived by setting/resetting the host bits of the interface prefix.<br />
NB. Unlike ifconfig, the ip utility does not set any broadcast address unless explicitly requested.<br />
</pre><br />
</ref>.<br />
'''Замечание:''' В версии 0.8.0 появилась опция <tt>AUTO_BROADCAST</tt> для автоматического дополнения каждой строки <tt>ipv4address</tt>.<br />
<br />
<div id="never_rmmod"></div><br />
<br />
=== Ядро 2.6 и "пропадающие" интерфейсы ===<br />
Иногда возможна ситуация: Если два интерфейса используют один и тот же модуль ядра, и у них определена опция <tt>MODULE</tt> (то есть скрипты /etc/net сами загружают и выгружают модули), то при опускании (отключении) одного интерфейса пропадает и второй интерфейс. <br />
<br />
Такая ситуация почти наверняка возникает при использовании ядра 2.6, особенностью которого являются значения счётчика ссылок (третий столбец вывода {{cmd|lsmod}}). Когда счетчик оказывается равен нулю (довольно часто), скрипты могут попытаться выгрузить модуль интерфейса, для которого запущен ifdown. И такая выгрузка происходит, несмотря на то, что другой интерфейс, использующий этот же модуль, находится в состоянии UP (т.е. он активен).<br />
<br />
Чтобы заблокировать выгрузку модулей, можно использовать булеву переменную <tt>NEVER_RMMOD</tt>. Возможно, позже это будет происходить автоматически для ядер следующих версий.<br />
<br />
<div id="removables"></div><br />
<br />
=== Cценарии конфигурации сети и hotplug-интерфейсы ===<br />
<br />
==== Cценарии конфигурации сети ====<br />
Существует несколько сценариев конфигурации сети.<br />
<br />
* Первый и самый простой — выполнение {{cmd|service network start}} при старте системы или вручную. При этом требуется только сформировать погруппные (потиповые) списки интерфейсов, подлежащих обработке, и последовательно выполнить требуемые действия. Модули ядра при этом загружаются сценариями /etc/net, при этом имена модулей берутся из опции <tt>MODULE</tt> (в этой опции можно в кавычках перечислить несколько имён и они будут последовательно загружены). Этот метод часто используется на практике и лучше всего подходит для маршрутизаторов. Преимущество метода в том, что вся необходимая информация сконцентрирована в одном месте — каталоге {{path|/etc/net}}. Если опция <tt>MODULE</tt> не определена, то будет предпринята попытка загрузки по имени интерфейса, подразумевая, что файл {{path|/etc/modules.conf}} правильно заполнен.<br />
<br />
* Второй сценарий — реакция на событие <tt>ifplugd</tt>. В предыдущих версиях существовала сложность, так как требовалась синхронная настройка сервиса <tt>ifplugd</tt>. Сейчас логика работы определена, что выражено в том, что /etc/net взяла управление <tt>ifplugd</tt> на себя. В части загрузки модуля этот сценарий не отличается от первого.<br />
<br />
* Третий сценарий — реакция на появление или исчезновение сменного устройства. Для обработки таких событий предназначены сценарии <tt>/etc/net/scripts/{ifup,ifdown}-removable</tt>, которые вызываются из сценариев пакетов hotplug и pcmcia-cs. Сложность заключается в том, что для сменных PCMCIA-карт вызовы могут дублироваться: для одного и того же события первый раз ifup-removable будет вызван из hotplug, второй — из pcmcia-cs. Кроме того, hotplug также реагирует на загрузку модулей ядра для обычных карт PCI и, более того, включает сценарии, которые пытаются загружать модули самостоятельно. В этом контексте /etc/net получает слишком много вызовов от hotplug и по умолчанию их игнорирует (<tt>USE_HOTPLUG=no</tt>).<br />
<br />
==== hotplug-интерфейсы ====<br />
Рассмотрим использование hotplug-интерфейсов. <br />
<br />
Пусть администратору необходимо настроить действительно сменную карту. После заполнения {{path|/etc/iftab}} или {{path|/etc/net/iftab}} в файле <tt>options</tt> необходимо будет задать <tt>USE_HOTPLUG=yes</tt>. После этого при получении события от hotplug /etc/net будет работать в том контексте, что модуль в загрузке и выгрузке не нуждается. <br />
<br />
Важно заметить, что '''такой интерфейс будет пропущен при обычном старте сети''', т.к. если он сменный, то единственный достоверный способ узнать, что он присутствует — получить вызов от hotplug. Из факта выполнения {{cmd|service network start}} совсем не следует, что какой-то один или несколько из сконфигурированных hotplug-интерфейсов сейчас в наличии и требуют конфигурации. Если вы хотите вручную расконфигурировать hotplug-интерфейс до его извлечения, используйте команду {{cmd|ifdown}}. Для повторной конфигурации вставьте его ещё раз.<br />
<br />
Также существует опция <tt>USE_PCMCIA</tt>. Если события для вашей карты генерирует pcmcia-cs, то вам нужно её включить. Если события генерируются только hotplug, то используйте опцию <tt>USE_HOTPLUG</tt>.<br />
<br />
<div id="eth0"></div><br />
<br />
=== Проблема стандартных имен интерфейсов (eth0 и др.)===<br />
<br />
При использовании файла {{path|/etc/net/iftab}}, то есть в случае применения сложных конфигураций, возникает следующая проблема:<br />
* При загрузке модулей имена интерфейсов принимают вид eth0, eth1, eth2… Какие именно — в общем случае контролировать нельзя.<br />
* Имя eth0 обладает наибольшей вероятностью оказаться занятым.<br />
* ifrename не может переименовать интерфейс, если целевое имя уже занято (udev использует <tt>ifrename -t</tt>, но это не работает после начальной загрузки, см. руководство к ifrename).<br />
<br />
С учётом вышеизложенного, если {{path|/etc/net/iftab}} содержит тот же набор имён интерфейсов, что уже имеется после загрузки модулей (то есть <tt>eth0</tt>/<tt>eth1</tt> и другие «стандартные» названия), то единственный случай, когда etcnet сможет без ошибок обработать такой файл — изначальное соответствие, не требующее переименования.<br />
<br />
Таким образом, при использовании {{path|/etc/net/iftab}} имеет смысл давать интерфейсам названия, отличные по виду от тех, что назначает ядро. В простых случаях лучше использовать {{path|/etc/udev/rules.d/70-persistent-net.rules}} ({{path|/etc/iftab}} до бранчей p5/5.1).<br />
<br />
<div id="advanced"></div><br />
<br />
== Расширенные возможности ==<br />
<div id="multipleIPs"></div><br />
<br />
=== Несколько IP-адресов или маршрутов на одном интерфейсе ===<br />
<br />
Вы можете помещать произвольное количество IP-адресов в файл <tt>ipv4address</tt> по одному адресу на каждой строке. То же самое относится к статическим маршрутам и файлу <tt>ipv4route</tt>.<br />
<br />
Обратите внимание, что /etc/net не анализирует содержимое этих файлов, а формирует на основе каждой строки командную строку для утилиты {{cmd|ip}}. Это означает, что вы можете помещать в этих файлах произвольные поддерживаемые {{cmd|ip}} опции и они будут обработаны. Например, в файле <tt>ipv4route</tt> можно поместить строку:<br />
<pre>10.0.1.0/24 via 10.0.0.253 metric 50 weight 5 table 100</pre><br />
<br />
<div id="requires"></div><br />
<br />
=== Зависимости между интерфейсами ===<br />
У интерфейсов:<br />
* vlan<br />
* bond <br />
* bri <br />
* teql <br />
входящих в группу зависимых физических, должна быть определена опция <tt>HOST</tt> со списком интерфейсов, необходимых для инициализации текущего интерфейса. Если хост-интерфейс не сконфигурирован при поднятии зависимого интерфейса, то это будет исправлено.<br />
<br />
Кроме обязательной для определённых интерфейсов опции <tt>HOST</tt>, может быть задана и необязательная для всех остальных интерфейсов опция <tt>REQUIRES</tt>. Интерфейсы, перечисленные в этой опции, будут считаться зависимостями текущего интерфейса. Например, по умолчанию попытка сконфигурировать интерфейс А, который зависит от Б и В, приведёт сначала к конфигурации Б и В. Аналогично, при расконфигурации Б или В сначала будет расконфигурирован А.<br />
<br />
Зависимость одного интерфейса от другого не всегда формальна. Например, в сценарии <tt>ifup-pre</tt> одного интерфейса может использоваться команда, которая потребует разрешения DNS-имени, которое может быть разрешено только с помощью <tt>resolv.conf</tt>, инсталлируемого другим интерфейсом. Или это может быть PPPoE/PPtP-интерфейс, требующий Ethernet-интерфейс для работы.<br />
<br />
Для того, чтобы избежать неожиданных сбоев в таких случаях, правильно задавайте опцию <tt>REQUIRES</tt>.<br />
<br />
<div id="postpre"></div><br />
<br />
=== Пользовательские сценарии post и pre ===<br />
Существует возможность поместить в каталог конфигурации интерфейса файлы, которые будут выполнены в определённые моменты. Для этого они должны быть исполняемыми и называться следующим образом:<br />
* <tt>ifup-pre</tt> — для выполнения перед конфигурированием интерфейса.<br />
* <tt>ifup-post</tt> — для выполнения после конфигурирования интерфейса. Например, можно запустить почтовую систему.<br />
* <tt>ifdown-pre</tt> — для выполнения перед расконфигурированием интерфейса. Например, можно остановить почтовую систему.<br />
* <tt>ifdown-post</tt> — для выполнения после расконфигурирования интерфейса.<br />
<br />
Также в версии до 0.8.0 возможно использовать следующие сценарии (они должны быть исполняемыми):<br />
* <tt>/etc/net/scripts/ifup-pre-local</tt><br />
* <tt>/etc/net/scripts/ifup-post-local</tt><br />
* <tt>/etc/net/scripts/ifdown-pre-local</tt><br />
* <tt>/etc/net/scripts/ifdown-post-local</tt><br />
<br />
Они будут вызваны для каждого интерфейса. Начиная с версии 0.8.0 эти сценарии называются так:<br />
* <tt>/etc/net/ifup-pre</tt><br />
* <tt>/etc/net/ifup-post</tt><br />
* <tt>/etc/net/ifdown-pre</tt><br />
* <tt>/etc/net/ifdown-post</tt><br />
Семантика сохранена.<br />
<br />
<div id="iplink"></div><br />
<br />
=== Управление канальными параметрами интерфейсов ===<br />
<br />
Если поместить в конфигурационный каталог интерфейса файл <tt>iplink</tt>, в котором в каждой строке будут записаны команды режима link утилиты {{cmd|ip}}, то они будут выполнены при конфигурации интерфейса. <br />
<br />
Например, если необходимо, чтобы интерфейс net1 имел MAC-адрес aa:bb:cc:dd:ee:ff и MTU 200 байт, то в файл {{path|/etc/net/ifaces/net1/iplink}} нужно поместить следующее:<br />
<pre>address aa:bb:cc:dd:ee:ff<br />
mtu 200</pre><br />
<br />
Обратите внимание, что в этом случае в {{path|/etc/net/iftab}} вам необходимо будет использовать селектор <tt>businfo</tt> или <tt>driver</tt> вместо <tt>mac</tt>.<br />
<br />
<div id="ethtool"></div><br />
<br />
=== Управление физическими параметрами интерфейсов ===<br />
Если поместить в конфигурационный каталог интерфейса файл <tt>ethtool</tt>, в котором будет строка с параметрами программы ethtool, то она будет выполнена при конфигурации интерфейса. <br />
<br />
Например, если есть необходимость, чтобы интерфейс net1 имел скорость 10Мбит/с и авто-согласование скорости было отключено, то в файл {{path|/etc/net/ifaces/net1/ethtool}} нужно поместить следующую строку:<br />
<br />
<pre>speed 10 autoneg off</pre><br />
<br />
<div id="bridge"></div><br />
<br />
=== Настройка Ethernet-моста ===<br />
<br />
Для настройки Ethernet-моста (далее — моста) есть 2 пути: <br />
# Linux bridge<br />
# Openvswitch<br />
<br />
Linux bridge наиболее простая реализация. Если вам не нужно все, что умеет [http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=README;hb=HEAD openvswitch] , то можно использовать Linux bridge.<br />
<br />
==== Linux bridge ====<br />
Перед настройкой Ethernet-моста (далее — моста) с помощью etcnet сначала необходимо убедиться, что установлен пакет bridge-utils. Etcnet использует утилиту brctl для настройки моста, и, если утилита не установлена, то при перезапуске системы сеть станет недоступна. Если интерфейсы, входящие в состав моста, являются единственными физически подключенными и настройка моста происходит с удаленного узла через эти интерфейсы, то требуется соблюдать осторожность, т.к. эти интерфейсы перестанут быть доступны. В случае ошибки в конфигурации потребуется физический доступ к серверу. Для страховки, перед перезапуском сервиса network можно открыть ещё одну консоль и запустить там, например, команду: {{cmd|sleep 500 && reboot}}.<br />
<br />
Также имейте ввиду, что если вы подключаетесь по ssh к серверу через bridge-интерфейс (по его ip-адресу), то по умолчанию при опускании любого интерфейса-члена моста Etcnet так же опустит и сам мост (и ваше подключение пропадет). Чтобы избежать этого, установите в файле {{path|options}} того интерфейса, который нужно опускать, переменную <tt>IFDOWN_CHILDREN=no</tt>. Но учтите, что и включаться в бридж при старте тогда этот интерфейс по умолчанию не будет. <br />
<br />
Предположим, требуется настроить Ethernet-мост, пусть он будет называться <tt>br0</tt>. <br />
Тогда для его настройки необходимо завести каталог {{path|/etc/net/ifaces/br0}} и создать там файлы со следующими данными:<br />
<br />
* <tt>brctl</tt><br />
<br />
<pre> stp AUTO on </pre><br />
<br />
* <tt>ipv4address</tt>:<br />
<pre> 192.168.100.200/24 </pre><br />
<br />
* <tt>options</tt>:<br />
<pre> TYPE=bri<br />
HOST='eth0 tap0'<br />
BOOTPROTO=static </pre><br />
<br />
Содержимое файла <tt>brctl</tt> передаётся утилите brctl. <tt>AUTO</tt> означает, что скрипт {{cmd|setup-bri}} самостоятельно определит имя bridge-интерфейса (см. файл {{path|/usr/share/doc/etcnet-*/README.bridge}}). Если же в вашей сети этот мост один и рассылать пакеты протокола STP не нужно, тогда файл brctl с указанной опцией не нужен. По умолчанию [http://xgu.ru/wiki/man:brctl#Spanning_Tree_Protocol_.28.D0.9F.D1.80.D0.BE.D1.82.D0.BE.D0.BA.D0.BE.D0.BB_.D0.BE.D1.81.D1.82.D0.BE.D0.B2.D0.BD.D0.BE.D0.B3.D0.BE_.D0.B4.D0.B5.D1.80.D0.B5.D0.B2.D0.B0.29 STP выключен].<br />
<br />
IP-адрес для интерфейса, как обычно, будет взят из <tt>ipv4address</tt>.<br />
<br />
В опции <tt>HOST</tt> файла <tt>options</tt> нужно указать те интерфейсы, которые будут входить в мост. Если в него будут входить интерфейсы, которые до этого имели IP-адрес (например, eth0), то этот адрес должен быть удалён (например, можно закомментировать содержимое файла {{path|ifaces/eth0/ipv4address}}).<br />
<br />
При старте сети сначала поднимаются интерфейсы, входящие в мост, затем сам мост (автоматически). Для назначения адреса мосту можно также использовать DHCP (<tt>BOOTPROTO=dhcp</tt>). Но при этом важно обратить внимание на параметр <tt>forwarding delay</tt> (man brctl / setfd), так как интерфейс, подключенный к мосту, не сразу входит в режим передачи пакетов, и это может вызвать dhcp таймаут. Версии etcnet в дистрибутивах ALT Linux Server 4 и Desktop 4.1 (0.9.7-alt0.M40/M41) имеют эту недоработку, которая исправлена только в версии 0.9.9-alt1. <br />
Документацию по настройке моста с вопросами и ответами (перевод) можно найти на http://xgu.ru/wiki/Linux_Bridge, а его оригинал доступен на http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge.<br />
<br />
С пакетом etcnet поставляются примеры конфигурации. Один из них показывает, как из двух ethernet-интерфейсов port0 и port1 можно собрать мост bridge (каталог документации examples/Ethernet-bridge-GRE/).<br />
<br />
Безотносительно к etcnet, следует иметь ввиду проблему, связанную с NAT: <s>[http://bugzilla.kernel.org/show_bug.cgi?id=13079 http://bugzilla.kernel.org/show_bug.cgi?id=13079]</s><br />
<br />
<div id="vlan"></div><br />
<br />
<br />
==== openvswitch ====<br />
Как настриавать openvswitch описано [[Etcnet/openvswitch|тут]]<br />
<br />
=== Настройка VLAN ===<br />
<br />
Для настройки 802.1q VLAN (например, id 4094 на eth1) следует, создав каталог {{path|ifaces/eth1.4094}}, поместить в него файлы со следующим содержимым:<br />
<br />
* <tt>ipv4address</tt>:<br />
<pre>192.168.100.200/24</pre><br />
<br />
* <tt>options</tt>:<br />
<pre> TYPE=vlan<br />
HOST=eth1<br />
VID=4094<br />
BOOTPROTO=static</pre><br />
<br />
Содержимое переменных <tt>HOST</tt> и <tt>VID</tt> будет передано утилите <tt>vconfig</tt>; использование файла <tt>vlantab</tt> необязательно (и не рекомендуется по причине невозможности использовать ifup для отдельного интерфейса). Пример конфигурации можно найти в каталоге examples/VLAN-without-vlantab/ документации etcnet.<br />
<br />
Следует обратить внимание, что 4094 является верхней допустимой границей идентификатора валидного VLAN, а [http://www.candelatech.com/pipermail/vlan/2004-November/000128.html 4095 используется технически в процессе отбрасывания трафика по неверным VLAN]. (следует отметить, что это не ограничение Linux: [http://en.wikipedia.org/wiki/802.1Q в стандарте под VID отведено 12 бит])<br />
<br />
'''Для настройки Q-in-Q интерфейса''', например, eth1.123.513 (дважды тегированный трафик: внешняя метка -- 123, внутренняя -- 513) следует файл <tt>options</tt> в каталоге {{path|ifaces/eth1.123.513}} заполнить следующим образом:<br />
<br />
* <tt>options</tt>:<br />
<pre> TYPE=vlan<br />
HOST=eth1.123 # "родительский" интерфейс; может называться иначе<br />
VID=513<br />
VLAN_REORDER_HDR=0<br />
BOOTPROTO=static</pre><br />
<br />
Родительский интерфейс должен быть сконфигурирован (можно с или без <tt>BOOTPROTO</tt>, с или без <tt>ipv4address</tt> и т.п.).<br />
<br />
Таким образом, можно каскадировать интерфейсы "как угодно глубоко" (Q-in-Q-in-Q-in-Q....). Необходимо только учитывать, что длина имени интерфейса ограничена (16-ю символами).<br />
<br />
<div id="bonding"></div><br />
<br />
=== Настройка bonding ===<br />
Bonding - объединение нескольких физических сетевых интерфейсов в один логический, для достижения отказоустойчивости, увеличения скорости и балансировки нагрузки. Возможны несколько режимов работы и много параметров для настроек, подробнее см. http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding<br />
<br />
Для создания агрегированного bond-интерфейса средствами etcnet создаем, как обычно, директорию для интерфейса (например, <tt>bond0</tt>) с <tt>options</tt>, <tt>ipv4address</tt>, и прочими необходимыми файлами. В <tt>options</tt> указываем тип интерфейса <tt>bond</tt>, перечисляем в переменной <tt>HOST</tt> родительские интерфейсы, которые будут входить в наш агрегированный интерфейс, указываем в переменной <tt>BONDMODE</tt> режим (по умолчанию 0), и опции для модуля ядра <tt>bonding</tt> в <tt>BONDOPTIONS</tt>.<br><br />
Так, для создания LACP-агрегированного канала (802.3ad), у нас получится такой <tt>options</tt>:<br />
TYPE=bond<br />
ONBOOT=yes<br />
BOOTPROTO=static<br />
HOST="eth0 eth1"<br />
BONDMODE=4<br />
BONDOPTIONS="miimon=100 lacp_rate=1"<br />
Интерфейсы eth0 и eth1 должны тоже быть описаны в etcnet.<br />
<br />
Как правило, для создания агрегированного интерфейса требуется, чтобы входящие в него физические интерфейсы имели одинаковые характеристики - скорость, дуплекс, etc.<br />
<br />
Не стоит указывать режим в переменной <tt>BONDOPTIONS</tt>: попытки изменить какие-то режимоспецифичные параметры до установки правильного режима могут быть отвергнуты. Поэтому, первым делом нужно установить необходимый режим, указав его для этого в <tt>BONDMODE</tt>.<br />
<br />
Информацию о получившемся агрегированном интерфейсе можно посмотреть в {{path|/proc/net/bonding/bond0}}<br />
<br />
<div id="tun/tap"></div><br />
<br />
=== Настройка tun/tap интерфейса ===<br />
<br />
Etcnet поддерживает простое создание интерфейсов типа tun/tap. Это виртуальный тип интерфейсов для передачи пакетов между ядром и программами, который не передает данных через физические устройства.<br />
'''tun''' — это интерфейс типа point-to-point, работающий с кадрами IP.<br />
'''tap''' — интерфейс типа ethernet, работающий с кадрами ethernet.<br />
<br />
Потребуется использование утилиты tunctl, находящейся в одноименном пакете.<br />
Пусть требуется создать и настроить tun/tap интерфейс, например, с именем tap0. Для этого необходимо:<br />
* создать каталог интерфейса:<br />
<br />
/etc/net/ifaces/tap0<br />
<br />
* создать в каталоге интерфейса {{path|/etc/net/ifaces/tap0}} файл настройки <tt>options</tt> со следующим содержанием:<br />
<br />
TYPE=tuntap<br />
TUNTAP_USER=combr<br />
<br />
<br />
<tt>TUNTAP_USER</tt> — это аккаунт или цифровой id пользователя, которому будут даны права на использование интерфейса tap0 (устройство /dev/net/tun).<br />
Этот параметр будет передан утилите <tt>tunctl</tt> как аргумент опции <tt>-u</tt> (см. руководство на tunctl).<br />
С версии ядра 2.6.18 произошли изменения в управлении этим типом интерфейсов, потребовавшие<br />
обязательного применения <tt>tunctl</tt> для разрешения доступа обычных<br />
пользователей к tap-интерфейсам. В предыдущих версиях любой<br />
пользователь, имеющий доступ к <tt>/dev/net/tun</tt>, мог создать любое<br />
количество сетевых интерфейсов с произвольными именами. Начиная с<br />
2.6.18, для создания интерфейса через <tt>/dev/net/tun</tt> требуется<br />
<tt>CAP_NET_ADMIN</tt> (обычно эту привилегию имеет только root), а обычный<br />
пользователь, имеющий доступ к <tt>/dev/net/tun</tt>, может только использовать<br />
уже созданные интерфейсы, к которым разрешён доступ для его uid.<br />
<br />
=== Настройка интерфейса типа OpenVPN ===<br />
<br />
Настройка OpenVPN может быть произведена большим количеством способов и вариантов с разными целями, и достойна отдельной статьи. Здесь, для начала, будет описан вариант openvpn-сервера в режиме bridging.<br />
Для этого надо проделать подготовку:<br />
* создать ключи [http://openvpn.net/index.php/open-source/documentation/howto.html#pki англ. HOWTO]<br />
(до версии 2.3 утилиты easy-rsa шли в составе дистрибутива openvpn, потом отдельно).<br />
* настроить [http://www.altlinux.org/Etcnet#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_Ethernet-.D0.BC.D0.BE.D1.81.D1.82.D0.B0 мост] (между внутренним физическим интерфейсом и интерфейсом tap, который будет использовать openvpn) "средствами системы".<br />
<br />
Далее надо сделать так (скрипты etcnet по умолчанию ожидают это):<br />
* создать каталог интерфейса:<br />
<br />
/etc/net/ifaces/tap0<br />
<br />
* создать в каталоге интерфейса {{path|/etc/net/ifaces/tap0}} файл настройки <tt>options</tt> со следующим содержанием:<br />
<br />
TYPE=ovpn<br />
<br />
(необязательно, но желательно указать '''REQUIRES'''=''<имя ethernet-интерфейса>'', с которым будет связан туннель)<br />
<br />
* Конфигурационный файл для openvpn (из примера в пакете openvpn-docs - такой, как /usr/share/doc/openvpn-docs-2.2.2/sample-config-files/server.conf) надо переделать, удалив параметры, которые etcnet подставляет самостоятельно при запуске:<br />
<br />
dev<br />
ca<br />
cert<br />
key<br />
persist-key<br />
persist-tun<br />
<br />
И обязательно добавив параметры, которых по умолчанию в конфиге-примере нет:<br />
<br />
tls-server<br />
script-security 2<br />
<br />
Параметр script-security был введен начиная с версии 2.1_rc9. Поскольку etcnet запускает openvpn так, что в процессе тот запускает скрипт scripts/openvpn.action, который считается "пользовательским", то для этого значение должно быть 2.<br />
<br />
* скопировать в каталог интерфейса ключи и измененный конфиг-файл openvpn.<br />
Файлы надо переименовать (ключи - после easy-rsa) таким образом:<br />
{| align="center" border="1"<br />
|ключ easy-rsa<br />
|ключ etcnet-ovpn<br />
|-<br />
|ca.crt <br />
|ovpnca<br />
|-<br />
|server.crt<br />
|ovpncrt<br />
|-<br />
|server.key<br />
|ovpnkey<br />
|-<br />
|server.conf<br />
|ovpnoptions<br />
|}<br />
<br />
<br />
<br />
После всего этого можно попробовать запустить интерфейс: ifup tun0 (или весь мост, например ifup br0). Но если, например, openvpn считает ошибочной какую-либо опцию, то он молча выйдет с кодом выхода 1, и скрипт ifup ничего не напишет (в логе так же не будет попытки запуска openvpn). Потребуется отладка (например, можно запустить openvpn вручную без параметра --daemon и со всеми параметрами, которые подставил etcnet).<br />
<br />
<div id="iptun"></div><br />
<br />
=== Настройка и использование IP-туннелей ===<br />
<br />
IP-туннели — средство, позволяющее улучшить IP-сети. Поддерживаются IP-туннели трёх видов: <br />
* IPIP<br />
* GRE<br />
* SIT <br />
<br />
Прежде всего следует определить необходимый вид туннеля для решаемой задачи. <br />
<br />
* Туннели '''IPIP''' — самые простые.<br />
<br />
* Туннели '''GRE''' (general incapsulation) обычно используются в маршрутизаторах Cisco. По туннелям этого типа могут передаваться broadcast и multicast пакеты. Кроме того, эти туннели поддерживают контрольные суммы и контроль упорядоченности пакетов. Также GRE-туннели обладают опциональным атрибутом key в виде произвольного 4-байтового числа, который позволяет конфигурировать несколько GRE туннелей между одной парой IP-адресов несущей сети (в отличие от IPIP-туннелей, с которыми это невозможно).<br />
<br />
* Туннели '''SIT''' предназначены для транспортировки пакетов IPv6 через сети IPv4.<br />
<br />
<br />
Тип туннеля определяется опцией <tt>TUNTYPE (ipip, gre, sit)</tt>. По умолчанию <tt>TUNTYPE=ipip</tt>. Кроме типа туннеля для конфигурации всегда требуется адрес удалённого хоста и почти всегда — локальный адрес. Эти адреса определяются опциями <tt>TUNREMOTE</tt> и <tt>TUNLOCAL</tt> соответственно. В некоторых случаях локальный адрес можно не указывать. В этом случае опция <tt>TUNLOCAL</tt> всё равно обязательна, но принимает значение <tt>any</tt>. Не забудьте назначить туннельному интерфейсу адреса и маршруты в соответствующих файлах.<br />
<br />
Пример: Конфигурация GRE-туннеля между 10.0.1.2 и 10.0.2.3 с двумя ключами для исходящих и входящих пакетов, проверкой очерёдности пакетов, TTL 8 и вычислением контрольных сумм. Туннель должен использовать только интерфейс gw1. Пусть имя создаваемого туннеля будет <tt>mytunnel</tt>.<br />
<br />
Тогда необходимо сделать следующие операции:<br />
* Создать каталог туннеля: {{path|/etc/net/ifaces/mytunnel}}<br />
<br />
* Создать в каталоге туннеля файл настроек <tt>options</tt>: {{path|/etc/net/ifaces/mytunnel/options}}<br />
<br />
* Отредактировать файл настроек <tt>options</tt>: <br />
<br />
<source lang="ini"><br />
TYPE=iptun<br />
TUNTYPE=gre<br />
TUNLOCAL=10.0.1.2<br />
TUNREMOTE=10.0.2.3<br />
TUNTTL=8<br />
HOST=gw1<br />
TUNOPTIONS='ttl 64 seq ikey 2020 okey 2030 csum'<br />
</source><br />
<br />
<div id="vpn"></div><br />
<br />
Про <tt>ttl 64</tt>. Если параметр ttl не задан, значение берётся из инкапсулируемого пакета (это надо проверить). В некоторых случаях ttl может получиться слишком мал (например, Quagga формирует OSPF-пакеты с TTL 1).<br />
<br />
Стоит помнить, что имена <tt>tunl0, gre0 и sit0</tt> являются зарезервированными в iproute2 ("base devices") и имеют особое поведение: http://www.liveinternet.ru/users/stasikos/post71435454/<br />
<br />
=== Настройка IPv6 ===<br />
==== Отключение IPv6 ====<br />
<br />
* '''Вариант 1'''<br />
Чтобы отключить IPv6 на всех сетевых интерфейсах в работающей системе с загруженным модулем ipv6, нужно изменить значение параметра ядра net.ipv6.conf.all.disable_ipv6, где 'all' подразумевает все интерфейсы, а net.ipv6.conf.eth0.disable_ipv6 -- отключение протокола IPv6 только на интерфейсе eth0 и т.д.<br />
<pre><br />
sysctl net.ipv6.conf.all.disable_ipv6=1<br />
</pre><br />
Также можно добавить данную директиву в {{path|/etc/sysctl.conf}}:<br />
<source lang="bash"><br />
echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf<br />
sysctl -f<br />
</source><br />
<br />
* '''Вариант 2'''<br />
Добавить параметр в командную строку загрузки ядра. Для GRUB2 нужно изменить параметры загрузки ядра в файле {{path|/etc/sysconfig/grub2}}, изменив переменную GRUB_CMDLINE_LINUX_DEFAULT или GRUB_CMDLINE_LINUX<br />
<pre><br />
...<br />
GRUB_CMDLINE_LINUX='failsafe vga=normal ipv6.disable=1'<br />
...<br />
</pre><br />
и обновив конфигурационный файл grub<br />
<source lang="bash"><br />
grub-mkconfig -o /boot/grub/grub.cfg<br />
</source><br />
<br />
* '''Вариант 3'''<br />
<source lang="bash"><br />
echo 'options ipv6 disable=1' >> /etc/modprobe.d/options-local.conf<br />
</source><br />
Вступит в силу только после перезагрузки.<br />
<br />
==== Включение IPv6 ====<br />
<br />
* Во-первых, следует убедиться, что не применяется какой-либо вариант совета из предыдущего пункта. <br />
* Во-вторых, следует проверить значение CONFIG_IPV6 в etcnet. Переменная может быть описана в /etc/net/options.d/*, /etc/net/ifaces/default/*, /etc/net/ifaces/*/options. Наибольший приоритет у описания в ifaces/*/options.<br />
<br />
'''Замечание:''' В etcnet-0.9.10-alt5, в /etc/net/ifaces/default/options содержится CONFIG_IPV6=no<br />
<br />
==== Туннели 6-to-4 ====<br />
<br />
Требуется:<br />
* ядро с поддержкой IPv6 (CONFIG_IPV6 в /boot/config-*; наличие модуля ipv6);<br />
* ядро с поддержкой tun (CONFIG_TUN в /boot/config-*; наличие модуля tun);<br />
* доступность узла 192.88.99.1 - через него маршрутизируется трафик в сети IPv6.<br />
<br />
Далее в {{path|/etc/net/ifaces}} создаётся каталог с названием, например,<br />
tun6to4. В нём создаются файлы:<br />
iplink : <pre><br />
mtu 1472 </pre><br />
<br />
ipv6address : <pre><br />
# first six octets: ipv6calc --ipv4_to_6to4addr $TUNLOCAL<br />
2002:c000:201::1/16 </pre><br />
<br />
ipv6route : <pre><br />
2000::/3 via ::192.88.99.1 dev tun6to4 metric 1 </pre><br />
<br />
options : <pre><br />
TYPE=iptun<br />
TUNTYPE=sit<br />
TUNLOCAL=192.0.2.1<br />
TUNREMOTE=any<br />
TUNOPTIONS="ttl 64"<br />
DONT_FLUSH=yes<br />
CONFIG_IPV6=yes </pre><br />
<br />
Адрес TUNLOCAL в options - имеющийся внешний IPv4, в ipv6address<br />
адрес IPv6 выбирается исходя из него же.<br />
<br />
В настройках iptables должно быть разрешение на приём пакетов протокола<br />
ipv6 на внешний адрес IPv4.<br />
<br />
Далее поднимается интерфейс tun6to4, ну и проверяется доступность <br />
чего-либо в IPv6.<br />
<br />
Туннели 6to4 - это RFC 3964.<br />
Miredo - это реализация протокола Teredo, RFC 4380.<br />
6to4 требует наличия внешнего адреса IPv4.<br />
Teredo не требует наличия внешнего адреса, и может работать через NAT.<br />
Через Teredo не получится получить симметричное соединение, т.е. доступ<br />
в IPv6 будет односторонний, на компьютер в общем случае извне<br />
подключиться не получится.<br />
И Teredo позволяет получить только адрес /32, т.е. для подключения сетей<br />
он мало пригоден.<br />
<br />
этот раздел скопирован из письма рассылки community (c) Nikolay A. Fetisov 8 сентября 2011 12:03:30<br />
<br />
=== Замечания о настройке VPN-подключения и туннелей ===<br />
<br />
Часто при настройке VPN-подключения (под которыми здесь будут подразумеваться все туннельные подключения, то есть подключения поверх IP) не учитывают, что использование опции pppd '<tt>defaultroute</tt>' маршрут по-умолчанию после подключения будет изменен. При этом, если VPN-сервер находится в другой, отличной от клиента, сети, то после подключения (и изменения маршрута по-умолчанию) VPN-сервер становится недоступным, следовательно, недоступными становятся все внешние адреса, и подключение, как правило, прекращается по тайм-ауту.<br />
<br />
Решением, как обычно (и рекомендовано), служит указание ''отдельного'' маршрута на VPN-сервер (или его сеть). Для этого необходимо прописать (в примере - для маршрута через eth0) в {{path|/etc/net/ifaces/eth0/ipv4route}} строку вида:<br />
<br />
10.0.1.0/24 via 10.0.0.1<br />
<br />
В данном примере подразумевается, что VPN-сервер находится в сети 10.0.1.0/24 (например, имеет адрес 10.0.1.1), клиент — в сети 10.0.0.0/24 (и имеет адрес, например, 10.0.0.10), а маршрутизатор имеет адрес 10.0.0.1.<br />
<br />
Теперь, при использовании опции '<tt>defaulroute</tt>' для pppd (которая указывает, что необходимо изменить на вновь созданное подключение маршрут по-умолчанию), даже после замены маршрута по-умолчанию новым, сеть 10.0.1.0, в которой в нашем примере и находится VPN-сервер, останется доступной.<br />
<br />
Как более точечный вариант (применяется в alterator-net-pptp 0.5.x) можно использовать скрипты {{cmd|ifup-pre}} и {{cmd|ifdown-post}} в каталоге конфигурируемого PPP-интерфейса.<br />
<br />
Наример:<br />
<source lang="bash"><br />
#!/bin/sh<br />
# sample /etc/net/ifaces/ppp0/ifup-pre; replace variables yourself<br />
ip route add VPN_SERVER via DEF_GW<br />
</source><br />
<source lang="bash"><br />
#!/bin/sh<br />
# sample /etc/net/ifaces/ppp0/ifdown-post; replace variables yourself<br />
ip route del VPN_SERVER via DEF_GW<br />
</source><br />
<br />
Не забудьте подставить нужные IP-адреса вместо VPN_SERVER и DEF_GW (не сеть, где VPN-сервер, а ее /32 префикс CIDR) и выполнить команду: {{cmd|chmod +x ifup-pre ifdown-post}}<br />
<br />
<div id="ipsectun"></div><br />
<br />
=== Настройка и использование IPSec-туннелей ===<br />
<br />
В ОС ALT Linux существует возможность использования статических IPSec-туннелей, которые реализуются модулем ядра ipsec_tunnel, который в свою очередь использует CryptoAPI ядер серии 2.4. Для этих интерфейсов, кроме <tt>TUNLOCAL</tt> и <tt>TUNREMOTE</tt>, обязательно требуется ещё параметр <tt>TUNSPI</tt>. Это уникальный номер туннеля, который должен иметь значение более 0x2000 и быть одинаковым на обоих хостах. Для настройки IPSec-туннелей требуется определение параметров либо шифрования, либо подписи, либо того и другого вместе. Опции <tt>CIPHER</tt> и <tt>DIGEST</tt> определяют соответственно алгоритмы и режимы шифрования и подписи, а опции <tt>CIPHERFILE</tt> и <tt>DIGESTFILE</tt> — имена файлов в конфигурационном каталоге интерфейса, которые содержат ключи шифрования и подписи. Для форсирования интерфейса, через который будут посылаться туннелированные пакеты, можно использовать опцию <tt>HOST</tt>.<br />
<br />
<div id="iprule"></div><br />
<br />
=== Сложная маршрутизация (или несколько таблиц маршрутизации) ===<br />
<br />
Под «сложной маршрутизацией» подразумевается наличие нескольких таблиц маршрутизации. Для их использования необходимо сконфигурировать правила ядра. В правилах по умолчанию можно увидеть следующее:<br />
<br />
<pre># ip rule show<br />
0: from all lookup local <br />
32766: from all lookup main <br />
32767: from all lookup default</pre><br />
<br />
Для настройки «сложной маршрутизациии» необходимо выполнить следующие операции:<br />
<br />
Шаг 1 : Сами таблицы определены в файле {{path|/etc/iproute2/rt_tables}}. Для создания конфигурации «сложной маршрутизации» необходимо вначале «создать» нужные таблицы в этом файле (если вы хотите использовать имена таблиц, а не числа).<br />
<br />
Шаг 2 : Необходимо заполнить таблицы. В конфигурационном каталоге интерфейса в файле <tt>ipv4route</tt> необходимо добавить маршрутные записи, не забывая указать <tt>table XX</tt>. Важно учитывать, что если строка начинается с режима ip route (add, del, replace, append, change), то по умолчанию будет использован режим <tt>DEFAULT_IPV4ROUTE_CMD</tt> (<tt>append</tt>).<br />
<br />
Шаг 3 : Определить правила в файле <tt>ipv4rule</tt>. Здесь есть особенности, связанные автоматической заменой/добавлением параметров. Если строка не начинается с операции del или add, то нужный режим будет подставлен автоматически. Это подходит для тех случаев, когда вам при "поднятии" интерфейса необходимо добавить правила, а при "опускании" — удалить. Возможность указывать del или add реализована для обратных случаев: если при "поднятии" интерфейса вам необходимо удалить правила, а при "опускании" — добавить. В этом случае add и del будут в нужный момент автоматически заменены на del и add.<br />
<br />
Пример такой конфигурации входит в /etc/net 0.7.12: (каталог документации examples/routing-LARTC-1/)<br />
<br />
=== Простое переключение маршрутов ===<br />
<br />
Пусть имеется eth-интерфейс, который используется постоянно, и настроен маршрут по умолчанию.<br />
Часто бывает необходимость настроить второй маршрут по умолчанию через беспроводной интерфейс,<br />
но с меньшей метрикой, чем у проводного интерфейса.<br />
В этом случае при поднятии WI-FI маршрут по умолчанию «развернется» в нужную сторону.<br />
<br />
Например:<br />
<br />
Для eth-интерфейса файл настроек {{path|/etc/net/ifaces/eth0/ipv4route}} будет таким:<br />
<pre>default via 192.168.3.254 metric 10</pre><br />
а для WI-FI-интерфейса файл настроек {{path|/etc/net/ifaces/ath0/ipv4route}} таким:<br />
<pre>default via 192.168.123.1 metric 5</pre><br />
<br />
<div id="wireless"></div><br />
=== Беспроводный Ethernet (или настройка WI-FI) ===<br />
Большинство беспроводных интерфейсов сейчас представлено системе как интерфейсы Ethernet. Соответственно беспроводный интерфейс будет иметь <b>TYPE=eth</b> (<s>[https://bugzilla.altlinux.org/show_bug.cgi?id=6283 #6283]</s>). Чтобы интерфейс нормально функционировал, необходимо кроме загрузки модуля с параметрами, воспользоваться утилитами {{cmd|iwconfig}} из пакета wireless-tools или {{cmd|wpa_supplicant}} из такого же пакета. Вместо того, чтобы запускать их вручную, можно поместить в конфигурационный каталог интерфейса файл <tt>iwconfig</tt> с командами iwconfig или файл <tt>wpa_supplicant.conf</tt> с конфигурацией wpa_supplicant. Они будут использованы автоматически.<br />
<br />
Пример [http://hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wireless.html конфигурации] (совместно с <tt>[http://ndiswrapper.sourceforge.net/ ndiswrapper]</tt>):<br />
<br />
Файл: {{path|/etc/net/ifaces/wlan0/options}}<br />
<pre>TYPE=eth<br />
MODULE=ndiswrapper<br />
NEVER_RMMOD=yes<br />
BOOTPROTO=dhcp<br />
USE_HOTPLUG=no<br />
ONBOOT=no</pre><br />
<br />
Файл: {{path|/etc/net/ifaces/wlan0/iwconfig}}<br />
<pre>essid default<br />
#key bababababa</pre><br />
<br />
<br />
Еще один пример использования etcnet для настройки беспроводной сети:<br />
<br />
Файл: {{path|/etc/net/ifaces/wlan0/options}}<br />
<pre>TYPE=eth<br />
USE_HOTPLUG=NO<br />
BOOTPROTO=static<br />
module=ipw2200<br />
WPA_DRIVER=wext</pre><br />
<br />
Файл: {{path|/etc/net/ifaces/wlan0/iwconfig}}<br />
<pre>essid homenet<br />
mode 1<br />
ap 00:11:D8:22:AD:0D<br />
channel 3<br />
rate 11M</pre><br />
<br />
Файл: {{path|/etc/net/ifaces/wlan0/wpa_supplicant.conf}}<br />
<pre>ctrl_interface=/var/run/wpa_supplicant<br />
ctrl_interface_group=0<br />
eapol_version=1<br />
ap_scan=1<br />
fast_reauth=1<br />
<br />
network={<br />
ssid="homenet"<br />
scan_ssid=1<br />
key_mgmt=WPA-PSK<br />
psk="this is my mega secret password string to wpa supplicant"<br />
}</pre><br />
<br />
Если вы хотите воспользоваться WPS:<br />
# создайте {{path|/etc/net/ifaces/wlan0/wpa_supplacant.conf}} следующего вида:<br />
<pre><br />
ctrl_interface=/var/run/wpa_supplicant<br />
update_config=1<br />
</pre><br />
# поднимите беспроводной интерфейс (ifup wlan0)<br />
# запустите wpa_cli и дайте команды wps_pbc (после этого нужно соответственно нажать кнопку WPS на точке доступа и подождать окончания обмена данными) и save_config (для записи конфигурации в <tt>wpa_supplicant.conf</tt>). Или же можно воспользоваться утилитой wpa_gui, отображающей процесс более наглядно.<br />
<br />
Пример файла {{path|/etc/net/ifaces/wlan0/wpa_supplicant.conf}} при подключении к сети использующей протокол WPA2-PSK(AES)<br />
<pre><br />
ctrl_interface=/var/run/wpa_supplicant<br />
ctrl_interface_group=0<br />
eapol_version=1<br />
ap_scan=1<br />
fast_reauth=1<br />
<br />
network={<br />
ssid="home-lg"<br />
bssid=00:1B:11:87:C7:EA<br />
proto=RSN<br />
key_mgmt=WPA-PSK<br />
pairwise=CCMP TKIP<br />
group=CCMP TKIP<br />
psk="this is my mega secret password string to wpa supplicant"<br />
priority=2<br />
}<br />
</pre><br />
<br />
<div id="infiniband"></div><br />
<br />
=== Настройка Infiniband ===<br />
На сейчас ничем не отличается от настройки Ethernet, специфическая поддержка отсутствует (и для IP-over-IB не требуется). Пример конфигурации для Mellanox:<br />
<br />
Файл: <tt>/etc/modules</tt><br />
<pre>mlx4_ib<br />
ib_umad<br />
ib_ipoib</pre><br />
<br />
Файл: <tt>/etc/net/ifaces/ib0/options</tt><br />
<pre>TYPE=eth<br />
BOOTPROTO=dhcp<br />
ONBOOT=yes</pre><br />
<br />
<div id="sysctl"></div><br />
<br />
=== Использование автодополнения в sysctl.conf ===<br />
<br />
В конфигурационном каталоге интерфейса может находиться файл <tt>sysctl.conf</tt>, в котором можно перечислить переменные <tt>sysctl(8)</tt>. Но переменные могут быть как общесистемными, так и относящимися к интерфейсу. Естественно, запись в sysctl.conf настроек вида <tt>net.ipv4.conf.eth0.log_martians = 1</tt> достаточно неудобна, а при переименовании интерфейса велик риск не отредактировать файл <tt>sysctl.conf</tt> соответствующим образом.<br />
<br />
Эта проблема решается следующим способом : производится запись в файл только имени переменной и значение, а система /etc/net сама найдет путь к этой переменной и вызовет <tt>sysctl</tt> с полным именем. <br />
<br />
Пример содержания файла <tt>sysctl.conf</tt>:<br />
<pre>log_martians=1<br />
rp_filter=1</pre><br />
<br />
<div id="profiles"></div><br />
<br />
=== Подключение к Wi-Fi с сертификатом на аппаратном токене ===<br />
Для беспроводного подключения в корпоративных сетях могут использоваться сертификаты, записанные на аппаратном токене, например, Aladdin eToken. Для настройки такого подключения необходимо использовать {{path|/etc/net/ifaces/wlan0/wpa_supplicant.conf}}.<br />
<pre><br />
ctrl_interface=/var/run/wpa_supplicant<br />
ctrl_interface_group=wheel<br />
#eapol_version=1<br />
#ap_scan=2<br />
#fast_reauth=1<br />
pkcs11_engine_path=/usr/lib/openssl/engines/engine_pkcs11.so<br />
pkcs11_module_path=/usr/lib/libeTPkcs11.so<br />
update_config=0<br />
<br />
network={<br />
ssid="test"<br />
key_mgmt=WPA-EAP<br />
pairwise=CCMP TKIP<br />
group=CCMP TKIP<br />
eap=TLS<br />
identity="email@address.ru"<br />
engine_id="pkcs11"<br />
key_id="xxxxxxxxx"<br />
cert_id="xxxxxxxxx"<br />
engine=1<br />
}<br />
</pre><br />
где key_id и cerd_id взяты из вывода команды<br />
<pre><br />
# pkcs11-tool --module /usr/lib/libeTPkcs11.so -O -l<br />
</pre><br />
<br />
Используются оригинальные ("родные") драйвера Aladdin - pkiclient-5.00.28-0, и пакет openssl-engine_pkcs11-0.1.5-alt1.<br />
<br />
=== Профили конфигурации ===<br />
<br />
==== Определение профилей ====<br />
Профиль — именованный вариант конфигурации, в той или иной степени изменяющий базовую конфигурацию системы. Профили могут быть применены, например, для конфигурации ноутбука в разных сетевых окружениях, или при подготовке новой или тестовой конфигурации с возможностью быстрого возврата к старой. Практически профили реализуются следующим образом: для какого-либо из файлов, составляющих общесистемную конфигурацию или конфигурацию интерфейса, создаётся альтернативный вариант, который отличается добавлением в конце названия файла знака # и имени профиля.<br />
<br />
Например, пусть единственное отличие между профилями заключается в том, какой модуль ядра будет загружен для интерфейса eth0. В этом случае файл {{path|/etc/net/ifaces/eth0/options}} необходимо скопировать в {{path|/etc/net/ifaces/eth0/options#profile1}} и изменить значение переменной <tt>MODULE</tt> в одном из них. Далее при использовании конфигурации по умолчанию будет использован файл <tt>options</tt>, а при использовании профиля profile1 — файл <tt>options#profile1</tt>. Если при этом для назначения интерфейсу имени используется файл {{path|/etc/net/iftab}}, то скорее всего необходимо будет создать соответствующий файл {{path|/etc/net/iftab#profile1}}, так как другой модуль ядра указывает на другой физический интерфейс и исходный файл <tt>iftab</tt> работать не будет.<br />
<br />
Профили могут использоваться также и для отключения каких-то параметров конфигурации. Например, если используется файл <tt>ipv4route</tt> для установки маршрутов для интерфейса, то можно создать файл нулевого размера <tt>ipv4route#profile2</tt>, чтобы при использовании профиля profile2 никаких маршрутов не конфигурировалось.<br />
<br />
==== Выбор профиля при загрузке ====<br />
Если при загрузке системы ядру был передан параметр netprofile, то его значение будет использовано как имя профиля по умолчанию. Это может быть использовано для создания собственных пунктов меню загрузчиков LILO и GRUB с заранее определённым профилем сетевой конфигурации. Заданный таким образом профиль может быть далее переопределён другими методами. Следует понимать разницу между различными конфигурациями и различными результатами применения одной конфигурации. Например, если в двух разных сетях используется DHCP, то смысла в разных профилях конфигурации нет.<br />
<br />
Для загрузчика LILO секции <tt>/etc/lilo.conf</tt> могут выглядеть следующим образом:<br />
<pre>image=/boot/vmlinuz-up<br />
label=linux-up home<br />
append=" netprofile=home"<br />
[...]<br />
image=/boot/vmlinuz-up<br />
label=linux-up office<br />
append=" netprofile=office"<br />
[...]</pre><br />
Для приведённого примера необходимо будет создать варианты для файлов, отличающихся в профилях home и office, и можно будет выбирать при загрузке, какой из профилей необходимо использовать. Использование этого метода удобно, если смена сетевого окружения происходит синхронно с загрузкой системы.<br />
<br />
==== Выбор профиля по умолчанию ====<br />
Если требуется, чтобы определенный профиль конфигурации использовался по умолчанию, то необходимо записать его название в файл <tt>/etc/net/profile</tt>. Этот метод имеет приоритет над параметром ядра netprofile. Использование такого способа выбора профиля целесообразно, когда переключение между конфигурациями происходит реже, чем перезагрузка системы.<br />
<br />
==== Смена профиля во время работы ====<br />
Если требуется переконфигурировать сеть без перезагрузки или редактирования файла {{path|/etc/net/profile}}, то следует использовать параметры сервиса network, описанные в разделе [[#restart, reload и другие команды|restart, reload и другие команды]]. Этот метод имеет приоритет над профилем по умолчанию и профилем, выбранным при загрузке. Целесообразно его использовать, если смена сетевого окружения происходит чаще, чем перезагрузка системы.<br />
<br />
==== Определение профиля во время конфигурации интерфейса ====<br />
Если в каталоге конфигурации интерфейса существует исполняемый файл ненулевого размера с именем <tt>selectprofile</tt>, то этот файл будет выполнен и первое слово первой строки его стандартного вывода использовано как имя профиля, которое должно быть использовано для конфигурации данного интерфейса. Этот метод имеет приоритет над всеми остальными методами. Исходной задачей, требующей такого решения, являлось конфигурирование беспроводного интерфейса в зависимости от доступных точек доступа.<br />
<br />
Следует учитывать, что число вызовов файла <tt>selectprofile</tt> может меняться в зависимости от контекста и время его выполнения может быть различным, поэтому при написании такого файла следует учитывать, что первым параметром будет являться имя текущего сценария. В настоящее время это могут быть ifup*, ifdown*, setup* и shutdown*. Для приведённого выше примера имеет смысл реагировать только на вызовы из ifup или ifup-common.<br />
<br />
== References ==<br />
<br />
<references/><br />
<br />
{{Category navigation|title=etcnet|category=etcnet|sortkey=*}}</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Etcnet/openvswitch&diff=27744Etcnet/openvswitch2013-12-27T10:05:23Z<p>SlavaDubrovskiy: /* Общие настройки для всех типов */</p>
<hr />
<div>== Настройка openvswitch из etcnet ==<br />
<br />
Что такое OVS (openvswitch) и зачем его использовать лучше прочитать на официальном сайте http://openvswitch.org/support/<br />
<br />
OVS сложная система. Имеет собственную базу данных, где хранит настройки. И не все эти порты и бриджи могут отражаться в системе как сетевые интерфейсы. В связи с чем создавать интерфейс (папку в /etc/net/ifaces) для такого типа порта нет смысла, т.к. etcnet оперирует реальными интерфейсами. Поэтому управлять будем только теми ресурсами которые реально отражаются в системе как сетевые интерфейсы.<br />
Это 3 типа интерфейсов: бридж реальный и фейковый (ovsbr), порт типа internal (ovsport) и специальный тип порта - бондинг (ovsbond).<br />
Реальный и фейковый бридж по сути имеют один тип ovsbr и отличаются только наличием родительского бриджа и влана.<br />
Порт типа не internal это или существующий реальный интерфейс (eth0) или не отраженные в операционной системе интерфейсы (нпример gre, veth). Поэтому я не выделяю их для etcnet. Все это должно настраиваться через OVS_EXTRA.<br />
<br />
=== Бридж ===<br />
Для создания этого типа в options должно быть:<br />
<pre>TYPE=ovsbr </pre><br />
Также как опция может быть указан список сетевых интерфейсов, которые должны быть добавлены в данный бридж. Они будут запущены и добавлены в бридж.<br />
<pre>HOST='eth2' </pre><br />
NB! Нельзя сюда писать порты OVS (тип ovsport или ovsbond). Они должны быть описаны отдельно, т.к. для их добавления требуется уже существующий бридж.<br />
В результате будет создан бридж. Проверить можно командой <pre>#ovs-vsctl show</pre><br />
<br />
=== Фейковый бридж ===<br />
Данный вид бриджа можно использовать в ситуации, когда нет возможности задать влан на порту или когда вы его не знаете. Например подобная ситуация описана в http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/ . Для создания такого бриджа нужно указывать родительский бридж и влан.<br />
Для этого дополнительно к тем переменным что используются для реального бриджа, указываем:<br />
<pre><br />
BRIDGE=br0<br />
VID=105<br />
</pre><br />
И тогда будет создаваться фейковый бридж<br />
<br />
=== Порт типа internal ===<br />
Для его создания в options должно быть:<br />
<pre> TYPE=ovsport </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
В результате получится сетевой интерфейс который может управляться через утилиту ip и др.<br />
<br />
=== Порт бондинг ===<br />
Специальный тип порта для объединения 2х физических сетевых интерфейса в один.<br />
Для его создания в options должно быть<br />
<pre> TYPE=ovsbond </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
Также должны быть указаны не меньше 2х сетевых интерфейсов, которые должны быть добавлены в данный порт.<br />
<pre> HOST='eth1 eth2' </pre><br />
<br />
=== Общие настройки для всех типов ===<br />
Для задания всех остальных всевозможных настроек, должны использоваться переменные:<br />
'''OVS_REMOVE''' Если установлено в yes, то при отключении интерфейса, данный порт будет удален из базы данных OVS. Осторожно, т.к. некоторые параметры, например MAC будет сгенерирован заново.<br />
'''OVS_OPTIONS''' параметры которые должны быть переданы для настройки данного бриджа или порта. Возможные поля для бриджа можно посмотреть командой: <br />
<pre><br />
# ovs-vsctl list bridge<br />
_uuid : 6aac9201-4272-41cc-a7be-1a36e00f6748<br />
controller : []<br />
datapath_id : "000078e7d17fcf13"<br />
datapath_type : ""<br />
external_ids : {}<br />
fail_mode : []<br />
flood_vlans : []<br />
flow_tables : {}<br />
ipfix : []<br />
mirrors : []<br />
name : "ovsbr0"<br />
netflow : []<br />
other_config : {}<br />
ports : [1de75723-f51e-441b-8d69-e6536d9dcfad, 47988e8e-23bd-494b-bbd0-49b7fa79e23c, 58a10ab2-f344-46f9-a313-104c23ba2a8b]<br />
protocols : []<br />
sflow : []<br />
status : {}<br />
stp_enable : false<br />
</pre><br />
Тогда если мы хотим включить STP, нужно написать:<br />
<pre>OVS_OPTIONS='stp_enable=yes'</pre><br />
Для порта можно посмотреть командой:<br />
<pre><br />
# ovs-vsctl list port<br />
_uuid : 58a10ab2-f344-46f9-a313-104c23ba2a8b<br />
bond_downdelay : 0<br />
bond_fake_iface : false<br />
bond_mode : []<br />
bond_updelay : 0<br />
external_ids : {}<br />
fake_bridge : false<br />
interfaces : [987b7dfe-34b4-4d55-b9ae-dedfa05d9779]<br />
lacp : []<br />
mac : []<br />
name : "ovsport0"<br />
other_config : {}<br />
qos : []<br />
statistics : {}<br />
status : {}<br />
tag : []<br />
trunks : []<br />
vlan_mode : []<br />
</pre><br />
<br />
Если нужно настраивать дополнительно другие интерфейсы или параметры, то это делать нужно через Database Commands (см. соответствующую секцию в ovs-vsctl(8)) Это все указывается в OVS_EXTRA<br />
Например влан, тип и т.д.<br />
<pre> OVS_EXTRA='set port eth0 tag=10 -- set port eth1 trank="1,2,15" ' </pre><br />
<br />
Данные переменные действуют для всех типов сетевых интерфейсов ovs*.<br />
<br />
== Примеры ==</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Etcnet/openvswitch&diff=27743Etcnet/openvswitch2013-12-27T10:04:31Z<p>SlavaDubrovskiy: network etcnet openvswitch</p>
<hr />
<div>== Настройка openvswitch из etcnet ==<br />
<br />
Что такое OVS (openvswitch) и зачем его использовать лучше прочитать на официальном сайте http://openvswitch.org/support/<br />
<br />
OVS сложная система. Имеет собственную базу данных, где хранит настройки. И не все эти порты и бриджи могут отражаться в системе как сетевые интерфейсы. В связи с чем создавать интерфейс (папку в /etc/net/ifaces) для такого типа порта нет смысла, т.к. etcnet оперирует реальными интерфейсами. Поэтому управлять будем только теми ресурсами которые реально отражаются в системе как сетевые интерфейсы.<br />
Это 3 типа интерфейсов: бридж реальный и фейковый (ovsbr), порт типа internal (ovsport) и специальный тип порта - бондинг (ovsbond).<br />
Реальный и фейковый бридж по сути имеют один тип ovsbr и отличаются только наличием родительского бриджа и влана.<br />
Порт типа не internal это или существующий реальный интерфейс (eth0) или не отраженные в операционной системе интерфейсы (нпример gre, veth). Поэтому я не выделяю их для etcnet. Все это должно настраиваться через OVS_EXTRA.<br />
<br />
=== Бридж ===<br />
Для создания этого типа в options должно быть:<br />
<pre>TYPE=ovsbr </pre><br />
Также как опция может быть указан список сетевых интерфейсов, которые должны быть добавлены в данный бридж. Они будут запущены и добавлены в бридж.<br />
<pre>HOST='eth2' </pre><br />
NB! Нельзя сюда писать порты OVS (тип ovsport или ovsbond). Они должны быть описаны отдельно, т.к. для их добавления требуется уже существующий бридж.<br />
В результате будет создан бридж. Проверить можно командой <pre>#ovs-vsctl show</pre><br />
<br />
=== Фейковый бридж ===<br />
Данный вид бриджа можно использовать в ситуации, когда нет возможности задать влан на порту или когда вы его не знаете. Например подобная ситуация описана в http://blog.scottlowe.org/2012/10/19/vlans-with-open-vswitch-fake-bridges/ . Для создания такого бриджа нужно указывать родительский бридж и влан.<br />
Для этого дополнительно к тем переменным что используются для реального бриджа, указываем:<br />
<pre><br />
BRIDGE=br0<br />
VID=105<br />
</pre><br />
И тогда будет создаваться фейковый бридж<br />
<br />
=== Порт типа internal ===<br />
Для его создания в options должно быть:<br />
<pre> TYPE=ovsport </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
В результате получится сетевой интерфейс который может управляться через утилиту ip и др.<br />
<br />
=== Порт бондинг ===<br />
Специальный тип порта для объединения 2х физических сетевых интерфейса в один.<br />
Для его создания в options должно быть<br />
<pre> TYPE=ovsbond </pre><br />
Бридж в который должен этот порт добавиться:<br />
<pre> BRIDGE=br0 </pre><br />
Также должны быть указаны не меньше 2х сетевых интерфейсов, которые должны быть добавлены в данный порт.<br />
<pre> HOST='eth1 eth2' </pre><br />
<br />
=== Общие настройки для всех типов ===<br />
Для задания всех остальных всевозможных настроек, должны использоваться переменные:<br />
'''OVS_REMOVE''' Если установлено в yes, то при отключении интерфейса, данный порт будет удален из базы данных OVS. Осторожно, т.к. некоторые параметры, например MAC будет сгенерирован заново.<br />
'''OVS_OPTIONS''' параметры которые должны быть переданы для настройки данного бриджа или порта. Возможные поля для бриджа можно посмотреть командой: <br />
<pre><br />
# ovs-vsctl list bridge<br />
_uuid : 6aac9201-4272-41cc-a7be-1a36e00f6748<br />
controller : []<br />
datapath_id : "000078e7d17fcf13"<br />
datapath_type : ""<br />
external_ids : {}<br />
fail_mode : []<br />
flood_vlans : []<br />
flow_tables : {}<br />
ipfix : []<br />
mirrors : []<br />
name : "ovsbr0"<br />
netflow : []<br />
other_config : {}<br />
ports : [1de75723-f51e-441b-8d69-e6536d9dcfad, 47988e8e-23bd-494b-bbd0-49b7fa79e23c, 58a10ab2-f344-46f9-a313-104c23ba2a8b]<br />
protocols : []<br />
sflow : []<br />
status : {}<br />
stp_enable : false<br />
</pre><br />
Тогда если мы хотим включить STP, нужно написать:<br />
<pre><code><br />
OVS_OPTIONS='stp_enable=yes'<br />
</pre><br />
Для порта можно посмотреть командой:<br />
<pre><br />
# ovs-vsctl list port<br />
_uuid : 58a10ab2-f344-46f9-a313-104c23ba2a8b<br />
bond_downdelay : 0<br />
bond_fake_iface : false<br />
bond_mode : []<br />
bond_updelay : 0<br />
external_ids : {}<br />
fake_bridge : false<br />
interfaces : [987b7dfe-34b4-4d55-b9ae-dedfa05d9779]<br />
lacp : []<br />
mac : []<br />
name : "ovsport0"<br />
other_config : {}<br />
qos : []<br />
statistics : {}<br />
status : {}<br />
tag : []<br />
trunks : []<br />
vlan_mode : []<br />
</pre><br />
<br />
Если нужно настраивать дополнительно другие интерфейсы или параметры, то это делать нужно через Database Commands (см. соответствующую секцию в ovs-vsctl(8)) Это все указывается в OVS_EXTRA<br />
Например влан, тип и т.д.<br />
<pre> OVS_EXTRA='set port eth0 tag=10 -- set port eth1 trank="1,2,15" ' </pre><br />
<br />
Данные переменные действуют для всех типов сетевых интерфейсов ovs*.<br />
<br />
== Примеры ==</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=26632KVM2013-10-17T11:56:33Z<p>SlavaDubrovskiy: </p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге необходимо в процессе установки добавить драйверы. Качаем iso с драйверами:<br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/virtio-win-0.1-65.iso<br />
(ссылка верна на 17 сентября 2013 г., в дальнейшем можно заглянуть на http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ и скачать имеющийся там virtio-win-*.iso)<br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio \<br />
--disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO \<br />
--network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск, на который будет устанавливаться, и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate \<br />
--vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux \<br />
--os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 \<br />
--os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Управление ресурсами ==<br />
Нужно настроить cgroups. В случае systemd это уже должно быть сделано автоматом.<br />
<br />
Проверить наличие в /etc/libvirt/qemu.xml<br />
<pre><br />
cgroup_controllers = [ "cpu", "devices", "memory", "cpuset", "blkio" ]<br />
cgroup_device_acl = [<br />
"/dev/null", "/dev/full", "/dev/zero",<br />
"/dev/random", "/dev/urandom",<br />
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",<br />
"/dev/rtc", "/dev/hpet", "/dev/net/tun",<br />
]<br />
</pre><br />
<br />
Назначить нужные ресурсы через:<br />
<br />
<pre><br />
$ virsh schedinfo --set cpu_shares=1024 alt_guest<br />
$ virsh blkiotune alt_guest --weight 1024<br />
</pre><br />
<br />
<br />
== Tips ==<br />
<br />
=== Сменить диск в приводе на VPS без перезагрузки ===<br />
<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
== Полезные ссылки ==<br />
http://en.wikibooks.org/wiki/QEMU/Images<br />
<br />
[http://umgum.com/acpi-windows2003-shutdown ACPI + MS Windows 2003 shutdown]<br />
<br />
[http://habrahabr.ru/post/122425 Управление ресурсами через cgroups]<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=26631KVM2013-10-17T11:54:37Z<p>SlavaDubrovskiy: /* Управление ресурсами */</p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге необходимо в процессе установки добавить драйверы. Качаем iso с драйверами:<br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/virtio-win-0.1-65.iso<br />
(ссылка верна на 17 сентября 2013 г., в дальнейшем можно заглянуть на http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ и скачать имеющийся там virtio-win-*.iso)<br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio \<br />
--disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO \<br />
--network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск, на который будет устанавливаться, и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate \<br />
--vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux \<br />
--os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 \<br />
--os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Сменить диск в приводе на VPS без перезагрузки ==<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
== Tips ==<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
=== Управление ресурсами ===<br />
Нужно настроить cgroups. В случае systemd это уже должно быть сделано автоматом.<br />
<br />
Проверить наличие в /etc/libvirt/qemu.xml<br />
<pre><br />
cgroup_controllers = [ "cpu", "devices", "memory", "cpuset", "blkio" ]<br />
cgroup_device_acl = [<br />
"/dev/null", "/dev/full", "/dev/zero",<br />
"/dev/random", "/dev/urandom",<br />
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",<br />
"/dev/rtc", "/dev/hpet", "/dev/net/tun",<br />
]<br />
</pre><br />
<br />
Назначить нужные ресурсы через:<br />
<br />
<pre><br />
$ virsh schedinfo --set cpu_shares=1024 alt_guest<br />
$ virsh blkiotune alt_guest --weight 1024<br />
</pre><br />
<br />
== Полезные ссылки ==<br />
http://en.wikibooks.org/wiki/QEMU/Images<br />
<br />
[http://umgum.com/acpi-windows2003-shutdown ACPI + MS Windows 2003 shutdown]<br />
<br />
[http://habrahabr.ru/post/122425 Управление ресурсами через cgroups]<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=26630KVM2013-10-17T11:50:42Z<p>SlavaDubrovskiy: /* Tips */</p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге необходимо в процессе установки добавить драйверы. Качаем iso с драйверами:<br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/virtio-win-0.1-65.iso<br />
(ссылка верна на 17 сентября 2013 г., в дальнейшем можно заглянуть на http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ и скачать имеющийся там virtio-win-*.iso)<br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio \<br />
--disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO \<br />
--network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск, на который будет устанавливаться, и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate \<br />
--vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux \<br />
--os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 \<br />
--os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Сменить диск в приводе на VPS без перезагрузки ==<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
== Tips ==<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
=== Управление ресурсами ===<br />
Нужно настроить cgroups. В случае systemd это уже должно быть сделано автоматом.<br />
<br />
Проверить наличие в /etc/libvirt/qemu.xml<br />
<code><br />
cgroup_controllers = [ "cpu", "devices", "memory", "cpuset", "blkio" ]<br />
cgroup_device_acl = [<br />
"/dev/null", "/dev/full", "/dev/zero",<br />
"/dev/random", "/dev/urandom",<br />
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",<br />
"/dev/rtc", "/dev/hpet", "/dev/net/tun",<br />
]<br />
</code><br />
<br />
Назначить нужные ресурсы через:<br />
<code><br />
$ virsh schedinfo --set cpu_shares=1024 debian_guest<br />
$ virsh blkiotune debian_guest --weight 1024<br />
</code><br />
<br />
== Полезные ссылки ==<br />
http://en.wikibooks.org/wiki/QEMU/Images<br />
<br />
[http://umgum.com/acpi-windows2003-shutdown ACPI + MS Windows 2003 shutdown]<br />
<br />
[http://habrahabr.ru/post/122425 Управление ресурсами через cgroups]<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=LXC&diff=26525LXC2013-10-10T12:22:53Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>lxc — реализация контейнеров Linux, вошедшая в ядро, начиная с 2.6.29.<br />
<br />
Обсуждение в рассылках ALT Linux было пока что только одно:<br />
http://lists.altlinux.org/pipermail/sisyphus/2009-December/344343.html<br />
<br />
Здесь информации вообще нет о LXC:<br />
http://en.wikipedia.org/wiki/Operating_system-level_virtualization<br />
<br />
== Docker ==<br />
Компания DotCloud разработала и выложила в открытый доступ систему [http://www.docker.io Docker] — высокоуровневые интерфейсы для доступа к Linux-контейнерам (LXC). Это идеальный инструмент для работы с контейнерами на любом сервере x64, для развёртывания крупномасштабных веб-инсталляций, кластеров БД, частных PaaS и т.д.<br />
<br />
=== Установка ===<br />
1. <code><br />
apt-get install docker-io<br />
</code><br />
<br />
2. Правим /etc/sysconfig/docker<br />
<br />
3. Запускаем<br />
<code><br />
service start docker<br />
</code><br />
<br />
<br />
Дальше читайте http://docs.docker.io<br />
<br />
=== Ссылки ===<br />
<br />
* http://habrahabr.ru/blogs/virtualization/74808/<br />
<br />
* http://lxc.sourceforge.net/<br />
<br />
* https://help.ubuntu.com/community/LXC<br />
<br />
* http://lxc.teegra.net/<br />
<br />
* http://www.ibm.com/developerworks/ru/library/l-lxc-containers/<br />
<br />
* http://prefetch.net/blog/index.php/2009/06/21/installing-lxc-containers-on-fedora-hosts/<br />
<br />
[[Категория:Documentation]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=LXC&diff=26524LXC2013-10-10T12:19:52Z<p>SlavaDubrovskiy: </p>
<hr />
<div>lxc — реализация контейнеров Linux, вошедшая в ядро, начиная с 2.6.29.<br />
<br />
Обсуждение в рассылках ALT Linux было пока что только одно:<br />
http://lists.altlinux.org/pipermail/sisyphus/2009-December/344343.html<br />
<br />
Здесь информации вообще нет о LXC:<br />
http://en.wikipedia.org/wiki/Operating_system-level_virtualization<br />
<br />
== Docker ==<br />
Компания DotCloud разработала и выложила в открытый доступ систему [http://www.docker.io Docker] — высокоуровневые интерфейсы для доступа к Linux-контейнерам (LXC). Это идеальный инструмент для работы с контейнерами на любом сервере x64, для развёртывания крупномасштабных веб-инсталляций, кластеров БД, частных PaaS и т.д.<br />
<br />
=== Установка ===<br />
<code><br />
apt-get install docker-io<br />
</code><br />
<br />
Дальше читайте http://docs.docker.io<br />
<br />
<br />
=== Ссылки ===<br />
<br />
* http://habrahabr.ru/blogs/virtualization/74808/<br />
<br />
* http://lxc.sourceforge.net/<br />
<br />
* https://help.ubuntu.com/community/LXC<br />
<br />
* http://lxc.teegra.net/<br />
<br />
* http://www.ibm.com/developerworks/ru/library/l-lxc-containers/<br />
<br />
* http://prefetch.net/blog/index.php/2009/06/21/installing-lxc-containers-on-fedora-hosts/<br />
<br />
[[Категория:Documentation]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Sysadmin&diff=26523Sysadmin2013-10-10T12:15:16Z<p>SlavaDubrovskiy: /* Виртуализация */</p>
<hr />
<div>[[Категория:Admin]]<br />
{{stub}}<br />
<br />
== Установка ==<br />
* [[InstallFlash | Как сделать установочную флешку]]<br />
* [[NetInstall | Установка полностью по сети]] (требуется поддержка [[ruwp:PXE|PXE]])<br />
* [[InstallOnFlash | Установка системы на флешку]]<br />
<br />
== Сеть ==<br />
* [[Etcnet | Система конфигурирования сетевых интерфейсов etcnet]]<br />
* [[Etcnet Firewall | Настройка файрволлов с помощью etcnet]]<br />
* [[Etcnet QoS | Настройка QoS с помощью etcnet]]<br />
* [[Madwifi | Настройка точки доступа WIFI с использованием madwifi]]<br />
<br />
== Система ==<br />
<br />
==== Дисковая подсистема ====<br />
* [[РазбиениеДиска | Разбиение диска для увеличения производительности]]<br />
* [[CreateMdRAID1onLiveSystem | Миграция установленной системы на md-raid1]]<br />
* [[Установка на raid10 | Установка или миграция системы на md-raid10]]<br />
* [[РезервноеКопированиеСистемы | Резервное копирование системы]]<br />
<br />
==== Виртуализация ====<br />
* [[OpenVZ | OpenVZ в ALT Linux]]<br />
* [[Xen | Xen в ALT Linux]]<br />
* [[ KVM | KVM в ALT Linux]]<br />
* [[ LXC | LXC в ALT Linux]]<br />
<br />
==== High Availability ====<br />
<br />
* [[ High_Availability2 | Pacemaker + Corosync в ALT Linux]]<br />
* [[ High_Availability | Heartbeat в ALT Linux (устарело)]]<br />
<br />
== Софт ==<br />
<br />
==== Mail ====<br />
* [[Dovecot | Заметки про IMAP4/POP3 сервер Dovecot]]<br />
<br />
==== DNS ====<br />
* [[BIND | Несколько заметок по Bind]]<br />
* [[DDNS | DHCP + динамическое обновление зон (DDNS) ]]<br />
<br />
==== WEB ====<br />
* [[Mailman_and_lighttpd | Как поднять веб-интерфейс mailman под lighttpd]]<br />
<br />
==== Enterprise ====<br />
* [[1C | Установка сервера 1С Предприятие 8.1 на ALT Linux]]<br />
* [[Citrix | Установка Citrix Receiver 11 на ALT Linux]]<br />
* [[OracleALS40 | Установка Oracle DBMS на ALT Linux Server 4.0]]<br />
<br />
==== Конфигурация ====<br />
* [[Puppet]]<br />
<br />
====Мониторинг====<br />
* [[OpenNMS]]<br />
* [[Xymon]]<br />
<br />
== Репозитории ==<br />
* [[Mirror | Как поднять зеркало альтовских репозиториев]]<br />
<br />
== Разное ==<br />
* [[ТестированиеКомпьютера | Описание программ для тестирования компьютера]]<br />
* [[SerialLogin | Вход через последовательные порты (Serial Login)]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Sysadmin&diff=25363Sysadmin2013-08-14T15:48:12Z<p>SlavaDubrovskiy: /* Система */</p>
<hr />
<div>[[Категория:Admin]]<br />
{{stub}}<br />
<br />
== Установка ==<br />
* [[InstallFlash | Как сделать установочную флешку]]<br />
* [[NetInstall | Установка полностью по сети]] (требуется поддержка [[ruwp:PXE|PXE]])<br />
* [[InstallOnFlash | Установка системы на флешку]]<br />
<br />
== Сеть ==<br />
* [[Etcnet | Система конфигурирования сетевых интерфейсов etcnet]]<br />
* [[Etcnet Firewall | Настройка файрволлов с помощью etcnet]]<br />
* [[Etcnet QoS | Настройка QoS с помощью etcnet]]<br />
* [[Madwifi | Настройка точки доступа WIFI с использованием madwifi]]<br />
<br />
== Система ==<br />
<br />
==== Дисковая подсистема ====<br />
* [[РазбиениеДиска | Разбиение диска для увеличения производительности]]<br />
* [[CreateMdRAID1onLiveSystem | Миграция установленной системы на md-raid1]]<br />
* [[Установка на raid10 | Установка или миграция системы на md-raid10]]<br />
* [[РезервноеКопированиеСистемы | Резервное копирование системы]]<br />
<br />
==== Виртуализация ====<br />
* [[OpenVZ | OpenVZ в ALT Linux]]<br />
* [[Xen | Xen в ALT Linux]]<br />
* [[ KVM | KVM в ALT Linux]]<br />
<br />
==== High Availability ====<br />
<br />
* [[ High_Availability2 | Pacemaker + Corosync в ALT Linux]]<br />
* [[ High_Availability | Heartbeat в ALT Linux (устарело)]]<br />
<br />
== Софт ==<br />
<br />
==== Mail ====<br />
* [[Dovecot | Заметки про IMAP4/POP3 сервер Dovecot]]<br />
<br />
==== DNS ====<br />
* [[BIND | Несколько заметок по Bind]]<br />
* [[DDNS | DHCP + динамическое обновление зон (DDNS) ]]<br />
<br />
==== WEB ====<br />
* [[Mailman_and_lighttpd | Как поднять веб-интерфейс mailman под lighttpd]]<br />
<br />
==== Enterprise ====<br />
* [[1C | Установка сервера 1С Предприятие 8.1 на ALT Linux]]<br />
* [[Citrix | Установка Citrix Receiver 11 на ALT Linux]]<br />
* [[OracleALS40 | Установка Oracle DBMS на ALT Linux Server 4.0]]<br />
<br />
==== Конфигурация ====<br />
* [[Puppet]]<br />
<br />
====Мониторинг====<br />
* [[OpenNMS]]<br />
* [[Xymon]]<br />
<br />
== Репозитории ==<br />
* [[Mirror | Как поднять зеркало альтовских репозиториев]]<br />
<br />
== Разное ==<br />
* [[ТестированиеКомпьютера | Описание программ для тестирования компьютера]]<br />
* [[SerialLogin | Вход через последовательные порты (Serial Login)]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=High_Availability2&diff=25362High Availability22013-08-14T15:44:53Z<p>SlavaDubrovskiy: Admin</p>
<hr />
<div>Для построения решений с High Availability (иначе — отказоустойчивых кластеров) в Сизифе в настоящее время все есть.<br />
<br />
Немного истории.<br />
Система состоит из многих компонентов. И варианты их взаимодействия разнообразны. Раньше у нас использовался heartbeat+linux-ha-common+corosync1. Описание как оно все построено читать тут http://www.altlinux.org/High_Availability<br />
<br />
Программы развивались, heartbeat+linux-ha-common превратились в pacemaker+cluster-glue+resource-agents, corosync1 превратился в corosync2<br />
<br />
Т.е. теперь мейнстрим это pacemaker+cluster-glue+resource-agents+corosync2<br />
<br />
Детальное описание с картинками читать тут http://clusterlabs.org/doc/en-US/Pacemaker/1.1-crmsh/html-single/Clusters_from_Scratch/index.html<br />
<br />
Как заставить работать это в альте?<br />
<br />
1. Ставим нужные пакеты:<br />
<pre># apt-get install corosync2 resource-agents crmsh</pre><br />
<br />
2. Если нужно управлять дополнительными ресурсами, нужно доставить нужный пакет resource-agents-*<br />
<pre><br />
resource-agents - Open Source HA Reusable Cluster Resource Scripts<br />
resource-agents-CTDB - resource agent manages CTDB<br />
resource-agents-WinPopup - Resource script for WinPopup<br />
resource-agents-drbd - resource agent manage DRBD<br />
resource-agents-fio - resource agent manages fio<br />
resource-agents-iSCSI - resource agent manages iSCSI<br />
resource-agents-libvirt - resource agent manages libvirtd<br />
resource-agents-lvm - resource agent manage LVM<br />
resource-agents-lxc - resource agent manages lxc<br />
resource-agents-nfs - resource agent manage NFS<br />
resource-agents-tomcat - resource agent manages Tomcat<br />
resource-agents-xen - resource agent manage Xen Hypervisor<br />
</pre><br />
<br />
Нужные зависимости должны вытянуться автоматом.<br />
<br />
3. Настраивать через crmsh по желанию. (см. по вышеприведенной ссылке)<br />
<br />
Отзывы и баги приветствуются.</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=23821KVM2013-04-18T19:57:15Z<p>SlavaDubrovskiy: /* Полезные ссылки */</p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге. Необходимо в процессе установки добавить драйвера. Качаем iso с драйверами:<br />
<br />
<pre><br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso<br />
</pre><br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio --disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO --network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate --vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux --os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 --os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Сменить диск в приводе на VPS без перезагрузки ==<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
== Tips ==<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
=== Полезные ссылки ===<br />
http://en.wikibooks.org/wiki/QEMU/Images<br />
<br />
[http://umgum.com/acpi-windows2003-shutdown ACPI + MS Windows 2003 shutdown]<br />
<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=23710KVM2013-04-09T09:52:59Z<p>SlavaDubrovskiy: /* Получение файлов из образа qcow2 */</p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге. Необходимо в процессе установки добавить драйвера. Качаем iso с драйверами:<br />
<br />
<pre><br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso<br />
</pre><br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio --disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO --network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate --vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux --os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 --os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Сменить диск в приводе на VPS без перезагрузки ==<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
== Tips ==<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
=== Полезные ссылки ===<br />
http://en.wikibooks.org/wiki/QEMU/Images<br />
<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=23675KVM2013-03-28T14:16:14Z<p>SlavaDubrovskiy: /* Создание VPS */</p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге. Необходимо в процессе установки добавить драйвера. Качаем iso с драйверами:<br />
<br />
<pre><br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso<br />
</pre><br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio --disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO --network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate --vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux --os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 --os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Сменить диск в приводе на VPS без перезагрузки ==<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
== Tips ==<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=KVM&diff=23674KVM2013-03-28T14:15:39Z<p>SlavaDubrovskiy: /* Создание VPS */</p>
<hr />
<div>См.тж. [[Настройка_сети_в_KVM]] и [[Создание профиля KVM]]<br />
== Команды для управления QEMU-KVM ==<br />
<pre><br />
virsh -c qemu:///system list --all #листинг<br />
virsh -c qemu:///system start vsrv1 #пуск<br />
virsh -c qemu:///system shutdown vsrv1 #shutdown<br />
virsh -c qemu:///system destroy vsrv1 #выключить по питанию<br />
virsh -c qemu:///system undefine vsrv1 #удалить (конифг тоже удаляется)<br />
virsh -c qemu:///system autostart vsrv1 #добавить в автозагрузку<br />
virsh -c qemu:///system autostart --disable # удалить из автозагрузки<br />
virsh -c qemu:///system qemu-monitor-command win2008std-32bit help --hmp # запустить команду в qemu мониторе<br />
virsh -c qemu:///system define /etc/libvirt/qemu/mirror.xml # обновить информацию о виртуальной машине.<br />
</pre><br />
Чтобы постоянно не вводить <code>-c qemu:///system</code> можно добавить:<br />
<pre>export LIBVIRT_DEFAULT_URI=qemu:///system</pre><br />
<br />
== Расположение основных конфигов ==<br />
* /etc/libvirt/qemu.conf - основной конфиг qemu. Тут задаём параметры vnc сервера.<br />
* /etc/libvirt/qemu/ - папка для хранения конфигов, в том числе и виртуальных машин.<br />
<br />
== Создание VPS ==<br />
VPS можно создавать с разными виртуальными девайсами. Можно использовать по умолчанию, а можно использовать virtio. Последние считаются наилучшим вариантом для Windows OS. Поэтому ВСЕГДА стараемся сделать так как надо. Если не получается - то тогда как обычно.<br />
Для новой системы со сразу установленными значениями virtio в конфиге. Необходимо в процессе установки добавить драйвера. Качаем дискету с драйверами:<br />
<br />
<pre><br />
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-52.iso<br />
</pre><br />
<br />
=== Создание VPS Windows с поддержкой virtio ===<br />
* создаем LVM раздел нужного размера:<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
</pre><br />
* coздаем конфиг VPS:<br />
<pre><br />
virt-install --connect=qemu:///system -n test_win2008 -r 1024 --boot cdrom --disk path=/dev/main/test_win2008,bus=virtio --disk path=/vz/template/virtio-win-1.1.16.vfd,device=floppy --cdrom=/var/lib/vz/template/SW_DVD5_Windows_Svr_DC_Ent_Std_2008_Russian_32bit_MLF_X14-26782.ISO --network bridge:breth0,model=virtio --graphics vnc,password=123,listen=0.0.0.0 --os-type=windows --os-variant=win2k8 --arch=i686 --cpu host -v --autostart<br />
</pre><br />
<br />
где:<br><br />
-n test_win2008 - имя VPS <br><br />
-r 1024 - к-во выделяемой памяти <br><br />
-v использовать аппаратную виртуализацию <br><br />
--arch=i686 - используемая архитектура <br><br />
--cpu host - передает в VPS все возможности процессора хостовой системы. Применять с осторожностью, т.к. при переносе на другой сервер при отличии винда может ругаться.<br />
<br />
'''NB''' Для полного списка задаваемых параметров смотрим VIRT-INSTALL(1)<br />
<br />
Также подключаем флоппи диск с драйверами для virtio. При установке система не увидит жесткий диск на который будет устанавливаться и нужно выбрать драйвер для диска с флопика. Там же располагаются драйвера для сетевой карты.<br />
*''Windows Server 2003 и Windows XP'' Нажимаем F6 и ставим драйвера.<br />
*''Windows 2008'' Доходим до окна разбивки дисков и выбираем "Загрузить Драйвер".<br />
<br />
=== Создание VPS без virtio ===<br />
Windows 2008 32bit на LVM:<br />
<br />
<pre><br />
/sbin/lvcreate -L 10G -n win2008 main<br />
<br />
virt-install --connect=qemu:///system -n win2008 -r 1024 --disk path=/dev/main/win2008 --cdrom=/mnt/images/windows2008.ISO --accelerate --vnc --noautoconsole -v --network bridge:breth0 --os-type=windows --vcpus=1 --noapic --os-variant=win2k8 --arch=i686<br />
</pre><br />
ALT Linux x86_64 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L10G -n altlinux main<br />
<br />
virt-install --connect qemu:///system --name altlinux --ram 512 --disk path=/dev/main/altlinux --network=bridge:breth0 --vnc --os-type=linux --os-variant=rhel6 --cdrom /mnt/images/altlinux-x86_64.iso --accelerate --noautoconsole --vcpus=1 --arch=x86_64<br />
</pre><br />
<br />
FreeBSD 8.1 на LVM :<br />
<br />
<pre><br />
/sbin/lvcreate -L20G -n freebsd main<br />
<br />
virt-install --connect qemu:///system --name freebsd --ram 512 --disk path=/dev/main/freebsd --network=bridge:breth0 --graphics vnc,password=rootSD,listen=0.0.0.0 --os-type unix --os-variant=freebsd8 --cdrom /var/lib/vz/template/FreeBSD-8.1-RELEASE-i386-disc1.iso --accelerate --noautoconsole --vcpus=1 --arch=i686<br />
</pre><br />
После запуска команды создания VPS, смотрим через netstat какой номер порта добавился в список открытых портов и подключаемся через VNC к хардноде к этому порту (например '''vncviewer test.domain.com:5902''' ) и вводим пароль указанный в строке "'''vnc,password='''"<br />
<br />
== Удаление VPS ==<br />
<br />
Выполняем остановку и удаление VPS в KVM:<br />
<pre><br />
virsh -c qemu:///system destroy test_vps #выключить по питанию<br />
virsh -c qemu:///system undefine test_vps #удалить (конифг тоже удаляется)<br />
</pre><br />
И удаляем раздел LVM:<br />
<pre><br />
/sbin/lvremove /dev/main/test_vps<br />
</pre><br />
<br />
== Сменить диск в приводе на VPS без перезагрузки ==<br />
<pre><br />
virsh -c qemu:///system attach-disk --type cdrom --mode readonly win2003 /vz/template/SW_CD_Windows_Svr_Std_2003_.ISO hdc<br />
</pre><br />
http://www.e-faux.com/references:applications:libvirt:cdrom_hotplug<br />
== Tips ==<br />
<br />
=== Отправка комбинаций клавиш ===<br />
<br />
Часто бывает нужно переключиться в окне kvm на вторую виртуальную консоль из графического режима.<br />
<br />
# Нажимаем '''Ctrl+Alt+2''' (именно 2, а не F2)<br />
# В консоли QEMU вводим команду: <br />
sendkey ctrl-alt-f2<br />
# Нажимаем '''Ctrl+Alt+1''' для возращения из консоли уже на вторую виртуальную консоль. Возврат в X.org: '''Alt+F7'''<br />
<br />
=== Получение файлов из образа qcow2 ===<br />
<br />
Подключение:<br />
<br />
losetup -f lxde-p5.qcow2<br />
kpartx -a /dev/loop0<br />
mount /dev/mapper/loop0p2 /mnt # монтирование второго раздела<br />
<br />
Отключение:<br />
umount /mnt<br />
kpartx -d /dev/loop0<br />
losetup -d /dev/loop0<br />
<br />
[[Категория:Руководства]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenVZ&diff=21341OpenVZ2012-05-16T17:05:33Z<p>SlavaDubrovskiy: /* Планирование ресурсов */</p>
<hr />
<div>[[Категория:Admin]]<br />
[[Категория:OpenVZ]]<br />
{{викифицировать}}<br />
<br />
[http://openvz.org OpenVZ] — технология «лёгкой» виртуализации, позволяющая на одной аппаратной системе держать несколько различных корней Linux с одним ядром (поддерживающим ovz и содержащимся, как правило, на небольшом корне с ограниченным доступом по ssh и без других сервисов). В отличие от «тяжёлых» вариантов вроде Xen, Qemu или VMware, накладные расходы обычно составляют единицы процентов.<br />
<br />
__TOC__<br />
<br />
Сначала конечно необходимо прочитать [http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf документацию], для понимания что это такое и для чего можно использовать и как. PDF содержит более сотни страниц, но десяток из них '''обязательно''' следует прочитать для экономии времени — в начале про терминологию, около с.88 про Action Scripts и bind mounts, и в конце — секцию Troubleshooting. Также доступен [http://www.opennet.ru/docs/RUS/virtuozzo/ перевод].<br />
<br />
В настоящий момент в репозитории есть практически все компоненты для полноценной работы. Но на данный момент openvz не поддерживает систему управления пакетами <tt>apt</tt>, поэтому мы не можем воспользоваться утилитой <tt>vzpkg</tt>.<br />
<br />
=== Установка ===<br />
<br />
==== ветки p6/t6, p5/5.1 ====<br />
<pre># apt-get install vzctl kernel-image-ovz-el</pre><br />
При этом установятся ядро с поддержкой openvz и необходимые утилиты; далее необходимо перегрузить систему и при загрузке выбрать ядро <tt>-ovz</tt>.<br />
<br />
==== ветка 4.0 ====<br />
Аналогично, только {{cmd|apt-get install vzctl kernel-image-ovz-rhel}}<br />
<br />
==== инсталер ====<br />
* [[Releases/40|ALT Linux 4.0 Server]]<br />
* http://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/ovz/ (что-то близкое к p6/t6)<br />
<br />
=== Планирование ресурсов ===<br />
Если предполагается более-менее равномерное разделение HN между несколькими VE (или примерно можно означить ограничения как «1/10», «1/4»), то рекомендуется использовать <tt>vzsplit</tt> для создания заготовок конфигурации (не самих серверов! — получается меташаблон такой).<br />
<pre>vzsplit -n 2 -f ltsp<br />
vzsplit -n 10 -f misc10</pre><br />
<br />
Заготовки окажутся в <tt>/etc/vz/conf/ve-ИМЯ.conf-sample</tt> и пригодны для использования в <tt>vzctl create $VEID --config ИМЯ</tt>. Имейте в виду, что штатный vps.basic весьма ограничен, а light — скорее непригоден к использованию.<br />
<br />
Перепланировать можно и потом; если есть возможность — бывает полезно дать память с запасом и посмотреть через какое-то время реальное использование (накинуть резерв и уменьшить до полученной цифры). Также рекомендуется почитать про [http://wiki.openvz.org/UBC_systemwide_configuration UBC], а также man-страницы <tt>vzctl</tt>, <tt>vzmemcheck</tt>, <tt>vzcpucheck</tt>.<br />
<br />
Начиная с vzctl-3 и ядра ovz-el есть поддержка [http://wiki.openvz.org/VSwap VSwap] и соответственно новые шаблоны в формате ve-vswap-<mem_size>.conf-sample<br />
<br />
=== Создание шаблона ===<br />
<br />
==== mkimage-profiles ====<br />
См. [[Mkimage/Profiles/m-p/examples|примеры к m-p]]; проверено на Sisyphus и p6/t6, может заработать на p5/5.1. Готовые тарболы на p6 доступны [http://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/ovz/ здесь].<br />
<br />
==== spt-0.6.0-alt7+ ====<br />
Внимание: эта информация относится скорее к 4.0 и более старым веткам.<br />
<br />
Необходимо создать шаблон, который будет использоваться для создания виртуального сервера. На [http://openvz.org/download/template/cache сайте] находится много шаблонов. Для ALT шаблоны см. в [http://download.openvz.org/contrib/template/precreated/ contrib],[http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz altlinux-2.4.tar.gz], [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz altlinux-3.0.tar.gz] и [http://download.openvz.org/template/precreated/contrib/altlinux-4.0-i586.tar.gz altlinux-4.0-i586.tar.gz] . Шаблон представляет собой запакованый в архив корневой раздел. Поэтому для создания шаблона можно использовать <tt>spt</tt> или <tt>hasher</tt>. Я воспользовался [http://freesource.info/wiki//ALTLinux/Sisyphus/Separator spt], так как он содержит уже готовый профиль для ovz.<br />
Устанавливаем spt:<br />
<pre># apt-get install spt spt-profiles-ovz</pre><br />
На этом этапе необходимо получить работоспособный [[hasher]]. А именно, следует настроить его для работы с вашим пользователем согласно [http://www.altlinux.org/Hasher/%D0%9A%D1%80%D0%B0%D1%82%D0%BA%D0%BE%D0%B5_%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE инструкции].<br />
Для правильной работы <tt>vzctl</tt> необходимо, чтобы в <tt>/dev</tt> находились следующие устройства: <tt>/dev/ptmx</tt>, <tt>/dev/tty</tt> и был смонтирован <tt>/dev/pts/</tt>. Для их создания требуется наличие параметра <tt>allow_ttydev=YES</tt> в <tt>/etc/hasher-priv/*</tt> (см. hasher-priv.conf(8), [http://lists.altlinux.org/pipermail/devel/2006-July/034431.html http://lists.altlinux.org/pipermail/devel/2006-July/034431.html])<br />
<br />
Затем необходимо создать профиль, по которому spt будет строить шаблон. Возможно использовать готовый профиль. Готовые профили, предназначенные для создания openvz-шаблонов, находятся в пакете spt-profiles-ovz.<br />
<br />
Создаем рабочий каталог и копируем туда дефолтный ovz-профиль, если хотим самостоятельно сформировать список пакетов<br />
<pre>mkdir ~/ovz<br />
cp -r /etc/spt/profiles/ovz/.default ~/ovz/profile</pre><br />
<br />
или копируем готовый профиль:<br />
<pre>cp -r /etc/spt/profiles/ovz/proxy-server ~/ovz/profile</pre><br />
<br />
Можно поменять имя создаваемого образа в <tt>ovz/profile/ovz/config/</tt>. Заменим значение в OUT на altlinux-4.0.tar.gz .<br />
Список пакетов находится в — <tt>~/ovz/profile/ovz/packages</tt> — например, можно добавить openssh-server, vim-console, bash-completion. В ovz-контейнер нет необходимости ставить пакет interactivesystem.<br />
Минимальный список пакетов:<br />
<pre>basesystem<br />
apt<br />
etcnet<br />
glibc<br />
sysklogd</pre><br />
<br />
Или вместо попакетного списка можно указать один виртуальный пакет из:<br />
<pre>ve-asterisk - Asterisk server<br />
ve-base - Basic appliance<br />
ve-build-scripts - scripts used for VE building<br />
ve-caching-nameserver - Caching name server<br />
ve-ftp-server - FTP server<br />
ve-imap-server - POP3/IMAP4 server<br />
ve-kerberos-server - Kerberos server<br />
ve-list-server - Mailing list server<br />
ve-ntp-server - NTP server<br />
ve-openvpn-server - virtual package for openvpn server appliance<br />
ve-pptp-server - virtual package for pptp server appliance<br />
ve-print-server - Print server<br />
ve-proxy-server - Proxy server<br />
ve-smtp-server - SMTP server</pre><br />
<br />
Если предполагается использовать в контейнере alterator, добавьте '''ve-base''' в список пакетов.<br />
<br />
Теперь необходимо создать сам образ:<br />
<pre>$ spt -v --image-type=tgz ~/ovz</pre><br />
<br />
<div style="display: inline; color: red;">Внимание: создание образов на i586-машине для архитектуры x86_64 не работает.</div><br />
<br />
Если все прошло хорошо, то в <tt>~/ovz/</tt> будет находится файл altlinux-4.0.tar.gz. Его необходимо скопировать в <tt>/var/lib/vz/template/cache</tt>. Не забудьте поменять владельца и группу.<br />
<br />
=== Создание виртуального сервера ===<br />
'''Внимание:''' ещё один момент, где лучше заранее почитать документацию, чем потом сожалеть: в PDF рекомендуется выдавать VEID’ы сообразно IP (например, для xxx.xxx.7.123 — <tt>7123</tt> или для 10.0.1.254 — #1254##). Это более удобно с точки зрения администрирования как мнемонически, так и при необходимости переноса контейнеров между физическими хостами — если везде есть VEID 101, перенос будет сильно затруднён (на forum.openvz.org в соответствующей теме встретился вариант решения — свернуть одноразовый template cache из переносимого VE (например с помощью vzdump) и создать на новом месте из этого темплейта; штатный способ изменения VEID мне пока неизвестен). При создании из такого темплейта можно указать использовать старый конфиг и все работает хорошо.<br />
<br />
Теперь мы можем создать сервер из шаблона.<br />
<pre># vzctl create 101 --ostemplate altlinux-4.0 --config vps.basic<br />
Creating VPS private area<br />
VPS private area was created</pre><br />
<br />
Имя, которое Вы дали вашему шаблону (то что следует за — ostemplate), имеет важное значение. При создании VE это имя заносится в конфигурационный файл в переменную OSTEMPLATE. По этой переменной vzctl определяет какие скрипты использовать (разным OS нужны разные скрипты). Если вы используете ALT, то оно обязательно должно начинаться с altlinux (определяет нюансы настройки). Дальше разбор имени идет по такому алгоритму:<br />
<pre>> > а по-какому критерию тогда vzctl ищет нужные scripts?<br />
<br />
См. get_dist_conf_name(). В случае --ostemplate altlinux-i686-minimal<br />
будут проверены:<br />
altlinux-i686-minimal.conf<br />
altlinux-i686.conf<br />
altlinux.conf<br />
default<br />
Будет использован первый найденный.<br />
<br />
-- ldv</pre><br />
<br />
=== Именование виртуального сервера ===<br />
Начиная с версии 3.0.11, vzctl поддерживает именование виртуальных серверов. Это удобно, когда у вас их много, ибо помнить, что <tt>proxy</tt> это <tt>103</tt> — не очень удобно.<br />
<pre># vzctl set 103 --name proxy --save<br />
Saved parameters for VPS 103</pre><br />
Теперь в командах vzctl вместо 103 можно использовать proxy.<br />
<br />
=== Конфигурация виртуального сервера ===<br />
Конфигурация включает такие пункты:<br />
<br />
==== 1. Установка параметров запуска ====<br />
<pre># vzctl set 101 --onboot yes --save<br />
Saved parameters for VPS 101</pre><br />
<br />
==== 2. Установка параметров сети ====<br />
<br />
===== Общие настройки =====<br />
Установка имени сервера:<br />
<pre># vzctl set 101 --hostname test101.my.org --save<br />
Saved parameters for VPS 101</pre><br />
<br />
Установка nameserver:<br />
<pre># vzctl set 101 --nameserver 192.168.1.165 --save<br />
Saved parameters for VPS 101</pre><br />
<br />
Установка searchdomain:<br />
<pre>vzctl set 101 --searchdomain my.org --save</pre><br />
<br />
Учтите, что параметры ipadd и hostname можно задать сразу при создании VE.<br />
<br />
===== Сетевые соединения =====<br />
В [[OpenVZ|OpenVZ]] в VE возможно настраивать 3 типа соединений:<br />
# [http://wiki.openvz.org/Virtual_network_device venet]<br />
# [http://wiki.openvz.org/Virtual_Ethernet_device veth]<br />
# Просто «пробросить» внутрь физический ethernet интерфейс. См. параметры netdev_add name/netdev_del name для vzctl.<br />
<br />
Различия между venet и veth описаны [http://wiki.openvz.org/Differences_between_venet_and_veth тут]. Кратко можно сказать, что чаще всего вам потребуется venet. Но в некоторых случаях, для запуска таких приложений внутри VE, которые требуют для своей работы: MAC address, Broadcasts inside VE, Traffic sniffing, (например dhcpd, samba) или вам нужен IPv6 — необходимо создавать veth. Также veth можно использовать в некоторых [http://forum.openvz.org/index.php?t=msg&th=951&start=0& сложных случаях]. Во всех остальных случаях (например, сложный роутинг или несколько ethx устройств с разными маршрутами/коммутацией, или когда нужно именно физическое ethernet устройство внутри VE), необходимо использовать netdev.<br />
<br />
====== [http://wiki.openvz.org/Virtual_network_device venet] ======<br />
Настройка venet внутри VE полностью осуществляется средствами vzctl. При старте VE конфигурация venet устройств переписывается на основании конфига для VE.<br />
<pre># vzctl set 101 --ipadd 10.10.186.1 --save<br />
Saved parameters for VPS 101</pre><br />
<br />
При этом внутри VE создастся 2 интерфейса:<br />
<pre># vzctl exec 101 /sbin/ip a<br />
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue<br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
inet 127.0.0.1/8 scope host lo<br />
inet6 ::1/128 scope host<br />
valid_lft forever preferred_lft forever<br />
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue<br />
link/void<br />
inet 10.10.186.1/32 scope global venet0:1</pre><br />
<br />
Маршрут при этом выглядеть должен так:<br />
<pre># vzctl exec 101 /sbin/ip r<br />
192.0.2.0/24 dev venet0 scope host<br />
default via 192.0.2.1 dev venet0</pre><br />
Такой адрес выбран [http://forum.openvz.org/index.php?t=msg&goto=4929 сознательно]<br />
<br />
====== [http://wiki.openvz.org/Virtual_Ethernet_device veth для IPv4] ======<br />
'''UPDATE:''' в свежем <tt>vzctl</tt> уже автоматизировано:<br />
<pre>3.0.10: Wed Jun 7 2006 <igor@openvz.org><br />
* added virtual ethernet device support (--veth_add, --veth_del)</pre><br />
<br />
'''UPDATE2:''' про создание veth только средствами etcnet есть эта [[OpenVZ_veth_etcnet|страница]]<br />
<br />
Настройка veth не осуществляется средствами vzctl, так как подразумевается, что администратор VE должен настроить сеть средствами той ОС, которая внутри VE.<br />
<br />
1. Необходимо обеспечить загрузку модуля vzethdev:<br />
<pre># modprobe vzethdev</pre><br />
Разработчики рекомендуют дописать этот модуль в переменную NET_MODULES в скрипте /etc/init.d/vz. Но думаю, что лучше его просто прописать в /etc/modules (при обновлении vzctl скрипт обновляется -- явно напрашивается на /etc/sysconfig/vz-что-то, совсем непонятно, зачем сейчас это симлинк на ../vz/vz.conf).<br />
<br />
'''vvk:''' <tt>похоже что сейчас ничего этого не требуется, модули подгружаются автоматически</tt><br />
<br />
2. Добавим сам veth к VE:<br />
<pre># vzctl set 101 --netif_add eth0 --save</pre><br />
, где eth0 — имя veth-интерфейса на стороне VE. Необходимости прописывать мак-адреса вручную теперь нет.<br />
<div style="display: inline; color: red;">Внимание! MAC-адреса должны быть разными и не пересекаться с реальными интерфейсами — можно чуть изменить взятый со старой карты в ящике.</div><br />
Добавлять IP командой vzctl set 101 --ipadd 10.10.186.1 --save не надо, так как тогда будет настраиваться venet.<br />
<br />
3. Настроим создание eth0 в VE:<br />
Для этого можно использовать средства настройки сети той OS что установлена в VE. Для ALT это etcnet. Для этого просто настроим стандартный интерфейс типа eth. Или можно настраивать из HN используя «типичный скрипт» 101.start (в /etc/vz/conf/), добавив туда:<br />
<pre>/sbin/ifconfig eth0 0<br />
/sbin/ip addr add 10.10.186.1 dev eth0<br />
/sbin/ip route add default dev eth0<br />
/sbin/ip route replace default via $HN_IP dev eth0</pre><br />
<small>Последняя строчка нужна в случае если HN и VE находятся в разных сетях, без нее пакеты VE не будут ходить за пределы этих сетей. Если кто предложит вариант лучше — исправления приветствуются</small><br />
<br />
Скрипт должен иметь права на выполнение.<br />
<br />
4. Запустим VE:<br />
<pre># vzctl start 101</pre><br />
<br />
После запуска в VE должны быть такие интерфейсы:<br />
<pre>$ /sbin/ip a<br />
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue<br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
inet 127.0.0.1/8 scope host lo<br />
inet6 ::1/128 scope host<br />
valid_lft forever preferred_lft forever<br />
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue<br />
link/void<br />
inet 127.0.0.1/32 scope host venet0<br />
5: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue<br />
link/ether 00:12:34:56:78:9b brd ff:ff:ff:ff:ff:ff<br />
inet 10.10.186.1/32 scope global eth0</pre><br />
<br />
и маршруты (почему-то добавляется):<br />
<pre>$ /sbin/ip r<br />
191.255.255.0/24 dev venet0 scope host<br />
default dev eth0 scope link<br />
default via 191.255.255.1 dev venet0</pre><br />
<br />
Теоретически администратор VE может сам менять IP, но я не проверял :-)<br />
<br />
5. Теперь, после запуска VE нужно настроить veth на стороне ##DEFINITION HN => Hardware Node##:<br />
Для этого в [[OpenVZ|OpenVZ]] после старта VE автоматически вызывается утилита vznetcfg, которая инициализирует veth на стороне HN путем вызова команды ip link set veth101.0 up. Т.о. вы имеете поднятый интерфейс, но без IP и без настроенного маршрута. Поэтому дальнейшую настройку приходится делать руками или прописать в rc.local. (В следующей версии vzctl вроде уже добавили поддержку)<br />
Настроим proxy_arp и forwarding для eth0 и veth на HN:<br />
Для eth0 можно использовать штатные средства Sisyphus:/admin/etcnet, установив переменную <tt>net.ipv4.ip_forward = 1</tt> в файле <tt>/etc/net/sysctl.conf</tt> и <tt>proxy_arp=1</tt> в <tt>/etc/net/ifaces/eth0/sysctl.conf</tt>.<br />
Для veth нужно выполнить:<br />
<pre># echo 1 > /proc/sys/net/ipv4/conf/veth101.0/forwarding<br />
# echo 1 > /proc/sys/net/ipv4/conf/veth101.0/proxy_arp</pre><br />
<br />
Добавляем IP<br />
<pre>ip addr add 10.10.186.1 dev veth101.0</pre><br />
<br />
<div style="display: inline; color: red;">Примечание :</div><br />
На самом деле, правильно:<br />
<pre>ip addr add 0 dev veth101.0</pre><br />
А не 10.10.186.1 иначе с ноды 101 пакеты в мир уйдут, а те что будут направлены ноде 101-й будут приняты HN и дальше не пройдут.<br />
<br />
И добавить маршрут:<br />
<pre># ip route add 10.10.186.1 dev veth101.0</pre><br />
<br />
Нюансы:<br />
* На данный момент venet настраивается при любых условиях, то есть даже когда используется veth. [http://forum.openvz.org/index.php?t=msg&th=967&start=0& Вот ответ разработчиков].<br />
* [https://bugzilla.altlinux.org/show_bug.cgi?id=9877 https://bugzilla.altlinux.org/show_bug.cgi?id=9877]<br />
* Похоже, что еще можно не мучаться с rc.local и патчами и все настроить через etcnet и hotplug. Более подробно я напишу по окончании разборок с этим хозяйством. <div style="display: inline; color: red;">напишите кто-нибудь, как автоматически в HN ловить появление veth и настраивать ему ip-параметры</div> [http://freesource.info/wiki//AfanasovDmitry /AfanasovDmitry]: сделал «маленькую хитрость»/<br />
* Если в VE iptables не работает с -t nat, скорее всего модуль iptable_nat был загружен на HN уже '''после''' старта контейнера.<br />
* Мне захотелось иметь 2 VETH интерфейса в VE, соединённых с двумя сетевыми карточками HE, одна — ведущая в WAN, другая — в LAN. Результаты можно почитать здесь: [http://vireso.blogspot.com/2008/02/2-veth-with-2-brindges-on-openvz-at.html http://vireso.blogspot.com/2008/02/2-veth-with-2-brindges-on-openvz-at.html] (извиняюсь, на английском).<br />
<br />
==== 3. Установка пользовательских параметров ====<br />
Установим пароль для рута:<br />
<pre># vzctl set 101 --userpasswd root:test<br />
Saved parameters for VPS 101</pre><br />
В этом примере мы установили пароль для root в VPS 101 в «test», и вы можете залогиниться<br />
<br />
==== 4. Установка квот ====<br />
Для включения дисковых квот необходимо выполнить следующие команды:<br />
<br />
<pre># vzctl set 101 --quotaugidlimit число --save<br />
# vzctl restart 101</pre><br />
<br />
где, '''''число''''' -- максимальное количество пользователей и групп, которые могут размещаться в контейнере (например, 1000).<br />
<div style="display: inline; color: red;">Внимание:</div> на сейчас поддержка реализована только для ext2/3 :-(<br />
<br />
=== Запуск виртуального сервера ===<br />
<pre># vzctl start 101<br />
Starting VPS ...<br />
VPS is mounted<br />
Adding IP address(es): 10.0.186.101<br />
Hostname for VPS 101 set: test.my.org<br />
VPS start in progress...</pre><br />
<br />
=== Выполнение команд на сервере ===<br />
<pre># vzctl exec 101 service sshd status<br />
sshd is stopped<br />
# vzctl exec 101 service sshd start<br />
Starting sshd: [ OK ]<br />
# vzctl exec 101 service sshd status<br />
sshd is running</pre><br />
<br />
=== Административный вход на сервер ===<br />
<pre># vzctl enter 101</pre><br />
Если огребаем такое:<br />
<pre># vzctl enter 101<br />
enter into VE 101 failed<br />
Unable to open pty: No such file or directory</pre><br />
— то [http://lists.altlinux.org/pipermail/sysadmins/2006-November/003072.html дело] в <tt>/dev/tty</tt>, <tt>/dev/ptmx</tt> и (не)смонтированном <tt>/dev/pts/</tt>. Надо добавить в <tt>/etc/fstab</tt> этого VE нечто вроде<br />
<pre>devpts /dev/pts devpts gid=5,mode=620 0 0</pre><br />
<br />
NB: если эта проблема вылезла вследствие выполнения команд start и enter цепочкой — вероятно, /dev/pts просто не успевает смонтироваться, попробуйте добавить задержку:<br />
<pre>VE=NNN; vzctl start $VE; sleep 1; vzctl enter $VE</pre><br />
<br />
=== Уничтожение сервера ===<br />
<pre># vzctl destroy 101</pre><br />
<br />
=== Альтлинукс как VPS в других дистрибутивах ===<br />
(Я пробовал на примере CentOS4)<br />
Если у вас есть шаблон altlinux.tar.gz, сделанный как описано выше, в главе «Создание Шаблона»,<br />
то его можно скопировать в директорию /vz/template/cache/.<br />
Если версия пакета vzctl в HN меньше чем 3.0.19, то для того чтобы работала сеть,<br />
надо также взять из альтовского пакета vzctl файлы<br />
/etc/vz/dists/altlinux.conf, /etc/vz/dists/scripts/etcnet-add_ip.sh и /etc/vz/dists/scripts/etcnet-del_ip.sh<br />
или обновить пакет vzctl до версии >= 3.0.19.<br />
Далее всё согласно этому документу, — создание, именование, настройка…<br />
<br />
(также можно взять у ldv@ [http://git.altlinux.org/people/ldv/packages/?p=vzctl.git;a=tree;hb=HEAD в git]: бранч master)<br />
<br />
=== NFS/FUSE и LTSP ===<br />
[[OpenVZ/NFS|NFS здеся]]; [[OpenVZ/FUSE|FUSE здеся]].<br />
<br />
=== mount --bind из HN в VE при старте последнего ===<br />
[http://forum.openvz.org/index.php?t=msg&th=159&#msg_720 здеся] (вообще про action scripts есть в документации, тут же — примеры удобные)<br />
<br />
=== openntpd ===<br />
В принципе, openntpd заводится с пол-пинка, но есть два замечания:<br />
* не хотел стартовать с <tt>listen on *</tt>, помогает указание ip-адреса vps-а или 0.0.0.0<br />
* необходимо разрешить VPS-у подкручивать системные часы:<br />
<pre># vzctl set 101 --capability sys_time:on --save</pre><br />
<br />
=== nut ===<br />
Заводится с пол-пинка, единственный момент — дать доступ к устройству:<br />
<pre>vzctl set 101 --devnodes ttyS0:rw --save</pre><br />
<br />
=== Миграция с [[VServer|VServer]] ===<br />
<pre>Date: Wed, 9 Aug 2006 02:07:06 +0400<br />
From: "Dmitry V. Levin" <ldv@><br />
To: ALT Linux sysadmin discuss <sysadmins@><br />
Subject: Re: [Sysadmins] vserver -> openvz migrate?<br />
<br />
> Скажите пожалуйста, если имеются работающие парочка VServers, один -<br />
> текущий Сизиф 32-битный чтобы пользоваться в 64-битном Сизифе смотреть<br />
> флэш и ещё что не нашёл 64-битное. Второй - Федора5. Мигрировать на<br />
> OpenVZ - что для этого надо будет делать? Или проще заново их<br />
> сгенерировать?<br />
<br />
Мигрировать контейнеры с linux-vserver на openvz достаточно легко.<br />
Я недавно делал такую миграцию для контейнеров, сделанных на основе M24.<br />
Могу отметить 4 момента:<br />
1. vserver'ная конфигурация контейнеров беднее, чем openvz'шная; имеет<br />
смысл сперва установить достаточно большие лимиты, потом на основе опыта<br />
эксплуатации уменьшить их до рабочего уровня.<br />
2. Имя файла template cache должно соответствовать имени системы, на основе<br />
которой сделан контейнер. Например, если контейнер сделан на основе<br />
чего-то ALT'ового с net-scripts, то имя должно начинаться с "altlinux-2.4-",<br />
если на основе ALT'ового с etcnet, то с "altlinux-", для FC - с<br />
"fedora-core-".<br />
3. С удивлением обнаружил, что внутри vserver'ных контейнеров выключена<br />
служба network. Не забудьте выполнить "chkconfig network on".<br />
4. В пакете vzctl-3.0.10-alt5 я добавил дополнительные правила<br />
корректировки в /etc/vz/dists/scripts/postcreate.sh, которые выключают<br />
запуск mingetty в inittab'е и лог в /dev/tty12 в syslog.conf.<br />
Если вы захотите обойтись без vzctl create, то надо будет каким-то образом<br />
выполнить этот /etc/vz/dists/scripts/postcreate.sh внутри контейнеров.</pre><br />
<pre>Date: Wed, 9 Aug 2006 13:10:39 +0400 (MSD) <br />
From: "Konstantin A. Lepikhov" <lakostis@> <br />
To: sysadmins@<br />
Subject: Re: [Sysadmins] [wiki] Re: vserver -> openvz migrate?<br />
<br />
>> Мигрировать контейнеры с linux-vserver на openvz достаточно легко.<br />
агасчас. Это все легко, если используется старый vserver/vserver-utils,<br />
не 2.0.x. В новых vserver введен внешний package management, поэтому<br />
сначала придется в vserver поставить apt/rpm, потом скопировать базы<br />
rpm/apt из /vservers/.pkg/ внутрь vserver (кажется, там были грабли, т.к.<br />
vrpm использует db3 вместо db4). И лишь только когда это все сделано,<br />
можно создавать cache для ovz.</pre><br />
<pre>Или наоборот, создать template cache, создать тз него ovz-контейнер,<br />
скопировать туда базу данных rpm и поставить туда apt/rpm.<br />
-- <br />
ldv</pre><br />
<br />
=== Template caches ===<br />
* http://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/ovz/ (4.0, p6)<br />
* http://download.openvz.org/template/precreated/contrib/altlinux-4.0-i586.tar.gz<br />
<br />
==== устаревшие ====<br />
* http://fly.osdn.org.ua/~mike/tmp/openvz/altlinux-5.1-x86_64.tar.gz (apt, nameserver 8.8.8.8)<br />
* http://fly.osdn.org.ua/~mike/tmp/openvz/altlinux-5.1-i586.tar.gz (apt, nameserver 8.8.8.8)<br />
* http://fly.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914-x86_64.tar.gz<br />
* http://fly.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914.tar.gz<br />
* http://fly.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz<br />
* http://ftp.linux.kiev.ua/pub/Linux/ALT/people/thresh/altlinux-2.4.tar.gz<br />
<br />
=== Замечания по использованию ===<br />
* vzquota [http://bugzilla.openvz.org/show_bug.cgi?id=125 не дружит с xfs] (поскольку xfs использует свою реализацию квот, отличных от linuxquota). Поэтому для /vz лучше использовать ext3.<br />
* user_beancounters по-умолчанию сильно закручены по ресурсам, поэтому после развертывания VPS, необходимо внимательно изучить содержимое /proc/user_beancounters. Значения, на которые надо смотреть — kmemsize, numproc, numfile, numtcpsock, numothersock. В случае нагруженной tcp подсистемы — tcpsndbuf и tcprcvbuf.<br />
* В ovz ядрах [http://bugzilla.openvz.org/show_bug.cgi?id=469 глючит nfs], поэтому внутрь VPS ресурсы лучше экспортировать через mount --bind. Несекурно, зато работает.<br />
* Чтобы собрать кэш темплейт для M24 надо пересобрать сизифный console-data.<br />
<tt>А вот и собранный template для M24 с исправлением: [http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz] размер: 24660183, md5sum: e575da3dc4841367ba0d74e7063703bf </tt><br />
* Чтобы в контейнере с Compact 3.0.4 заработала сеть, нужен etcnet-0.8.3-alt2, с etcnet-0.7.16-alt1 [http://lists.altlinux.org/pipermail/sysadmins/2006-September/002371.html не работает] (<tt>ip route list</tt> пустой).<br />
<tt>А вот и собранный template для M30 с исправлением: [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz] размер: 20741540, md5sum: cd74ef7dc8f117626b1701061cb1973f </tt><br />
* Проверьте. есть ли все необходимые устройства. например, без /dev/full rpm --sign вылетает по SIGPIPE.<br />
<br />
=== Маленькие хитрости ===<br />
Для того, чтобы выполнить команду на всех серверах, можно воспользоваться такой конструкцией:<br />
<pre># for i in `vzlist -a -H -o veid`; do echo "VPS $i"; vzctl exec $i <command>; done</pre><br />
<br />
Чтобы показывался размер виртуального раздела в контейнере, надо выполнить следующие команды внутри контейнера:<br />
<pre>rm -f /etc/mtab && ln -s /proc/mounts /etc/mtab</pre><br />
(уже obsoleted с spt >= 0.3.1-alt4)<br />
<br />
Чтобы следить за «нарушителями границ» (предназначено для VE, не HN):<br />
<pre>watch grep -v ' 0$' /proc/user_beancounters</pre><br />
<br />
NB: в /proc/sys/net/ipv4/conf/venet0/proxy_arp после ребута или service network restart оказался ноль => nmap -P0 говорил, что порты закрыты, в то время как telnet :22, :111, :2049 — соединялся. Занеся 1, получаем нормальную картинку по nmap, но точно так же не монтируется (server is down).<br />
<br />
Правка дефолтного i18n (если не сделали себе в template cache сразу как требуется):<br />
<pre>vi /etc/rpm/macros<br />
apt-get -y reinstall `rpm -qf --queryformat '%{NAME}\n' /usr/share/locale/ru/LC_MESSAGES/* | sort -u`</pre><br />
<br />
<br />
'''Для автоподхвата интерфейсов''' достаточно поставить hotplug и в файл options дописать <tt>USE_HOTPLUG=yes</tt><br />
Например устройство до почтовика <tt>/etc/net/ifaces/smtp0</tt> организовано следующим обрзом:<br />
<tt>/etc/net/ifaces/smtp0/options</tt><br />
<pre>TYPE=eth<br />
REQUIRES=br0<br />
USE_HOTPLUG=yes</pre><br />
Он у меня автоматом в мост <tt>br0</tt> добавляется. Это файлы <tt>/etc/net/ifaces/smtp0/ifup-post</tt> и <tt>/etc/net/ifaces/smtp0/ifdown-post</tt> с кодмандами<br />
<pre>NAME="$1"; /sbin/brctl addif br0 "$NAME"</pre><br />
<pre>NAME="$1"; /sbin/brctl delif br0 "$NAME"</pre><br />
<div style="display: inline; color: red;">хе, интересно, а как в <tt>brctl</tt> метка AUTO тут обрабатывается?</div><br />
Если мост не нужен, тогда как обычно создаем файлы <tt>ipv4address</tt>, <tt>ipv4route</tt>, <tt>ipv4link</tt>.<br />
<br />
=== TODO ===<br />
* причесать логический порядок страницы (вынести подстранички?) // mike<br />
<br />
=== Ссылки ===<br />
* [http://openvz.org openvz.org], [http://wiki.openvz.org wiki.openvz.org]<br />
* [http://kir.vtx.ru/lj/openvz-intro-ru.pdf Введение в виртуализацию]<br />
* [http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf Официальная документация]<br />
* [http://www.opennet.ru/docs/RUS/virtuozzo/ Русская документация по openvz на opennet]<br />
* [http://ru.wikipedia.org/wiki/OpenVZ OpenVZ в Wikipedia]<br />
* [http://k001.livejournal.com/361042.html OpenVZ vs VMWare]<br />
* [http://www.linux.com/print.pl?sid=07/01/11/2038252 A guide to running OpenVZ] (linux.com)<br />
* [http://rus-linux.net/kos.php?name=papers/virtual/virtual-linux.koi Виртуализация] (вообще и в частности)<br />
* [http://www.montanalinux.org/openvz-kir-interview.html Интервью] с Кириллом Колышкиным [en]<br />
* [http://wiki.openvz.org/Download/template/precreated Готовые шаблоны для различных дистрибутивов]<br />
* [http://openvz.org/pipermail/users/2010-January/003192.html Сравнение с VServer и LXC] (январь 2010)</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%D0%BC%D0%B8/WD&diff=18326Работа с дисками/WD2011-03-22T20:38:38Z<p>SlavaDubrovskiy: /* Работа с дисками, имеющими сектора 4Кб */</p>
<hr />
<div>== Работа с дисками, имеющими сектора 4Кб ==<br />
<br />
Технология с секторами 4Кб у Western Digital называется Advanced Format.<br />
<br />
Примеры дисков:<br />
* WDC WD10EARS Caviar Green<br />
* WDC WD15EARS Caviar Green<br />
* WDC WD20EARS Caviar Green<br />
* SAMSUNG [http://www.samsung.com/global/business/hdd/productmodel.do?type=94&subtype=98&model_cd=552 HD204UI]<br />
<br />
А также новые диски из серии Caviar Blue<br />
<br />
<br />
Новая линейка экономных дисков имеет физический размер сектора 4Кб (экономия на служебной информации и межсекторных промежутках). Для ОС он притворяется имеющим сектора 512 байт, но если не работать с ним 4Кб-ными блоками, возникает многократное снижение производительности на записи (чтобы записать 512 байт, придётся считать 4Кб, изменить в них нужную часть и записать опять). Не знаю, как здесь, но на FDD пришлось бы подождать полный оборот диска.<br />
<br />
В полной мере поддержки в большинстве выпущенных дистрибутивов Linux нет, особенно в установщиках<ref>Кажется, в Fedora 12 или 13 всё-таки есть.</ref>. Windows поддерживает такие сектора, начиная с Windows Vista.<br />
<br />
Индивидуальные программы по состоянию на конец 2009/начало 2010 в апстримах уже обновлены, см. тж [[BigSector|эту страничку]] и [https://bugzilla.altlinux.org/show_bug.cgi?id=16000 метабаг #16000].<br />
<br />
=== Создание разделов ===<br />
Разделы на диске должны быть выровнены кратно 8-ми секторам, то есть начинаться не с 63-го, как это обычно любит Windows<ref>Точнее, DOS partition table при условии выравнивания по «цилиндрам» плюс шестибитном поле sector в тяжком наследии IDE плюс нумерации секторов, начинающейся с 1 вместо 0 по какому-то недоразумению…</ref>, а с 64-го. Скорее всего это приведёт к конфликту с Windows. В случае использования двух систем на одном диске рекомендуется выставить перемычку на диске, меняющую нумерацию секторов.<br />
<br />
==== fdisk ====<br />
Нужен fdisk из util-linux-ng версии 2.17.1 и выше (ещё нет в Сизифе)<br />
<br />
Использование:<br />
fdisk -c -u<br />
(-c выключает совместимость с DOS, -u включает указание размеров в секторах)<br />
<br />
Для дисков наподобие WD15EARS не надо пытаться передавать <br />
fdisk'у -b 4096 (поскольку эти HDD наружу всё равно показывают 512), поскольку при этом<br />
fdisk создаст разделы в 8 раз меньше.<br />
<br />
=== parted ===<br />
TODO: что с ним?<br />
<br />
=== Создание файловой системы ===<br />
Файловым системам нужно указывать размер блока и размер сектора не менее 4Кб.<br />
<br />
* mkfs.ext3 -b 4096<br />
* mkfs.xfs -s 4096<br />
<br />
=== Создание LVM ===<br />
* pvcreate --dataalignment 4096<br />
<br />
== Ссылки ==<br />
* https://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues<br />
* http://www.wdc.com/ru/products/advancedformat/<br />
* https://bugzilla.altlinux.org/show_bug.cgi?id=23014<br />
* http://www.fcenter.ru/online.shtml?articles/hardware/hdd/28121<br />
* http://ubuntuforums.org/showthread.php?p=8901011<br />
* http://www.opennet.ru/openforum/vsluhforumID3/63902.html<br />
* http://www.thg.ru/storage/wd_4k_sector/index.html<br />
* http://community.wdc.com/t5/Desktop/Problem-with-WD-Advanced-Format-drive-in-LINUX-WD15EARS/td-p/6395/page/2<br />
* http://www.hv23.net/2010/02/wd10ears-performance-larger-block-size-issues4k/<br />
* http://www.osnews.com/story/22872/Linux_Not_Fully_Prepared_for_4096-Byte_Sector_Hard_Drives<br />
* http://rlab.ru/doc/4k_hdd_for_linux.html<br />
<br />
<references /><br />
[[Категория:Documentation]]<br />
[[Категория:Hardware]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Red5&diff=17618Red52011-01-20T15:59:41Z<p>SlavaDubrovskiy: </p>
<hr />
<div>== Установка Red5 под ALT ==<br />
http://red5.org<br />
<br />
1. Качаем c http://red5.org/wiki/Releases<br />
<br />
2. Распаковываем в /opt/red5<br />
<br />
3. Ставим [http://www.altlinux.org/images/e/e2/Red5.init init скрипт], меняем права и добавляем в как сервис <br />
chkconfig --add red5<br />
<br />
<br />
TODO:<br />
*Сделать через псевдопользователя<br />
*Запаковать все это как нормалный пакет<br />
<br />
[[Категория:Red5]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Red5.init&diff=17617Файл:Red5.init2011-01-20T15:55:35Z<p>SlavaDubrovskiy: Red5.init</p>
<hr />
<div>Red5.init</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Red5&diff=17616Red52011-01-20T15:51:17Z<p>SlavaDubrovskiy: Новая страница: «== Установка Red5 под ALT == http://red5.org 1. Качаем c http://red5.org/wiki/Releases 2. Распаковываем в /opt/red5 3. Стави...»</p>
<hr />
<div>== Установка Red5 под ALT ==<br />
http://red5.org<br />
<br />
1. Качаем c http://red5.org/wiki/Releases<br />
<br />
2. Распаковываем в /opt/red5<br />
<br />
3. Ставим init скрипт, меняем права и добавляем в как сервис<br />
chkconfig --add red5<br />
<br />
<br />
TODO:<br />
*Сделать через псевдопользователя<br />
*Запаковать все это как нормалный пакет</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Grub&diff=17612Grub2011-01-20T09:49:49Z<p>SlavaDubrovskiy: /* Где отредактировать параметры ядра? */</p>
<hr />
<div>[[Категория:Admin]]<br />
<br />
== Что такое GRUB? ==<br />
Wikipedia сообщает "GNU GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки."<br />
[http://ru.wikipedia.org/wiki/Grub http://ru.wikipedia.org/wiki/Grub]<br />
<br />
== Зачем нужен GRUB если есть LILO? ==<br />
* Поддержка модулей Raid, LVM, файловых систем вкупе с интерактивным интерфейсом позволяют выбрать что загружать откуда угодно ''' в процессе загрузки ''' (а не установки загрузчика).<br />
* Возможность multiboot (для загрузки, к примеру, XEN)<br />
* Поддержка EFI<br />
<br />
== Как установить GRUB? ==<br />
* apt-get install grub2<br />
* grub-install /dev/sda (заменить /dev/sda на то устройство, куда хочетяся установить GRUB)<br />
* grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Последний пункт выполняет генерацию конфига GRUB на основе шаблонов/скриптов в /etc/grub.d/. Редактировать полученный конфиг руками не рекомендуется т.к. он будет уничтожен следующей автогенерацией (выполняемой, к примеру, installkernel-ом).<br />
<br />
== Где отредактировать параметры ядра? ==<br />
*Параметры ядра содержатся в /etc/sysconfig/grub2<br />
*После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
* По многочисленным просьбам трудящихся в Сизиф был направлен grub2-1.98-alt22.20100804. http://lists.altlinux.org/pipermail/sisyphus/2011-January/351598.html<br />
<br />
В /etc/sysconfig/grub2 теперь поддерживаются следующие опции:<br />
<br />
GRUB_AUTOUPDATE_CFG=true/false<br />
обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)<br />
<br />
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg<br />
имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)<br />
<br />
GRUB_VMLINUZ_SYMLINKS=true/false/default<br />
добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz [по умолчанию])<br />
<br />
GRUB_VMLINUZ_FAILSAFE=true/false/default<br />
добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz [по умолчанию])<br />
<br />
== Как дописать свои собственные пункты меню? ==<br />
*Теоретически вам не должно хотеться этого делать. Расскажите (в рассылке sisyphus@, к примеру) зачем вам этого захотелось - возможно, придумается какой-то новый общий случай. <br />
*Если вам всё же хочется - допишите то, что считаете нужным в /etc/grub.d/40_custom<br />
**После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
== Как выбрать то, что будет загружаться автоматом? ==<br />
*Выберите нужный вам пункт 1 раз при загрузке. savedefault должен сохранять ваш выбор на будущее. <br />
*Не нравится такое поведение? Отключите GRUB_SAVEDEFAULT в /etc/sysconfig/grub2<br />
<br />
== Как загрузить Xen? ==<br />
Xen грузится с помощью multiboot:<br />
*проверить, что вы используете grub2 >= 1.98-alt11<br />
*apt-get install xen xen-libs xen-runtime xen-hypervisor<br />
*запустить grub-mkconfig -o /boot/grub/grub.cfg<br />
*выбрать соответствующий пункт при загрузке (savedefault запомнит выбор на будущее)<br />
<br />
== Как включить работу с последовательным портом? ==<br />
Примерно такими строчками в /etc/sysconfig/grub2:<br />
GRUB_TERMINAL='console serial'<br />
GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200'<br />
(см. [http://www.altlinux.org/SerialLogin#GRUB_.D0.B8_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B9_.D0.BF.D0.BE.D1.80.D1.82 также]). Не забываем про grub-mkconfig.<br />
<br />
== Где почитать ещё? ==<br />
* Викиучебник (debian-related документация) http://ru.wikibooks.org/wiki/Grub_2, с небольшими изменениями применимо и у нас.<br />
* http://people.apache.org/~skitching/MineOfInformation/linux/Booting_Linux_on_x86_with_Grub2.html (англ.)</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Grub&diff=17611Grub2011-01-20T09:47:35Z<p>SlavaDubrovskiy: /* Где отредактировать параметры ядра? */</p>
<hr />
<div>[[Категория:Admin]]<br />
<br />
== Что такое GRUB? ==<br />
Wikipedia сообщает "GNU GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки."<br />
[http://ru.wikipedia.org/wiki/Grub http://ru.wikipedia.org/wiki/Grub]<br />
<br />
== Зачем нужен GRUB если есть LILO? ==<br />
* Поддержка модулей Raid, LVM, файловых систем вкупе с интерактивным интерфейсом позволяют выбрать что загружать откуда угодно ''' в процессе загрузки ''' (а не установки загрузчика).<br />
* Возможность multiboot (для загрузки, к примеру, XEN)<br />
* Поддержка EFI<br />
<br />
== Как установить GRUB? ==<br />
* apt-get install grub2<br />
* grub-install /dev/sda (заменить /dev/sda на то устройство, куда хочетяся установить GRUB)<br />
* grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
Последний пункт выполняет генерацию конфига GRUB на основе шаблонов/скриптов в /etc/grub.d/. Редактировать полученный конфиг руками не рекомендуется т.к. он будет уничтожен следующей автогенерацией (выполняемой, к примеру, installkernel-ом).<br />
<br />
== Где отредактировать параметры ядра? ==<br />
*Параметры ядра содержатся в /etc/sysconfig/grub2<br />
*После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
* http://lists.altlinux.org/pipermail/sisyphus/2011-January/351598.html<br />
<br />
По многочисленным просьбам трудящихся в Сизиф был направлен grub2-1.98-alt22.20100804.<br />
В /etc/sysconfig/grub2 теперь поддерживаются следующие опции:<br />
<br />
GRUB_AUTOUPDATE_CFG=true/false<br />
обновлять ли конфиг файл из файлтриггера установки/удаления ядер (по умолчанию true)<br />
<br />
GRUB_AUTOUPDATE_CFGNAME=/boot/grub/grub.cfg<br />
имя автообновляемого конфигфайла. (по умолчанию /boot/grub/grub.cfg)<br />
<br />
GRUB_VMLINUZ_SYMLINKS=true/false/default<br />
добавлять ли симлинки в меню (добавлять, не добавлять, добавлять только /boot/vmlinuz [по умолчанию])<br />
<br />
GRUB_VMLINUZ_FAILSAFE=true/false/default<br />
добавлять ли failsafe-пункты (добавлять, не добавлять, добавлять только для /boot/vmlinuz [по умолчанию])<br />
<br />
== Как дописать свои собственные пункты меню? ==<br />
*Теоретически вам не должно хотеться этого делать. Расскажите (в рассылке sisyphus@, к примеру) зачем вам этого захотелось - возможно, придумается какой-то новый общий случай. <br />
*Если вам всё же хочется - допишите то, что считаете нужным в /etc/grub.d/40_custom<br />
**После редактирования этого файла нужно вызвать grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
== Как выбрать то, что будет загружаться автоматом? ==<br />
*Выберите нужный вам пункт 1 раз при загрузке. savedefault должен сохранять ваш выбор на будущее. <br />
*Не нравится такое поведение? Отключите GRUB_SAVEDEFAULT в /etc/sysconfig/grub2<br />
<br />
== Как загрузить Xen? ==<br />
Xen грузится с помощью multiboot:<br />
*проверить, что вы используете grub2 >= 1.98-alt11<br />
*apt-get install xen xen-libs xen-runtime xen-hypervisor<br />
*запустить grub-mkconfig -o /boot/grub/grub.cfg<br />
*выбрать соответствующий пункт при загрузке (savedefault запомнит выбор на будущее)<br />
<br />
== Как включить работу с последовательным портом? ==<br />
Примерно такими строчками в /etc/sysconfig/grub2:<br />
GRUB_TERMINAL='console serial'<br />
GRUB_SERIAL_COMMAND='serial --unit=0 --speed=115200'<br />
(см. [http://www.altlinux.org/SerialLogin#GRUB_.D0.B8_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5.D0.B4.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B9_.D0.BF.D0.BE.D1.80.D1.82 также]). Не забываем про grub-mkconfig.<br />
<br />
== Где почитать ещё? ==<br />
* Викиучебник (debian-related документация) http://ru.wikibooks.org/wiki/Grub_2, с небольшими изменениями применимо и у нас.<br />
* http://people.apache.org/~skitching/MineOfInformation/linux/Booting_Linux_on_x86_with_Grub2.html (англ.)</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Releases/Community&diff=15173Releases/Community2010-06-25T13:44:38Z<p>SlavaDubrovskiy: </p>
<hr />
<div>{{Stub}}<br />
<br />
Страница предназначена для хранения сведений о неофициальных сборках инсталлеров/дистрибутивов; см. тж. [[Mkimage/Profiles/releases|техническую информацию об их профилях]].<br />
<br />
== Server Light 5.0.x от rider ==<br />
* ftp://ftp.altlinux.ru/pub/people/rider/<br />
* http://lists.altlinux.org/pipermail/community/2009-October/657525.html<br />
* http://lists.altlinux.org/pipermail/community/2009-October/657535.html<br />
<br />
== Server installer 5.1 от dubrsl ==<br />
* ftp://ftp.altlinux.org/pub/people/dubrsl/altlinux-5.1-20100614-centaurus-x86_64-en-install-cd.iso<br />
Минимальный серверный инсталятор на базе бранча 5.1. Без альтератора и X.<br />
Ядро инсталятора - kernel-image-std-def-2.6.32-alt11 (с сизифа).<br />
Рабочее ядро - kernel-image-ovz-rhel-2.6.18-alt13.M51.8<br />
<br />
== Сборки от Mike ==<br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/<br />
<br />
== Сборки от NotHAM (console, gnome-lite, icewm-mini, xfce-mini) ==<br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/_anatoly/iso/<br />
<br />
== Desktop 5.x ==<br />
=== KDE3 (kde3.cd, kde3.dvd), mike@ ===<br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/5.0-kde3/<br />
<br />
=== KDE3 на базе branch 5.1 от Drool ===<br />
http://fly.osdn.org.ua/~drool/iso/<br />
<br />
== Live Lite 5.1 от enp ==<br />
* http://git.altlinux.org/people/enp/packages/mkimage-profile-live.git - бранч autoconf<br />
* http://enp.itx.ru/linux/alt/5.1/iso/<br />
* http://admdev.blogspot.com/search/label/altlinux-live<br />
<br />
== Server 4.0.x ==<br />
<br />
=== 4.0.2 от vvk ===<br />
{| class="standard"<br />
! <br />
!Примечание<br />
|-<br />
|git-commit, на основе которого выполнена сборка || http://git.altlinux.org/people/vvk/packages/mkimage-profile-server.git?p=mkimage-profile-server.git;a=commit;h=da0826f7b93d249e0cb8e17f223e50773df1688f<br />
|-<br />
|Репозиторий, из которого собраны образы<br />
|4.0/branch по состоянию на 05.05.2009<br />
|-<br />
|Download ||<br />
* ftp: ftp://altlinux.distance.ru/custom/iso/server-4.0.x/<br />
* rsync: rsync://altlinux.distance.ru/custom/iso/server-4.0.x/<br />
|-<br />
|Отличия от официальных сборок<br />
|<br />
* 05.05.2009<br />
** возвращено ядро std-smp в install2<br />
** в base добавлен rp-pppoe-client<br />
* Актуальная пакетная база 4.0/branch<br />
* Пакет acpid перенесён из disk в base [[altbug:11428]] и задействован при наличии поддержки ACPI (тогда в /etc/modules заносится button)<br />
* Изменения boyarsh@, сделанные перед его [http://lists.altlinux.org/pipermail/sisyphus/2008-March/213343.html тестовым выпуском 20080317] и после<br />
** новый интерфейс установки дополнительных пакетов<br />
** экспериментальный propagator с udev<br />
** Добавлен ahci.ko — без него невозможно было загрузиться с sata-cdrom<br />
** Некоторые другие фиксы (см. [http://git.altlinux.org/people/boyarsh/packages/mkimage-profile-server.git?p=mkimage-profile-server.git;a=log;h=a012c43902ba52a48219a76e73f1aa60cb00a8ec http://git.altlinux.org/people/boyarsh/packages/mkimage-profile-server.git?p=mkimage-profile-server.git;a=log;h=a012c43902ba52a48219a76e73f1aa60cb00a8ec])<br />
* Расширен список устанавливаемых в систему пакетов:<br />
** screen, bash-completion, mtr, tcpdump, smartmontools, nut<br />
* Расширен список пакетов в rescue:<br />
** anyfs-tools, mtr<br />
* Расширен список пакетов, присутствующих во второй стадии инсталлятора<br />
** sfdisk, mdadm, less<br />
|-<br />
|Известные проблемы<br />
|<br />
* Инсталлер вылетает при установке с ftp: [[altbug:16258]] (баг требует перепроверки)<br />
* Обращается к ошибочной директории при установке с ftp: [[altbug:16236]] (баг требует перепроверки)<br />
|}<br />
Нужно добавить на диск пакет rp-pppoe-base.<br />
<br />
=== 4.0.1+ от mike ===<br />
'''UPDATE:''' [http://ftp.linux.kiev.ua/pub/Linux/ALT/beta/server/20080821-mike/ 20080821]<br />
<br />
Загрузить инсталяционные образы i586/x86_64 сборки 20080602 возможно с [http://ftp.linux.kiev.ua/pub/Linux/ALT/beta/server/20080602-mike/ ftp.linux.kiev.ua].<br />
<br />
Собраны из коммита [http://git.altlinux.org/people/mike/packages/?p=mkimage-profile-server.git;a=commit;h=8116b8127dc219ef51e009329633075af0defcd4 8116b8127dc219ef51e009329633075af0defcd4] в профиль [http://git.altlinux.org/people/mike/packages/mkimage-profile-server.git mkimage-profile-server] на пакетной базе 4.0/branch по состоянию на 20.08.2008.<br />
<br />
Ядро:<br />
* kernel-image-ovz-smp-2.6.18-alt23.M40.3<br />
* kernel-image-std-smp-2.6.18-alt12.M40.3<br />
<br />
Изменения:<br />
* убран пакет <tt>postgrey-dogwatch</tt>, уже отсутствовавший в M40 на момент сборки<br />
* пакет <tt>acpid</tt> перенесён из <tt>disk</tt> в <tt>base</tt> ([[altbug:11428]]) и задействован при наличии поддержки ACPI (тогда в <tt>/etc/modules</tt> заносится <tt>button</tt>)<br />
* по умолчанию осуществляется привязка <tt>ethX</tt> по MAC-адресам во избежание "прыгания"<br />
<br />
<br />
=== 4.0.1+ от misha ===<br />
<br />
Фактически, является повторением вышеописанной сборки от mike@, но включает более актуальную пакетную базу.<br />
<br />
Пакетная база: 4.0/branch по состоянию на 12.11.2009.<br />
<br />
Ядро:<br />
* kernel-image-ovz-smp-2.6.18-alt26.M40.2<br />
* kernel-image-std-smp-2.6.18-alt12.M40.3<br />
<br />
ISO образ инсталляционного CD (i586):<br />
<br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/misha/altlinux-4.0-server-i586-20091114.iso<br />
<br />
MD5SUM: 4739fe1f5f189a3f0e33125df4f62a4a<br />
<br />
См. тж. [http://blinohod.livejournal.com/tag/altlinux другие сборки].<br />
<br />
=== 4.0.1+ от enp ===<br />
{| class="standard"<br />
! <br />
!Примечание<br />
|-<br />
|git-commit, на основе которого выполнена сборка<br />
|http://git.altlinux.org/people/enp/packages/mkimage-profile-server.git?p=mkimage-profile-server.git;a=commit;h=7e4d20c8fbbd2b5f50d9626a24c98477f2fdc224<br />
|-<br />
|Репозиторий, из которого собраны образы<br />
|4.0/branch<br />
|-<br />
|Download http<br />
|<br />
* i586 http://enp.itx.ru/linux/alt/4.0/iso/altlinux-server-lite-i586-current.iso<br />
* x86_64 http://enp.itx.ru/linux/alt/4.0/iso/altlinux-server-lite-x86_64-current.iso<br />
|-<br />
|Отличия от официальных сборок<br />
|<br />
* Актуальная пакетная база 4.0/branch<br />
* Экспериментальный propagator с udev<br />
* Шаг выбора дополнительного ПО из инсталлера исключен, дополнительное ПО предлагается устанавливать с помощью apt уже после установки<br />
* В свежеустановленной системе:<br />
** отсутствуют alterator и ovz<br />
** потушен portmap<br />
** поднят acpid<br />
** загружен модуль button для корректного выключения системы кнопкой power<br />
* Подробности на http://admdev.blogspot.com/search/label/altlinux<br />
|-<br />
|Известные проблемы<br />
|<br />
|}<br />
<br />
== Desktop 4.0.x ==<br />
<br />
=== 4.0.3+ от mike ===<br />
[http://ftp.linux.kiev.ua/pub/Linux/ALT/beta/desktop/x86_64/ http://ftp.linux.kiev.ua/pub/Linux/ALT/beta/desktop/x86_64/]<br />
''нужен линк на точный коммит и аннотация''<br />
<br />
[ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/ installer-4.0-20080604-i586.iso] -- по [http://git.altlinux.org/people/mike/packages/?p=mkimage-profiles-desktop.git;a=shortlog;h=refs/heads/4.0.4 m-p-d::mike/4.0.4]<br />
<br />
== Desktop 4.1.x ==<br />
<br />
=== 4.1.1+ от enp ===<br />
http://enp.itx.ru/linux/alt/4.1/iso/<br />
<br />
Подробнее здесь — http://admdev.blogspot.com/2009/02/alt-linux-41-desktop-lite.html, собрано по [http://git.altlinux.org/people/enp/packages/mkimage-profiles-desktop.git?p=mkimage-profiles-desktop.git;a=commit;h=9e17758a1f816d7a9bd21d1051d6bb7bf2ebce7d git.altlinux.org/people/enp/…]<br />
<br />
=== 4.1.1+ (minimal.cd), mike@ ===<br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/4.1/altlinux-4.1-20090412-minimal-i586-ru-cd.iso<br><br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/4.1/altlinux-4.1-20090412-minimal-x86_64-ru-cd.iso<br><br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/4.1/altlinux-4.1-20090412-desktop-i586-ru-rescue.iso<br><br />
ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/4.1/altlinux-4.1-20090412-desktop-x86_64-ru-rescue.iso<br><br />
(также http<i></i>://)<br />
<br />
=== TODO/отзывы ===<br />
* http://forum.altlinux.org/index.php/topic,161.msg4395.html#msg4395<br />
<br />
== Terminal ==<br />
[[LTSP|Терминальный сервер на базе LTSP]] с пониженными требованиями к ресурсам тонкого клиента. Релиз-менеджер -- mike@.<br />
<br />
Существуют официальные релизы [ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/4.0/Terminal/current/iso/ ALT Linux 4.0 Terminal] и [http://linux.armd.ru/ru/distros/#04 Линукс Терминал] (собраны на 4.0/branch и 4.0/school/branch соответственно).<br />
<br />
Сборки на [[Branches/5.1|5.1/branch]]: [ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/terminal/ChangeLog ChangeLog];<br />
[ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/terminal/altlinux-5.0-20091210-kde3-terminal-i586-ru-install-cd.iso kde3], <br />
[ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/terminal/altlinux-5.0-20091210-kde4-terminal-i586-ru-install-cd.iso kde4], <br />
[ftp://ftp.linux.kiev.ua/pub/Linux/ALT/people/mike/iso/terminal/altlinux-5.0-20091210-gnome-terminal-i586-ru-install-cd.iso gnome] ISO;<br />
[[Mkimage/Profiles/releases#terminal-20091210_.28mike.40.29|профиль]], [[LTSP/Memory|потребление памяти]]<br />
<br />
== Nanolive ==<br />
Nanolive -- минимальный LiveCD. Не является самостоятельным проектом, это скорее база для создания решений. К примеру, создания демонстрации системных проектов.<br />
<br />
[http://git.altlinux.org/people/kas/packages/mkimage-profile-nanolive.git Git-репозиторий профиля]<br />
<br />
== Потенциальный Community Distro ==<br />
<br />
; Цель<br />
: Сделать Sisyphus и бранчи более привлекательными для не хардкорных/«домашних» мейнтейнеров.<br />
; Средства<br />
: Универсальный дистрибутив на базе бранча с прозрачным процессом разработки.<br />
; Кандидат?<br />
: [http://slinux.ru Simply Linux] ([[Mkimage/Profiles#dkoryavov.40|профиль]])<br />
<br />
Любой дистрибутив на базе бранча обладает следующими отличительными особенностями:<br />
<br />
* Пользовательские особенности:<br />
** Локализация и русскоязычное сообщество<br />
** Скорость и потребление памяти (спасибо as-needed)<br />
** Наличие специализированных дистрибутивов той же линейки<br />
* Мейнтейнерские особенности:<br />
** Сизифный инструментарий<br />
<br />
{{Category navigation|title=Releases|category=Releases|sortkey={{SUBPAGENAME}}}}</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenVZ/Sharedhosting&diff=12486OpenVZ/Sharedhosting2009-10-17T08:23:42Z<p>SlavaDubrovskiy: /* Ссылки */</p>
<hr />
<div>[[Категория:Admin]]<br />
{{MovedFromFreesourceInfo|AltLinux/Dokumentacija/OpenVZ/Sharedhosting}}<br />
<br />
''ALT-адаптированная выжимка из http://wiki.openvz.org/Shared_webhosting''<br />
<br />
== Создание/конфигурирование контейнеров ==<br />
Сначала создаем нужное количество vz-контейнеров:<br />
<pre># vzctl create 101 --ostemplate altlinux-3.0 --config vps.basic -- # тут будет жить nginx<br />
# vzctl create 102 --ostemplate altlinux-3.0 --config vps.basic -- # а тут - MySQL<br />
# vzctl create 103 --ostemplate altlinux-3.0 --config vps.basic -- # это первый из контейнеров с апачем<br />
...<br />
# vzctl create 111 --ostemplate altlinux-3.0 --config vps.basic -- # а это пусть будет последний</pre><br />
<br />
И назначаем IP:<br />
<pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl set $i --ipaddr 172.16.1.$i --save; done</pre><br />
<br />
Ставим в каждый контейнер openssh-server:<br />
<pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install openssh-server; done</pre><br />
<br />
Ставим в контейнеры по вкусу/потребностям mod_php, mod_perl, mod_fastcgi и остальное..<br />
<br />
== Настройка порт-форвардинга ==<br />
На хост-системе правим /etc/sysconfig/iptables — добавляем:<br />
<pre>*nat<br />
-A PREROUTING -p tcp --dport 10122 -j DNAT --to-destination 172.16.1.101:22<br />
-A PREROUTING -p tcp --dport 10222 -j DNAT --to-destination 172.16.1.102:22<br />
...<br />
-A PREROUTING -p tcp --dport 11122 -j DNAT --to-destination 172.16.1.111:22</pre><br />
<br />
== Установка MySQL ==<br />
<br />
Ставим MySQL и вешаем его на порт 3306:<br />
<br />
<pre># vzctl exec 102 apt-get install MySQL-server<br />
# vzctl enter 102</pre><br />
<br />
и раскоментируем в /var/lib/mysql/my.cnf строчку skip-networking<br />
<br />
== Настройка nginx ==<br />
<br />
В хост-системе в /etc/sysconfig/iptables добавляем:<br />
<pre>-A PREROUTING -p tcp -d REAL_IP --dport 80 -j DNAT --to-destination 172.16.1.101:80</pre><br />
Потом:<br />
<pre># vzctl enter 101<br />
# joe /etc/nginx/nginx.conf<br />
...<br />
server {<br />
listen REAL_IP;<br />
server_name domain1.ru www.domain1.ru;<br />
location / {<br />
proxy_pass http://172.16.1.103;<br />
}<br />
}<br />
server {<br />
listen REAL_IP;<br />
server_name domain2.ru www.domain2.ru;<br />
location / {<br />
proxy_pass http://172.16.1.104;<br />
}<br />
}<br />
server {<br />
listen ANOTHER_REAL_IP;<br />
server_name domain3.ru www.domain3.ru;<br />
location / {<br />
proxy_pass http://172.16.1.103;<br />
}<br />
}<br />
...</pre><br />
<br />
== Настройка apache и ftp ==<br />
<br />
Далее в каждом контейнере с 103-его по 111-й настраиваются Apache и вуаля — все работает!<br />
<br />
== Настройка ftp ==<br />
<br />
Теперь остается по аналогии поставить и настроить ftp-доступ.<br />
<br />
В контейнеры ставим ftp-сервер:<br />
<pre># for i in $(vzlist –o veid -H -a); do echo "VPS $i"; vzctl exec $i apt-get install proftpd; done</pre><br />
На хост-системе добавляем:<br />
<pre>*nat<br />
-A PREROUTING -p tcp --dport 10121 -j DNAT --to-destination 172.16.1.101:21<br />
-A PREROUTING -p tcp --dport 10221 -j DNAT --to-destination 172.16.1.102:21<br />
...<br />
-A PREROUTING -p tcp --dport 11121 -j DNAT --to-destination 172.16.1.111:21</pre><br />
<br />
== TODO ==<br />
TODO: дописать про почту (и централизованное логохранилище?)<br />
<br />
== Ссылки ==<br />
* [[OpenVZ]]<br />
* [http://freesource.info/wiki//AntiApache Про nginx в частности]<br />
* [http://ospf-ripe.livejournal.com/754.html Зачем нужен nginx] by Anton V. Yuzhaninov<br />
* [http://dklab.ru/chicken/nablas/56.html Подводные камни при использовании кэширования в nginx]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=HCL/%D0%9D%D0%B5%D1%82%D0%B1%D1%83%D0%BA%D0%B8&diff=10562HCL/Нетбуки2009-04-08T14:02:17Z<p>SlavaDubrovskiy: </p>
<hr />
<div>''Здесь предлагается создать сводную таблицу результатов установки ALT Linux на нетбуки (netbooks), т.е. очень портативные компьютеры. ''<br />
<br />
Формат следующий: <br />
<br />
* '''Производитель, модель'''<br />
* примерная цена в рублях<br />
* комплектация<br />
<br />
Дальше по каждому релизу, который когда-либо ставился: <br />
<br />
* '''релиз'''<br />
* ссылки на форум, в рассылку, в багзиллу<br />
* общие впечатления<br />
* возникшие проблемы<br />
* список оборудования, которое не заработало сразу, в формате: <br />
** железка<br />
** проблема (не распознаётся, работает нестабильно, есть лишь часть <br />
заявленной функциональности и т.п.)<br />
** способ решения (гугл, форум, письмо в рассылке, новое ядро, ничего не помогло и т.д. )<br />
<br />
Например. (Я взял первое попавшееся письмо из рассылки)<br />
<br />
== ACER Aspire one 110 == <br />
Цена 400$, 8404 руб<br />
* экран 8.9" (1024x600), <br />
* CPU Intel Atom 1.6G, <br />
* HDD 8G (SSD).<br />
<br />
Исходно на нём стоял Linpus(Fedora 8, linux2.6.23) на котором всё <br />
работало (Card reader, Web camera, Wifi, Suspend RAM HDD)<br />
<br />
=== Branch 4.1 ===<br />
http://lists.altlinux.org/pipermail/desktop/2008-September/014045.html <br />
Roman Savochenko, 09/05/08<br />
<br />
Сразу бросилась в глаза очень медленная скорость установки. Базовая <br />
система (desktop-CD) ставилась два часа.<br />
Установка времени в инсталяторе не применилась в системе.<br />
После установки система работает с замираниями, в момент обращения к <br />
диску (до 20сек). Хотя hdparm -tT показывает скорость 32Мб/c.<br />
Замирания так-же сильно заметны при обновлении до бренча 4.1.<br />
* Кард-ридеры не заработали.<br />
* WiFi вроде обнаружилось, но наверное без FirmWare не заработало.<br />
* Suspend никакой не работает.<br />
* Видеоконтроллер intel. Шрифт после установки визуально большой. xdpyinfo <br />
вроде правильно показывает: 1024x600 pixels (195x113 millimetrs) 133x135 <br />
dots per inch.<br />
В KDE шрифт уменьшил до 8. А вот проги на GTK остались с большим <br />
шрифтом. Однажды подобное замечал на стационарной системе с картой от Intel.<br />
<br />
В общем, нельзя сказать, что впечатления приятны.<br />
<br />
Решение проблем:<br />
* для решения проблемы замирания необходимо:<br />
* добавить опции монтирования корневой ФС: noatime,nodiratime;<br />
* отключить syslog;<br />
* удалить osec;<br />
* для нормальной работы кардридера нужно ядро 2.6.27 и скрипт включения правого кардридера из оригинальной установки jmb38x_d3e.sh<br />
* Wlan-карта уже нормально работает начиная с ядра 2.6.25 и драйвера madwifi-dfs. На 2.6.27 уже работает и драйвер ath5k из самого ядра.<br />
* Suspend нормально работает после установки pm-utils<br />
* Для устранения проблемы с видео достаточно установить dpi в 96 в файле /etc/sysconfig/xserver<br />
<br />
=== Branch 5.0 ===<br />
Всё работает нормально.<br />
<br />
== Lenovo S9/S10 == <br />
Цена >= 12000 руб<br />
* экран s9 - 8.9" (1024x600)/ s10 - 10.1" (1024x600) /присутствуют также модели с экраном 1024х560, в сети были обзоры/ <br />
* CPU Intel Atom 1.6G <br />
* HDD 80G (sata hda)<br />
* wifi bmc4310 usb<br />
* 3 cell battery<br />
<br />
<br />
Предустановленная ОС Windows XP home. (скрытый раздел для oem-установки восстановления этой ОС и все остальное для поделено пополам: логический диск с системой и логический диск для остального)<br />
<br />
=== Branch 4.1 ===<br />
Предварительно я подготовил партиции для себя любимого.<br />
<br />
Установил с флешки (образ 4.1.1) без всяких сложностей. Вся установки заняла не более стандартного времени, т.е. минут 20-40.<br />
после установки мой репозитарий был установлен в бранч 4.1<br />
и установил ядро с http://www.unsafe.ru/lakostis/RPMS/ALTLinux/kernel-2.6.28/repo/i586/RPMS.hasher/<br />
<br />
Из оборудования не заработал Wi-Fi. На текущий момент все также не очень хорошо, ибо unsupported согласно http://wireless.kernel.org/en/users/Drivers/b43#unsupported<br />
мое решение - у меня оказался валяющийся intel 3945ABG, который перекочевал на место bmc4310usb<br />
<br />
* Кард-ридеры заработали.<br />
* Видеокамера работает<br />
* Suspend-to-ram работает.<br />
* Видеоконтроллер intel. <br />
Шрифт после установки визуально большой. xdpyinfo <br />
вроде правильно показывает: 1024x600 pixels (270x158 millimetrs) <br />
но 133x135 dots per inch.<br />
после указания option ddc no в конфиге иксов (секция для драйвера intel)<br />
стало выставлять dpi более приближено по другому - 96х96<br />
<br />
<br />
=== Branch 5.0 ===<br />
Еще не пробовал.<br />
<br />
== MSI Wind U-100 == <br />
http://www.microstar.ru/program/products/notebook/nb/pro_nb_detail.php?UID=684<br />
<br />
=== Sisyphus ===<br />
Все работает :)<br />
<br />
[[Категория:Hardware]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9_%D1%8F%D0%B4%D1%80%D0%B0&diff=10525Сборка модулей ядра2009-04-06T19:54:46Z<p>SlavaDubrovskiy: /* Сборка */</p>
<hr />
<div>'''Сборка модулей ядра'''<br />
<br />
Ядро Linux содержит в себе множество кода, поддерживающего ту или иную возможность или оборудование. Основная часть этого кода (обычно это код поддержки процессоров, памяти и других базовых вещей) вкомпилирована в ядро и загружается с ним, а части кода, необходимые только части пользователей — драйверы устройств, поддержка файловых систем, и т. д. — собраны в виде модулей. Модули могут подключаться к ядру по команде пользователя (<tt>modprobe</tt>, <tt>insmod</tt>) или автоматически при помощи udev, а также быть выгружены либо самим ядром, либо командой <tt>rmmod</tt>.<br />
<br />
Большинство модулей находится в пакете ядра, однако иногда по техническим, административным или юридическим причинам некоторые модули выносятся в отдельные пакеты, и, соответственно, собираются отдельно.<br />
<br />
== О модулях и названиях ==<br />
Поскольку в репозитории может быть множество ядер, модули собираются особым способом: имеется пакет с исходными кодами модуля, и пакеты с модулями, собранным для конкретного ядра. При этом SRPM второго содержит только .spec и патчи, а исходные коды получает по сборочным зависимостям.<br />
Таким образом, для модуля ''module'' и варианта ядра ''flavour'' у нас имеются пакеты с именами<br />
* <tt>kernel-source-''module''</tt> — содержит только исходники<br />
* <tt>kernel-modules-''module''-''flavour''</tt> — модуль ''module'', собранный для ядра ''flavour'' (например, <tt>kernel-modules-nvidia-std-def</tt>)<br />
<br />
Поле release пакетов с модулями заполняется так: <tt>alt<module release>.<kernel version>.<kernel release></tt>, где<br />
* module release — релиз собственно модуля, то есть если мы обновили именно модуль, то это поле изменяется<br />
* kernel version — версия ядра в формате 65535 * major version + 256 * mid version + minor version, то есть 2.6.25 = 132633. Не пугайтесь, это число рассчитывает скрипт, описанный позже.<br />
* kernel release — номер релиза пакета с ядром.<br />
<br />
К примеру, модуль с nvidia для ядра <tt>kernel-image-std-def-2.6.25-alt8</tt> будет называться <tt>kernel-modules-nvidia-std-def-173.14.12-alt1.132633.8</tt>.<br />
<br />
== Как собрать модуль локально ==<br />
Данная фаза нужна в первую очередь для тестирования модуля, и, в общем-то, необязательна, но полезна для понимания процесса.<br />
<br />
=== Что нам нужно ===<br />
Кроме gcc, make и прочих стандартных сборочных вещей нам нужно <tt>kernel-headers-modules-<flavour></tt> (и всё что от него зависит). Этот пакет содержит ту часть исходных кодов, заголовочных файлов, make-файлов и скриптов, которые необходимы для сборки модулей для данного ядра.<br />
<br />
=== Сборка ===<br />
Скачав и распаковав исходники модуля, мы обнаружим что просто {{cmd|make}} обычно не работает. Эта проблема специфична для Sisyphus/ALT Linux и состоит в том, что для сборки модуля необходимы заголовки ядра, которые ищутся в каталоге {{path|/lib/modules/<currnet kernel version>/build}}, но не могут быть найдены там, потому что в ALT Linux и Sisyphus доступ пользователям в {{path|/lib/modules/}} запрещён.<br />
<br />
Для того, чтобы обойти эту проблему, нужно переопределить переменную (обычно {{term|KERNELSOURCE}} или {{term|KSRC}}) в {{path|Makefile}}. Далее запускаем сборку, например {{cmd|make KSRC{{=}}/usr/src/linux-2.6.25-std-def}}. Обычно модуль после этого собирается.<br />
<br />
Собранный модуль можно попробовать загрузить с помощью {{cmd|insmod}}, или положить его к другим модулям ядра в {{path|/lib/modules/<kernelversion>}} и загрузить {{cmd|modprobe}}. Если модуль загрузился и работает, то можно переходить к следующей части.<br />
<br />
== Как собрать модуль правильно ==<br />
Почему предыдущий способ неправилен? Потому что недистрибутивен. Для нормальной сборки нам нужны:<br />
* знание [[git]] (крайне желательно хотя бы начальное знание!)<br />
* умение пользоваться [[gear]] и [[hasher]]<br />
* настроенный hasher<br />
* доступ на [[git.alt]] (для публикации результатов)<br />
* достаточно терпения<br />
<br />
=== Сборка kernel-source-module ===<br />
Для начала нам стоит собрать пакет с исходниками модуля. Этот пакет прост, и фактически содержит в себе только упакованные исходники, а его сборка состоит только в запаковке. Для примера лучше взять что нибудь несложное и готовое, например, сделать так:<br />
<code><br />
git clone git://git.altlinux.org/people/silicium/packages/kernel-source-heci.git<br />
mkdir kernel-source-''module''<br />
cd kernel-source-''module''<br />
git init-db<br />
распаковать исходники<br />
git add .<br />
git commit -a -m "version" (ну или вариации)<br />
git branch -m upstream (чтобы потом докладывать)<br />
git checkout -b master<br />
cp ../kernel-source-heci/.gear* .<br />
cp ../kernel-source-heci/*.spec<br />
mv kernel-source-heci.spec kernel-source-''module''.spec<br />
</code><br />
Редактируем по образу и подобию <tt>kernel-source-''module''.spec</tt> — обычно там надо заменить имя модуля, версию, описание и changelog, а сам процесс сборки обычно можно не трогать.<br />
<code><br />
git add .gear *.spec<br />
git commit -a<br />
</code><br />
Далее собираем пакет при помощи [[gear]]. В результате в пакете должен оказаться всего один файл, а именно <tt>/usr/src/kernel/sources/kernel-source-''module''.tar.bz2</tt><br />
<br />
Обратите внимание на то, что некоторые пакеты с исходниками в своём '''имени''' содержат '''версию''', например, <tt>kernel-source-heci-5.0.0.31-5.0.0.31-alt1</tt>. Это сделано для того, чтобы можно было иметь возможность собирать разные версии ядер с разными версиями модулей (например, новые модули не собираются с 2.6.18).<br />
<br />
=== Сборка самого модуля ===<br />
<br />
==== Про шаблоны ====<br />
Поскольку править спеки каждого пакета с модулями для каждой версии ядра несколько глупо, была разработана схема, при которой для каждого модуля создается шаблон, а специально обученный скрипт подгоняет этот шаблон к конкретному ядру (в том числе вычисляет релиз модуля) и собирает пакет с модулем. Сами шаблоны хранятся в git-репозитории, в котором есть множество веток, ветки с шаблонами называются <tt>template/<module>/<distro></tt>, где ''module'' — это собственно название модуля (например, <tt>nvidia</tt>) а distro — это то, подо что мы собираем. Обычно это <tt>sisyphus</tt>, но, поскольку для разных бранчей шаблоны приходиться менять, можно установить поле distro в соответствующее значение. Обычно используется <tt>alt-linux-4.0</tt> для [[branch/4.0]] и <tt>alt-linux-4.1</tt> для [[branch/4.1]].<br />
<br />
==== Подготовка шаблона ====<br />
Для начала нам нужны утилиты для сборки модулей, взять которые пока можно только из гита, например отсюда:<br />
<code><br />
git clone git://git.altlinux.org/people/silicium/packages/kernel-build-scripts.git<br />
</code><br />
Теперь нам нужна копия репозитория с модулями. Для того чтобы скрипты нашли модули, директория, содержащая копию, должна назваться <tt>modules</tt> и содержаться в директории <tt>kernel-build-scripts</tt>:<br />
<code><br />
cd kernel-build-scripts &&<br />
git clone git://git.altlinux.org/people/silicium/packages/kernel-modules.git modules<br />
</code><br />
После этого нам нужно создать новую ветку в репозитории с модулями:<br />
<code><br />
cd modules<br />
git checkout -b template/''module''/sisyphus origin/template/heci/sisyphus<br />
rm -f SOURCES/*<br />
mv kernel-modules-heci.spec kernel-modules-''module''.spec<br />
</code><br />
Теперь редактируем спек, меняем: имя, версию, описания, чейнджлог, возможно надо будет поправить опции для сборки. И коммитим.<br />
<code><br />
git add *.spec<br />
git commit -a<br />
</code><br />
<br />
==== Сборка ====<br />
Теперь в директории <tt>kernel-build-scripts</tt> запустим скрипт для сборки модулей<br />
<code><br />
./buildmodules --hasher --hsh-workdir=/home/silicium/hasher -k std-def '''module'''<br />
</code><br />
'''Hint''' -k ''flavour'' можно делать несколько раз <br /><br />
'''Hint''' Сборка модулей на x86_64 под i586 может выглядеть так<br />
<code><br />
./buildmodules --hasher --hsh-workdir=/home/silicium/hasher --hsh-options='--apt-conf /home/silicium/i586/apt.conf' --target i586 -k ....<br />
</code><br />
<br />
Логи сборки складываются в <tt>out/logs/kernel-modules-''module''-''flavour''.log</tt>.<br />
<br />
Если сборка не удалась и нужно что-то поменять, то после этого можно сделать<br />
<code><br />
git commit -a --amend<br />
</code><br />
и попробовать ещё раз, до тех пор, пока модуль не соберется.<br />
<br />
Подробнее про опции скриптов buildkernel и buildmodules можно прочитать в файле [http://git.altlinux.org/people/silicium/packages/kernel-build-scripts.git?p=kernel-build-scripts.git;a=blob;f=README.koi8;hb=HEAD README.koi8] из репозитория <tt>kernel-build-scripts</tt>.<br />
<br />
== Как выложить модуль в репозиторий ==<br />
Для начала необходимо у себя в git создать репозиторий и залить <tt>kernel-source-''module''</tt>:<br />
<code><br />
ssh git.alt init-db kernel-source-''module''<br />
cd kernel-source-''module''<br />
git remote add public git.alt:packages/kernel-source-''module''.git<br />
git push --all public<br />
</code><br />
Потом - выложить <tt>kernel-modules</tt><br />
<code><br />
ssh git.alt clone /people/silicium/packages/kernel-modules<br />
cd kernel-build-scripts/modules<br />
git remote add public git.alt:packages/kernel-modules.git<br />
git push --all public<br />
</code><br />
<br />
Осталось собрать пакеты через [[git.alt]].<br />
<br />
'''Важное замечание:''' для того чтобы сборка прошла правильно, kernel-source-''module'' должен быть собран до сборки kernel-modules-''module''.<br />
<br />
== Рекомендации по взаимодействию с мейнтейнерами ядер ==<br />
Для нормальной совместной работы рекомендуется:<br />
* Оповестить мейнтейнеров ядер (в списке рассылки [https://lists.altlinux.org/mailman/listinfo/devel-kernel devel-kernel]), о том что есть ваш модуль,<br />
* При обновлении модуля обновлять сборки под максимальное количество ядер,<br />
* Настроить git remote на kernel-modules других мейнтейнеров,<br />
* В спеках <tt>kernel-modules-</tt> поле Packager установить в Kernel Maintainers team.<br />
<br />
== Про symvers и модули зависящие от других модулей ==<br />
Иногда бывает, что пакет с модулями, должен собираться под другой пакет с модулями. Так например просиходит с gspca и v4l. Для нормальной сборки нам нужно 2 вещи: во-первых, проставить правильно зависимости на headers (у v4l есть свои хедеры), во-вторых, нужно импортировать файл с symvers. В gscpca проблема решилась добавлением следующей строчки в %prep фазу пакета с модулем gspca:<br />
<code><br />
cat /usr/src/linux-%kversion-%flavour-%krelease/kernel-modules-v4l.symvers > Module.symvers<br />
</code><br />
<br />
<br />
{{Category navigation|title=Kernel|category=Kernel|sortkey={{SUBPAGENAME}}}}<br />
<br />
[[Категория:Packaging]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D0%B5%D0%B9_%D1%8F%D0%B4%D1%80%D0%B0&diff=10524Сборка модулей ядра2009-04-06T18:50:54Z<p>SlavaDubrovskiy: /* Сборка */</p>
<hr />
<div>'''Сборка модулей ядра'''<br />
<br />
Ядро Linux содержит в себе множество кода, поддерживающего ту или иную возможность или оборудование. Основная часть этого кода (обычно это код поддержки процессоров, памяти и других базовых вещей) вкомпилирована в ядро и загружается с ним, а части кода, необходимые только части пользователей — драйверы устройств, поддержка файловых систем, и т. д. — собраны в виде модулей. Модули могут подключаться к ядру по команде пользователя (<tt>modprobe</tt>, <tt>insmod</tt>) или автоматически при помощи udev, а также быть выгружены либо самим ядром, либо командой <tt>rmmod</tt>.<br />
<br />
Большинство модулей находится в пакете ядра, однако иногда по техническим, административным или юридическим причинам некоторые модули выносятся в отдельные пакеты, и, соответственно, собираются отдельно.<br />
<br />
== О модулях и названиях ==<br />
Поскольку в репозитории может быть множество ядер, модули собираются особым способом: имеется пакет с исходными кодами модуля, и пакеты с модулями, собранным для конкретного ядра. При этом SRPM второго содержит только .spec и патчи, а исходные коды получает по сборочным зависимостям.<br />
Таким образом, для модуля ''module'' и варианта ядра ''flavour'' у нас имеются пакеты с именами<br />
* <tt>kernel-source-''module''</tt> — содержит только исходники<br />
* <tt>kernel-modules-''module''-''flavour''</tt> — модуль ''module'', собранный для ядра ''flavour'' (например, <tt>kernel-modules-nvidia-std-def</tt>)<br />
<br />
Поле release пакетов с модулями заполняется так: <tt>alt<module release>.<kernel version>.<kernel release></tt>, где<br />
* module release — релиз собственно модуля, то есть если мы обновили именно модуль, то это поле изменяется<br />
* kernel version — версия ядра в формате 65535 * major version + 256 * mid version + minor version, то есть 2.6.25 = 132633. Не пугайтесь, это число рассчитывает скрипт, описанный позже.<br />
* kernel release — номер релиза пакета с ядром.<br />
<br />
К примеру, модуль с nvidia для ядра <tt>kernel-image-std-def-2.6.25-alt8</tt> будет называться <tt>kernel-modules-nvidia-std-def-173.14.12-alt1.132633.8</tt>.<br />
<br />
== Как собрать модуль локально ==<br />
Данная фаза нужна в первую очередь для тестирования модуля, и, в общем-то, необязательна, но полезна для понимания процесса.<br />
<br />
=== Что нам нужно ===<br />
Кроме gcc, make и прочих стандартных сборочных вещей нам нужно <tt>kernel-headers-modules-<flavour></tt> (и всё что от него зависит). Этот пакет содержит ту часть исходных кодов, заголовочных файлов, make-файлов и скриптов, которые необходимы для сборки модулей для данного ядра.<br />
<br />
=== Сборка ===<br />
Скачав и распаковав исходники модуля, мы обнаружим что просто {{cmd|make}} обычно не работает. Эта проблема специфична для Sisyphus/ALT Linux и состоит в том, что для сборки модуля необходимы заголовки ядра, которые ищутся в каталоге {{path|/lib/modules/<currnet kernel version>/build}}, но не могут быть найдены там, потому что в ALT Linux и Sisyphus доступ пользователям в {{path|/lib/modules/}} запрещён.<br />
<br />
Для того, чтобы обойти эту проблему, нужно переопределить переменную (обычно {{term|KERNELSOURCE}} или {{term|KSRC}}) в {{path|Makefile}}. Далее запускаем сборку, например {{cmd|make KSRC{{=}}/usr/src/linux-2.6.25-std-def}}. Обычно модуль после этого собирается.<br />
<br />
Собранный модуль можно попробовать загрузить с помощью {{cmd|insmod}}, или положить его к другим модулям ядра в {{path|/lib/modules/<kernelversion>}} и загрузить {{cmd|modprobe}}. Если модуль загрузился и работает, то можно переходить к следующей части.<br />
<br />
== Как собрать модуль правильно ==<br />
Почему предыдущий способ неправилен? Потому что недистрибутивен. Для нормальной сборки нам нужны:<br />
* знание [[git]] (крайне желательно хотя бы начальное знание!)<br />
* умение пользоваться [[gear]] и [[hasher]]<br />
* настроенный hasher<br />
* доступ на [[git.alt]] (для публикации результатов)<br />
* достаточно терпения<br />
<br />
=== Сборка kernel-source-module ===<br />
Для начала нам стоит собрать пакет с исходниками модуля. Этот пакет прост, и фактически содержит в себе только упакованные исходники, а его сборка состоит только в запаковке. Для примера лучше взять что нибудь несложное и готовое, например, сделать так:<br />
<code><br />
git clone git://git.altlinux.org/people/silicium/packages/kernel-source-heci.git<br />
mkdir kernel-source-''module''<br />
cd kernel-source-''module''<br />
git init-db<br />
распаковать исходники<br />
git add .<br />
git commit -a -m "version" (ну или вариации)<br />
git branch -m upstream (чтобы потом докладывать)<br />
git checkout -b master<br />
cp ../kernel-source-heci/.gear* .<br />
cp ../kernel-source-heci/*.spec<br />
mv kernel-source-heci.spec kernel-source-''module''.spec<br />
</code><br />
Редактируем по образу и подобию <tt>kernel-source-''module''.spec</tt> — обычно там надо заменить имя модуля, версию, описание и changelog, а сам процесс сборки обычно можно не трогать.<br />
<code><br />
git add .gear *.spec<br />
git commit -a<br />
</code><br />
Далее собираем пакет при помощи [[gear]]. В результате в пакете должен оказаться всего один файл, а именно <tt>/usr/src/kernel/sources/kernel-source-''module''.tar.bz2</tt><br />
<br />
Обратите внимание на то, что некоторые пакеты с исходниками в своём '''имени''' содержат '''версию''', например, <tt>kernel-source-heci-5.0.0.31-5.0.0.31-alt1</tt>. Это сделано для того, чтобы можно было иметь возможность собирать разные версии ядер с разными версиями модулей (например, новые модули не собираются с 2.6.18).<br />
<br />
=== Сборка самого модуля ===<br />
<br />
==== Про шаблоны ====<br />
Поскольку править спеки каждого пакета с модулями для каждой версии ядра несколько глупо, была разработана схема, при которой для каждого модуля создается шаблон, а специально обученный скрипт подгоняет этот шаблон к конкретному ядру (в том числе вычисляет релиз модуля) и собирает пакет с модулем. Сами шаблоны хранятся в git-репозитории, в котором есть множество веток, ветки с шаблонами называются <tt>template/<module>/<distro></tt>, где ''module'' — это собственно название модуля (например, <tt>nvidia</tt>) а distro — это то, подо что мы собираем. Обычно это <tt>sisyphus</tt>, но, поскольку для разных бранчей шаблоны приходиться менять, можно установить поле distro в соответствующее значение. Обычно используется <tt>alt-linux-4.0</tt> для [[branch/4.0]] и <tt>alt-linux-4.1</tt> для [[branch/4.1]].<br />
<br />
==== Подготовка шаблона ====<br />
Для начала нам нужны утилиты для сборки модулей, взять которые пока можно только из гита, например отсюда:<br />
<code><br />
git clone git://git.altlinux.org/people/silicium/packages/kernel-build-scripts.git<br />
</code><br />
Теперь нам нужна копия репозитория с модулями. Для того чтобы скрипты нашли модули, директория, содержащая копию, должна назваться <tt>modules</tt> и содержаться в директории <tt>kernel-build-scripts</tt>:<br />
<code><br />
cd kernel-build-scripts &&<br />
git clone git://git.altlinux.org/people/silicium/packages/kernel-modules.git modules<br />
</code><br />
После этого нам нужно создать новую ветку в репозитории с модулями:<br />
<code><br />
cd modules<br />
git checkout -b template/''module''/sisyphus origin/template/heci/sisyphus<br />
rm -f SOURCES/*<br />
mv kernel-modules-heci.spec kernel-modules-''module''.spec<br />
</code><br />
Теперь редактируем спек, меняем: имя, версию, описания, чейнджлог, возможно надо будет поправить опции для сборки. И коммитим.<br />
<code><br />
git add *.spec<br />
git commit -a<br />
</code><br />
<br />
==== Сборка ====<br />
Теперь в директории <tt>kernel-build-scripts</tt> запустим скрипт для сборки модулей<br />
<code><br />
./buildmodules --hasher --hsh-workdir=/home/silicium/hasher -k std-def '''module'''<br />
</code><br />
'''Hint''' -k ''flavour'' можно делать несколько раз <br /><br />
'''Hint''' в системе должен стоять пакет kernel-build-tools т.к. скрипты используют макросы из него <br /><br />
'''Hint''' Сборка модулей на x86_64 под i586 может выглядеть так<br />
<code><br />
./buildmodules --hasher --hsh-workdir=/home/silicium/hasher --hsh-options='--apt-conf /home/silicium/i586/apt.conf' --target i586 -k ....<br />
</code><br />
<br />
Логи сборки складываются в <tt>out/logs/kernel-modules-''module''-''flavour''.log</tt>.<br />
<br />
Если сборка не удалась и нужно что-то поменять, то после этого можно сделать<br />
<code><br />
git commit -a --amend<br />
</code><br />
и попробовать ещё раз, до тех пор, пока модуль не соберется.<br />
<br />
Подробнее про опции скриптов buildkernel и buildmodules можно прочитать в файле [http://git.altlinux.org/people/silicium/packages/kernel-build-scripts.git?p=kernel-build-scripts.git;a=blob;f=README.koi8;hb=HEAD README.koi8] из репозитория <tt>kernel-build-scripts</tt>.<br />
<br />
== Как выложить модуль в репозиторий ==<br />
Для начала необходимо у себя в git создать репозиторий и залить <tt>kernel-source-''module''</tt>:<br />
<code><br />
ssh git.alt init-db kernel-source-''module''<br />
cd kernel-source-''module''<br />
git remote add public git.alt:packages/kernel-source-''module''.git<br />
git push --all public<br />
</code><br />
Потом - выложить <tt>kernel-modules</tt><br />
<code><br />
ssh git.alt clone /people/silicium/packages/kernel-modules<br />
cd kernel-build-scripts/modules<br />
git remote add public git.alt:packages/kernel-modules.git<br />
git push --all public<br />
</code><br />
<br />
Осталось собрать пакеты через [[git.alt]].<br />
<br />
'''Важное замечание:''' для того чтобы сборка прошла правильно, kernel-source-''module'' должен быть собран до сборки kernel-modules-''module''.<br />
<br />
== Рекомендации по взаимодействию с мейнтейнерами ядер ==<br />
Для нормальной совместной работы рекомендуется:<br />
* Оповестить мейнтейнеров ядер (в списке рассылки [https://lists.altlinux.org/mailman/listinfo/devel-kernel devel-kernel]), о том что есть ваш модуль,<br />
* При обновлении модуля обновлять сборки под максимальное количество ядер,<br />
* Настроить git remote на kernel-modules других мейнтейнеров,<br />
* В спеках <tt>kernel-modules-</tt> поле Packager установить в Kernel Maintainers team.<br />
<br />
== Про symvers и модули зависящие от других модулей ==<br />
Иногда бывает, что пакет с модулями, должен собираться под другой пакет с модулями. Так например просиходит с gspca и v4l. Для нормальной сборки нам нужно 2 вещи: во-первых, проставить правильно зависимости на headers (у v4l есть свои хедеры), во-вторых, нужно импортировать файл с symvers. В gscpca проблема решилась добавлением следующей строчки в %prep фазу пакета с модулем gspca:<br />
<code><br />
cat /usr/src/linux-%kversion-%flavour-%krelease/kernel-modules-v4l.symvers > Module.symvers<br />
</code><br />
<br />
<br />
{{Category navigation|title=Kernel|category=Kernel|sortkey={{SUBPAGENAME}}}}<br />
<br />
[[Категория:Packaging]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=10523OpenNMS2009-04-06T16:13:47Z<p>SlavaDubrovskiy: /* Советы */</p>
<hr />
<div>OpenNMS — система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
* '''{{pkg|opennms}}''' — метапакет для быстрой установки<br />
* '''{{pkg|opennms-common}}''' — предоставляет структуру директорий остальных пакетов<br />
* '''{{pkg|opennms-core}}''' — серверная часть программы. Тут находится демон, который занимается мониторингом.<br />
* '''{{pkg|opennms-webapp-jetty}}''' — веб-интерфейс для просмотра статистики интегрированный в opennms-сервер. Если вы устанавливаете opennms-core и веб-интерфейс на один компьютер, то разработчики рекомендуют именно его и использовать.<br />
* '''{{pkg|opennms-doc}}''' — документация<br />
* '''{{pkg|opennms-contrib}}''' — некоторые дополнительные скрипты которые не вошли в core<br />
* '''{{pkg|opennms-webapp-standalone}}''' — веб-интерфейс для просмотра статистики без opennms-сервера. Если вы планируете веб-интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
* '''{{pkg|opennms-remote-poller}}''' — это часть программы для распределённого мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java и др. нужные для работы пакеты.<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей — см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
== Советы ==<br />
* Так как это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300—400 в файле /etc/sysconfig/opennms.<br />
* Обязательно настраивайте SNMP если хотите получать максимальную информативность<br />
* Рекомендую включать linkd. (Раскомментировать соответствующую секцию в service-configuration.xml)<br />
<br />
== Подключение к веб-интерфейсу ==<br />
Для того чтобы попасть в веб-морду нужно подключаться по такому адресу:<br />
{{path|<nowiki>http://IP:8980/opennms</nowiki>}}<br />
* Логин: {{term|admin}}<br />
* Пароль: {{term|admin}}<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
* http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
* http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
* а также на сайте http://www.opennms.org<br />
<br />
[[Категория:Admin]]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=9836OpenNMS2009-03-09T09:17:57Z<p>SlavaDubrovskiy: /* Советы */</p>
<hr />
<div>[[Категория:Admin]]<br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-common''' - предоставляет структуру директорий остальных пакетов<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-doc''' - документация<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java и др. нужные для работы пакеты.<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
== Советы == <br />
1. Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
2. Обязательно настраивайте SNMP если хотите получать максимальную информативность<br />
<br />
3. Рекомендую включать linkd. (Раскомментировать соответствующую секцию в service-configuration.xml)<br />
<br />
== Подключение к вебинтерфейсу ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=9835OpenNMS2009-03-09T09:17:45Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>[[Категория:Admin]]<br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-common''' - предоставляет структуру директорий остальных пакетов<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-doc''' - документация<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java и др. нужные для работы пакеты.<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
== Советы == <br />
1. Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
2. Обязательно настраивайте SNMP если хотите получать максимальную информативность<br />
3. Рекомендую включать linkd. (Раскомментировать соответствующую секцию в service-configuration.xml)<br />
<br />
== Подключение к вебинтерфейсу ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=9834OpenNMS2009-03-09T09:11:00Z<p>SlavaDubrovskiy: /* Предназначение пакетов */</p>
<hr />
<div>[[Категория:Admin]]<br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-common''' - предоставляет структуру директорий остальных пакетов<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-doc''' - документация<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java и др. нужные для работы пакеты.<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
== Подключение к вебинтерфейсу ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenVZ&diff=9009OpenVZ2009-02-09T14:24:53Z<p>SlavaDubrovskiy: /* Маленькие хитрости */</p>
<hr />
<div>[[Категория:Admin]]<br />
{{викифицировать}}<br />
<br />
[http://openvz.org OpenVZ] — технология «лёгкой» виртуализации, позволяющая на одной аппаратной системе держать несколько различных корней Linux с одним ядром (поддерживающим ovz и содержащимся, как правило, на небольшом корне с ограниченным доступом по ssh и без других сервисов). В отличие от «тяжёлых» вариантов вроде Xen, Qemu или VMware, накладные расходы обычно составляют единицы процентов.<br />
<br />
__TOC__<br />
<br />
Сначала конечно необходимо прочитать [http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf документацию], для понимания что это такое и для чего можно использовать и как. PDF содержит более сотни страниц, но десяток из них '''обязательно''' следует прочитать для экономии времени — в начале про терминологию, около с.88 про Action Scripts и bind mounts, и в конце — секцию Troubleshooting. Также доступен [http://www.opennet.ru/docs/RUS/virtuozzo/ перевод].<br />
<br />
В настоящий момент в репозитории есть практически все компоненты для полноценной работы. Но на данный момент openvz не поддерживает систему управления пакетами <tt>apt</tt>, поэтому мы не можем воспользоваться утилитой <tt>vzpkg</tt>.<br />
<br />
=== Установка ===<br />
<pre># apt-get install vzctl kernel-image-ovz-smp</pre><br />
При этом установятся ядро с поддержкой openvz и необходимые утилиты, поэтому необходимо перегрузить компьютер и при загрузке выбрать ядро <tt>-ovz</tt>.<br />
<br />
=== Планирование ресурсов ===<br />
Если предполагается более-менее равномерное разделение HN между несколькими VE (или примерно можно означить ограничения как «1/10», «1/4»), то рекомендуется использовать <tt>vzsplit</tt> для создания заготовок конфигурации (не самих серверов! — получается меташаблон такой).<br />
<pre>vzsplit -n 2 -f ltsp<br />
vzsplit -n 10 -f misc10</pre><br />
<br />
Заготовки окажутся в <tt>/etc/vz/conf/ve-ИМЯ.conf-sample</tt> и пригодны для использования в <tt>vzctl create $VEID --config ИМЯ</tt>. Имейте в виду, что штатный vps.basic весьма ограничен, а light — скорее непригоден к использованию.<br />
<br />
Перепланировать можно и потом; если есть возможность — бывает полезно дать память с запасом и посмотреть через какое-то время реальное использование (накинуть резерв и уменьшить до полученной цифры). Также рекомендуется почитать про [http://wiki.openvz.org/UBC_systemwide_configuration UBC], а также man-страницы <tt>vzctl</tt>, <tt>vzmemcheck</tt>, <tt>vzcpucheck</tt>.<br />
<br />
=== Создание шаблона ===<br />
(Адаптировано для spt-0.6.0-alt7)<br />
Необходимо создать шаблон, который будет использоваться для создания виртуального сервера. На [http://openvz.org/download/template/cache сайте] находится много шаблонов. Для ALT шаблоны см. в [http://download.openvz.org/contrib/template/precreated/ contrib],[http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz altlinux-2.4.tar.gz], [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz altlinux-3.0.tar.gz] и [http://download.openvz.org/template/precreated/contrib/altlinux-4.0-i586.tar.gz altlinux-4.0-i586.tar.gz] . Шаблон представляет собой запакованый в архив корневой раздел. Поэтому для создания шаблона можно использовать <tt>spt</tt> или <tt>hasher</tt>. Я воспользовался [http://freesource.info/wiki//ALTLinux/Sisyphus/Separator spt], так как он содержит уже готовый профиль для ovz.<br />
Устанавливаем spt:<br />
<pre># apt-get install spt spt-profiles-ovz</pre><br />
На этом этапе необходимо получить работоспособный [[hasher]].<br />
Для правильной работы <tt>vzctl</tt> необходимо, чтобы в <tt>/dev</tt> находились следующие устройства: <tt>/dev/ptmx</tt>, <tt>/dev/tty</tt> и был смонтирован <tt>/dev/pts/</tt>. Для их создания требуется наличие параметра <tt>allow_ttydev=YES</tt> в <tt>/etc/hasher-priv/*</tt> (см. hasher-priv.conf(8), [http://lists.altlinux.org/pipermail/devel/2006-July/034431.html http://lists.altlinux.org/pipermail/devel/2006-July/034431.html])<br />
<br />
Затем необходимо создать профиль, по которому spt будет строить шаблон. Возможно использовать готовый профиль. Готовые профили, предназначенные для создания openvz-шаблонов, находятся в пакете spt-profiles-ovz.<br />
<br />
Создаем рабочий каталог и копируем туда дефолтный ovz-профиль, если хотим самостоятельно сформировать список пакетов<br />
<pre>mkdir ~/ovz<br />
cp -r /etc/spt/profiles/ovz/.default ~/ovz/profile</pre><br />
<br />
или копируем готовый профиль:<br />
<pre>cp -r /etc/spt/profiles/ovz/proxy-server ~/ovz/profile</pre><br />
<br />
Можно поменять имя создаваемого образа в <tt>~/ovz/profile/config</tt>. Заменим значение в OUT на altlinux-4.0.tar.gz .<br />
Список пакетов находится в — <tt>~/ovz/profile/ovz/packages</tt> — например, можно добавить openssh-server, vim-console, bash-completion. В ovz-контейнер нет необходимости ставить пакет interactivesystem.<br />
Минимальный список пакетов:<br />
<pre>basesystem<br />
apt<br />
etcnet<br />
glibc<br />
sysklogd</pre><br />
<br />
Или вместо попакетного списка можно указать один виртуальный пакет из:<br />
<pre>ve-asterisk - Asterisk server<br />
ve-base - Basic appliance<br />
ve-build-scripts - scripts used for VE building<br />
ve-caching-nameserver - Caching name server<br />
ve-ftp-server - FTP server<br />
ve-imap-server - POP3/IMAP4 server<br />
ve-kerberos-server - Kerberos server<br />
ve-list-server - Mailing list server<br />
ve-ntp-server - NTP server<br />
ve-openvpn-server - virtual package for openvpn server appliance<br />
ve-pptp-server - virtual package for pptp server appliance<br />
ve-print-server - Print server<br />
ve-proxy-server - Proxy server<br />
ve-smtp-server - SMTP server</pre><br />
<br />
Если предполагается использовать в контейнере alterator, добавьте '''ve-base''' в список пакетов.<br />
<br />
Теперь необходимо создать сам образ:<br />
<pre>$ spt -v --image-type=tgz ~/ovz</pre><br />
<br />
<div style="display: inline; color: red;">Внимание: создание образов на i586-машине для архитектуры x86_64 не работает.</div><br />
<br />
Если все прошло хорошо, то в <tt>~/ovz/</tt> будет находится файл altlinux-4.0.tar.gz. Его необходимо скопировать в <tt>/var/lib/vz/template/cache</tt>. Не забудьте поменять владельца и группу.<br />
<br />
=== Создание виртуального сервера ===<br />
'''Внимание:''' ещё один момент, где лучше заранее почитать документацию, чем потом сожалеть: в PDF рекомендуется выдавать VEID’ы сообразно IP (например, для xxx.xxx.7.123 — <tt>7123</tt> или для 10.0.1.254 — #1254##). Это более удобно с точки зрения администрирования как мнемонически, так и при необходимости переноса контейнеров между физическими хостами — если везде есть VEID 101, перенос будет сильно затруднён (на forum.openvz.org в соответствующей теме встретился вариант решения — свернуть одноразовый template cache из переносимого VE (например с помощью vzdump) и создать на новом месте из этого темплейта; штатный способ изменения VEID мне на сейчас неизвестен). При создании из такого темплейта можно указать использовать старый конфиг и все работает хорошо.<br />
<br />
Теперь мы можем создать сервер из шаблона.<br />
<pre># vzctl create 101 --ostemplate altlinux-4.0 --config vps.basic<br />
Creating VPS private area<br />
VPS private area was created</pre><br />
<br />
Имя, которое Вы дали вашему шаблону (то что следует за — ostemplate), имеет важное значение. При создании VE это имя заносится в конфигурационный файл в переменную OSTEMPLATE. По этой переменной vzctl определяет какие скрипты использовать (разным OS нужны разные скрипты). Если вы используете ALT, то оно обязательно должно начинаться с altlinux (определяет нюансы настройки). Дальше разбор имени идет по такому алгоритму:<br />
<pre>> > а по-какому критерию тогда vzctl ищет нужные scripts?<br />
<br />
См. get_dist_conf_name(). В случае --ostemplate altlinux-i686-minimal<br />
будут проверены:<br />
altlinux-i686-minimal.conf<br />
altlinux-i686.conf<br />
altlinux.conf<br />
default<br />
Будет использован первый найденный.<br />
<br />
-- ldv</pre><br />
<br />
=== Именование виртуального сервера ===<br />
Начиная с версии 3.0.11, vzctl поддерживает именование виртуальных серверов. Это удобно, когда у вас их много, ибо помнить, что <tt>proxy</tt> это <tt>103</tt> — не очень удобно.<br />
<pre># vzctl set 101 --name vps101 --save<br />
Saved parameters for VPS 101</pre><br />
Теперь в командах vzctl вместо 101 можно использовать vps101.<br />
<br />
=== Конфигурация виртуального сервера ===<br />
Конфигурация включает такие пункты:<br />
<br />
==== 1. Установка параметров запуска ====<br />
<pre># vzctl set 101 --onboot yes --save<br />
Saved parameters for VPS 101</pre><br />
<br />
==== 2. Установка параметров сети ====<br />
<br />
===== Общие настройки =====<br />
Установка имени сервера:<br />
<pre># vzctl set 101 --hostname test101.my.org --save<br />
Saved parameters for VPS 101</pre><br />
<br />
Установка nameserver:<br />
<pre># vzctl set 101 --nameserver 192.168.1.165 --save<br />
Saved parameters for VPS 101</pre><br />
<br />
Установка searchdomain:<br />
<pre>vzctl set 101 --searchdomain my.org --save</pre><br />
<br />
Учтите, что параметры ipadd и hostname можно задать сразу при создании VE.<br />
<br />
===== Сетевые соединения =====<br />
В [[OpenVZ|OpenVZ]] в VE возможно настраивать 3 типа соединений:<br />
1. [http://wiki.openvz.org/Virtual_network_device venet]<br />
2. [http://wiki.openvz.org/Virtual_Ethernet_device veth]<br />
3. Просто «пробросить» внутрь физический ethernet интерфейс. См. параметры netdev_add name/netdev_del name для vzctl.<br />
Различия между venet и veth описаны [http://wiki.openvz.org/Differences_between_venet_and_veth тут]. Кратко можно сказать, что чаще всего вам потребуется venet. Но в некоторых случаях, для запуска таких приложений внутри VE, которые требуют для своей работы: MAC address, Broadcasts inside VE, Traffic sniffing, (например dhcpd, samba) или вам нужен IPv6 — необходимо создавать veth. Также veth можно использовать в некоторых [http://forum.openvz.org/index.php?t=msg&th=951&start=0& сложных случаях]. Во всех остальных случаях (например, сложный роутинг или несколько ethx устройств с разными маршрутами/коммутацией, или когда нужно именно физическое ethernet устройство внутри VE), необходимо использовать netdev.<br />
<br />
====== [http://wiki.openvz.org/Virtual_network_device venet] ======<br />
Настройка venet внутри VE полностью осуществляется средствами vzctl. При старте VE конфигурация venet устройств переписывается на основании конфига для VE.<br />
<pre># vzctl set 101 --ipadd 10.10.186.1 --save<br />
Saved parameters for VPS 101</pre><br />
<br />
При этом внутри VE создастся 2 интерфейса:<br />
<pre># vzctl exec 101 /sbin/ip a<br />
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue<br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
inet 127.0.0.1/8 scope host lo<br />
inet6 ::1/128 scope host<br />
valid_lft forever preferred_lft forever<br />
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue<br />
link/void<br />
inet 10.10.186.1/32 scope global venet0:1</pre><br />
<br />
Маршрут при этом выглядеть должен так:<br />
<pre># vzctl exec 101 /sbin/ip r<br />
192.0.2.0/24 dev venet0 scope host<br />
default via 192.0.2.1 dev venet0</pre><br />
Такой адрес выбран [http://forum.openvz.org/index.php?t=msg&goto=4929 сознательно]<br />
<br />
====== [http://wiki.openvz.org/Virtual_Ethernet_device veth для IPv4] ======<br />
'''UPDATE:''' в свежем <tt>vzctl</tt> уже автоматизировано:<br />
<pre>3.0.10: Wed Jun 7 2006 <igor@openvz.org><br />
* added virtual ethernet device support (--veth_add, --veth_del)</pre><br />
<br />
Настройка veth не осуществляется средствами vzctl, так как подразумевается, что администратор VE должен настроить сеть средствами той ОС, которая внутри VE.<br />
<br />
1. Необходимо обеспечить загрузку модуля vzethdev:<br />
<pre># modprobe vzethdev</pre><br />
Разработчики рекомендуют дописать этот модуль в переменную NET_MODULES в скрипте /etc/init.d/vz. Но думаю, что лучше его просто прописать в /etc/modules (при обновлении vzctl скрипт обновляется -- явно напрашивается на /etc/sysconfig/vz-что-то, совсем непонятно, зачем сейчас это симлинк на ../vz/vz.conf).<br />
<br />
'''vvk:''' <tt>похоже что сейчас ничего этого не требуется, модули подгружаются автоматически</tt><br />
<br />
2. Добавим сам veth к VE:<br />
<pre># vzctl set 101 --netif_add eth0 --save</pre><br />
, где eth0 — имя veth-интерфейса на стороне VE. Необходимости прописывать мак-адреса вручную теперь нет.<br />
<div style="display: inline; color: red;">Внимание! MAC-адреса должны быть разными и не пересекаться с реальными интерфейсами — можно чуть изменить взятый со старой карты в ящике.</div><br />
Добавлять IP командой vzctl set 101 --ipadd 10.10.186.1 --save не надо, так как тогда будет настраиваться venet.<br />
<br />
3. Настроим создание eth0 в VE:<br />
Для этого можно использовать средства настройки сети той OS что установлена в VE. Для ALT это etcnet. Для этого просто настроим стандартный интерфейс типа eth. Или можно настраивать из HN используя «типичный скрипт» 101.start (в /etc/vz/conf/), добавив туда:<br />
<pre>/sbin/ifconfig eth0 0<br />
/sbin/ip addr add 10.10.186.1 dev eth0<br />
/sbin/ip route add default dev eth0<br />
/sbin/ip route replace default via $HN_IP dev eth0</pre><br />
<small>Последняя строчка нужна в случае если HN и VE находятся в разных сетях, без нее пакеты VE не будут ходить за пределы этих сетей. Если кто предложит вариант лучше — исправления приветствуются</small><br />
<br />
Скрипт должен иметь права на выполнение.<br />
<br />
4. Запустим VE:<br />
<pre># vzctl start 101</pre><br />
<br />
После запуска в VE должны быть такие интерфейсы:<br />
<pre>$ /sbin/ip a<br />
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue<br />
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br />
inet 127.0.0.1/8 scope host lo<br />
inet6 ::1/128 scope host<br />
valid_lft forever preferred_lft forever<br />
3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP> mtu 1500 qdisc noqueue<br />
link/void<br />
inet 127.0.0.1/32 scope host venet0<br />
5: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue<br />
link/ether 00:12:34:56:78:9b brd ff:ff:ff:ff:ff:ff<br />
inet 10.10.186.1/32 scope global eth0</pre><br />
<br />
и маршруты (почему-то добавляется):<br />
<pre>$ /sbin/ip r<br />
191.255.255.0/24 dev venet0 scope host<br />
default dev eth0 scope link<br />
default via 191.255.255.1 dev venet0</pre><br />
<br />
Теоретически администратор VE может сам менять IP, но я не проверял :-)<br />
5. Теперь, после запуска VE нужно настроить veth на стороне ##DEFINITION HN => Hardware Node##:<br />
Для этого в [[OpenVZ|OpenVZ]] после старта VE автоматически вызывается утилита vznetcfg, которая инициализирует veth на стороне HN путем вызова команды ip link set veth101.0 up. Т.о. вы имеете поднятый интерфейс, но без IP и без настроенного маршрута. Поэтому дальнейшую настройку приходится делать руками или прописать в rc.local. (В следующей версии vzctl вроде уже добавили поддержку)<br />
Настроим proxy_arp и forwarding для eth0 и veth на HN:<br />
Для eth0 можно использовать штатные средства Sisyphus:/admin/etcnet, установив переменную <tt>net.ipv4.ip_forward = 1</tt> в файле <tt>/etc/net/sysctl.conf</tt> и <tt>proxy_arp=1</tt> в <tt>/etc/net/ifaces/eth0/sysctl.conf</tt>.<br />
Для veth нужно выполнить:<br />
<pre># echo 1 > /proc/sys/net/ipv4/conf/veth101.0/forwarding<br />
# echo 1 > /proc/sys/net/ipv4/conf/veth101.0/proxy_arp</pre><br />
<br />
Добавляем IP<br />
<pre>ip addr add 10.10.186.1 dev veth101.0</pre><br />
<br />
<div style="display: inline; color: red;">Примечание :</div><br />
На самом деле, правильно:<br />
<pre>ip addr add 0 dev veth101.0</pre><br />
А не 10.10.186.1 иначе с ноды 101 пакеты в мир уйдут, а те что будут направлены ноде 101-й будут приняты HN и дальше не пройдут.<br />
<br />
И добавить маршрут:<br />
<pre># ip route add 10.10.186.1 dev veth101.0</pre><br />
<br />
Нюансы:<br />
* На данный момент venet настраивается при любых условиях, то есть даже когда используется veth. [http://forum.openvz.org/index.php?t=msg&th=967&start=0& Вот ответ разработчиков].<br />
* [https://bugzilla.altlinux.org/show_bug.cgi?id=9877 https://bugzilla.altlinux.org/show_bug.cgi?id=9877]<br />
* Похоже, что еще можно не мучаться с rc.local и патчами и все настроить через etcnet и hotplug. Более подробно я напишу по окончании разборок с этим хозяйством. <div style="display: inline; color: red;">напишите кто-нибудь, как автоматически в HN ловить появление veth и настраивать ему ip-параметры</div> [http://freesource.info/wiki//AfanasovDmitry /AfanasovDmitry]: сделал «маленькую хитрость»/<br />
* Если в VE iptables не работает с -t nat, скорее всего модуль iptable_nat был загружен на HN уже '''после''' старта контейнера.<br />
* Мне захотелось иметь 2 VETH интерфейса в VE, соединённых с двумя сетевыми карточками HE, одна — ведущая в WAN, другая — в LAN. Результаты можно почитать здесь: [http://vireso.blogspot.com/2008/02/2-veth-with-2-brindges-on-openvz-at.html http://vireso.blogspot.com/2008/02/2-veth-with-2-brindges-on-openvz-at.html] (извиняюсь, на английском).<br />
<br />
==== 3. Установка пользовательских параметров ====<br />
Установим пароль для рута:<br />
<pre># vzctl set 101 --userpasswd root:test<br />
Saved parameters for VPS 101</pre><br />
В этом примере мы установили пароль для root в VPS 101 в «test», и вы можете залогиниться<br />
<br />
==== 4. Установка квот ====<br />
Для включения дисковых квот необходимо выполнить следующие команды:<br />
<br />
<pre># vzctl set 101 --quotaugidlimit число --save<br />
# vzctl restart 101</pre><br />
<br />
где, '''''число''''' -- максимальное количество пользователей и групп, которые могут размещаться в контейнере (например, 1000).<br />
<div style="display: inline; color: red;">Внимание:</div> на сейчас поддержка реализована только для ext2/3 :-(<br />
<br />
=== Запуск виртуального сервера ===<br />
<pre># vzctl start 101<br />
Starting VPS ...<br />
VPS is mounted<br />
Adding IP address(es): 10.0.186.101<br />
Hostname for VPS 101 set: test.my.org<br />
VPS start in progress...</pre><br />
<br />
=== Выполнение команд на сервере ===<br />
<pre># vzctl exec 101 service sshd status<br />
sshd is stopped<br />
# vzctl exec 101 service sshd start<br />
Starting sshd: [ OK ]<br />
# vzctl exec 101 service sshd status<br />
sshd is running</pre><br />
<br />
=== Административный вход на сервер ===<br />
<pre># vzctl enter 101</pre><br />
Если огребаем такое:<br />
<pre># vzctl enter 101<br />
enter into VE 101 failed<br />
Unable to open pty: No such file or directory</pre><br />
— то [http://lists.altlinux.org/pipermail/sysadmins/2006-November/003072.html дело] в <tt>/dev/tty</tt>, <tt>/dev/ptmx</tt> и (не)смонтированном <tt>/dev/pts/</tt>. Надо добавить в <tt>/etc/fstab</tt> этого VE нечто вроде<br />
<pre>devpts /dev/pts devpts gid=5,mode=620 0 0</pre><br />
<br />
NB: если эта проблема вылезла вследствие выполнения команд start и enter цепочкой — вероятно, /dev/pts просто не успевает смонтироваться, попробуйте добавить задержку:<br />
<pre>VE=NNN; vzctl start $VE; sleep 1; vzctl enter $VE</pre><br />
<br />
=== Уничтожение сервера ===<br />
<pre># vzctl destroy 101</pre><br />
<br />
=== Альтлинукс как VPS в других дистрибутивах ===<br />
(Я пробовал не примере CentOS4)<br />
Если у вас есть шаблон altlinux.tar.gz, сделанный как описано выше, в главе «Создание Шаблона»,<br />
то его можно скопировать в директорию /vz/template/cache/.<br />
Если версия пакета vzctl в HN меньше чем 3.0.19, то для того чтобы работала сеть,<br />
надо также взять из альтовского пакета vzctl файлы<br />
/etc/vz/dists/altlinux.conf, /etc/vz/dists/scripts/etcnet-add_ip.sh и /etc/vz/dists/scripts/etcnet-del_ip.sh<br />
или обновить пакет vzctl до версии >= 3.0.19.<br />
Далее всё согласно этому документу, — создание, именование, настройка…<br />
<br />
(также можно взять у ldv@ [http://git.altlinux.org/people/ldv/packages/?p=vzctl.git;a=tree;hb=HEAD в git]: бранч master)<br />
<br />
=== NFS/FUSE и LTSP ===<br />
[[OpenVZ/NFS|NFS здеся]]; [[OpenVZ/FUSE|FUSE здеся]].<br />
<br />
=== mount --bind из HN в VE при старте последнего ===<br />
[http://forum.openvz.org/index.php?t=msg&th=159&#msg_720 здеся] (вообще про action scripts есть в документации, тут же — примеры удобные)<br />
<br />
=== openntpd ===<br />
В принципе, openntpd заводится с пол-пинка, но есть два замечания:<br />
* не хотел стартовать с <tt>listen on *</tt>, помогает указание ip-адреса vps-а или 0.0.0.0<br />
* необходимо разрешить VPS-у подкручивать системные часы:<br />
<pre># vzctl set 101 --capability sys_time:on --save</pre><br />
<br />
=== nut ===<br />
Заводится с пол-пинка, единственный момент — дать доступ к устройству:<br />
<pre>vzctl set 101 --devnodes ttyS0:rw --save</pre><br />
<br />
=== Миграция с [[VServer|VServer]] ===<br />
<pre>Date: Wed, 9 Aug 2006 02:07:06 +0400<br />
From: "Dmitry V. Levin" <ldv@><br />
To: ALT Linux sysadmin discuss <sysadmins@><br />
Subject: Re: [Sysadmins] vserver -> openvz migrate?<br />
<br />
> Скажите пожалуйста, если имеются работающие парочка VServers, один -<br />
> текущий Сизиф 32-битный чтобы пользоваться в 64-битном Сизифе смотреть<br />
> флэш и ещё что не нашёл 64-битное. Второй - Федора5. Мигрировать на<br />
> OpenVZ - что для этого надо будет делать? Или проще заново их<br />
> сгенерировать?<br />
<br />
Мигрировать контейнеры с linux-vserver на openvz достаточно легко.<br />
Я недавно делал такую миграцию для контейнеров, сделанных на основе M24.<br />
Могу отметить 4 момента:<br />
1. vserver'ная конфигурация контейнеров беднее, чем openvz'шная; имеет<br />
смысл сперва установить достаточно большие лимиты, потом на основе опыта<br />
эксплуатации уменьшить их до рабочего уровня.<br />
2. Имя файла template cache должно соответствовать имени системы, на основе<br />
которой сделан контейнер. Например, если контейнер сделан на основе<br />
чего-то ALT'ового с net-scripts, то имя должно начинаться с "altlinux-2.4-",<br />
если на основе ALT'ового с etcnet, то с "altlinux-", для FC - с<br />
"fedora-core-".<br />
3. С удивлением обнаружил, что внутри vserver'ных контейнеров выключена<br />
служба network. Не забудьте выполнить "chkconfig network on".<br />
4. В пакете vzctl-3.0.10-alt5 я добавил дополнительные правила<br />
корректировки в /etc/vz/dists/scripts/postcreate.sh, которые выключают<br />
запуск mingetty в inittab'е и лог в /dev/tty12 в syslog.conf.<br />
Если вы захотите обойтись без vzctl create, то надо будет каким-то образом<br />
выполнить этот /etc/vz/dists/scripts/postcreate.sh внутри контейнеров.</pre><br />
<pre>Date: Wed, 9 Aug 2006 13:10:39 +0400 (MSD) <br />
From: "Konstantin A. Lepikhov" <lakostis@> <br />
To: sysadmins@<br />
Subject: Re: [Sysadmins] [wiki] Re: vserver -> openvz migrate?<br />
<br />
>> Мигрировать контейнеры с linux-vserver на openvz достаточно легко.<br />
агасчас. Это все легко, если используется старый vserver/vserver-utils,<br />
не 2.0.x. В новых vserver введен внешний package management, поэтому<br />
сначала придется в vserver поставить apt/rpm, потом скопировать базы<br />
rpm/apt из /vservers/.pkg/ внутрь vserver (кажется, там были грабли, т.к.<br />
vrpm использует db3 вместо db4). И лишь только когда это все сделано,<br />
можно создавать cache для ovz.</pre><br />
<pre>Или наоборот, создать template cache, создать тз него ovz-контейнер,<br />
скопировать туда базу данных rpm и поставить туда apt/rpm.<br />
-- <br />
ldv</pre><br />
<br />
=== Template caches ===<br />
* [http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz]<br />
* [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz]<br />
* [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914.tar.gz http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914.tar.gz]<br />
* [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914-x86_64.tar.gz http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-20060914-x86_64.tar.gz]<br />
* [http://download.openvz.org/template/precreated/contrib/altlinux-4.0-i586.tar.gz http://download.openvz.org/template/precreated/contrib/altlinux-4.0-i586.tar.gz]<br />
<br />
=== Замечания по использованию ===<br />
* vzquota [http://bugzilla.openvz.org/show_bug.cgi?id=125 не дружит с xfs] (поскольку xfs использует свою реализацию квот, отличных от linuxquota). Поэтому для /vz лучше использовать ext3.<br />
* user_beancounters по-умолчанию сильно закручены по ресурсам, поэтому после развертывания VPS, необходимо внимательно изучить содержимое /proc/user_beancounters. Значения, на которые надо смотреть — kmemsize, numproc, numfile, numtcpsock, numothersock. В случае нагруженной tcp подсистемы — tcpsndbuf и tcprcvbuf.<br />
* В ovz ядрах [http://bugzilla.openvz.org/show_bug.cgi?id=469 глючит nfs], поэтому внутрь VPS ресурсы лучше экспортировать через mount --bind. Несекурно, зато работает.<br />
* Чтобы собрать кэш темплейт для M24 надо пересобрать сизифный console-data.<br />
<tt>А вот и собранный template для M24 с исправлением: [http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz http://cryo.net.ru/~thresh/altlinux-2.4.tar.gz] размер: 24660183, md5sum: e575da3dc4841367ba0d74e7063703bf </tt><br />
* Чтобы в контейнере с Compact 3.0.4 заработала сеть, нужен etcnet-0.8.3-alt2, с etcnet-0.7.16-alt1 [http://lists.altlinux.org/pipermail/sysadmins/2006-September/002371.html не работает] (<tt>ip route list</tt> пустой).<br />
<tt>А вот и собранный template для M30 с исправлением: [http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz http://paq.osdn.org.ua/~mike/tmp/openvz/altlinux-3.0.tar.gz] размер: 20741540, md5sum: cd74ef7dc8f117626b1701061cb1973f </tt><br />
* Проверьте. есть ли все необходимые устройства. например, без /dev/full rpm --sign вылетает по SIGPIPE.<br />
<br />
=== Маленькие хитрости ===<br />
Для того, чтобы выполнить команду на всех серверах, можно воспользоваться такой конструкцией:<br />
<pre># for i in `vzlist -a -H -o veid`; do echo "VPS $i"; vzctl exec $i <command>; done</pre><br />
<br />
Чтобы показывался размер виртуального раздела в контейнере, надо выполнить следующие команды внутри контейнера:<br />
<pre>rm -f /etc/mtab && ln -s /proc/mounts /etc/mtab</pre><br />
(уже obsoleted с spt >= 0.3.1-alt4)<br />
<br />
Чтобы следить за «нарушителями границ» (предназначено для VE, не HN):<br />
<pre>watch grep -v ' 0$' /proc/user_beancounters</pre><br />
<br />
NB: в /proc/sys/net/ipv4/conf/venet0/proxy_arp после ребута или service network restart оказался ноль => nmap -P0 говорил, что порты закрыты, в то время как telnet :22, :111, :2049 — соединялся. Занеся 1, получаем нормальную картинку по nmap, но точно так же не монтируется (server is down).<br />
<br />
Правка дефолтного i18n (если не сделали себе в template cache сразу как требуется):<br />
<pre>vi /etc/rpm/macros<br />
apt-get -y reinstall `rpm -qa --queryformat '%{NAME}\n' /usr/share/locale/ru/LC_MESSAGES/* | sort -u`</pre><br />
<br />
<br />
'''Для автоподхвата интерфейсов''' достаточно поставить hotplug и в файл options дописать <tt>USE_HOTPLUG=yes</tt><br />
Например устройство до почтовика <tt>/etc/net/ifaces/smtp0</tt> организовано следующим обрзом:<br />
<tt>/etc/net/ifaces/smtp0/options</tt><br />
<pre>TYPE=eth<br />
REQUIRES=br0<br />
USE_HOTPLUG=yes</pre><br />
Он у меня автоматом в мост <tt>br0</tt> добавляется. Это файлы <tt>/etc/net/ifaces/smtp0/ifup-post</tt> и <tt>/etc/net/ifaces/smtp0/ifdown-post</tt> с кодмандами<br />
<pre>NAME="$1"; /sbin/brctl addif br0 "$NAME"</pre><br />
<pre>NAME="$1"; /sbin/brctl delif br0 "$NAME"</pre><br />
<div style="display: inline; color: red;">хе, интересно, а как в <tt>brctl</tt> метка AUTO тут обрабатывается?</div><br />
Если мост не нужен, тогда как обычно создаем файлы <tt>ipv4address</tt>, <tt>ipv4route</tt>, <tt>ipv4link</tt>.<br />
<br />
=== TODO ===<br />
* причесать логический порядок страницы (вынести подстранички?) // mike<br />
<br />
=== Ссылки ===<br />
* [http://openvz.org openvz.org], [http://wiki.openvz.org wiki.openvz.org]<br />
* [http://kir.vtx.ru/lj/openvz-intro-ru.pdf Введение в виртуализацию]<br />
* [http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf Официальная документация]<br />
* [http://www.opennet.ru/docs/RUS/virtuozzo/ Русская документация по openvz на opennet]<br />
* [http://ru.wikipedia.org/wiki/OpenVZ OpenVZ в Wikipedia]<br />
* [http://k001.livejournal.com/361042.html OpenVZ vs VMWare]<br />
* [http://www.linux.com/print.pl?sid=07/01/11/2038252 A guide to running OpenVZ] (linux.com)<br />
* [http://rus-linux.net/kos.php?name=papers/virtual/virtual-linux.koi Виртуализация] (вообще и в частности)<br />
* [[OpenVZ/Interview|Интервью]] с Кириллом Колышкиным [en]<br />
* [http://wiki.openvz.org/Download/template/precreated Готовые шаблоны для различных дистрибутивов]</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6764OpenNMS2008-11-27T15:30:31Z<p>SlavaDubrovskiy: /* Подключение */</p>
<hr />
<div>OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-doc''' - документация<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java и др. нужные для работы пакеты.<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
== Подключение к вебинтерфейсу ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6763OpenNMS2008-11-27T15:18:22Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-doc''' - документация<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java и др. нужные для работы пакеты.<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
== Подключение ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6762OpenNMS2008-11-27T15:08:57Z<p>SlavaDubrovskiy: /* Предназначение пакетов */</p>
<hr />
<div>OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-doc''' - документация<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
== Подключение ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6761OpenNMS2008-11-27T15:08:11Z<p>SlavaDubrovskiy: /* OpenNMS на ALT */</p>
<hr />
<div>OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
== Предназначение пакетов ==<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
== Установка ==<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
== Подключение ==<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
== Конфигурация ==<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6760OpenNMS2008-11-27T15:05:00Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>== OpenNMS на ALT== <br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
=== Предназначение пакетов ===<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
=== Установка ===<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <pre>/usr/share/opennms/bin/install --help</pre><br />
<br />
После чего можем запустить сервис:<br />
<br />
<pre>service opennms start</pre><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
=== Подключение ===<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
=== Конфигурация ===<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6759OpenNMS2008-11-27T15:04:16Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>== OpenNMS на ALT== <br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
=== Предназначение пакетов ===<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
=== Установка ===<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<pre>apt-get install opennms opennms-webapp-jetty</pre><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<pre>/usr/share/opennms/bin/install -ids</pre><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <code>/usr/share/opennms/bin/install --help</code><br />
<br />
После чего можем запустить сервис:<br />
<br />
<code>service opennms start</code><br />
<br />
Результат можно проверить через:<br />
<pre><br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</pre><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
=== Подключение ===<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
=== Конфигурация ===<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6758OpenNMS2008-11-27T15:00:16Z<p>SlavaDubrovskiy: /* Подключение */</p>
<hr />
<div>== OpenNMS на ALT== <br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
=== Предназначение пакетов ===<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
=== Установка ===<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<code>apt-get install opennms opennms-webapp-jetty</code><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<code>/usr/share/opennms/bin/install -ids</code><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <code>/usr/share/opennms/bin/install --help</code><br />
<br />
После чего можем запустить сервис:<br />
<br />
<code>service opennms start</code><br />
<br />
Результат можно проверить через:<br />
<code>opennms -v status<br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</code><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
=== Подключение ===<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://IP:8980/opennms</code><br />
<br />
Логин: admin<br />
<br />
Пароль: admin<br />
<br />
=== Конфигурация ===<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6757OpenNMS2008-11-27T14:59:44Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>== OpenNMS на ALT== <br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
=== Предназначение пакетов ===<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
=== Установка ===<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<code>apt-get install opennms opennms-webapp-jetty</code><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<code>/usr/share/opennms/bin/install -ids</code><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <code>/usr/share/opennms/bin/install --help</code><br />
<br />
После чего можем запустить сервис:<br />
<br />
<code>service opennms start</code><br />
<br />
Результат можно проверить через:<br />
<code>opennms -v status<br />
# opennms -v status<br />
OpenNMS.Eventd : running<br />
OpenNMS.Trapd : running<br />
OpenNMS.Queued : running<br />
OpenNMS.Dhcpd : running<br />
OpenNMS.Actiond : running<br />
OpenNMS.Capsd : running<br />
OpenNMS.Notifd : running<br />
OpenNMS.Scriptd : running<br />
OpenNMS.Rtcd : running<br />
OpenNMS.Pollerd : running<br />
OpenNMS.PollerBackEnd : running<br />
OpenNMS.Ticketer : running<br />
OpenNMS.Collectd : running<br />
OpenNMS.Threshd : running<br />
OpenNMS.Discovery : running<br />
OpenNMS.Vacuumd : running<br />
OpenNMS.EventTranslator: running<br />
OpenNMS.PassiveStatusd : running<br />
OpenNMS.Statsd : running<br />
OpenNMS.Importer : running<br />
OpenNMS.JettyServer : running<br />
opennms is running<br />
</code><br />
<br />
'''Совет:''' Т.к. это java, то она очень прожорлива к ресурсам. Выделяйте достаточное количество памяти если это в VPS. Также возможно нужно увеличить переменную JAVA_HEAP_SIZE до 300 - 400 в файле /etc/init.d/opennms.<br />
<br />
=== Подключение ===<br />
Для того чтобы попасть в веб морду нужно подключаться по такому адресу:<br />
<code>http://opennms:8980/opennms</code><br />
Логин: admin<br />
Пароль: admin<br />
<br />
=== Конфигурация ===<br />
Дальнейшая конфигурация хорошо описана в статьях:<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor.txt.html<br />
<br />
http://www.opennet.ru/base/net/opennms_monitor2.txt.html<br />
<br />
А также на сайте http://www.opennms.org</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6756OpenNMS2008-11-27T14:37:52Z<p>SlavaDubrovskiy: /* Установка */</p>
<hr />
<div>== OpenNMS на ALT== <br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
=== Предназначение пакетов ===<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
=== Установка ===<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<code>apt-get install opennms opennms-webapp-jetty</code><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<code>/usr/share/opennms/bin/install -ids</code><br />
<br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <code>/usr/share/opennms/bin/install --help</code><br />
<br />
После чего можем запустить сервис:<br />
<br />
<code>service opennms start</code></div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=OpenNMS&diff=6755OpenNMS2008-11-27T14:35:39Z<p>SlavaDubrovskiy: Новая: == OpenNMS на ALT== OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта нахо...</p>
<hr />
<div>== OpenNMS на ALT== <br />
<br />
OpenNMS - система мониторинга сетевой инфраструктуры уровня предприятия. Сайт проекта находится [http://opennms.org тут]<br />
<br />
=== Установка ===<br />
Программа поделена на пакеты:<br />
<br />
'''opennms''' - метапакет для быстрой установки<br />
<br />
'''opennms-core''' - серверная часть программы. Тут находится демон который занимается мониторингом.<br />
<br />
'''opennms-contrib''' - некоторые дополнительные скрипты которые не вошли в core<br />
<br />
'''opennms-webapp-jetty''' - веб интерфейс для просмотра статистики интегрированый в opennms сервер. Если вы устанавливаете opennms-core и вебинтерфейс на один компьютер то разработчики рекомендуют именно его и использовать.<br />
<br />
'''opennms-webapp-standalone''' - веб интерфейс для просмотра статистики без opennms сервера. Если вы планируете веб интерфейс устанавливать на одном компьютере, а opennms-core на другом, то можно использовать этот пакет. При этом потребуется Tomcat.<br />
<br />
'''opennms-remote-poller''' - это часть программы для распределенного мониторинга<br />
<br />
'''opennms-doc''' - документация<br />
<br />
Предполагается что все устанавливается на один компьютер. Поэтому делаем:<br />
<br />
<code>apt-get install opennms opennms-webapp-jetty</code><br />
<br />
Для установки потребуется сервер базы данных PostgreSQL (Использовать можно любой версии >= 7.4), java<br />
После этой команды мы получаем установленный демон и вебинтерфейс.<br />
<br />
Нужно запустить сервер PostgreSQL если он еще не запущен. И затем требуется создать базу данных и загрузить данные. Для этого выполняем команду:<br />
<br />
<code>/usr/share/opennms/bin/install -ids</code><br />
Если требуется указать логин и пароль администратора для подключения к базе данных то дополнительно нужно указать их с помощью соответствующих ключей - см. вывод <code>/usr/share/opennms/bin/install --help</code><br />
<br />
После чего можем запустить сервис:<br />
<br />
<code>service opennms start</code></div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Xen&diff=3096Xen2008-08-28T20:01:03Z<p>SlavaDubrovskiy: /* Установка GRUB */</p>
<hr />
<div>[[Категория:Admin]]<br />
{{викифицировать}}<br />
Осторожно пока UNDERCONSTRUCTION<br />
=== Введение ===<br />
Xen - это система [[ruwp:Виртуализация|виртуализации]]. Xen представляет собой паравиртуальный монитор виртуальных машин, т.е. позволяет запускать несколько операционных систем одновременно, либо с ядрами специального вида, либо немодифицированных (при наличии аппаратной поддержки паравиртуализации в CPU).<br />
<br />
==== Hypervisor ====<br />
Это собственно Xen - маленькое ядро (в разы меньше, чем ядро опероационной системы), загружаемое первым и управляющее работой виртуальных машин. Обычно находится в /boot/xen.gz. Гипервизор исполняется в нулевом круге защиты CPU. Гипервизор умеет управлять памятью, процессором и частично ACPI, а также предоставляет API гипервызовов (hypercall), с помощью которых ядра операционных систем в виртуальных машинах могут с ним общаться. Загрузившись, гипервизор загружает ядро dom0.<br />
<br />
==== Domain 0 ====<br />
Он же dom0 - привилегированная виртуальная машина, имеющая доступ к практически всему железу и имеющая права давать гипервизору команду на запуск новых виртуальных машин. На практике это обычная Linux-система, единственное, чем она ограничена - это объёмом памяти. Обычно в такой системе установлен минимальный набор программ, демон управления xen, утилиты для упраления xen, утилиты для создания виртуальных машин, и программный сетевой мост (bridge) который позволяет другим виртуальным машинам попадать в сеть. Виртуальные жесткие диски, предоставляемые Xen, также экспортируются из dom0. Обычно это файлы подключеные через loopback/blktap, либо LVM тома.<br />
<br />
==== Domain U ====<br />
domU - это собственно виртуальная машина, запускаемая dom0. Получает свой участок памяти, жёсткие диски и сетевой интерфейс. Может быть запущена, остановлена, преостановлена, перезагруженна, задамплена на диск, перемещена в том числе без остановки на другую машину (live migration).<br />
<br />
==== В чём отличие в ALT Linux ядер dom0 от domU ====<br />
<br />
Ядро dom0 может работать как в dom0, так и в domU, собрано со всеми стандартными опциями наших ядер.<br />
DomU ядра могут работать только в domU, поддеживают только PCI устройства (так как только их можно прокинуть в domU) и имеет включенную в само ядро поддержку ext3 и жестких дисков. Сделано это для того, чтобы в большинстве случаев domU ядра могли работать без initrd.<br />
<br />
== Установка == <br />
=== Установка загрузчика === <br />
====Ещё немного теории ====<br />
Проблема в том что xen имеет загрузочный формат multiboot. Это формат позволяет загружать ядро, и пакеты с модулями прямо в загрузчике. Роль ядра у<br />
нас выполняет гипервизор, роль модулей ядро линукса, initrd и возможно файл с политиками. Зачем это? Гипервизор не умеет работать с жесткими дисками<br />
поэтому загручик должен загрузить ядро dom0 и его initrd в память, и делает он это обычно до запуска гипервизора. Гипервизор загрузившись находит и <br />
запускет ядро dom0, а оно уже вытягивет initrd как обычное ядро линукса.<br />
<br />
Проблема в том что во-первых на практике единственным нормальным загручиком работющим с multiboot явлется grub. Хотя для сетевой загрузки можно использовать pxelinux, его аналог extlinux при локальной загрузке крайне неудобен. <br />
<br />
Дефалтным загручиком в ALT Linux является lilo, grub существует но плохо поддеживается и в данный момент поддеживается только под i586. Поэтому для начала нам надо установить GRUB.<br />
<br />
==== Установка GRUB ==== <br />
GRUB достаточно плохо ставиться из линукса, поэтому лучше его поставить из него самого.<br />
Для этого берём от [ftp://ftp.altlinux.ru/pub/people/silicium/grub.iso.bz2 сюда] ISO образ(97kb). Сначала копируем из него директорию grub себе в boot.(чтобы была директория /boot/grub/) Далее делаем конфиг в /boot/grub/menu.lst. Для начала сделаем чтобы GRUB загружал обычные ядра.<br />
<br />
<pre>timeout 5<br />
color black/cyan yellow/cyan<br />
default 0<br />
<br />
title default<br />
kernel /boot/vmlinuz root=/dev/sda1 vga=normal<br />
initrd /boot/initrd.img</pre><br />
<br />
Затем нужно закачаный файл разакхивировать из bz2 и полученный iso записать на диск с которого и загрузиться. Загружаетесь и попадаете в консоль GRUB. Там делаем:<br />
<pre>root(hd0,1)<br />
setup(hd0)<br />
reboot</pre><br />
Важно помнить что:<br />
*Граб нумерует всё с нуля<br />
*Диски нумеруется в порядке который выдает BIOS и обычно совпадает с порядком загрузки(тоесть hd0 это диск загружаемый по умолчанию)<br />
*разделы нумеруются тоже с нуля<br />
*В грабе работает TAB тоесть root (hd0,<tab> покажет таблицу разделов.<br />
*В приципе GRUB можно поставить в раздел и грузить его из lilo через other<br />
<br />
Если у нас загрузилось обычное ядро можно переходить к установке собственно XEN.<br />
<br />
=== Установка Xen ===<br />
==== Установка самого XEN ====<br />
<tt> # apt-get install kernel-image-xen-dom0 kernel-modules-необходимые-xen-dom0 xen-hypervisor xen </tt><br />
<br />
Редактируем /boot/grub/menu.lst примерно до такого:<br />
<br />
<pre>timeout 5<br />
color black/cyan yellow/cyan<br />
default 0<br />
<br />
title default<br />
kernel /boot/vmlinuz root=/dev/sda1 vga=normal<br />
initrd /boot/initrd.img<br />
<br />
title XEN<br />
kernel /boot/xen.gz dom0_mem=512M<br />
module /boot/vmlinuz-2.6.18-xen-dom0-alt6.M40.1 root=/dev/sda1<br />
module /boot/initrd-2.6.18-xen-dom0-alt6.M40.1.img</pre><br />
<br />
Обратите внимание на двойную module — это обязательно.<br />
<br />
Перезагружаемся в XEN-ядро, далее:<br />
<br />
<tt> # service xend start </tt><br />
<br />
Проверим, что все в порядке:<br />
<br />
<pre>[root@wintermute ~]# xm info<br />
host : wintermute.tld<br />
release : 2.6.18-xen-dom0-alt6.M40.1<br />
version : #1 SMP Tue Mar 4 22:42:44 MSK 2008<br />
machine : i686<br />
nr_cpus : 4<br />
nr_nodes : 1<br />
sockets_per_node : 2<br />
cores_per_socket : 1<br />
threads_per_core : 2<br />
cpu_mhz : 2392<br />
hw_caps : bfebfbff:00000000:00000000:00000080:00004400<br />
total_memory : 4095<br />
free_memory : 3540<br />
xen_major : 3<br />
xen_minor : 1<br />
xen_extra : .2<br />
xen_caps : xen-3.0-x86_32p<br />
xen_scheduler : credit<br />
xen_pagesize : 4096<br />
platform_params : virt_start=0xf5800000<br />
xen_changeset : unavailable<br />
cc_compiler : gcc version 4.1.1 20070105 (ALT Linux, build 4.1.1-alt11)<br />
cc_compile_by : builder<br />
cc_compile_domain : rio.altlinux.org<br />
cc_compile_date : Tue Mar 4 23:38:33 MSK 2008<br />
xend_config_format : 4<br />
</pre><br />
<br />
Поставим xend в автозапуск:<br />
<br />
<tt> # chkconfig --level 345 xend on </tt><br />
==== Настройка сети в XEN ====<br />
Ещё есть проблема актуальная для XEN начиная с версии 3.2.0 - там страшно кривой скрипт для запуска сетевого бриджа. Решается она переносом настройки бриджа в /etc/net.<br />
<br />
===== Зачем нужен бридж? =====<br />
В XEN сеть реализована так: для каждой(в том число dom0) виртуальной машины создаеться n виртульных сетевых интерфейсов. Каждый представляет собой две виртуальные сетевые карты соедниёный между собой одна находящаяся в DomX под наваением ethY, а другая в Dom0 под названием vifX.Y (где X - номер виртульной машины а Y больше или равно 0 и меньше n). На этом то что предоставляет Xen сам закачивается.<br />
<br />
Далее вопрос: что с этим всем делать? <br />
<br />
Вариант 1. привоить каждому интерфейсу по ip адресу. так чтобы каждая пара была в своей сети. Поскольку в этом варианте данные ходят между dom0 и каждым доменом в отделности, при этом домены не имею выхода во внешню сеть этот вариант используется редко.<br />
<br />
Вариант 2. Продолжение первого, но при этом организовать например routing пакетов во внешнию сеть и между виртальными машинами. Тоесть dom0 становиться роутером этой сети.<br />
<br />
Вариант 3. Продолжение 2го но ещё включается NAT.<br />
<br />
Вариант 4. Сделать bridge и объеденить им реальную сетевую карту (она переминовываеться в p<oldname>, интерфейс лишается ip и mac адресов) и коннекторы во все остальные вирутальные машины. тоесть dom0 выполняет функцию свича. Любопытно что, в xen до 3.2 в dom0 ip и mac старой сетевухи присваеваеться интерфейсу ethY, а в 3.2 писваевается бриджу.<br />
<br />
Таким образом bidge является самым удобным способом работы виртуальных машин с сетью, так как для сети машина с xen выглядит как свич на котором висят машины.<br />
<br />
Для работы разных вариантов в xen есть скрипты по паре для разных вариантов, один (network-*) запускаеться при запуске системы и настраивает сеть в целом и vif-* который вызывается при старте каждого нового сетевого интерфейса в виртуальных машинах.<br />
===== Собственно настройка бриджа =====<br />
Стоит рассказать про настройку брижда подробнее, так как это самый удобный и востребованый вариант сети.<br />
<br />
==== Установка виртуальной машины ====<br />
Ставим kernel-image-xen-domU:<br />
<br />
<br />
<tt> # apt-get install kernel-image-xen-domU </tt><br />
<br />
Делаем образ машины. Я использовал один из собственноручно приготовленных openvz-темплейтов.<br />
<br />
<tt> # mkdir -p /xen/alt </tt><br />
<tt> # dd if=/dev/zero of=/xen/alt.img bs=1M seek=10240 count=0 </tt> — создаем 10 ГБ «раздел» для машины<br />
<tt> # mkfs.ext3 /xen/alt.img </tt><br />
<tt> # mount -o loop /xen/alt.img /xen/alt/ </tt><br />
<tt> # cd /xen/alt && tar xf /altlinux-4.0.tar.gz </tt><br />
<br />
Поставим внутрь будущей виртуальной машины domU-ядро:<br />
<br />
<tt> # chroot /xen/alt/ /bin/bash </tt><br />
<tt> # vim /etc/resolv.conf </tt> — установим нужный nameserver<br />
<tt> # vim /etc/apt/sources.list </tt> — установим правильный репозиторий (можно пропустить, если устраивает тот, что преднастроен внутри контейнера)<br />
<tt> # apt-get update && apt-get install kernel-image-xen-domu </tt><br />
<br />
Поправим /etc/fstab в чруте, чтобы выглядело примерно так:<br />
<pre>/dev/hda1 / ext3 defaults 0 1</pre><br />
<br />
Выходим из чрута:<br />
<br />
<tt> # exit </tt><br />
<br />
Отмонтируем чрут:<br />
<tt> # umount /xen/alt </tt><br />
<br />
Ставим kernel-image-xen-domU в dom0-систему:<br />
<br />
<tt> # apt-get install kernel-image-xen-domU </tt><br />
<br />
Пишем конфигурационный файл /etc/xen/alt:<br />
<pre>kernel = "/boot/vmlinuz-2.6.18-xen-domU-alt6"<br />
memory = 256<br />
name = "alt"<br />
root = "/dev/hda1 ro"<br />
extra = "xencons=tty"<br />
disk = [ 'file:/xen/alt.img,hda1,w' ]</pre><br />
<br />
Пробуем запустить:<br />
<tt> # xm create -c alt </tt><br />
<br />
В конце концов должен выдать приглашение на логин, куда собственно и нужно логиниться.<br />
<br />
Для выхода из консоли нажать Ctrl-].</div>SlavaDubrovskiyhttps://www.altlinux.org/index.php?title=Alterator/role-setup&diff=331Alterator/role-setup2008-07-28T16:00:38Z<p>SlavaDubrovskiy: Import from freesource.info</p>
<hr />
<div>[[Category:Sisyphus]]<br />
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/Alterator/role-setup}}<br />
<br />
=== На этой страничке предлагается описывать типичные тематические роли для альтератора, а также что хотелось бы иметь. ===<br />
<br />
==== Предлагается такая схема: ====<br />
* Название роли.<br />
* Описание необходимого функционала. Т.е. ответ на вопрос что должен делать альтератор в данной роли в целом.<br />
* Список используемых модулей альтератора<br />
* Описание каждого модуля и что должен делать каждый модуль<br />
* Описание взаимосвязи и взаимодействия вышеперечисленных модулей между собой<br />
<br />
<br />
==== Инсталятор. ====<br />
Цель: Установить ОС на компьютер. При этом проходятся такие этапы установки:<br />
# Сбор сведений. <br />
:::На этом этапе загружается ядро, и производится сбор сведений у пользователя: Выбор языка, разметка диска, куда и как установить загрузчик, пароли и пользователи. настройка сети и т.д. все что идет до установки базовой системы. Результатом работы этого этапа является получение autoinstall.shm. В конце пользователю показываются все собранные данные и задается вопрос: - "Произвести установку?" Никаких изменений на диске на этом этапе не производится.<br />
# Установка. На этом этапе запускается по ранее полученному сценарию установка.<br />
# Настройка на тематическую роль в целом и каждый сервис в частности. После установки на этом этапе предлагается выбрать роль компьютера. Пользователь может отказаться от выбора, и тогда этот выбор нужно предложить при первом заходе в альтератор. В зависимости от выбранной роли производится настройка.<br />
<br />
Преимущества разделения сбора сведений и самой установкой вижу такие:<br />
1. Экономит время. Не нужно ждать пока выполнится каждый шаг и следить а закончился ли он?<br />
2. Гарантирует полностью рабочий autoinstall.scm.<br />
<br />
<br />
==== Десктоп ====<br />
Цель: Настроить десктоп.<br />
Здесь многое уже сделано. (TODO: опишите кто хочет)<br />
<br />
==== Оффисный сервер (интранет сервер) ====<br />
Цель: Использование альтератора для администрирования отдельного сервера в рамках одной организации<br />
На сервере используются: <br />
# Почта: postfix+dovecot+amavis+clamav+spamassassin<br />
# Файловый сервер: samba, ftp, ntfs<br />
# Http сервер: apache+php или nginx+php<br />
# Прокси сервер: squid+havp<br />
# Севрвер времени: openntp<br />
# Сервер базы данных: [[Alterator/MySQL|MySQL]], [[Alterator/PostgreSQL|PostgreSQL]]<br />
<br />
<br />
Здесь нужно разделить первоначальную настройку и само администрирование.<br />
Первоначальная настройка и получение работоспособного сервера сервера должна осуществляться полностью в автоматическом режиме. Т.е. от пользователя требуется только указать какую роль выполняет данный сервер и получить работоспособный, настроенный сервер. Этот этап может выполняется как в инсталяторе после выбора соответствующей роли, так и отдельно уже после установки.<br />
<br />
Администрирование уже подразумевает управление всеми этими сервисами. И это должны быть отдельные модули, которые будут предоставлять высокоуровневое управление.<br />
Возможно здесь нет необходимости использовать openvz<br />
<br />
==== Терминальный сервер ====<br />
TODO<br />
<br />
==== Интернет сервер ====<br />
Цель: Использование альтератора для администрирования отдельного сервера на площадке провайдера.<br />
Несколько расширенная реализация интранет сервер. Используется [[Alterator/OpenVZ|OpenVZ]] для респределения сервисов по контейнерам. Также необходим интерфейс управления не только сервисами, но и интерфейс для пользователя, откуда пользователь может управлять своим аккаунтом: сменить пароль, управлять почтой (сортировка, обучение антиспама, вебпочта), хранить свои данные, просматривать свою статистику и т.д.<br />
<br />
На сервере используются: <br />
# Почта: postfix+dovecot+amavis+clamav+spamassassin<br />
# Файловый сервер: samba, ftp, ntfs<br />
# Http сервер: apache+php или nginx+php<br />
# Прокси сервер: squid+havp<br />
# Севрвер времени: openntp<br />
# Сервер базы данных: [[Alterator/MySQL|MySQL]], [[Alterator/PostgreSQL|PostgreSQL]]<br />
<br />
<br />
==== Сервер хосттинг-провайдера ====<br />
Цель: предоставить средства для управления хостингом.<br />
Схема серверов и сервисов для хостинга.<br />
Правила которые она должна выполнять:<br />
<br />
1.Все сервисы должны выполняться в VPS<br />
2.Один сервис (или логическая связка) — один VPS<br />
3.База пользователей должна быть одна<br />
4.Управление должно осуществляться из одного места<br />
5.Возможность отключить не используемый сервис. Модульная система.<br />
6.Простая система обновлений на всех серверах.<br />
<br />
Т.о. для выполнения этих правил схема серверов и сервисов будет такая:<br />
<br />
I.Сервер HN. Является носителем VPS. Будем рассматривать его как минимальная структурная единица предоставляющая все сервисы в данном датацентре (ДЦ). При большем количестве серверов в ДЦ возможно перераспределение VPS по носителям.<br />
Обязательные VPS какие должны располагаться на HN:<br />
1.VPS служебный. На нем хранится база пользователей и скрипты по управлению. В случае отказа основного сервера может стать мастером для управления. Обычно это один VPS.<br />
2.VPS для хостинга. На нем хранятся пользовательские скрипты. Установлен вебсервер и php. Количество не ограничено.<br />
3.VPS для почты. На нем хранится пользовательская почта и работает MTA+антиспам+антивирус. Количество не ограничено.<br />
4.VPS для mysql. На нем располагаются базы данных пользователей и работает mysql<br />
Не обязательные VPS:<br />
5.VPS для java хостинга. На нем установлен tomcat. Количество не ограничено.<br />
6.VPS для [[Alterator/PostgreSQL|PostgreSQL]]. Располагаются базы для postgresql и работает сервер. Количество не ограничено.<br />
<br />
<br />
Такая схема дает такие преимущества:<br />
1.Обеспечит безопасность и большую отказоустойчивость. Например, если пользовательские скрипты загрузили 1 VPS, то работоспособность других VPS сохраняется.<br />
2.Легко предоставлять пользователям те настройки которые они хотят. Например часто хотят видеть чтобы php работал как модуль. Разбив пользователей на небольшие группы, мы сможем предоставлять гибкие настройки.<br />
3.Можно в пределах одного ДЦ держать 1 VPS с postgresql т.к. пользователей использующих эту базу не много. Или один почтовый сервер и заботиться о работоспособности одного сервера (проверять в антиспамовских базах и т.д.).<br />
4.Единая база пользователей, единый интерфейс управления всеми пользователями, сервисами и серверами.<br />
<br />
Необходимы следующие возможности:<br />
# Административные модули:<br />
* Модуль управления аккаунтами (поиск по домену, имени; блокировка, бэкап, трансфер, управление доступом к ssh, mysql, смена пароля, контактного e-mail).<br />
* Модуль создания квот на ресурсы (дискового пространства, количества баз, количество доменов, алиасов к домену, возможность предоставления ssh доступа и т.д.)<br />
# Пользовательские модули:<br />
* Модуль управления доменами (создание, удаление, парковка, дополнительные домены и т.д.)<br />
* Модуль управления дополнительными почтовыми аккаунтами для данного домена.<br />
* Модуль управления базами для mysql и pgsql (модуль должен создавать/удалять пользовательские базы согласно квотам)</div>SlavaDubrovskiy