bash-4.2# virsh define vm3.xml Domain vm3 defined from vm3.xmlbash-4.2# virsh start vm3 Domain vm3 started
启动完后就可以看到macvtap设备被创建出来了
bash-4.2# ip addr7: macvtap0@eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 500 link/ether 52:54:00:56:e4:20 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe56:e420/64 scope link valid_lft forever preferred_lft forever
进入到虚拟机:
virsh console vm3
如果卡在这一步:
A start job is running for LSB: Bri... networkingcloud-init[2253]: 2019-06-27 08:37:09,971 - url_helper.py[WARNING]: Calling 'http://192.168.122.1/latest/meta-data/instance-id' failed [87/120s]: request error
等它超时就好,因为macvtap时我们需要进入虚拟机去配置网络。 然后就可以进入虚拟机了:
CentOS Linux 7 (Core)Kernel 3.10.0-957.1.3.el7.x86_64 on an x86_64localhost login: rootPassword: Last login: Thu Jun 27 07:19:32 from gateway
密码是我们上面设置的镜像密码:coolpass
配置虚拟机IP
[root@localhost ~]# ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:56:e4:20 brd ff:ff:ff:ff:ff:ff inet6 fe80::5054:ff:fe56:e420/64 scope link valid_lft forever preferred_lft forever
[root@localhost ~]# ip addr add 172.17.0.2/16 dev eth0[root@localhost ~]# ip route add default via 172.17.0.1 dev eth0[root@localhost ~]# ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:56:e4:20 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe56:e420/64 scope link valid_lft forever preferred_lft forever[root@localhost ~]# ip route default via 172.17.0.1 dev eth0 172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.2 [root@localhost ~]# ping 172.17.0.1PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data.64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=0.622 ms64 bytes from 172.17.0.1: icmp_seq=2 ttl=64 time=0.194 ms
配置完后就可以ping通网关了。
修改DNS配置
这个不改可能会导致ssh时非常慢:
[root@localhost ~]# cat /etc/resolv.conf ; Created by cloud-init on instance boot automatically, do not edit.;; generated by /usr/sbin/dhclient-scriptnameserver 114.114.114.114
[root@ee18547e9ed2 /]# ssh root@172.17.0.2The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.ECDSA key fingerprint is SHA256:kTk3yy8588WQHNtwpzS+h7u0W3RELWC8hJQwIwLOkdc.ECDSA key fingerprint is MD5:0c:f3:b5:69:c6:08:05:14:f8:da:42:2f:85:29:51:d0.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.root@172.17.0.2's password: Last login: Thu Jun 27 08:38:00 2019[root@localhost ~]# ip addr1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 52:54:00:56:e4:20 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe56:e420/64 scope link valid_lft forever preferred_lft forever
修改虚拟机mac地址
[root@localhost ~]# ip link set eth0 address 52:54:00:56:e4:23
会发现就连不上虚拟机了
改回:
[root@localhost ~]# ip link set eth0 address 52:54:00:56:e4:20
ip link add link eth0 name macvtap0 type macvtap mode bridgeip link set macvtap0 address 1a:46:0b:ca:bc:7b upbash-4.2# cat /sys/class/net/macvtap0/ifindex # 对应下面命令的/dev/tap22bash-4.2# cat /sys/class/net/macvtap0/address # 与qemu mac地址配置一致1a:46:0b:ca:bc:7b
qemu-system-x86_64: -net tap,fd=5: TUNGETIFF ioctl() failed: Inappropriate ioctl for deviceTUNSETOFFLOAD ioctl() failed: Inappropriate ioctl for device
因为容器没有挂载/dev目录
KVM bios被禁
[root@helix105 ~]# docker run busybox uname -aCould not access KVM kernel module: No such file or directoryqemu-lite-system-x86_64: failed to initialize KVM: No such file or directory/usr/bin/docker-current: Error response from daemon: oci runtime error: Unable to launch /usr/bin/qemu-lite-system-x86_64: exit status 1.ERRO[0001] error getting events from daemon: net/http: request canceled [root@helix105 ~]# lsmod |grep kvmkvm 598016 0 irqbypass 16384 1 kvm[root@helix105 ~]# modprobe kvm-intelmodprobe: ERROR: could not insert 'kvm_intel': Operation not supportedYou have mail in /var/spool/mail/root[root@helix105 ~]# dmesg |grep kvm[ 8.239309] kvm: disabled by bios
这个要进bios打开
KVM: Permission denied
bash-4.2# virsh start vm_name1error: Failed to start domain vm_name1error: internal error: qemu unexpectedly closed the monitor: Could not access KVM kernel module: Permission denied2019-06-20T07:26:33.304320Z qemu-system-x86_64: failed to initialize KVM: Permission denied