公司部分Linux服务器利用率不高,为充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统
在运行Nginx的服务器上部署KVM,然后在虚拟机上运行Tomcat
KVM虚拟化架构
KVM模块直接整合在Linux内核中
主机要求
采用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功能管理
查看命令帮助
[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