Home » International » Russian » Вычищаются виртуальные интерфейсы (алиасы) при старте
Вычищаются виртуальные интерфейсы (алиасы) при старте [message #1759] |
Wed, 22 February 2006 21:57 |
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 #1766 is a reply to message #1762] |
Thu, 23 February 2006 11:38 |
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
|
|
|
Goto Forum:
Current Time: Thu Nov 07 21:05:03 GMT 2024
Total time taken to generate the page: 0.04694 seconds
|