OpenVZ Forum


Home » International » Russian » Порядок запуска VE
Порядок запуска VE [message #33673] Fri, 31 October 2008 09:31 Go to next message
rusty_angel is currently offline  rusty_angel
Messages: 3
Registered: October 2008
Location: Dzerzhinsk, Russia
Junior Member
Можно ли как-то управлять порядком, в котором запускаются VE? Так вышло, что (условно) В 1001 nss_ldap и pam_ldap, а LDAP-сервер — в 1002. Соответственно, сервисы в 1001 (апач, например) могут не подниматься, потому что пытаются запуститься раньше, чем будет доступен LDAP.
Re: Порядок запуска VE [message #33676 is a reply to message #33673] Fri, 31 October 2008 10:59 Go to previous messageGo to next message
maratrus is currently offline  maratrus
Messages: 1495
Registered: August 2007
Location: Moscow
Senior Member
Здравствуйте,

не могли бы вы пояснить, что значит "управлять порядком"?
Вы сами выбираете порядок, используя команду "vzctl start". Или вы используете что-то еще для старта VE?
Re: Порядок запуска VE [message #33677 is a reply to message #33676] Fri, 31 October 2008 11:04 Go to previous messageGo to next message
rusty_angel is currently offline  rusty_angel
Messages: 3
Registered: October 2008
Location: Dzerzhinsk, Russia
Junior Member
При загрузке VE запускаются в порядке возрастания VEID. Мне нужно, чтобы 1001 стартовала гарантированно после 1002.
(В идеале - после того, как будет поднят LDAP-сервер в 1002, но это уже точно только ручками, думаю)
Re: Порядок запуска VE [message #33678 is a reply to message #33677] Fri, 31 October 2008 11:24 Go to previous messageGo to next message
maratrus is currently offline  maratrus
Messages: 1495
Registered: August 2007
Location: Moscow
Senior Member
То есть имеется в виду загрузка всей HN, понятно.

Это делает /etc/init.d/vz скрипт.
А именно стартует те VE, у которых параметрв в conf файле ONBOOT равен "yes".
Поэтому:

- вы можете не стартовать 1001 VE, а запускать руками потом.
- либо немного изменить логику /etc/init.d/vz скрипта

В строчках (в функции start_ves())
velist=`grep -l '^ONBOOT=yes\|^ONBOOT=\"yes\"' [0-9]*.conf 2>/dev/null |
                sed -e 's/.conf//g' | sort -n`

"sort -n" заменить на "sort -r"


velist=`grep -l '^ONBOOT=yes\|^ONBOOT=\"yes\"' [0-9]*.conf 2>/dev/null |
                sed -e 's/.conf//g' | sort -r`
Re: Порядок запуска VE [message #33679 is a reply to message #33678] Fri, 31 October 2008 11:27 Go to previous messageGo to next message
rusty_angel is currently offline  rusty_angel
Messages: 3
Registered: October 2008
Location: Dzerzhinsk, Russia
Junior Member
Простым sort -r, боюсь не обойдётся, хочу произвольно задавать порядок. Спасибо, что указали место, сам сходу найти не смог. Буду кодить Smile
Re: Порядок запуска VE [message #34460 is a reply to message #33673] Wed, 07 January 2009 14:56 Go to previous messageGo to next message
bsv999 is currently offline  bsv999
Messages: 10
Registered: July 2008
Junior Member
Возникла такая же проблема - запуск VE с NFS происходит после запуска VE с httpd. Пришёл к выводу, что правильнее (и проще) менять порядок запуска VE с помощью изменения VEID.
То есть, VEID надо присваивать в порядка возрастания согласно порядка запуска служб.
В wiki нашёл страничку с описанием скрипта клонирования VE. Немного изменил его.
Результат:

#Change VEID - change Start Time
OLDVE=101 NEWVE=102
vzctl stop $OLDVE
mv /var/lib/vz/root/$OLDVE /var/lib/vz/root/$NEWVE
mv /etc/vz/conf/$OLDVE.conf /etc/vz/conf/$NEWVE.conf
mv /var/lib/vz/private/$OLDVE /var/lib/vz/private/$NEWVE
vzctl start $NEWVE

Конечно, его можно доработать (вставить проверку наличия NEWVE).
Хотел добавить в WIKI, но не нашёл, как это сделать...
P.S. Ночью заметил, что вновь переименованный VE не пингуется из сети... Причину не искал - всё отменил взад.

[Updated on: Thu, 08 January 2009 11:04]

Report message to a moderator

Re: Порядок запуска VE [message #34462 is a reply to message #34460] Wed, 07 January 2009 18:06 Go to previous messageGo to next message
sHaggY_caT is currently offline  sHaggY_caT
Messages: 144
Registered: August 2008
Location: Moscow, Russian Federatio...
Senior Member

Я решила проблему так:

[shaggycat@hn ~]$ cat /etc/rc.local | tail -2
sleep 12
vzctl start 5002
[shaggycat@hn ~]$   


Здесь 5002 VPS с unfsd. Запускается только тогда, когда запустится все, что она монтирует.

Возможно, править стартовые скрипты правильнее.
Про синтаксис MediaWiki можно почитать тут:

http://www.mediawiki.org/wiki/Help:Editing_pages/ru

А зачем использовать именно такой код?

vzctl stop $OLDVE
mv /var/lib/vz/root/$OLDVE /var/lib/vz/root/$NEWVE


Директория root используется работающим VE, и... может быть поймет кто-то еще(если я по-глупости чего-либо не замечаю), я не поняла, как он все-таки работает.

Вы хотите изменять номер VE каждый раз, во время загрузки HN?


IT-outsource for UNIX servers,
http://ha-systems.ru
Re: Порядок запуска VE [message #34467 is a reply to message #34462] Thu, 08 January 2009 10:53 Go to previous messageGo to next message
bsv999 is currently offline  bsv999
Messages: 10
Registered: July 2008
Junior Member
1. Смена VEID делается при настройке. Ну, допустим, из одного VE (samba+ldap) я сделал два. Или решил один из каталогов для apache (где картинки хранятся) перенести на сервер nfs. И хочу поменять порядок запуска двух VE.
2. Я не знаю, надо ли переименовывать каталог в root (может, новый каталог создастся сам, может нет). Просто мне нравится делать что-то по шагам, с уверенностью, что есть нужный каталог и нет ненужного каталога от старого VE. Также, я подозреваю, что на разных версиях OpenVZ этот скрипт поведёт себя по-разному.
3. При таком переносе новый VE не пингуется из сети. Пингуется старый IP-адрес. Заметил это только поздно ночью...
Re: Порядок запуска VE [message #34469 is a reply to message #34467] Thu, 08 January 2009 19:03 Go to previous messageGo to next message
sHaggY_caT is currently offline  sHaggY_caT
Messages: 144
Registered: August 2008
Location: Moscow, Russian Federatio...
Senior Member

Если я правильно поняла, Вы хотите просто клонировать контейнер, и дать ему нужный номер, а старую версию контейнера просто удалить.

Старый IP пингуется по тому, что IP-адрес указывается в конфигурационном файле контейнера, который Вы сами и переносите:

mv /etc/vz/conf/$OLDVE.conf /etc/vz/conf/$NEWVE.conf


Вы можете добавить в свой скрипт команду вида:

vzctl set $NEWVE --ipadd $IP --save

Советую использовать передачу параметров с stdin как аргументов команды:

http://www.opennet.ru/docs/RUS/bash_scripting_guide/c11620.html


То есть, передавать аргументы скрипту так:

script.rc 123.211.333.34 120 121

И в самом скрипте их считывать так:

IP=$1
OLDVE=$2
NEVE=$3


bsv999 wrote on Thu, 08 January 2009 05:53

1. Смена VEID делается при настройке. Ну, допустим, из одного VE (samba+ldap) я сделал два. Или решил один из каталогов для apache (где картинки хранятся) перенести на сервер nfs. И хочу поменять порядок запуска двух VE.
2. Я не знаю, надо ли переименовывать каталог в root (может, новый каталог создастся сам, может нет). Просто мне нравится делать что-то по шагам, с уверенностью, что есть нужный каталог и нет ненужного каталога от старого VE. Также, я подозреваю, что на разных версиях OpenVZ этот скрипт поведёт себя по-разному.
3. При таком переносе новый VE не пингуется из сети. Пингуется старый IP-адрес. Заметил это только поздно ночью...



IT-outsource for UNIX servers,
http://ha-systems.ru
Re: Порядок запуска VE [message #34470 is a reply to message #34469] Thu, 08 January 2009 20:26 Go to previous message
bsv999 is currently offline  bsv999
Messages: 10
Registered: July 2008
Junior Member
Спасибо. Буду разбираться...
Previous Topic: NFS в VE = зависание при остановке
Next Topic: vzctl exec. Bug?
Goto Forum:
  


Current Time: Fri Sep 27 18:12:47 GMT 2024

Total time taken to generate the page: 0.04327 seconds