LinuxForum.Fans
Тема

Проблема с KVM

Автор: komrad-zack 18 сообщений 7992 просмотров
#129499

Установил на deb 6.0 KVM и virt-install ...пробую создавать машину выдает:
root@debian:# virt-install --prompt
What is the name of your virtual machine? test
How much RAM should be allocated (in megabytes)? 2056
What would you like to use as the disk (file path)? /home/user/vms/test.img
How large would you like the disk (/home/user/vms/test.img) to be (in gigabytes)? 100
ERROR Virtual network 'default' has not been started.
Traceback (most recent call last):
File "/usr/bin/virt-install", line 1033, in <module>
main()
File "/usr/bin/virt-install", line 846, in main
options.nonetworks, guest)
File "/usr/bin/virt-install", line 390, in get_networks
map(lambda kwargs: cli.get_network(kwargs, guest), net_kwargs)
File "/usr/bin/virt-install", line 390, in <lambda>
map(lambda kwargs: cli.get_network(kwargs, guest), net_kwargs)
File "/usr/lib/pymodules/python2.6/virtinst/cli.py", line 612, in get_network
n = VirtualNetworkInterface(**net_kwargs)
File "/usr/lib/pymodules/python2.6/virtinst/VirtualNetworkInterface.py", line 65, in __init__
self.network = network
File "/usr/lib/pymodules/python2.6/virtinst/VirtualNetworkInterface.py", line 105, in set_network
"started.") % newnet)
ValueError: Virtual network 'default' has not been started.

и на этом все веселье заканчивается.Что делать не знаю.Буду признателен в помощи...может я что не так делаю...

#129533

Создание образа пустого в 3 Гб:
# qemu-img create /путь_до_образа/ваш_образ.img 3G

Запуск машины с 400 Мб оперативной:
# kvm -m 400 /путь_до_образа/ваш_образ.img

Для запуска с загрузкой с iso образа
# kvm -m 400 /путь_до_образа/ваш_образ.img -cdrom /путь_к_установочному_диску.iso


Так не проще?
# man kvm - в помощь.

#129645

Вот спасибо.сразу снес эти virtinst и прочую чушь.А то начитался howto в нете

#129667

Да не за что, тут про сеть в qemu было: http://linuxforum.ru/viewtopic.php?id=3948

Кстати kvm нормально монтирует /dev/sdXY - можно вторым диском монтировать.

#129906

Спасибо,как раз копаю тему по настройке сети в qemu/kvm

#129943

http://xgu.ru/wiki/Man:qemu
http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking
http://xgu.ru/wiki/Virtual_Distributed_Ethernet

aptitude install qemu qemu-utils qemu-kvm etherboot-qemu vde2

Редактируем и добавляем (я добавил два интерфейса):
[console]
# /etc/network/interfaces

auto tap0
iface tap0 inet static
address 192.168.0.20
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
pre-up /usr/sbin/vde_tunctl -t tap0
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde_192.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde_192.pid -t tap0
pre-up /usr/bin/vde_switch -x -n 10 -s /var/run/vde2/vde_010.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde_010.pid
pre-up /sbin/iptables-restore < /etc/ip_rulles.lst
post-down /sbin/iptables-save > /etc/ip_rulles.lst
# pre-up /sbin/ip6tables-restore < /etc/ip6_rulles.lst
# post-down /sbin/ip6tables-save > /etc/ip6_rulles.lst
post-down /bin/kill `/bin/cat /var/run/vde2/vde_192.pid`
post-down /bin/kill `/bin/cat /var/run/vde2/vde_010.pid`
post-down /usr/sbin/vde_tunctl -d tap0

auto tap1
iface tap1 inet static
address 10.10.0.1
netmask 255.255.255.0
network 10.10.0.0
broadcast 10.10.0.255
pre-up /usr/sbin/vde_tunctl -t tap1 # -u zion
pre-up /usr/bin/vde_switch -x -n 5 -s /var/run/vde2/vde_010.ctl -g vde2-net -m 770 -d -p /var/run/vde2/vde_010.pid -t tap1
post-down /bin/kill `/bin/cat /var/run/vde2/vde_010.pid`
post-down /usr/sbin/vde_tunctl -d tap1

[/console]

# /etc/init.d/networking restart
Лучше иногда stop / start
После этого сетевые интерфейсы должны появиться, если нет, то
наверное маскарадинг не работает,

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
# iptables-save > /etc/ip_rulles.lst

ну и на всякий ребутнутся

Запуск примерно так:

# kvm -m 512 -name Virt-tap0-tap1 \
-net nic -net vde,sock=/var/run/vde2/vde_010.ctl \
-net nic -net vde,sock=/var/run/vde2/vde_192.ctl \
-hda /home/user/qemu/hdd/image.img

ы. У меня поднимается два виртуальных свитча, что нафиг не надо, позже может переделаю, tap1 - можно выкинуть
Вроде ничего не упустил.

#130018

я немного по-другому сделал.На машине поднял интрефейс virbr0 ip192.168.100.1.На ВМ интрефейс eth1 ip192.168.100.2 gw192.168.100.1.На самой тачке есть еще интрефес eth0 ip192.168.0.174 .С ВМ на 192.168.0.174 пакеты идут и с тачки на 192.168.100.2 тоже все норм.А вот с ВМ в сеть 192.168.0.0 никак.
на тачке route -n
[console]Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.0.0 192.168.0.174 255.255.255.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.9 0.0.0.0 UG 0 0 0 eth0[/console]
на ВМ route -n
[console]Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 192.168.0.174 255.255.255.0 UG 0 0 0 eth1
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 eth1
[/console]
Сижу вот туплю что не так

#130026

Ну я не мостом делал.
Cейчас поднял vde - по быстрому live запустил, нахрапом что -то не клеится, у меня две сетевые + vde.
eth1 = ppp0
eth0 = 192.168.0.1
tap0 = 192.168.1.1

С тачки на eth1 - пинг на tap0 идет..,
ВМ запускаю, с нее нукуда.... (192.168.1.2)
[console]
>>route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
88.87.84.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
[/console]

Тоже в размышлениях....

Запуск iptables пока так:

Показать
[console]
#
iptables -v -P INPUT DROP
iptables -v -P OUTPUT DROP
iptables -v -P FORWARD DROP

iptables -v -A INPUT -i lo -j ACCEPT
iptables -v -A INPUT -i eth0 -j ACCEPT
iptables -v -A INPUT -i tap0 -j ACCEPT

iptables -v -A OUTPUT -o lo -j ACCEPT
iptables -v -A OUTPUT -o eth0 -j ACCEPT
iptables -v -A OUTPUT -o tap0 -j ACCEPT
iptables -v -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -v -A FORWARD -i eth0 -o ppp0 -j ACCEPT
iptables -v -A FORWARD -i tap0 -o ppp0 -j ACCEPT

iptables -v -A FORWARD -i eth0 -o tap0 -j ACCEPT
iptables -v -A FORWARD -i tap0 -o eth0 -j ACCEPT
[/console]

/etc/network/interfaces пока так

Показать
[console]
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

# PPPoE
auto eth1
iface eth1 inet manual

auto dsl-provider
iface dsl-provider inet ppp
pre-up ifconfig eth1 up
provider dsl-provider

# VDE
auto tap0
iface tap0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.0.255
pre-up vde_tunctl -t tap0
pre-up vde_switch -x -n 10 -s /var/run/vde2/vde_192.ctl -g vde2-net -m 770 -d -p /var/run/v$
# pre-up vde_switch -x -n 10 -s /var/run/vde2/vde_010.ctl -g vde2-net -m 770 -d -p /var/run/v$
pre-up iptables-restore < /etc/ip_rulles.lst
post-down iptables-save > /etc/ip_rulles.lst
post-down kill `/bin/cat /var/run/vde2/vde_192.pid`
# post-down kill `/bin/cat /var/run/vde2/vde_010.pid`
post-down vde_tunctl -d tap0
[/console]

А почему не стал виртуальный свитч поднимать?


зыж: Пользователя в группу добавил?

#130031

Свич не стал поднимать потому как ВМ всего одна,Да и с мостом думал проблем меньше будет.
С ВМ своей кинь /etc/network/interfaces и route -n

#130037

Сейчас поставлю что-нибудь на ВМ, не кошерно с live,
И, да меня не было в vde2-net (/etc/group)...
С бриджем там другая группа должна быть.

#130044

С ВМ
[console]
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
[/console]

пошел читать маны :(

#130046

У меня все заработало .Забыл про iptables
[console]iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE[/console]

#130129

Не меня такой способ не устраивает, короче заработало, все друг друга видят, интернет везде есть две подсети:
192.168.0.0/24 = Локалка
192.168.1.0/24 = VDE switch
Можно конечно и водну подсеть запихнуть, но извращаться с масками надо.
Конфиги - рабочие:

iptables (потом сохраняются/восстанавливаютя по pre-up/post-dowm интерфйса tap0 - вот это правда надо куда-нибудь в другое место отправить....):
Только эта строчка у меня как бэ сомнения вызывает
# Запрещаем доступ снаружи во внутреннюю сеть
iptables -v -A FORWARD -i ${WAN} -o ${WAN} -j REJECT

но все работает отлично в таком варианте

Показать
[console]
#!/bin/sh
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

export LAN=eth1
export NAT1=eth0
export NAT2=tap0
export WAN=ppp0

# Сообщаем ядру, что ip-форвардинг разрешен
echo 1 >/proc/sys/net/ipv4/ip_forward

# RESET
iptables -v -P INPUT ACCEPT
iptables -v -P FORWARD ACCEPT
iptables -v -P OUTPUT ACCEPT
# reset the default policies in the nat table.
iptables -v -t nat -P PREROUTING ACCEPT
iptables -v -t nat -P POSTROUTING ACCEPT
iptables -v -t nat -P OUTPUT ACCEPT
# reset the default policies in the mangle table.
iptables -v -t mangle -P PREROUTING ACCEPT
iptables -v -t mangle -P OUTPUT ACCEPT
# flush all the rules in the filter and nat tables.
iptables -v -F
iptables -v -t nat -F
iptables -v -t mangle -F
# erase all chains that's not default in filter and nat table.
iptables -v -X
iptables -v -t nat -X
iptables -v -t mangle -X
# Let's go
iptables -v -P INPUT DROP
iptables -v -P OUTPUT DROP
iptables -v -P FORWARD DROP

iptables -v -A INPUT -i lo -j ACCEPT
iptables -v -A INPUT -i ${NAT1} -j ACCEPT
iptables -v -A INPUT -i ${NAT2} -j ACCEPT

iptables -v -A OUTPUT -o lo -j ACCEPT
iptables -v -A OUTPUT -o ${NAT1} -j ACCEPT
iptables -v -A OUTPUT -o ${NAT2} -j ACCEPT
iptables -v -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -v -A FORWARD -o ${NAT1} -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A FORWARD -o ${NAT2} -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -v -A FORWARD -i ${NAT1} -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -v -A FORWARD -i ${NAT2} -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
iptables -v -A FORWARD -i ${NAT1} -o ${WAN} -j ACCEPT
iptables -v -A FORWARD -i ${NAT2} -o ${WAN} -j ACCEPT

iptables -v -A FORWARD -i ${NAT1} -o ${NAT2} -j ACCEPT
iptables -v -A FORWARD -i ${NAT2} -o ${NAT1} -j ACCEPT

# Включаем NAT
iptables -v -t nat -A POSTROUTING -o ${WAN} -s 192.168.0.0/24 -j MASQUERADE
iptables -v -t nat -A POSTROUTING -o ${WAN} -s 192.168.1.0/24 -j MASQUERADE

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -v -A FORWARD -i ${WAN} -o ${WAN} -j REJECT

# Проброс локального и VPN трафика
iptables -v -t nat -A POSTROUTING -o ${NAT1} -j MASQUERADE
iptables -v -t nat -A POSTROUTING -o ${NAT2} -j MASQUERADE
iptables -v -t nat -I POSTROUTING -o ${WAN} -j MASQUERADE
iptables -v -t nat -I POSTROUTING -o ${LAN} -j MASQUERADE

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
iptables -v -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
[/console]

interfaces:

Показать
[console]
# The loopback network interface
auto lo
iface lo inet loopback

# eth0 - Локальная сеть
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

# PPPoE
auto eth1
iface eth1 inet manual

auto dsl-provider
iface dsl-provider inet ppp
pre-up ifconfig eth1 up
provider dsl-provider

# VDE
auto tap0
iface tap0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
pre-up vde_tunctl -t tap0
pre-up vde_switch -x -n 10 -s /var/run/vde2/vde_192.ctl -g vde2-net -m 770 -d -p /var/run/v$
pre-up iptables-restore < /etc/ip_rulles.lst
post-down iptables-save > /etc/ip_rulles.lst
post-down kill `/bin/cat /var/run/vde2/vde_192.pid`
post-down vde_tunctl -d tap0
[/console]

interfaces - ВМ:

Показать
[console]
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255

dns-nameserver 192.168.1.1 192.168.0.1
[/console]
#160897

newzenon доброго времени суток , вот по вашим словам сделал :

qemu-img create /путь_до_образа/ваш_образ.img 8G

kvm -m 400 /путь_до_образа/ваш_образ.img -cdrom /путь_к_установочному_диску.iso

После этого у меня вываливается следущее
kvm_create_vm: Device or resource busy
Could not initialize KVM, will disable KVM support
kvm_set_phys_mem: error unregistering overlapping slot: Invalid argument

Вывод lsmod | grep kvm
kvm_amd 50543 0
kvm 263288 1 kvm_amd

#160918

Права на /dev/kvm в норме?

#160922

Set_Me_Free, поддержка kvm есть? Сама kvm установлена?
Попробуй так:

text
qemu -m 400 /путь_до_образа/ваш_образ.img -cdrom /путь_к_установочному_диску.iso

Доустановить полностью:

text
aptitude install qemu kvm qemu-kvm qemu-utils qemu-system qemu-user vde2 etherboot-qemu

Подгрузить модули kvm:

text
$ modprobe kvm
# Для AMD
$ modprobe kvm-amd
# Для INTEL
$ modprobe kvm-intel
#161028

Macumazan c правами всё вроде нормально
[console]crw-rw----+ 1 root kvm 10, 232 Май 12 10:33 /dev/kvm[/console]

newzenon с qemu всё запускается , по команде с aptitude всё установленно.Вывод что модули подргужены я вроде в первом сообщении привёл.

Вывод dmesg
[console][ 1046.852640] kvm: Nested Virtualization enabled
[ 1046.852643] kvm: Nested Paging enabled
[ 1056.946689] kvm: enabling virtualization on CPU0 failed
[ 1438.763814] kvm: enabling virtualization on CPU0 failed
[/console]

На ядре 2.6.32 всё работает хорошо.

Вывод lscpu
[console]Architecture: x86_64
CPU op-mode(s): 64-bit
CPU(s): 4
Thread(s) per core: 1
Core(s) per socket: 4
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 16
Model: 4
Stepping: 2
CPU MHz: 800.000
Virtualization: AMD-V
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
L3 cache: 6144K [/console]

Войдите или зарегистрируйтесь, чтобы ответить.