<
KVM虚拟化技术
>
上一篇

Linux常用命令
下一篇

python程序打包
KVM搭建虚拟机

宿主机平台是Centos和Ubuntu搭建虚拟机会有一些区别,所以对二者都进行介绍一下

宿主机:Centos7

查看宿主机IP,如果没有ifconfig命令则需要安装网络插件包:

yum install net-tools

安装KVM

yum -y install kvm
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install

检测是否安装成功

lsmod | grep kvm

如果安装成功则显示如下,关键是前面的kvm_intel和kvm

kvm_intel  162153  0
kvm        525259  1 kvm_intel

开启kvm服务

systemctl start libvirtd.service

创建虚拟网桥连接

cd /etc/sysconfig/network-scripts/

vi ifcfg-br0

#在文件中输入如下内容
BOOTPROTO=static
ONBOOT=YES
DEVICE=br0
NAME=br0
TYPE=Bridge
IPADDR=192.168.1.95
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=114.114.114.114

将刚创建的网桥连接添加到当前网卡配置中

示例在eth0/em1中添加BRIDGE=br0(注意:BRIDGE要大写),保留name,device,onboot属性即可,其他的可以注释掉

或者使用如下配置网桥

1. 查看当前宿主机网络配置所使用的网卡,选择需要桥接的网卡。转去宿主机的/etc/sysconfig/network-scripts目录下。 
2. 假如当前配置的物理网卡为eth0,我们将eth0的ip地址桥接出去。cp -a ifcfg-eth0 ifcfg-br0 
3. 将ifcfg-eth0文件中配置的ip地址、掩码、网关、DNS等信息统统删掉,并增加一行BRIDGE=br0 
4. 将ifcfg-br0文件中的UUID IPV6的信息统统删掉,将TYPE修改为Bridge,NAME和DEVICE修改为br0. 修改完毕之后的内容示例如下。 
5. 将网络服务重新启动或者将宿主机重新启动使得配置生效。使用ifconfig命令查看ip地址信息。

修改完如下图所示 image

重启网络

systemctl restart network

查看虚拟网卡

brctl show

创建虚拟机

sudo virt-install --name test --ram 4096 --disk path=/var/lib/libvirt/images/test.img,size=200 --vcpus 2 --os-type linux --network bridge=br0 --graphics none --virt-type kvm --location /tmp/CentOS-7-x86_64-DVD-1804.iso --os-variant none --extra-args='console=ttyS0' 

使用命令之后会出现下图界面,然后需要在命令行中配置虚拟机信息 image image

宿主机:Ubuntu16.04

安装kvm

 sudo apt-get install qemu-kvm qemu-system libvirt-bin  bridge-utils virt-manager

创建虚拟网卡:

vi /etc/network/interfaces
   
auto lo
iface lo inet loopback

auto br0
iface br0 inet static
address 10.0.101.10
netmask 255.255.255.0
gateway 10.0.101.254
dns-nameservers 114.114.114.114
bridge_ports eno1
bridge_stp on
bridge_fd 0
bridge_maxwait 0

Ubuntu创建虚拟网卡后需要重启系统才会生效

使用图形化界面virt-manager安装方式,之后在界面上配置虚拟机信息

sudo virt-manager

命令行创建:

sudo virt-install --virt-type=kvm --name=vm1 --vcpus=2 --memory=65536 --location=/tmp/CentOS-7-x86_64-DVD-1804.iso --disk path=/var/lib/libvirt/images/shebao.qcow2,size=200,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force   

kvm常用命令

virsh list              #查看在运行的虚拟机
virsh list --all        #查看所有虚拟机(关闭的也在内)
virsh start  test	    #启动该虚拟机,test是创建时设置的虚拟机名字
virsh reboot test       #重启虚拟机
virsh destroy test	    #强制关闭该虚拟机,但并非真的销毁该虚拟机,只是关闭而已    
virsh undefine test     #移除虚拟机,被该指令删除后不能启动
virsh console + 域名(虚拟机的名称) #连接虚拟机
virsh autostart + 域名  #虚拟机随宿主机启动
virsh auotstart --disable +域名 #取消自启动

彻底删除虚拟机

virsh destroy test
virsh undefine test --remove-all-storage

修改虚拟机CPU,内存,磁盘,修改完后需要重启虚拟机生效

virsh edit test.xml

ubuntu虚拟机(在宿主机上安装的虚拟机系统为Ubuntu)开启virsh console支持,可以在宿主机上使用virsh console test连接到虚拟机test上

sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service

kvm虚拟机静态迁移

1. 确定虚拟机处于关闭状态
2. 查看虚拟机的磁盘配置文件
    virsh domblklist test
3. 导入虚拟机的配置文件
    virsh dumpxml test > /tmp/test.xml
4. 拷贝配置文件到目标主机上
5. 拷贝虚拟机的磁盘文件到目标主机上
6. 再目标主机上定义注册虚拟主机
    virsh define /etc/libvirt/qemu/test.xml 
7. 开启虚拟机
    virsh start test
Top
Foot