322ggg 发表于 2018-1-22 13:10:59

部署kvm虚拟化平台及功能管理

公司部分Linux服务器利用率不高,为充分利用这些Linux服务器,可以部署KVM,在物理机上运行多个业务系统
在运行Nginx的服务器上部署KVM,然后在虚拟机上运行Tomcat
KVM虚拟化架构
KVM模块直接整合在Linux内核中

主机要求
采用CentOS 6.5 x86_64
开启CPU虚拟化支持安装方式
全新安装,选择虚拟化选项

设置KVM网络
采用桥接模式

KVM图形化管理
创建存储池
创建存储卷
创建虚拟机
安装虚拟机操作系统
-
在安装操作系统的时候,选择桌面安装,并选择“现在自定义”,下一步之后选择“虚拟化”,并勾选右侧的所有功能。但是如果安装系统的时候没有选择也没关系,可以使用yum安装# rm -rf /etc/yum.repos.d/*
# vim /etc/yum.repos.d/index.repo
# yum -y install qemu-kvm.x86_64
# vim /etc/yum.repos.d/index.repo
# mount /dev/cdrom /media/
# yum -y install qemu-kvm.x86_64
# yum -y install qemu-kvm-tools.x86_64
# yum -y install python-virtinst.noarch
# yum -y install qemu-img.x86_64
# yum -y install bridge-utils.x86_64
# yum -y install libvirt
# yum -y install virt-manager

验证cpu是否支持虚拟化,如果有输出代表没问题.
# cat /proc/cpuinfo | grep vmx
然后检查kvm模块是否安装好
# lsmod | grep kvm

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

#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
BRIDGE="br0"

# 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

# rm -rf /etc/udev/rules.d/70-persistent-net.rules
# reboot

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

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











http://i2.51cto.com/images/blog/201801/21/dd912a3a35f67116c7e1472946f9e093.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=












kvm功能管理

查看命令帮助
virsh -h

-

查看KVM配置文件存放目录
#ls /etc/libcirt/qwmu
-

autostartnetworks centos6.xml

-

查看虚拟机状态
# virsh list --all
-
Id    Name                           State
-
2   centos6                        running

-

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

# virsh shutdown centos6
Domain centos6 is being shutdown

# virsh start centos6
error: Domain is already active

-

强制系统关闭电源
# virsh destroy centos6
Domain centos6 destroyed

-

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

查看

# virsh list --all
Id    Name                           State
-
3   centos6                        running

-

挂起虚拟机

# virsh suspend centos6
Domain centos6 suspended

# virsh list --all
Id    Name                           State
-
3   centos6                        paused

-

恢复虚拟机
# virsh resume centos6
Domain centos6 resumed

# virsh list --all
Id    Name                           State
-
3   centos6                        running

-

配置虚拟机实例伴随宿主机自动启动
# virsh autostart centos6
Domain centos6 marked as autostarted

-

备份
# virsh dumpxml centos6 > /etc/libvirt/qemu/centos6-1.xml

-

删除虚拟机线关机
# virsh shutdown centos6
Domain centos6 is being shutdown

-

强制切断电源
# virsh destroy centos6
Domain centos6 destroyed

-

删除
# virsh undefine centos6
Domain centos6 has been undefined

-

查看删除结果
# ls /etc/libvirt/qemu
autostartcentos6-1.xmlnetworks

# virsh list --all
Id    Name                           State

-

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

-

重新定义虚拟机
# virsh define centos6.xml
Domain centos6 defined from centos6.xml

-

查看虚拟机信息
# virsh list --all
Id    Name                           State
-
-   centos6                        shut off

-

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

-

-

kvm文件管理

转换raw格式从磁盘至qcow2格式
# 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

-

关闭虚拟机
# virsh shutdown centos6

-

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

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

修改xml配置文件
# virsh edit centos6

    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='none'/>
      <source file='/data_kvm/store/google_kvm.qcow2'/>
      <target dev='vda' bus='virtio'/>

-

想使用virt-cat更多命令先安装libguestfs-tools
# yum -y install libguestfs-tools

-

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

-

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

-

-

虚拟机克隆

查看虚拟机状态
# virt-df -h centos6
Filesystem                              Size       UsedAvailableUse%
centos6:/dev/sda1                         484M      33M       427M    7%
centos6:/dev/VolGroup/lv_root             8.2G       735M       7.0G    9%

-

从centos6克隆到centos7
# virt-clone -o centos6 -n centos7 -    f /data_vkm/store/centos7.qcow2

-

查看抓状态
#virsh list --all

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

-

启动虚拟机
virsh start centos7

-

-

虚拟机快照

对contos6创建快照
virsh snapshot-create centos6
Domainsnapshot 1382572463 created

-

查看快照版本信息
cirsh snapshot-current centos6
<domainsnapshot>
   <name>1382572463</name>
   <state>running</state>

-

查看快照信息
virsh snapshot-list centos6

-

恢复快照
virsh snapshot-servert centos6 1382571463

-

查看快照版本信息
virsh snapshot-current centos6

-

删除快照
virsh snapshot-delete centos61381571463


imissmylove 发表于 2018-1-26 11:50:54

Thanks for sharing!!!!!

imissmylove 发表于 2018-1-26 12:22:19

Thanks for sharing!!!!!

pinyrao 发表于 2018-3-14 15:13:32

学习了

北极小熊 发表于 2018-6-25 11:21:55

谢谢分享

zhy1022wo 发表于 2018-10-15 14:11:17

谢谢分享!

scott_8 发表于 2020-4-24 10:06:18

学习了
页: [1]
查看完整版本: 部署kvm虚拟化平台及功能管理