kvm虚拟机xml文件在哪里_爱快kvm虚拟机

2022-09-22 18:43:44 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

virsh xml创建kvm虚拟机

准备工作

代码语言:javascript复制
sudo apt-get update
sudo apt-get install qemu-kvm  
sudo apt-get install vnc4server
sudo apt-get install bridge-utils

增加网卡内容如下:

代码语言:javascript复制
root@zhangji16vm:/home/prj1# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo  #原来就有
iface lo inet loopback #原来就有
auto br0
iface br0 inet loopback
bridge_ports ens33 tap0
bridge_stp off
bridge_maxwait 0
代码语言:javascript复制
sudo vim /etc/NetworkManager/NetworkManager.conf
managed=false改成managed=true

重启下网络服务

代码语言:javascript复制
sudo systemctl restart NetworkManager
sudo systemctl restart networking

安装kvm虚拟机,(启动一下/usr/sbin/libvirtd) 中间出现问题,上网查一下,就可以解决

代码语言:javascript复制
virsh define setup.xml
virsh start node-br0
代码语言:javascript复制
vnc客户端连接过去,安装镜像到虚拟磁盘xxxx.qcow2

提供一个xml模板,以供使用。(网上有一些模板是不能用的,害人不浅) 事后补充,网上的xml也不一定错,我的也不一定对,我发现具体到每一个pc上,可能xml不是万能的,可以考虑用virt-install命令行创建,再导出符合本地的xml,进行按需要修改xml

代码语言:javascript复制
root@zhangji16vm:/home/prj1# cat setup.xml 
<domain type='kvm'>
    <name>node-br0</name> //虚拟机名称
    <memory unit='GiB'>2</memory> //最大内存,单位M
    <currentMemory unit='GiB'>2</currentMemory> //可用内存,单位M
    <vcpu>2</vcpu> //虚拟cpu个数
    <os>
        <type arch='x86_64' machine='pc'>hvm</type>
        <boot dev='cdrom'/> //ISO文件启动
    </os>
    <features>
        <acpi/>
        <apic/>
        <pae/>
    </features>
    <clock offset='localtime'/>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>restart</on_reboot>
    <on_crash>destroy</on_crash>
    <devices>
        <emulator>/usr/bin/qemu-system-x86_64</emulator> //KVM启动程序,ubuntu版本
        <disk type='file' device='disk'>
            <driver name='qemu' type='qcow2'/>
            <source file='/home/prj1/ubuntu2.qcow2'/> //目的镜像路径
            <target dev='sda' bus='scsi'/>
            <address type='drive' controller='0' bus='0' target='0' unit='0'/> //硬盘使用virtio-scsi驱动,模拟scsi硬盘,建议使用
        </disk>
        <controller type='scsi' index='0' model='virtio-scsi'/> //使用virtio-scsi配置,必须
        <disk type='file' device='cdrom'>
            <driver name='qemu' type='raw'/>
	    <source file='/root/vm_prj1/ubuntu.iso'/>
            <target dev='hda' bus='ide'/>
            <readonly/>
            <address type='drive' controller='0' bus='1' target='0' unit='0'/>
        </disk>
        <interface type='bridge'> 
	    <source bridge='br0'/>
            <model type='virtio'/>
            <mac address='00:17:3E:64:01:00'/> //为虚拟机分配mac地址,务必唯一,否则dhcp获得同样ip,引起冲突
            <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> 
        </interface>
        <input type='mouse' bus='ps2'/>
        <graphics type='vnc' port='5900' autoport='yes' listen = '0.0.0.0' keymap='en-us'/>//vnc方式登录,端口号自动分配,自动加1,可以通过virsh vncdisplay来查询
        <video>
            <model type='cirrus' vram='9216' heads='1'/>
            <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
        </video>
        <memballoon model='virtio'>
            <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
        </memballoon>
        <serial type='pty'>
            <target port='0'/>
        </serial>
        <console type='pty'>
            <target type='serial' port='0'/>
        </console>
    </devices>
</domain>

去vnc官网下载一个免费版本的vnc客户端,连接过去,ip:0 或者自己查一下端口号

代码语言:javascript复制
virsh vncdisplay node-br0

安装完成以后,不要重启,直接关掉,并关闭虚拟机

代码语言:javascript复制
virsh destroy node-br0
virsh undefine node-br0

然后才是真正的开始

复制一个setup.xml 把启动方式从光盘改成 ‘hd’即可 //因为已经到虚拟磁盘了,所以不要再从光盘启动了

桥接也是可以正常上网的 nice

想一想为什么 win vmware kvm_ubuntu在结构中,vmware的宿主机上建立的kvm_ubuntu之间是桥接,但是win能ping 通kvm_ubuntu 却ping不通vmware装的系统?

看一下网络关系

代码语言:javascript复制
root@zhangji16vm:/home/prj1# ifconfig
br0       Link encap:以太网  硬件地址 00:0c:29:49:51:d4  
          inet6 地址: fe80::20c:29ff:fe49:51d4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:2997 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:42 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:259712 (259.7 KB)  发送字节:4580 (4.5 KB)

ens33     Link encap:以太网  硬件地址 00:0c:29:49:51:d4  
          inet 地址:192.168.88.217  广播:192.168.88.255  掩码:255.255.255.0
          inet6 地址: fe80::a392:f57c:95e9:efec/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:126623 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:28976 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:178167251 (178.1 MB)  发送字节:1978156 (1.9 MB)

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:113351 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:113351 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:172586538 (172.5 MB)  发送字节:172586538 (172.5 MB)

virbr0    Link encap:以太网  硬件地址 00:00:00:00:00:00  
          inet 地址:192.168.122.1  广播:192.168.122.255  掩码:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  跃点数:1
          接收数据包:67 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:9 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:8588 (8.5 KB)  发送字节:998 (998.0 B)

vnet0     Link encap:以太网  硬件地址 fe:12:3e:64:01:00  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:1491 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:1482 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:219290 (219.2 KB)  发送字节:1052331 (1.0 MB)

root@zhangji16vm:/home/prj1# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c294951d4	no		ens33
							        vnet0
virbr0		8000.000000000000	yes		
root@zhangji16vm:/home/prj1# route 
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
default         192.168.88.2    0.0.0.0         UG    100    0        0 ens33
192.168.88.0    *               255.255.255.0   U     100    0        0 ens33
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169802.html原文链接:https://javaforall.cn

0 人点赞