公司部分Linux服务器利用率不高,为充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统

在运行Nginx的服务器上部署KVM,然后在虚拟机上运行Tomcat

KVM虚拟化架构
KVM模块直接整合在Linux内核中

部署kvm虚拟化平台及功能管理_第1张图片

主机要求
采用CentOS 6.5 x86_64
开启CPU虚拟化支持

安装方式

全新安装,选择虚拟化选项


设置KVM网络

采用桥接模式


KVM图形化管理

创建存储池

创建存储卷

创建虚拟机

安装虚拟机操作系统

-

在安装操作系统的时候,选择桌面安装,并选择“现在自定义”,下一步之后选择“虚拟化”,并勾选右侧的所有功能。但是如果安装系统的时候没有选择也没关系,可以使用yum安装

[root@centos1 /]# rm -rf /etc/yum.repos.d/*
[root@centos1 /]# vim /etc/yum.repos.d/index.repo
[root@centos1 /]# yum -y install qemu-kvm.x86_64
[root@centos1 /]# vim /etc/yum.repos.d/index.repo
[root@centos1 /]# mount /dev/cdrom /media/
[root@centos1 /]# yum -y install qemu-kvm.x86_64
[root@centos1 /]# yum -y install qemu-kvm-tools.x86_64
[root@centos1 /]# yum -y install python-virtinst.noarch
[root@centos1 /]# yum -y install qemu-img.x86_64
[root@centos1 /]# yum -y install bridge-utils.x86_64
[root@centos1 /]# yum -y install libvirt
[root@centos1 /]# yum -y install virt-manager
验证cpu是否支持虚拟化,如果有输出代表没问题.
[root@centos1 /]# cat /proc/cpuinfo | grep vmx
然后检查kvm模块是否安装好
[root@centos1 /]# lsmod | grep kvm

-
设置kvm网络
在libvirt中运行kvm网络有两种方法:nat和bridge,默认是nat(用户模式),用户模式可以访问外网,但是无法从外部访问虚拟机网络,所以用的不是很多,一般做的服务器都需要外网的访问,所有多数情况采用桥接模式(bridge),这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机,下面以桥接模式为例:
修改网卡配置文件

[root@centos1 /]#  vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE="br0"
[root@centos1 /]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
TYPE=Bridge
IPADDR=192.168.1.1
NETMASK=255.255.255.0
[root@centos1 /]# rm -rf /etc/udev/rules.d/70-persistent-net.rules 
[root@centos1 /]# reboot

如果重启服务不生效那么重启电脑

因为新增加了一块硬盘所以去添加分区,分区具体流程不演示
[root@centos1 /]# fdisk /dev/sdb
格式化分区
[root@centos1 /]# mkfs -t ext4 /dev/sdb1
查看
[root@centos1 /]# fdisk -l
同于存储之后创建的虚拟机。
[root@centos1 /]# mkdir -p /data_kvm/store
将磁盘挂载到store
[root@centos1 /]# mount /dev/sdb1 /data_kvm/
[root@centos1 /]# cd /data_kvm/
[root@centos1 /data_kvm/]# mkdir store
在创建一个用于存放镜像的
[root@centos1 /data_kvm/]# mkdir iso
打开图形化管理虚拟里的软件进行管理
[root@centos1 /]# virt-manager

部署kvm虚拟化平台及功能管理_第2张图片

部署kvm虚拟化平台及功能管理_第3张图片

部署kvm虚拟化平台及功能管理_第4张图片

部署kvm虚拟化平台及功能管理_第5张图片

部署kvm虚拟化平台及功能管理_第6张图片

部署kvm虚拟化平台及功能管理_第7张图片

部署kvm虚拟化平台及功能管理_第8张图片

部署kvm虚拟化平台及功能管理_第9张图片

部署kvm虚拟化平台及功能管理_第10张图片

部署kvm虚拟化平台及功能管理_第11张图片

部署kvm虚拟化平台及功能管理_第12张图片

部署kvm虚拟化平台及功能管理_第13张图片

部署kvm虚拟化平台及功能管理_第14张图片

部署kvm虚拟化平台及功能管理_第15张图片

部署kvm虚拟化平台及功能管理_第16张图片

部署kvm虚拟化平台及功能管理_第17张图片

部署kvm虚拟化平台及功能管理_第18张图片

部署kvm虚拟化平台及功能管理_第19张图片

部署kvm虚拟化平台及功能管理_第20张图片

部署kvm虚拟化平台及功能管理_第21张图片

部署kvm虚拟化平台及功能管理_第22张图片

部署kvm虚拟化平台及功能管理_第23张图片

部署kvm虚拟化平台及功能管理_第24张图片

部署kvm虚拟化平台及功能管理_第25张图片

-
kvm功能管理

查看命令帮助
[root@centos1 data_kvm] virsh -h

-

查看KVM配置文件存放目录
[root@centos1 data_kvm]#ls /etc/libcirt/qwmu
-

autostart  networks centos6.xml

-

查看虚拟机状态
[root@centos1 data_kvm]# virsh list --all
-
 Id    Name                           State
-
 2     centos6                        running

-

首先要开启acpid服务安装并运行在执行开机关机

[root@centos1 data_kvm]# virsh shutdown centos6
Domain centos6 is being shutdown

[root@centos1 data_kvm]# virsh start centos6
error: Domain is already active

-

强制系统关闭电源
[root@centos1 data_kvm]# virsh destroy centos6
Domain centos6 destroyed

-

通过配置文件启动虚拟机
[root@centos1 data_kvm]# virsh create /etc/libvirt/qemu/centos6.xml 
Domain centos6 created from /etc/libvirt/qemu/centos6.xml

查看

[root@centos1 data_kvm]# virsh list --all
 Id    Name                           State
-
 3     centos6                        running

-

挂起虚拟机

[root@centos1 data_kvm]# virsh suspend centos6
Domain centos6 suspended

[root@centos1 data_kvm]# virsh list --all
 Id    Name                           State
-
 3     centos6                        paused

-

恢复虚拟机
[root@centos1 data_kvm]# virsh resume centos6
Domain centos6 resumed

[root@centos1 data_kvm]# virsh list --all
 Id    Name                           State
-
 3     centos6                        running

-

配置虚拟机实例伴随宿主机自动启动
[root@centos1 data_kvm]# virsh autostart centos6
Domain centos6 marked as autostarted

-

备份
[root@centos1 123]# virsh dumpxml centos6 > /etc/libvirt/qemu/centos6-1.xml

-

删除虚拟机线关机
[root@centos1 123]# virsh shutdown centos6
Domain centos6 is being shutdown

-

强制切断电源
[root@centos1 123]# virsh destroy centos6
Domain centos6 destroyed

-

删除
[root@centos1 123]# virsh undefine centos6
Domain centos6 has been undefined

-

查看删除结果
[root@centos1 123]# ls /etc/libvirt/qemu
autostart  centos6-1.xml  networks

[root@centos1 123]# virsh list --all
 Id    Name                           State

-

通过配置文件重新定义虚拟机
[root@centos1 123]# cd /etc/libvirt/qemu
[root@centos1 qemu]# mv centos6-1.xml centos6.xml

-

重新定义虚拟机
[root@centos1 qemu]# virsh define centos6.xml
Domain centos6 defined from centos6.xml

-

查看虚拟机信息
[root@centos1 qemu]# virsh list --all
 Id    Name                           State
-
 -     centos6                        shut off

-

修改虚拟机配置信息
[root@centos1 qemu]# vim /etc/libvirt/qemu/centos6.xml 
通过命令修改配置信息
[root@centos1 qemu]# virsh edit centos6

-

-

kvm文件管理

转换raw格式从磁盘至qcow2格式
[root@centos1 qemu]# qemu-img info /data_kvm/store/google_kvm.img 
image: /data_kvm/store/google_kvm.img
file format: raw
virtual size: 9.8G (10485760000 bytes)
disk size: 9.8G

-

关闭虚拟机
[root@centos1 qemu]# virsh shutdown centos6

-

转换磁盘文件格式
[root@centos1 qemu]# qemu-img convert -f raw -O qcow2
/data_kvm/store/google_kvm.img /data_kvm/store/centos6-2.qcow2

-
注;下面两个qcow2 是修改后的

修改xml配置文件
[root@centos1 qemu]# virsh edit centos6

    
      
      
      

-

想使用virt-cat更多命令先安装libguestfs-tools
[root@centos1 qemu]# yum -y install libguestfs-tools

-

类似于cat命令
[root@centos1 media]# virt-cat -a /data_kvm/store/centos6-2.qcow2
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain

-

用于编辑文件用法与vim基本一致
[root@centos1 media]# virt-edit  -a /data_kvm/store/centos6-2.qcow2
/etc/resolv.conf 

-

-

虚拟机克隆

查看虚拟机状态
[root@centos1 /]# virt-df -h centos6
Filesystem                                Size       Used  Available  Use%
centos6:/dev/sda1                         484M        33M       427M    7%
centos6:/dev/VolGroup/lv_root             8.2G       735M       7.0G    9%

-

从centos6克隆到centos7
[root@centos1 /]# virt-clone -o centos6 -n centos7 -    f /data_vkm/store/centos7.qcow2

-

查看抓状态
[root@centos1 /]#virsh list --all

Id    Name                           State
-
 -     centos6                        shut off
 -     centos7                        shut off

-

启动虚拟机
[root@centos1 /]virsh start centos7

-

-

虚拟机快照

对contos6创建快照
[root@centos1 /] virsh snapshot-create centos6
Domain  snapshot 1382572463 created

-

查看快照版本信息
[root@centos1 /] cirsh snapshot-current centos6

   1382572463
   running

-

查看快照信息
[root@centos1 /] virsh snapshot-list centos6

-

恢复快照
[root@centos1 /] virsh snapshot-servert centos6 1382571463

-

查看快照版本信息
[root@centos1 /] virsh snapshot-current centos6

-

删除快照
[root@centos1 /] virsh snapshot-delete centos6  1381571463