openstack学习(二)虚拟机XML文件

时间:2023-03-09 16:25:59
openstack学习(二)虚拟机XML文件

1 , XML文件

 <domain type='kvm'>  //如果是Xen,则type=‘xen’
<name>ubuntu</name> //虚拟机名称,同一物理机唯一
<uuid>fd3535db-2558-43e9-b067-314f48211343</uuid>  //同一物理机唯一,可用uuidgen生成
<memory>524288</memory>
<currentMemory>524288</currentMemory>  //memory这两个值最好设成一样
<vcpu>2</vcpu>            //虚拟机可使用的cpu个数,查看物理机可用CPU个数:cat /proc/cpuinfo |grep processor | wc -l 
<os>
<type arch='x86_64' machine='pc-i440fx-vivid'>hvm</type> //arch指出系统架构类型,machine 则是机器类型,查看机器类型:qemu-system-x86_64 -M ?
<boot dev='hd'/>  //启动介质
<bootmenu enable='yes'/>  //表示启动按F12进入启动菜单
</os>
<features>
<acpi/>  //Advanced Configuration and Power Interface,高级配置与电源接口
<apic/>  //Advanced Programmable Interrupt Controller,高级可编程中断控制器
<pae/>   //Physical Address Extension,物理地址扩展
</features>
<clock offset='localtime'/>  //虚拟机时钟设置,这里表示本地本机时间
<on_poweroff>destroy</on_poweroff>  //突发事件动作
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>   //设备配置
<emulator>/usr/bin/kvm</emulator> //如果是Xen则是/usr/lib/xen/binqemu-dm
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/vm/vmdev/ubuntu-15.10.raw' />
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> //slot值同一虚拟机上唯一
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/vm/vmdev/ubuntu-15.10_2.raw' />
<target dev='vdb' bus='virtio'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/opt/vm/vmiso/ubuntu-15.10-server-amd64.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
<interface type='bridge'>  //利用网桥连接网络  
<mac address='fa:92:01:33:d4:fa'/> //可用命令生成:见下面的补充
<source bridge='br100'/>  //配置的网桥网卡名称
<target dev='vnet0'/>     //同一网桥下相同
<alias name='net0'/>      //同一网桥下相同
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>  //注意slot值唯一
</interface>
<interface type='network'>   //基于虚拟局域网的网络
<mac address='52:54:4a:e1:1c:84'/>  //可用命令生成,见下面的补充
<source network='default'/> //默认
<target dev='vnet1'/>  //同一虚拟局域网的值相同
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>  //注意slot值
</interface>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'  //vnc配置,基本不用改
/>
<listen type='address' address='0.0.0.0'/>
</graphics>
</devices>
</domain>

基于网桥的MAC地址创建方法:

root@cy-ubuntu# MACADDR="fa:92:$(dd if=/dev/urandom count=1 2>/dev/null |md5sum |sed 's/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/')";
root@cy-ubuntu# echo $MACADDR
fa::::d4:fa

基于虚拟局域网MAC地址创建方法:

root@cy-ubuntu# MACADDR="52:54:$(dd if=/dev/urandom count=1 2>/dev/null |md5sum |sed 's/^\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4/')";
root@cy-ubuntu# echo $MACADDR
::4a:e1:1c:

创建虚拟磁盘:

raw格式:

root@cy-computer:~# qemu-img create -f raw /opt/vmdev/ubuntu-15.10.raw 20G

qcow2格式:

root@cy-computer:~# qemu-img create -f qcow2 -o cluster_size=2M,backing_file=/opt/vmdev/ubuntu-15.10.raw /opt/vmdev/ubuntu-nova.qcow2 40G
//backing_file的使用可以节省磁盘空间和批量创建虚拟机的时间。此时以raw中的系统为基础,qcow2只记录改变的数据

2 , 虚拟网路

创建网桥br100

修改网络配置文件:/etc/network/interfaces

基于DHCP方式:

# interfaces() file used by ifup() and ifdown()
auto lo
iface lo inet loopback #新增
auto enp7s0
iface enp7s0 inet dhcp auto br100
iface br100 inet dhcp
bridge_port enp7s0
bridge_stp off
bridge_maxwait
bridge_fd

注;我的机器配置后发现无法访问网页,删除了两条网关配置才可以,原因是给网卡分配了IP。

root@cy-ubuntu:~# route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1

基于静态地址:

# interfaces() file used by ifup() and ifdown()
auto lo
iface lo inet loopback #xin zeng
auto enp7s0
#iface enp7s0 inet dhcp
iface enp7s0 inet static
address 192.168.1.110
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1 auto br100
#iface br100 inet dhcp
iface br100 inet static
bridge_ports enp7s0
bridge_stp off
bridge_maxwait
bridge_fd
address 192.168.1.110
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1

重启生效:/etc/init.d/networking restart