Настройка параметров openvz

Материал из ISPWiki

Перейти к: навигация, поиск

VDSmanager оперирует не со всеми лимитами предоставляемыми виртуализацией openvz, однако у вас есть возможность обойти это ограничение. К тому же вы можете перопределить значения автоматически рассчитанных параметров. Для этого можно воспользоваться системой событий. Описываем событие, создавая файл /usr/local/ispmgr/etc/vdsmgr_mod_resource.xml с примерно таким содержимым

 <?xml version="1.0" encoding="UTF-8"?>
 <mgrdata>
    <handler name="resource.pl" type="cgi">
        <event after="yes">vds.edit</event>
    </handler>
 </mgrdata>

Далее пришем обработчик события, создавая файл /usr/local/ispmgr/addon/resource.pl

 #!/usr/bin/perl
 #
 
 use CGI qw/:standard/;
 
 $q = new CGI;
 
 print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<doc>\n";
 
 $id = $q->param("id");
 
 if ($q->param("sok")) {
     # set values
     $mem = $q->param("mem");
     system("/usr/sbin/vzctl set $id --oomguarpages ". $mem*1024 ." --save");
 } else {
     # get values
     # nothing to do
 }
 
 print "</doc>\n";

Данный пример установит параметр oomguarpages на основе вашей формулы. Обращаем ваше внимание что параметры работы с памятью задаются в страницах, 1 страница равно 4096 байта.

Если вы переопределите параметр VMGUARPAGES вам нужно будет так же написать обработчик возвращаемого значения лимита памяти. Иначе VDSmanager расчитает лимит памяти по своей формуле:

SoftLimit(ve.GetField("VMGUARPAGES")) * 4 / 1024;

Если вам необходимо добавить в форму свойств виртуального сервера дополнительные параметры, смотрите пример по добавлению своих полей Добавляем_новое_поле только вместо записи параметров в var/user.data вам нужно вызывать vzctl set, а для их получения читать файл /etc/vz/conf/ID.conf

Была ли эта информация полезной? Да | Нет
Личные инструменты