以下操作使用系统Ubuntu16.04
一、KVM的安装
1. 检查是否支持虚拟化
egrep 'vmx|svm' /proc/cpuinfo
2. 安装相关包
apt-get -y --force-yes install qemu-kvm libvirt-bin virt-manager
3. 检查KVM是否加载成功
# lsmod | grep kvm
kvm_intel 167936 0
kvm 487424 1 kvm_intel
irqbypass 16384 1 kvm
4. 查看kvm是否已经创建默认虚拟网络
# ifconfig virbr0
5. 创建网桥
修改文件:/etc/network/interfaces
auto br1
iface br1 inet static
address 172.16.145.100
netmask 255.255.255.0
bridge_ports eth1
bridge_stp off
gateway 172.16.145.2
6. 重启网卡
service networking restart
7. 创建虚拟机
使用virt-install
来创建虚拟机,以下参数说明
参数 | 说明 |
---|---|
--name | 虚拟机名字 |
--ram | 内存(MB) |
--vcpus | CPU 个数; 参数: maxvcpus=MAX: 热升级 cpu 最大核数 sockets=# cores=# threads=# 例子: --vcpus 2, maxvcpus=10: 默认2核 cpu,热升级最大10核 |
--os-type | 系统类型(linux, unix, windows) |
--hvm | 配置使用全虚拟化 |
--cdrom | 镜像位置 |
--file | 虚拟机硬盘文件路径 |
--file-size | 虚拟机硬盘大小 |
--vnc | 启动vnc |
--vncport | vnc 端口号 |
--vnclisten | vnc 监听地址0.0.0.0本机 |
示例:
virt-install \
--name=testvm \
--ram=1024 \
--vcpus=1 \
--os-type=linux \
--hvm \
--cdrom=/root/ubuntu-16.04.3-server-amd64.iso \
--file=/root/images/SDG100.img \
--file-size=20 \
--network network=bgp
--vnc \
--vncport=5902 \
--vnclisten=0.0.0.0
二、虚拟机基本操作
命令 | 说明 | 示例 |
---|---|---|
virsh list |
查看虚拟机--all 查看所有虚拟机 |
virsh list virsh list --all |
virsh start name |
开机 | virsh start testvm |
virsh autostart name |
自动启动--disable 取消自动启动 |
virsh autostart testvm virsh autostart testvm --disable |
virsh shutdown name |
安全关机 | virsh shutdown testvm |
virsh destroy name |
强制关机(类似直接断电) | virsh destroy testvm |
virsh undefine name |
销毁(必须关机)不是真正的删除文件,只是从virsh list 中删除 |
virsh undefine testvm |
virsh define name |
虚拟机加入virsh list 中 |
virsh define ./images/testvm/config.xml |
virsh dumpxml name |
查看虚拟机 xml 配置文件 | virsh dumpxml testvm |
virsh suspend name |
挂起 | virsh suspend testvm |
virsh resume name |
恢复挂起 | virsh resume testvm |
virsh domblklist name |
查看所有块设备 | virsh domblklist testvm |
virsh domiflist name |
查看所有网口 | virsh domiflist testvm |
三、挂载硬盘
1. 创建硬盘
-
创建硬盘
qemu-img create [-q] [-f fmt] [-o options] filename [size]
qemu-img create -f qcow2 /volumes/i-aaa 10G
参数说明
参数 | 说明 |
---|---|
-q | 不打印任何输出(错误除外) |
-f | 硬盘格式 |
2. 挂载硬盘
-
使用 XML 挂载硬盘
virsh attach-device name xml
XML 内容
<disk type='block'>
<driver name='qemu' type='qcow2' cache=''/>
<source dev='/volumes/i-aaa'/>
<target dev='vbc' bus='virtio'/>
</disk>
用法
virsh attach-device i-aaaaaa xml.
-
直接执行文件进行挂载
attach-disk name volume volume_name
virsh attach-disk i-aaaaaa /volumes/i-aaa vdc
参数说明
参数 | 说明 |
---|---|
--cache | 磁盘设备的缓存模式 |
2. 卸载硬盘
-
使用 XML 配置文件卸载硬盘
virsh detach-device
XML 内容
<disk type='block'>
<driver name='qemu' type='qcow2' cache='nonw'/>
<source dev='/volume/i-aaa'/
<target dev='vbc' bus='virtio'/>
</disk>
-
直接卸载
virsh detach-disk name --target volume_name
virsh detach-disk i-aaaaaa --target vdc
四、新增网口
1. 挂载新网络接口 virsh attach-interface name --type network_type --source network_name --config
virsh attach-interface testvm --type bridge --source dianxin --config
参数说明:
参数 | 说明 |
---|---|
--type | 网卡类型 |
--source | 网络接口的来源(宿主机网络名称) |
--current | 立刻生效 |
--config | 下次启动生效 |
--mac | MAC地址 |
--inbound | in流量控制 |
--outbound | out流量控制 |
--mode |
2. 卸载网络接口 virsh detach-interface name --type network_type --mac mac
virsh detach-interface testvm --type bridge --mac 52:54:00:b5:7d:1e
3. 查看虚拟机现有网络接口 virsh domiflist name
virsh domiflist testvm
关于如何创建网桥参考Linux brctl 命令
网友评论