在centos7环境部署kvm虚拟化

应用场景:
1.、割接
使用新服务器替换老旧的服务器。

2.、迁移

安装kvm

环境centos7 8G内存 200G硬盘x1 和 100G硬盘x1
首先要安装epel源

安装一堆软件就ok了

[root@kvm ~]# yum install -y libvirt-python virt-manager libguestfs-tools virt-install qemu-kvm libvirt bridge-utils kvm

在这里安装虚拟机

准备一个虚拟机需要的资源:
1、CPU
直接从宿主机划分。

2、内存
直接从宿主机划分。

3、硬盘

做LV

[root@kvm ~]# pvcreate /dev/sdb
[root@kvm ~]# vgcreate vgkvm /dev/sdb
[root@kvm ~]# lvcreate -L 50G -n lvkvm vgkvm
[root@kvm ~]# mkfs.xfs /dev/vgkvm/lvkvm 
	
[root@kvm ~]# vim /etc/fstab
/dev/mapper/vgkvm-lvkvm /kvm    xfs defaults    0 0

[root@kvm ~]# mkdir /kvm
[root@kvm ~]# mount -a
[root@kvm ~]# df -h | tail -1
/dev/mapper/vgkvm-lvkvm   50G   33M   50G   1% /kvm

做kvm虚拟机底层存储的有:
【1】分区
/dev/sda5 /dev/sda6 【2】lv
/dev/vgkvm/lv01 , lv02 使用物理层设备做存储,优点是读写速度快,缺点是不能迁移。

【3】文件
raw格式,默认的,基本不用
qcow2格式,用多少,占多少,直到上限

用的比较多,演示用的也是这个

[root@kvm /kvm]# qemu-img create -f qcow2 /kvm/node.qcow2 200G
[root@kvm ~]# cd /kvm/
[root@kvm /kvm]# ls
node.qcow2
	> lv,一会在使用的时候,会有警告。

4、 网卡
创建网桥。

[root@kvm /etc/sysconfig/network-scripts]# cp ifcfg-ens32 ifcfg-br0

[root@kvm /etc/sysconfig/network-scripts]# vim ifcfg-ens32 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens32
DEVICE=ens32
ONBOOT=yes
BRIDGE=br0	#<--

[root@kvm /etc/sysconfig/network-scripts]# vim ifcfg-br0
TYPE=Bridge	#<--
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=br0	#<--
DEVICE=br0	#<--
ONBOOT=yes
IPADDR=172.16.0.29
NETMASK=255.255.0.0
GATEWAY=172.16.0.254
DNS1=211.137.32.178
DNS2=202.96.64.68

[root@kvm ~]# /etc/init.d/network restart

[root@kvm ~]# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.0.29  netmask 255.255.0.0  broadcast 172.16.255.255

安装虚拟机:

[root@kvm ~]# virt-install --name=ks-node --vcpus 1 --ram 4096 --disk path=/kvm/ks-node.qcow2,device=disk,size=200,format=qcow2,bus=virtio --network bridge=br0 --os-type linux --location 'http://172.16.12.200/centos7' --graphics none --console pty,target_type=serial --extra-args='ks=http://172.16.12.200/pub/kickstart-VMc7.cfg console=ttyS0,115200n8 serial'

	--name	指定虚拟机的名字
		与存储的名字一致
	--vcpus	cpu线程数
	--ram	内存,M
	--disk	硬盘参数
	--network	网卡参数
	--os-type	安装的系统类型
	--location	安装源
	--graphics	文本化安装
	--console	控制接口参数
	--extra-args	安装参数

按键ctrl + “ ] ”退出虚拟控制接口

连接虚拟机:

1、 在宿主机连接console接口
只有1个控制台可以连接

[root@kvm ~]# virsh list
 Id    Name                           State
----------------------------------------------------
 3     node                           running

查看正在运行的虚拟机

[root@kvm ~]# virsh list --all
	查看所有的虚拟机

[root@kvm ~]# virsh console node
	2次回车
ks1 login:

配置IP!!!

[root@ks1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens3
NAME="ens3"
DEVICE="ens3"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=172.16.0.239
NETMASK=255.255.0.0
GATEWAY=172.16.0.254
DNS1=211.137.32.178

[root@ks1 ~]# /etc/init.d/network restart

[root@ks1 ~]# ping www.baidu.com
PING www.a.shifen.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=1 ttl=53 time=25.0 ms

记住!!!
退出console接口时,一定要退出虚拟机的登录。
ctrl d 按键

2、 ssh
[c:~]$ ssh root@172.16.0.239

进行初始化操作。

虚拟机的开启和关闭:
关闭:

[root@kvm ~]# virsh shutdown node
//正常关闭
[root@kvm ~]# virsh destroy  node
//直接拔电源

启动:

[root@kvm ~]# virsh start node

虚拟机的文件:只有2个

[root@kvm /etc/libvirt/qemu]# ls
node.xml	配置文件

[root@kvm /kvm]# ls
node.qcow2	存储文件

解读配置文件:

[root@kvm /etc/libvirt/qemu]# vim node.xml 

<domain type='kvm'>	类型
  <name>node</name>	名字
  <uuid>81a03bb4-0b4b-4192-ae26-7eca96172e56</uuid>	UUID,唯一标识
  <memory unit='KiB'>4194304</memory>				内存
  <currentMemory unit='KiB'>4194304</currentMemory>	内存
  <vcpu placement='static'>1</vcpu>	CPU线程数

  <clock offset='utc'>	改
	utc改成localtime

    <disk type='file' device='disk'>	硬盘配置
      <driver name='qemu' type='qcow2'/>
      <source file='/kvm/node.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>

    <interface type='bridge'>			网卡配置,类型桥接
      <mac address='52:54:00:f6:b8:55'/>	
      <source bridge='br0'/>
      <model type='rtl8139'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

将内存修改为1G
时钟改成本地时区

修改虚拟机的配置,虚拟机一定是处于关机状态

[root@kvm ~]# virsh shutdown node
[root@kvm ~]# virsh list
list没有机器就ok

修改配置文件:修改硬件

[root@kvm ~]# export EDITOR=vim
//修改下默认的文本编辑器
[root@kvm ~]# virsh edit node
  <memory unit='GiB'>1</memory>
  <currentMemory unit='GiB'>1</currentMemory>
  <clock offset='localtime'>
然后再打开就是有色彩的

启动

[root@kvm ~]# virsh start node
[root@node ~]# grep -c "proc" /proc/cpuinfo 
1
[root@node ~]# free -m
              total
Mem:            992
[root@node ~]# cat /proc/partitions 

major minor  #blocks  name
 252     0  209715200 vda
 252     1     204800 vda1
 252     2  209509376 vda2
 253     0   10485760 dm-0
 253     1     524288 dm-1

删除KVM虚拟机

停止主机:virsh destroy linux65

删除主机定义:virsh undefine linux65

删除KVM虚拟机文件: rm -f /home/vps/linux65.img