Виртуализация машины или виртуализация на уровне ОС (KVM vs OpenVZ)?
Надо понимать что это, зачем это нужно, как этим управлять.

1. виртуализация на уровне машины — это полная абстракция виртуальной машины от железа.
2. виртуализация на уровне ядра — это разделение по виртуалкам всего того, что лучше выделить отдельно — днс сервер, дхцп, апач, тогда при проламывании, скажем, днс сервера, апач с клиентской панелью управления останется жив. Преимущества — что обновлять это проще, чем десяток отдельных виртуалок. но если надо виртуализировать, скажем, винду, то виртуализация на уровне ядра — уже никак. По моему под линуксами заводили даже фрибсд, но врать не буду. Но виртуализация на уровне ядра требует подготовки ядра. лучше самому внимательно почитать про хен, квм
LXC+lxctl берите, не ошибетесь. 
Проблемы с IP можно решить серыми IP для виртуальных машин и nginx'ом на хардноде.