kvm
- 要安装必要的软件包,从终端中输入:
sudo apt-get install qemu-kvm libvirt-bin
在安装了libvirt-bin后,用于管理虚拟机的用户需要被添加到libvirtd组。这样做会赋予这个用户 进入到高级网络选项的权限。sudo adduser $USER libvirtd
- 安装virt-install
sudo apt-get install virtinst
- 安装guest
sudo virt-install -n web_devel -r 256 \ --disk path=/var/lib/libvirt/images/web_devel.img,bus=virtio,size=4 -c \ ubuntu-14.04-server-i386.iso --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0 --noautoconsole -v
- 网络配置如果按第3步中network=default,guest可以访问外网,但不能访问host和其他guest。如果用作服务器的话,显然不行。故如下配置bridge:安装bridge相关工具
sudo apt-get install bridge-utils
编辑/etc/network/interfacesauto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.0.10 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
or DHCP:auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
重启网络服务:sudo /etc/init.d/networking restart
orsudo ifup br0
通过virsh创建bridge虚拟网络:virsh net-create bridge.xml
xml内容:<network> <name>host-bridge</name> <forward mode="bridge"/> <bridge name="br0"/> </network>
编辑guest配置,将网络由nat模式改为bridgeedit <guest domain>
将<interface type='network'> <mac address='00:11:22:33:44:55'/> <source network='default'/> </interface>
改为:<interface type='bridge'> <mac address='00:11:22:33:44:55'/> <source bridge='br0'/> </interface>
关闭虚拟机,并重启libvirtd服务:sudo /etc/init.d/libvirtd restart
启动虚拟机,检测下是桥接是否运行正常,下图vnet0是guest虚拟网卡,br0是桥接网卡,eth1为物理网卡:# brctl show bridge name bridge id STP enabled interfaces br0 8000.e41f13b416f6 no eth1 vnet0
- oem激活请参看此篇,这里不作详解了.
相关帖子:
http://briteming.blogspot.com/2016/05/ubuntukvmvirtiowindows.html
http://briteming.blogspot.com/2012/01/kvm.html
----------
virsh
virsh链接域
qemu:///session (local access to per-user instance)
qemu+unix:///session (local access to per-user instance)
qemu:///system (local access to system instance)
qemu+unix:///system (local access to system instance)
qemu://example.com/system (remote access, TLS/x509)
qemu+tcp://example.com/system (remote access, SASl/Kerberos)
qemu+ssh://root@example.com/system (remote access, SSH tunnelled)虚拟机管理
list –all 查看所有虚拟机
virsh shutdown <domin> 关闭虚拟机domin,如果不设置domin则关闭所有的虚拟机
virsh destory <domin> 强制关闭虚拟机
virsh start <domin> 启动虚拟机直接操作domain
edit domain-id 编辑XML配置文件,等效于:
virsh dumpxml domain > domain.xml
edit domain.xml
virsh define domain.xml
managedsave domain-id 保存当前运行的虚拟机的状态,当虚拟机再次启动的时候会恢复到之前保存的状态
migrate optional –live –suspend domain-id desturi migrateuri 迁移虚拟机到其他机器 –live表示动态迁移,–suspend表示迁移到目的地时虚拟机处于paused状态,desturi是迁移到目的地主机的URI,migrateuri是迁移机器的URI。
save domain-id state-file 保存一个正在运行的虚拟机的状态到一个文件中,以便以后恢复到此状态,一旦保存后虚拟机将不会再运行,占有的资源也会释放,virsh restore可以恢复到此前的状态。eg:save 12 /tmp/test
restore state-file 恢复到之前保存的一个状态.eg:restore /tmp/test
setmem domain-id kilobytes 改变当前虚拟机分配的内存,立即生效,单位KB
setmaxmem domain-id kilobytes 设置一个虚拟机可分配的最大内存,它不改变当前使用的内存
setvcpus domain-id count 改变当前虚拟机的vcpu个数
resume domain-id 从挂起状态恢复一个虚拟机
vcpuinfo domain-id 显示一些虚拟机的vcpu信息,包括几个vcpu,运行时间,和那个物理cpu亲和
vcpupin domain-id vcpu cpulist 把vcpu绑定到物理cpu,vcpu的数量必须提供,cpulist是一个以逗号分割的物理cpu列表
vncdisplay domain-id 显示vnc监听的地址和端口快照命令
snapshots可以保存一个domain的disk memory device在某个时间点的状态以便将来会使用到,保存的文件名称必须是唯一的
snapshot-create domain xmlfile 给domain创建一个snapshot,详细内容保存在xmlfile中
snapshot-current domain 显示一个domain的当前的snapshot
snapshot-list domain 显示一个domain的所有的snapshot
snapshot-revert domain snapshot 恢复一个domian到以前的snapshot
snapshot-delete domain snapshot –children 删除一个domain的snapshot调试
所有的日志以及虚拟机启动的命令都在libvirt日志目录中。
cat /var/log/libvirt/libvirtd.log