OpenVZ Forum


Home » International » Russian » Вычищаются виртуальные интерфейсы (алиасы) при старте
Вычищаются виртуальные интерфейсы (алиасы) при старте [message #1759] Wed, 22 February 2006 21:57 Go to next message
Dmitry Koterov is currently offline  Dmitry Koterov
Messages: 40
Registered: November 2005
Member
Заметил одну, крайне неприятную, вещь в /etc/sysconfig/vz-scripts/dists/scripts/redhat-add_ip.sh (и аналогичных), хочу предложить решение.

Там перед стартом виртуальной машины делается что-то типа:

rm -rf /etc/sysconfig/network-scripts/${VENET_DEV_CFG}:*

(в разных вариациях). Потом скрипты venet0:* в /etc/sysconfig/network-scripts создаются заново, с нуля - на основе директивы IP_ADDRESS в *.conf, однако все, что я руками там направлю, безвозвратно исчезает.

Например, если я хочу завести внутри виртуальной машины ПРИВАТНЫЙ ip-адрес, который был бы НЕ ВИДЕН снаружи, я просто создаю файл /etc/sysconfig/network-scripts/venet0:123 и прописываю туда параметры. Все прекрасно работает, но при следующей перезагрузке виртуальной машины мой вручную созданный файл будет удален!

Таким образом, не выходит создавать частные IP-адреса (невидимые снаружи) внутри виртуальной машины, потому что vzctl их периодически удаляет.

Один из вариантов решения - заменить в скриптах

rm -rf ${VENET_DEV_CFG}:*

на что-то типа

rm -rf ${VENET_DEV_CFG}:[0-9]*

Таким образом, я смогу создавать алиасы вида venet0:p123 (т.е. начинающиеся НЕ на цифру), не опасаясь, что они будут потом удалены при старте. С другой стороны, vzctl тоже будет работать правильно, ведь файлы, сгенерированные им автоматически, всегда имеют цифру после ":".

Собственно, хотелось бы знать, что думают разработчики по поводу включения данного замечания в следующие релизы.
Re: Вычищаются виртуальные интерфейсы (алиасы) при стар [message #1762 is a reply to message #1759] Thu, 23 February 2006 09:49 Go to previous messageGo to next message
dev is currently offline  dev
Messages: 1693
Registered: September 2005
Location: Moscow
Senior Member

Я честно говоря даже не знаю что и думать %)
В принципе, наверное, так сделать можно... Я только не понимаю зачем может понадобиться private IP не видимый никем. Неужели Вам 127.0.0.1 мало? ))


http://static.openvz.org/userbars/openvz-developer.png
Re: Вычищаются виртуальные интерфейсы (алиасы) при стар [message #1766 is a reply to message #1762] Thu, 23 February 2006 11:38 Go to previous message
Dmitry Koterov is currently offline  Dmitry Koterov
Messages: 40
Registered: November 2005
Member
Очень простая причина.

Во-первых, в документации написано, что IP-адреса, назначенные внутри самой виртуальной машине, но НЕ прописанные в *.conf, являются локальными внутри виртуальной машины. По-моему, очень разумное и ожидаемое поведение.

Во-вторых, я вчера занимался тем, что взял все содержимое сильно нагруженной реальной машины (там был хостинг, примерно 900 аккаунтов), со старинным линуксом и эклектичными настройками, и просто скопировал ее внутрь новой openvz-виртуальной машины. При этом все, за исключением квот ( http://forum.openvz.org/index.php?t=tree&th=140&mid= 1767) и IP-адресов заработало (и это несмотря на различие архитектур - i386 против x86_64, и различие ядер - 2.4 против 2.6; о чудо!). После того, как я поставил chattr +i на файлы /etc/sysconfig/network-scripts/venet0:*, заработали и IP-адреса. Но - я не хочу их привязывать к реальному интерфейсу, потому что пока запустил все в тестовом режиме, и рядом по-прежнему стоит "старая" машина. Если бы я сделал адреса публичными, то был бы конфликт со стоящим рядом хостом, который я пока отключать не хочу.

Как Вы понимаете, менять адреса внутри виртуальной машине я не могу, потому что это был бы: а) нечистый эксперимент, и б) я уже не помню, в скольких конфигах за них идет завязка. Соответственно, приватные адреса (на время теста) - очень удобная штука.

Могу еще поделиться одной мыслью. Мне, когда я делал систему поддержки виртуальных хостов в Денвере (http://denwer.ru), пришлось писать скрипт, добавляющий/удаляющий записи из C:\windows\system32\drivers\etc\hosts. Так вот, чтобы не было конфликтов с "ручной" правкой этого файла, я поступал следующим образом: при перезапуске вычищал из hosts не ВСЕ, а только те записи, которые сам же скрипт туда добавил В ПРОШЛЫЙ раз. Т.е. получается так: "вычищаем то, что в прошлый раз сами и нагадили". В применении к скриптам openvz такой метод тоже сработал бы: при изменении venet0:* - запоминать, какие именно файлы создавались, а при перезапуске - только их и удалять, не трогая все остальные. Но это, правда, более сложно; буквенные алиасы помогли бы (или даже наоборот сделать: чтобы скрипты openvz создавали файлы "venet0:vz123", и удаляли только "venet0:vz*"; так было бы даже удобнее, пожалуй).

[Updated on: Thu, 23 February 2006 11:45]

Report message to a moderator

Previous Topic: loadavg баг или фича?
Next Topic: DEBIAN
Goto Forum:
  


Current Time: Thu Nov 07 21:05:03 GMT 2024

Total time taken to generate the page: 0.04694 seconds