参考地址

[root@node1 ~]# cat /etc/centos-release

CentOS Linux release 7.4.1708 (Core)
[root@node1 ~]# uname -r
3.10.0-693.el7.x86_64

虚拟机IP:192.168.1.201

查看CPU是否支持VT功能
[root@node1 ~]# egrep '(vmx|svm)' /proc/cpuinfo
注:如返回内容则说明已经开启,如未返回内容则需要在主板的BIOS中开启虚拟化
[root@node1 ~]# lsmod |grep kvm         # 确定是否正确加载kvm模块

在CentOS 7上安装KVM
yum -y install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer
注:
qemu-kvm = QEMU模拟器
qemu-img = QEMU磁盘映像管理器
virt-install = 用于创建虚拟机的命令行工具。
libvirt = 提供管理虚拟机和控制虚拟机管理程序的libvirtd守护程序。
libvirt-client = 提供用于访问服务器的客户端API,还提供virsh实用程序,该实用程序提供命令行工具来管理虚拟机。
virt-viewer = 图形控制台

systemctl enable libvirtd      # 将libvitd服务加入开机自启
systemctl start libvirtd       # 启动libvitd服务
systemctl status libvirtd       # 查看libvitd服务的状态

#============================ 按需项,centos7.4已自带 ============================
检查桥网模块:
[root@node1 ~]# modprobe --first-time bridge
modprobe: ERROR: could not insert 'bridge': Module already in kernel
译:modprobe:错误:无法插入'bridge':模块已经在内核中
安装桥网模块:
[root@node1 ~]# yum -y install bridge-utils
#============================ 按需项 ==========================================

创建网桥:
[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-virbr0
DEVICE="virbr0"
BOOTPROTO="static"
IPADDR="192.168.1.201"     #改成这个IP才能使用类似xshell的工具连上去
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1=192.168.1.1
NBOOT="yes"
TYPE="Bridge"

[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE="ens33"
ONBOOT="yes"
BRIDGE=virbr0

[root@node1 ~]# reboot

开启转发功能并修改ulimit参数
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "* soft nproc 65500" >>/etc/security/limits.conf
echo "* hard nproc 65500" >>/etc/security/limits.conf
echo "* soft nofile 65500" >>/etc/security/limits.conf
echo "* hard nofile 65500" >>/etc/security/limits.conf

#============================ 按需项 ==========================================
拷贝镜像:
[root@node1 ~]# dd if=/dev/sr0 of=/mnt/usb2/centos7.iso
注1:/dev/sr0里面是centos7的iso镜像,of后面是输出到哪里并自定义一个以iso结尾的名字
注2:也可以直接使用iso文件,该方法也可以制作win镜像
#============================ 按需项 ==========================================

创建虚拟机硬盘:
mkdir /kvmdir      # 创建虚拟硬盘的存放位置
qemu-img create -f qcow2 /kvmdir/toto.img 500G       # 创建一个500G的qcow2格式并且名为toto的镜像
ls -al /kvmdir/     # 查看镜像
-rw-r--r-- 1 root root 197632 5月 2 09:39 toto.img

sed -i "s/#spice_tls = 1/spice_tls = 1/" /etc/libvirt/qemu.conf
sed -i "s/#spice_listen/spice_listen/" /etc/libvirt/qemu.conf
sed -i "s/#vnc_listen/vnc_listen/" /etc/libvirt/qemu.conf

创建虚拟机(以图片为准)
virt-install用于使用命令行模式创建虚拟机,此命令需要我们的多个输入来创建虚拟机,如CPU,内存,磁盘,网络,安装介质位置,操作系统变体等。

[root@node1 ~]# virt-install --name opop --memory 512 --vcpus=1 \
--cdrom=/mnt/usb2/centos7.iso --os-variant=rhel7 --boot=hd,cdrom --disk path=/kvmdir/toto.img,format=qcow2,bus=virtio,size=50 \
--network default,model='e1000' --graphics vnc,password=,listen=0.0.0.0 --noautoconsole --os-type=lnux

注意:上述命令使用桥接网络“virbr0”允许虚拟机与外部网络通信,您可以找到有关使用Virt Manager创建桥接网络的教程。

--name = 虚拟机的名称
--ram = 以MB为单位的内存大小
--vcpus = 虚拟CPU的数量
--cdrom = ISO映像的位置
--os-type = Linux,Windows等操作系统类型
--os-variant = 操作系统变体,如RHEL 6,Solaris
--boot = 客户机引导设置,这里需要注意,显示hd再是cdrom,和windows里面的引导同理
--disk = 指定客户机的硬盘位置,没有缓存,大小为5G
--network = 网络,网卡的定义和速率
--graphics = 访客显示设置,密码、端口等
--os-type = 客户机的系统类型

#=============================================================================================================
报错1:
ERROR internal error: process exited while connecting to monitor: Cannot set up guest memory 'pc.ram': Cannot allocate memory
解决办法:
# vim /etc/libvirt/qemu.conf
user = “root”      # 该项去星号
group = "root"    # 该项去星号
# 这个问题是你的虚拟机的内存有点小,虚拟机的内存小的同时还再来带一台机器,肯定带不起来所以会报错。
#刚开始我设置的内存是24G(出错),后来设置成16G(出错),后来设置成10G(也出错了),后来设置成2G能起来了
#后来我把VMware的内存调到32G后就能正常的创建4G内存的虚机了
报错2:
错误:将插槽连接到 '/var/run/libvirt/libvirt-sock' 失败: 没有那个文件或目录
解决办法:
systemctl status libvirtd           查看该服务状态
systemctl start libvirtd              启动该服务
systemctl enable libvirtd          开机自启动

#=====================================================================================================

使用VNC连接:

注:上面不用写Username

kvm文件默认路径:
    cd /etc/libvirt/qemu
磁盘文件默认路径:
    cd /var/lib/libvirt/images/
kvm虚拟机开机自启动目录:
    /etc/libvirt/qemu/autostart
    virsh autostart <虚机名>       # 这个是命令
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务:
    chkconfig acpid on
    service acpid restart
关机:
    virsh shutdown <虚机名>
强制关闭电源
    virsh destroy <虚机名>
导出KVM虚拟机配置文件
    virsh dumpxml <虚机名> > /etc/libvirt/qemu/wintest02.xml   # 可以通过这种方式进行备份
删除kvm虚拟机
    virsh undefine <虚机名>
编辑KVM虚拟机配置文件:
    vim /etc/libvirt/qemu/<虚机名>.xml 或者 virsh edit <虚机名>
挂起虚拟机:
    virsh suspend <虚机名>
恢复服务器
    virsh resume <虚机名>

显示所有虚机

    virsh list      --all

虚机日志文件

    /var/log/libvirt/qemu/****.log

虚机硬盘位置

    自定义

只要你是专门搜关于KVM文章的,相信往后的操作都已经明白了

微笑哥与你一起每天进步一点点

 

CentOS7.4使用KVM的更多相关文章

  1. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...

  2. 在centos7中限制kvm虚拟机可访问的资源

    最近通过艰苦卓绝的度娘(我很想用谷歌,可是,你懂的),终于搞明白如何在centos7中限制kvm虚拟机可访问的资源了.度娘给出的结果中,大部分都说的很对,然而,却很难照着做,主要原因有两点:1.网上的 ...

  3. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置

    继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...

  4. CentOS7.6中 KVM虚拟机内存、CPU调整

    CentOS7.6中 KVM虚拟机内存.CPU调整 一.调小虚拟机内存 调小虚拟机内存可以动态实现,不用关机 1.查看当前内存大小 [root@heyong kvm]# virsh dominfo t ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  6. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像

    在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...

  7. [原]CentOS7.2部署KVM虚拟机

    前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的“ ...

  8. Centos7.4安装kvm虚拟机(使用virt-manager管理)

    之前介绍了使用WebVirtMgr或Openstack来部署及管理kvm虚拟机,下面简单介绍centos7.4下使用virt-manager部署及管理kvm虚拟机的做法: 0)KVM是什么 KVM(K ...

  9. 云计算概述及Centos7下安装kvm虚拟机

    云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源 云计算到底是什么? 按定义:云计算指的是一种使用模式,是基 ...

随机推荐

  1. 重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准

    重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准 11 月 29 日,CNCF containerd 社区正式宣布:两位阿里巴巴工程师正式获得 containerd ...

  2. tcp没用吗?为什么MOBA、“吃鸡”游戏不推荐用tcp协议

    本文由云+社区发表 作者:腾讯云游戏行业资深架构师 余国良 MOBA类和"吃鸡"游戏为什么对网络延迟要求高? 我们知道,不同类型的游戏因为玩法.竞技程度不一样,采用的同步算法不一样 ...

  3. [ Java面试题 ]框架篇二

    1.Hibernate工作原理及为什么要使用Hibernate? 工作原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Tr ...

  4. SQL优化总结之一

    一.实践中如何优化mysql 1) SQL语句及索引的优化 2) 数据库表结构的优化 3) 系统配置的优化 4) 硬件优化 二.索引的底层实现原理和优化 2.1 底层实现 在DB2数据库中索引采用的是 ...

  5. java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err

    本文关键词: java 标准输出与标准错误    out与 err 区别 用法 联系  java中的out与err区别  System.out和System.err的区别 System.out.pri ...

  6. Oracle闪回表

    Oracle闪回技术 场景:测试环境数据库的表数据被误删除. 解决思路:使用闪回表技术 原理 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小 ...

  7. TJU ACM-ICPC Online Judge—1191 The Worm Turns

    B - The Worm Turns Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Su ...

  8. Vue中父组件传子组件

    父组件代码: <template> <section :class="menuMode === 'vertical' ? 'vertical-sub-nav' : 'sub ...

  9. 树上倍增求LCA及例题

    先瞎扯几句 树上倍增的经典应用是求两个节点的LCA 当然它的作用不仅限于求LCA,还可以维护节点的很多信息 求LCA的方法除了倍增之外,还有树链剖分.离线tarjan ,这两种日后再讲(众人:其实是你 ...

  10. 解决Centos7 yum 出现could not retrieve mirrorlist 错误

    刚通过VMware12安装了centos7.x后,使用ip addr查看centos局域网的ip发现没有,使用yum安装一些工具包时也出现报错: Loaded plugins: fastestmirr ...