centos7之KVM虚拟化平台

一、环境介绍:

  centos7.4

  172.16.5.238

  vm虚拟机(BIOS打开VT功能,vmware station打开虚拟化选项)

  

  检查是否支持虚拟化。

 cat /proc/cpuinfo | grep vmx

 

二、部署

1、配置网卡。

ifcfg-ens33,本地宿主机网卡除了正常配置外,只需要加一个BRIDGE=br0就行。

2、新建一个ifcfg-br0网卡。

#touch ifcfg-br0

文件中写入如下内容,把宿主机的ip,mask,gateway,dns都原封不动移动过来,再新加其它几个选项。

3、重启网卡。

#systemctl restart network.service

4、验证(reboot重启完后查看)。

 

5、根据个人需求,安装需要的程序。

yum install -y wget lrzsz gcc gcc-c++ vim

6、安装kvm

 yum -y install qemu-kvm qemu-kvm-tools qemu-img virt-manager libvirt libvirt-python libvirt-client bridge-utils virt-viewer virt-install 

  启动并设置开机自启动

systemctl start libvirtd
systemctl enable libvirtd

  

7、查看模块

lsmod | grep kvm

8、关闭firewalld和selinux,如果有iptables的话,先关闭。

9、新建两个目录存放iso文件和image文件。

mkdir -p /data/iso
mkdir -p /data/vm-image

10、开始安装虚拟机,这里我们安装的是centos7.4

virt-install --name centos7.4  --ram 1024 --vcpus=1 --disk path=/data/vm-image/centos7.4.img,size=5 --network bridge=br0 --cdrom  /data/iso/CentOS-7-x86_64-DVD-1708.iso  --vnclisten=172.16.5.238  --vncport=6900 --vnc

 提示如下的时候,需要打开vnc客户端软件连接。

 1 virt-install 
 2 --name centos7.4  #虚拟机名称
 3 --ram 1024 #内存大小
 4 --vcpus=1 #CPU个数
 5 --disk path=/data/vm-image/centos7.4.img,size=5 #系统存放位置和硬盘大小(GB)
 6 --network bridge=br0  #桥接网卡信息
 7 --cdrom  /data/iso/CentOS-7-x86_64-DVD-1708.iso  #iso文件位置
 8 --vnclisten=172.16.5.238  #vnc连接地址
 9 --vncport=6900 #vnc连接端口
10 --vnc #连接方式
创建虚拟机参数介绍

 注意:

  关闭虚拟机

  virsh shutdown +域名  

  这个时候我在virsh list发现 这个虚拟机还是在运行的,并没有关闭。

  我们需要安装一个acpid的服务并启动它,什么是ACPI?

  ACPI是Advanced Configuration and PowerInterface缩写,高级配置和电源管理接口。

  acpid中的d则代表daemon。Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。

  Acpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。

  其实,说明了就是通过这个服务来执行电源关闭的动作,这也是为什么我们执行virsh shutdown +域名无法关机的原因。

  所以,我们需要在子系统里面安装acpid,启动服务器后重启一下子系统,这样我们在virsh控制台就可以reboot和shutdown了,如果是windows,需要在宿主机上安装acpid,但是是能用shutdown命令,reboot是不可以的。不过可以用destory这个命令。

#yum install -y acpid
#/etc/init.d/acpid start或者service start acpid

  如果此时我没法进入子机安装acpi协议的话,那么就无法关掉该虚拟机,此时可以用下面这种方法。

#virsh destroy +域名  
这种方式的关闭,是一种删除的方式,只是在virsh list中删除了该虚拟机,更多的时候我们习惯用这个命令关机

  

11、安装vncviewer,地址https://www.realvnc.com/en/connect/download/viewer/

12、连接虚拟机

 

vnc连接上虚拟机后,下面是按照操作系统的事情了,这里不再熬述。

 1 # virsh list //查看正在运行 
 2 # virsh list --all //查看所有 
 3 # virsh start benet //启动 
 4 # virsh shutdown benet //关机 
 5 # virsh destroy benet //强制关机 
 6 # virsh autostart benet //随机启动 
 7 # virsh suspend benet //挂起 
 8 # virsh resume benet //恢复 
 9 # virsh undefine benet //删除 
10 # virsh edit benet //编辑、 
管理KVM虚拟机

 

13、增加硬盘

  热添加(虚拟机必须是开机的状态下添加,添加成功后,重启就会失效。)

  1、查看当前硬盘名称,如下,只有/dev/vda这个一个5GB的硬盘,我们下面给他增加一块3GB的硬盘。

   

  2、进入img存放的目录,这里是/data/vm-image/,然后创建一个硬盘文件。

qemu-img create -f raw /data/vm-image/centos7.4_disk.img 3G

  

  3、添加硬盘。

virsh attach-disk centos7.4  /data/vm-image/centos7.4_disk.img  vdb --cache none

  验证;

  

  冷添加(虚拟机是关机状态下添加,常用)

qemu-img create -f qcow2 /data/vm-image/centos7.4_disk.img 4G

qcow2是我们提前看了安装操作系统完成后,对应操作系统的xml文件中disk区域type的名称。后面的路径就是我们要把这个硬盘文件存放到哪里,叫什么名字。最后面的4G是我们要添加的硬盘容量。

修改对应操作系统的xml文件(如若不熟悉可以提前cp一份,备份)

vim /etc/libvirt/qemu/centos7.4.xml

在文件中第一块硬盘的下面添加如下内容(注意里面的内容全部是从上面复制下来,删除开头是<address这一行,注意type的名称一定要和上面创建时候的-f后面选项对应上,file=硬盘文件的绝对路径和名称,dev是我们要加的第几块硬盘,这里我加的是第二块,所以是vdb,为什么是vd呢,看上面第一块硬盘的名称是vda,那第二块就是vdb,千万别自作主张写个sdb或者hdb。):

<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/vm-image/centos7.4_disk.img'/>
      <target dev='vdb' bus='virtio'/>
 </disk>

 

修改完成后注意,一定要重启libvirtd服务才会生效。

systemctl restart libvirtd

 开机启动虚拟机,查看

 

剩下的就不在熬述,结果如下图:

 

14、克隆

 首先需要将被克隆的服务器关机,被克隆的机器没有增加过硬盘。

1 virt-clone  
2 --original centos7.4  #被克隆服务器明后才能
3 --name centos7.4.bak  #克隆后的服务器名称
4 -f /data/vm-image/centos7.4-bak   #被克隆服务器存放位置
5 --force #强制
克隆命令介绍
virt-clone  --original centos7.4  --name centos7.4.bak  -f /data/vm-image/centos7.4-bak  --force

查看,一个克隆成功的操作系统已经完成,他也有xml和img文件。这里我们需要修改xml文件。

修改该xml文件,如下图克隆完成后的xml文件的连接信息,可以确定port肯定不能是自动。

修改为。

然后重启libvirtd服务,否则连接端口肯定就从5900开始了。

15、迁移

冷迁移:

  基本原理就是把这个虚拟机的xml文件和img传到其它虚拟机里面,然后修改xml文件中的ip和端口等其它文件,如果你有磁盘文件,也需要一起cp到目标服务器上。

  可以用domblklist centos7.4(domblklist  虚拟机名称)查看对应虚拟机的img文件(包括系统文件和硬盘文件等)

  

  定义虚拟机。

#virsh define /etc/libvirt/qemu/centos7.4.xml 

  

热迁移:

   https://blog.csdn.net/taiyang1987912/article/details/47973479

 

a、首先用到的肯定是img和xml文件,先将这两个文件传动需要恢复的KVM主机上面。

16、增加网卡

  a、首先我们需要在xml文件中复制一份interface的内容,并修改。

  

  b,重启libvirtd服务。

  c、使用ip a命令查看是否添加成功,如下,mac地址就是我上面在xml文件中写的那个mac地址。

   

  d、使用命令nmcli conn查看网卡的UUID

  

  e、cp ifcfg-eth0 到ifcfg-eth1。

  

  f、这里是ifcfg-eth1网卡信息,注意网卡名称和UUID的修改。

  

  g、添加成功

  

 

posted @ 2018-03-22 15:10  Charles.L  阅读(11969)  评论(0编辑  收藏  举报