当前位置: 首页 > news >正文

Linux:KVM虚拟化

本章操作基于centos7系统


简介

KVM是Kernel Virtual Machine的简写,目前Redhat只支持在64位的Rhel5.4以上的系统运行KVM,同时硬件需要支持VT技术。KVM的前身是QEMU,在2008年被redhat公司收购并获得了一项hypervisor技术,不过redhat的KVM被认为将成为未来linux hypervisor的主流,准确的来说KVM不仅仅是linux内核的一个模块。管理和创建完成的KVM虚拟机,需要更多的辅助工具。接下来部署KVM虚拟化环境。

公司部分的linux服务器利用率不是很高,为了充分利用这些linux服务器,可以部署KVM ,在物理机上运行多个业务系统,比如在运行Nginx服务器上部署KVM,然后在虚拟机上运行Tomcat


需要环境&配置

1) 需要图形化桌面环境

2)内存:2048M或以上

3)处理器:核心数 2或以上

4)如果是虚拟机需要开启虚拟化引擎:首选模式:intel VT-x 或 AMD-V 

5)硬盘:100G以上


 基础环境准备

打开虚拟机的虚拟化

 勾选上虚拟化lnetl tv-x……即可

如果你没有桌面环境可以使用两个命令,如果有,跳过下面两条命令即可

yum -y groupinstall  gnome-desktop  
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

 安装KVM

yum -y install qemu-kvm.x86_64 qemu-kvm-tools.x86_64 qemu-img.x86_64 python-virtinst.noarch bridge-utils.x86_64 libvirt virt-manager

qemu-kvm.x86_64             //kvm模块

qemu-kvm-tools.x86_64   //kvm调试工具,可不安装

python-virtinst.noarch      //python组件,记录创建vm时的xml文件

qemu-img.x86_64          //qemu组件,创建磁盘,启动虚拟机等

bridge-utils.x86_64       //网络支持工具

libvirt    //虚拟机管理工具

virt-manager      //图形界面管理虚拟机

安装完以后  reboot  重启服务器

 重启以后查看是否开启了虚拟化

如果你是intel的cpu就使用

cat /proc/cpuinfo | grep vmx

开启成功

如果你是AMD的cpu那么就用 

cat /proc/cpuinfo | grep smv

检查KVM模块是否安装

lsmod | grep kvm


KVM网络配置

宿主服务器安装了KVM,首先要设定网络,在libvirt中运行KVM网络有两种方法NAT和Bridge,默认是NAT。

nat地址转换就是虚拟机用物理机的网卡上网

桥接就是把虚拟机和真机放到一个局域网

下面我这里是桥接模式的配置

 我这里的主机网卡名为ens33

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

桥接到br0

vim /etc/sysconfig/network-scripts/ifcfg-br0写入DEVICE=br0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.254.111
NETMASK=255.255.255.0
systemctl restart network

现在就可以了


KVM图形化创建虚拟机

先去/下创建两个文件一个用于放iso镜像,一个用于放虚拟机

mkdir -p /kvm/iso /kvm/xuniji

iso用于放镜像,xuniji用于放虚拟机文件

让后我们把要创建虚拟机的镜像放如/kvm/iso中,我这里还用centos镜像演示

iso镜像放进去以后去开启软件 

图形化找到kvm软件

 或者在命令行中使用命令行打开

virt-manager 

现在我们要在软件里把刚刚创建好的文件选择上

 双击打开

点击储存,再点左下角➕

 名字随便写,我这个先加虚拟机存放目录,所以我这个名字就叫虚拟机了,让后前进

点击浏览,让后找到/kvm/xuniji

 点击打开

现在虚拟机存放目录就好了,再去添加iso文件,和这个一样

 

 

 

这样两个文件就添加好了,现在,放虚拟机,选择镜像就去这两个文件夹就行了,如果你的服务器硬件资源足够大的化,可以创建大量的虚拟机

 现在就可以去创建虚拟机了

 

 

 

这里选择你要的虚拟机配置,配置完了再前进

 

先去配置虚拟机硬盘大小,让后点管理

 

 调整配置

 

在结束前可以再去配置一下硬件啥的,如果没有要配置的了,那么直接就开始安装,就直接进入系统安装了

 安装centos等系统我这里就不演式了,因为今天主要讲的是kvm

到这里我们的虚拟机就可以正常安装上了,除了Linux,Windows,类unix等等基本都是这样安装,也很向Windows上的VMware等软件 


克隆,快照等操作

当我们需要进行克隆时需要让虚拟机为关闭的状态

或者 

 

 

这样就克隆好了 

 

点击快照

创建快照 

恢复快照 

网络接口配置

 


命令行操作kvm

virsh -h

查看帮助

virsh list --all

查看当前虚拟机状态的列表

两个虚拟机都为运行状态

 virsh shutdown 虚拟机名称

关闭指定的虚拟机

 virsh shutdown centos7

 

virsh start 虚拟机名称

开启虚拟机 

virsh start centos7

 

 virsh destroy 虚拟机名称

关闭虚拟机(和shutdown 一个效果)

 virsh create /etc/libvirt/qemu/虚拟机配置文件.xml

 通过配置文件开启虚拟机

virsh create /etc/libvirt/qemu/centos7.xml 

virsh suspend  虚拟机名称

挂起虚拟机

virsh resume  虚拟机名称

恢复挂起虚拟机

virsh autostart  虚拟机名称

 和宿主机一起开启,也就是当真机开机的时候虚拟机也会一起打开

备份虚拟机文件

virsh dumpxml 虚拟机名称   > /etc/libvirt/qemu/虚拟机名称.xml

 导出虚拟机配置

virsh shutdown 虚拟机名称

关闭虚拟机

 virsh undefine 虚拟机名称

删除虚拟机 

cd /etc/libvirt/qemu 

前往虚拟机主配置文件

mv 刚刚备份的虚拟机文件.xml   一开始的虚拟机文件名.xml

 恢复备份文件

 virsh define 虚拟机文件名.xml

通过备份的配置文件重新定义虚拟机 

virsh list --all 

虚拟机快照
kvm虚拟机使用镜像功能,磁盘格式必须为qcow2.

【创建快照】
virsh snapshot-create 虚拟机名

【查看快照版本信息】
 virsh snapshot-current 虚拟机名

【查看快照信息】
virsh snapshot-list 虚拟机名

【恢复快照到指定】

virsh snapshot-revert 虚拟机名 快照编号


 virsh snapshot-revert test01 1282572463

virsh snapshot-current 虚拟机名
【删除快照】
virsh snapshot-delete 虚拟机名  快照编号

 

http://www.lryc.cn/news/212275.html

相关文章:

  • HTML标签,列表,表格相关
  • 【音视频】Linux | FFmpeg源码搭建
  • Ansible中常用模块
  • 2000-2021年上市公司产融结合度量数据
  • 2023最新最全Web自动化测试面试题
  • List的add(int index,E element)陷阱,不得不防
  • 如何使用drawio画流程图以及导入导出
  • 腾讯云轻量服务器“镜像类型”以及“镜像”选择方法
  • docker-compose 简单部署Flask + Redis + Nginx环境搭建网站
  • debian和ubuntu
  • 恒驰服务 | 华为云数据使能专家服务offering之数仓建设
  • AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码
  • 深度学习02-数据集格式转换
  • 【c++|opencv】一、基础操作---1.图像读取
  • 【2023.10.30练习】C语言-循环右移字符
  • C++ 自引用指针this(整理)
  • pyzed.sl 突然 ImportError: DLL load failed while importing sl: 找不到指定的程序。 的解决
  • STM32 Cube配置RS485 Modbus
  • global,nonlocal
  • HTML5教程
  • vulnhub momentum 靶机复盘
  • c++和java实现策略模式的差异
  • vim
  • AcWing93. 递归实现组合型枚举:输出从1~n中随机选出的m个整数
  • Java修仙传之Flink篇
  • 网络新闻发稿为何经久不衰?
  • Java SimpleDateFormat 中英文时间格式化转换
  • 机器学习-基本知识
  • Xilinx 7 系列 1.8V LVDS 和 2.5V LVDS 信号之间的 LVDS 兼容性
  • R语言在生态环境领域中的实践技术应用