Настройка параметров 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
