001KVM安装

Ubuntu

1.判断虚拟机是否支持虚拟化技术

grep -E 'svm |vmx' /proc/cpuinfo

kvm切换器 麒麟系统_虚拟化技术

2.安装kvm,virt管理工具

apt -y install qemu-kvm kvm 
apt -y install virtinst python-libvirt virt-viewer

3.安装网桥设置,并增加br0虚拟网卡与以太网的网卡桥接

apt -y install bridge-utils

vi /etc/network/interfaces "修改配置文件,增加br0网桥"

kvm切换器 麒麟系统_虚拟机_02

kvm切换器 麒麟系统_迁移_03

4.创建虚拟机

virt-install --connect=qemu:///system --name centos7 --ram 1024 --vcpus=2 --os-type=linux --os-variant=ubuntuprecise --accelerate --hvm  --disk path=/home/os/g1.img,size=6,bus=virtio --location /home/CentOS-7-x86_64-Minimal-1511.iso  --extra-args='console=tty0 console=ttyS0' --network bridge=br0,model=virtio  --graphics none
• --network bridge:br0    指定你需要访问的网桥(已在前面指定)
• --name vm1    虚拟机的名字   
• --ram=1024    内存大小   
• --vcpus=1     CPU个数  
• --disk path=/home/os/g1.img,size=10   镜像文件的路径、大小(GB)  
• --graphics none  不需要VNC窗口访问虚拟机,在虚拟机的串行端口中使用 文本

注意:--location /home/CentOS-7-x86_64-Minimal-1511.iso,CentOS-7-x86_64-Minimal-1511.iso这个镜像是之前已经传到虚拟机的,--disk path=/home/os/g1.img,/home/os 这个目录是已经创建好的。KVM在安装虚拟机的过程中是比较慢的,看到有假死的情况,多按几下回车。
Centos7

1.判断虚拟机是否支持虚拟化技术

grep -E 'svm |vmx' /proc/cpuinfo

kvm切换器 麒麟系统_虚拟化技术


2.安装kvm,virt管理工具

yum -y install qemu-kvm libvirt virt-install

3.安装网桥设置,并增加br0虚拟网卡与以太网的网卡桥接

yum -y install bridge-utils

vi /etc/sysconfig/neetwork-scripts/ifcfg-br0  "添加以下内容并配置br0网桥"

TYPE=Bridge
BOOTPROTO=dhcp
NAME=br0
DEVICE=br0
ONBOOT=yes

vi /etc/sysconfig/neetwork-scripts/ifcfg-eth0
在最后一行添加BRIDGE=br0

kvm切换器 麒麟系统_ubuntu_05

kvm切换器 麒麟系统_kvm切换器 麒麟系统_06

4.创建虚拟机

virt-install --connect=qemu:///system --name centos7 --ram 1024 --vcpus=2 --os-type=linux --os-variant=ubuntuprecise --accelerate --hvm  --disk path=/home/os/g1.img,size=6,bus=virtio --location /home/CentOS-7-x86_64-Minimal-1511.iso  --extra-args='console=tty0 console=ttyS0' --network bridge=br0,model=virtio  --graphics none
• --network bridge:br0    指定你需要访问的网桥(已在前面指定)
• --name vm1    虚拟机的名字   
• --ram=1024    内存大小   
• --vcpus=1     CPU个数  
• --disk path=/home/os/g1.img,size=10   镜像文件的路径、大小(GB)  
• --graphics none  不需要VNC窗口访问虚拟机,在虚拟机的串行端口中使用 文本

注意:--location /home/CentOS-7-x86_64-Minimal-1511.iso,CentOS-7-x86_64-Minimal-1511.iso这个镜像是之前已经传到虚拟机的,--disk path=/home/os/g1.img,/home/os 这个目录是已经创建好的。KVM在安装虚拟机的过程中是比较慢的,看到有假死的情况,多按几下回车。

010 KVM 虚拟机使用

1.查看虚拟机列表

virsh list --all

kvm切换器 麒麟系统_虚拟化技术_07

2.显示虚拟机信息,虚拟机内存信息

virsh dominfo centos7
virsh dominfo centos7 | grep memory

kvm切换器 麒麟系统_ubuntu_08

3.查看虚拟机运行情况

virt-top

4.停止虚拟机

virsh shutdown centos7

5.开始虚拟机

virsh start centos7

6.设置虚拟机为自动开机

virsh autostart centos7

7.连接虚拟机终端

virsh console centos7

8.挂载虚拟机

virsh suspend centos7

9.克隆虚拟机

virt-clone --connect qemu:///system --original centos7 --name centos7-clone --file /home/os/centos7-clone.img

10.开启克隆虚拟机

virsh start centos7-clone

11.删除克隆的虚拟机

virsh shutdown centos7-clone
virsh undefine centos7-clone
rm /home/os/centos7-clone.img

011 修改KVM虚拟机配置

1.修改虚拟机内存

virsh setmem centos7 524288 "在不重启虚拟机的情况下,动态修改虚拟机内存"

kvm切换器 麒麟系统_kvm切换器 麒麟系统_09


virsh shutdown centos7
virsh edit centos7

修改完并保存配置文件

virsh create /etc/libvirt/qemu/centos7.xml

2.修改CPU个数,和修改内存的方法一样

virsh shutdown centos7
virsh edit centos7

修改完并保存配置文件

virsh create /etc/libvirt/qemu/centos7.xml

3.添加磁盘

dd if=/dev/zero of=/home/os/centos7-add.img bs=1k xount=10240
virsh edit centos7

添加以下内容并保存配置文件

<disk type='file' device='disk'>
    <driver name='qemu' type='raw'/>
    <source file='/home/os/centos7-add.img'/>
    <target dev='vdb' bus='virtio'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
virsh create /etc/libvirt/qemu/centos7.xml

进入虚拟机查看

fdisk -l

kvm切换器 麒麟系统_ubuntu_10

4.添加NAT网络
定义一个虚拟网络

virsh net-define /usr/share/libvirt/networks/default.xml

添加内容

<network>
  <name>default</name>
  <bridge name="virbr0" />
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254" />
    </dhcp>
  </ip>
</network>

设置为自动启动

virsh net-autostart default

启动网络

virsh net-start default

查看网络

brctl show

修改/etc/sysctl.conf中参数,允许ip转发

net.ipv4.ip_forward=1

修改虚拟机配置文件

virsh edit centos7

将桥接的网卡改成NAT网
桥接

<interface type='bridge'>
      <mac address='52:54:00:7e:07:f6'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>

NAT

<interface type='network'>
      <mac address='52:54:00:4f:1b:07'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

修改完之后,保存退出。

virsh create /etc/libvirt/qemu/centos7.xml

100 KVM活动迁移虚拟机

迁移条件:三个虚拟机,一个源虚拟机,一个目标虚拟机,一个NFS共享存储虚拟机

kvm切换器 麒麟系统_迁移_11

1.三台虚拟机关闭SElinux和防火墙

vi /etc/selinux/config
修改SELINUX为disabled
SELINUX=disabled
iptables -F   “清空所有规则”

2.NFS共享存储虚拟机安装NFS服务

yum -y install nfs-utils

3.创建并加载挂载目录

mkdir /home/images
vi /etc/exprots "打开配置文件"
添加
/home/images * (rw,sync,no_root_squash)

4.查看是否共享目录,并重启nfs服务

exportfs -av

systemctl enable rpcbind.service
systemctl enable nfs-server.service

systemctl start rpcbind.service
systemctl start nfs-server.service

5.源虚拟机和目标虚拟机安装nfs客户端

yum -y install nfs-common

6.查看是否能挂载共享目录

showmount -e NFS_ip "NFS_ip是NFS虚拟机的ip"

没有目录的话,清空防火墙规则iptables -F,或者重启nfs服务systemxctl restart nfs
7.验证完之后,源虚拟机和目标虚拟机挂载共享目录,

mkdir /home/images
mount -t nfs NFS_ip:/home/images /home/images

8.查看是否挂载成功

mount

kvm切换器 麒麟系统_kvm切换器 麒麟系统_12

注意:第5-8步骤,为源虚拟机和目标虚拟机的挂载共享目录步骤,且步骤一样。

9.源虚拟机中创建基于NFS共享目录的虚拟机

virt-install --connect=qemu:///system --name centos7 --ram 512 --vcpus=1 --os-type=linux --os-variant=ubuntuprecise --accelerate --hvm  --disk path=/home/images/source_centos7.img,size=6,bus=virtio --location /home/CentOS-7-x86_64-Minimal-1511.iso  --extra-args='console=tty0 console=ttyS0' --network bridge=br0,model=virtio  --graphics none
注意:CentOS-7-x86_64-Minimal-1511.iso这个镜像是之前已经传到虚拟机的。

10.查看虚拟机列表,要求要迁移的虚拟机是启动状态。
virsh list
11.动态迁移虚拟机

virsh migrate --verbose --live source_centos7 qemu+ssh://des_ip/system --unsafe

"des_ip"为目标虚拟机机的ip

12.迁移完之后,源虚拟机的虚拟机列表中迁移的虚拟机会消失,目标虚拟机的虚拟机列表中会增加一个正在运行的迁移的虚拟机,这样迁移就完成了。