参考文章: KVM 介绍(1):简介及安装

centos7安装部署kvm,照做就行

Centos7搭建KVM

第二章:KVM安装 - CharlieBrown - 博客园

KVM简介: https://blog.csdn.net/justlpf/article/details/126720253

一、环境准备

1、查看系统是否支持虚拟化

grep -E '(vmx|svm)' /proc/cpuinfo
#or
cat /proc/cpuinfo | grep vmx

如果有输出返回,则表示CPU支持虚拟化技术。

Linux显示的flags部分解释:
fpu – Onboard FPU
vme – Virtual Mode Extensions
de – Debugging Extensions
pse – Page Size Extensions
tsc – Time Stamp Counter
msr – Model-Specific Registers
pae – Physical Address Extensions
mce – Machine Check Architecture
cx8 – CMPXCHG8 instruction
apic – Onboard APIC
sep – SYSENTER/SYSEXIT
mtrr – Memory Type Range Registers
pge – Page Global Enable
mca – Machine Check Architecture
cmov – CMOV instructions (plus FCMOVcc, FCOMI with FPU)
pat – Page Attribute Table
pse36 – 36-bit PSEs
pn – Processor serial number
clflush – CLFLUSH instruction
dts – Debug Store
acpi – ACPI via MSR
mmx – Multimedia Extensions
fxsr – FXSAVE/FXRSTOR, CR4.OSFXSR
sse – SSE
sse2 – SSE2
ss – CPU self snoop
ht – Hyper-Threading
tm – Automatic clock control
ia64 – IA-64 processor
pbe – Pending Break Enablesyscall – SYSCALL/SYSRET
mp – MP Capable
nx – Execute Disable
mmxext – AMD MMX extensions
fxsr_opt – FXSAVE/FXRSTOR optimizations
pdpe1gb – GB pages
rdtscp – RDTSCP
lm – Long Mode (x86-64)
3dnowext – AMD 3DNow! extensions
3dnow – 3DNow!
k8 – Opteron, Athlon64
k7 – Athlon
constant_tsc – TSC ticks at a constant rate
up – smp kernel running on up
pebs – Precise-Event Based Sampling
bts – Branch Trace Store
nonstop_tsc – TSC does not stop in C states
pni – SSE-3
pclmulqdq – PCLMULQDQ instruction
dtes64 – 64-bit Debug Store
monitor – Monitor/Mwait support
ds_cpl – CPL Qual. Debug Store
vmx – Hardware virtualization      //intel的虚拟化技术VT技术
smx – Safer mode
est – Enhanced SpeedStep
tm2 – Thermal Monitor 2
ssse3 – Supplemental SSE-3
cid – Context ID
fma – Fused multiply-add
cx16 – CMPXCHG16B
xptr – Send Task Priority Messages
pdcm – Performance Capabilities
dca – Direct Cache Access
sse4_1 – SSE-4.1
sse4_2 – SSE-4.2
x2apic – x2APIC
aes – AES instructions
xsave – XSAVE/XRSTOR/XSETBV/XGETBV
avx – Advanced Vector Extensions
hypervisor – Running on a hypervisor
lahf_lm – LAHF/SAHF in long mode
cmp_legacy – If yes HyperThreading not valid
svm – Secure virtual machine      //AMD的虚拟化技术AMD-V
extapic – Extended APIC space
cr8legacy – CR8 in 32-bit mode
abm – Advanced bit manipulation
sse4a – SSE-4A
ibs – Instruction Based Sampling
sse5 – SSE-5
skinit – SKINIT/STGI instructions
wdt – Watchdog timer  

2、基础软件安装

# 参考
[root@localhost ~]# curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 停防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service[root@localhost ~]# yum install gcc gcc-c++ -y
[root@localhost ~]# yum install autoconf -y
[root@localhost ~]# yum install automake -y
[root@localhost ~]# yum install libtool -y
[root@localhost ~]# yum install glib* -y
[root@localhost ~]# yum install zlib* -y

三、RedHat Linux KVM 安装

RedHat 有两款产品提供 KVM 虚拟化:

  • Red Hat Enterprise Linux:适用于小的环境,提供数目较少的KVM虚机。最新的版本包括 6.5 和 7.0.
  • Red Hat Enterprise Virtualization (RHEV):提供企业规模的KVM虚拟化环境,包括更简单的管理、HA,性能优化和其它高级功能。最新的版本是 3.0.

RedHat Linux KVM:

  • KVM 由 libvirt API 和基于该 API的一组工具进行管理和控制
  • KVM 支持系统资源超分,包括内存和CPU的超分。RedHat Linux 最多支持物理 CPU 内核总数的10倍数目的虚拟CPU,但是不支持在一个虚机上分配超过物理CPU内核总数的虚拟CPU。
  • 支持 KSM (Kenerl Same-page Merging 内核同页合并)

3.1 在已有的 RedHat Linux 中安装 KVM--use

//# 安装虚拟化工具
//   # virtualization:提供虚拟机的环境
//   # virtualization-platform:提供虚拟机的管理程序
//   # virtualization-client:管理和安装虚拟机实例的客户端
//   # virtualization-platform:提供访问和控制虚拟客户端的接口
//   # virtualization-tools:管理离线虚拟机镜像的工具
//   # gnome-desktop:简单易用的桌面
[root@localhost ~]# yum -y group install virtualization-platform virtualization-client gnome-desktop# 安装VNC server/VNC客户端,使用VNC连接虚拟机
[root@localhost ~]# yum -y install tigervnc-server tigervnc vnc vnc-server# 安装 GNOME 桌面环境,开机默认启动图形化
[root@localhost ~]# yum groupinstall -y gnome-desktop
[root@localhost ~]# systemctl get-default
[root@localhost ~]# systemctl set-default graphical.target# 安装 qemu-kvm qemu-img # qemu-img:qemu 组件,创建磁盘、启动虚拟机等# qemu-kvm:# 是 KVM 项目从 QEMU 新拉出的一个分支,用户空间工具,# 在 QEMU 1.3 版本之前,QEMU 和 QEMU-KVM 是有区别的,# 从 2012 年底 GA 的 QEMU 1.3 版本开始,两者等同。
# **libvirt:**kvm虚拟机的管理软件
# **virt-install:**虚拟机的安装工具
# **qemu-kvm qemu-img(qcow2,raw):**管理虚拟机的虚拟磁盘[root@localhost ~]# yum install qemu-kvm -y    # 默认已安装
[root@localhost ~]# yum install qemu-img -y    # 默认已安装# 安装KVM 调试工具
[root@localhost ~]# yum -y install qemu-kvm-tools# 构建虚拟机的命令行工具
[root@localhost ~]# yum -y install virt-install# 网络支持工具, 默认已安装
[root@localhost ~]# yum -y install bridge-utils # 安装虚拟机管理工具
[root@localhost ~]# yum -y install libvirt
[root@localhost ~]# yum -y install virt-manager# 开启 libvirtd KVM服务,以开启相关支持:
# /etc/init.d/libvirtd start
[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd# 安装其它工具包:
[root@localhost ~]# yum install libvirt-python python-virtinst libvirt-client virt-install virt-viewer –y
[root@localhost ~]# yum install libguestfs-tools -y# 检查 KVM 模块是否安装:
[root@localhost ~]# lsmod | grep kvm
kvm_intel             174841  0
kvm                   578518  1 kvm_intel
irqbypass              13503  1 kvm# 卸载kvm
yum erase `rpm -qa | egrep '(qemu|virt|kvm)'`rm -rf /var/lib/libvirt /etc/libvirt/

3.2 在安装  RedHat Linux 时安装 KVM

选择安装类型为 Virtualizaiton Host :

可以选择具体的 KVM 客户端、平台和工具:

3.3 QEMU/KVM 代码下载编译安装

3.3.1 QEMU/KVM 的代码结构

QEMU/KVM 的代码包括几个部分:

(1)KVM 内核模块是 Linux 内核的一部分。通常 Linux 比较新的发行版(2.6.20+)都包含了 KVM 内核,也可以从这里得到。查看:

[root@rh65 isoimages]# uname -r
2.6.32-431.el6.x86_64
[root@rh65 isoimages]# modprobe -l | grep kvm
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko
kernel/arch/x86/kvm/kvm-amd.ko

(2)用户空间的工具即 qemu-kvm

qemu-kvm 是 KVM 项目从 QEMU 新拉出的一个分支(看这篇文章)。在 QEMU 1.3 版本之前,QEMU 和 QEMU-KVM 是有区别的,但是从 2012 年底 GA 的 QEMU 1.3 版本开始,两者就完全一样了。

​(3)Linux Guest OS virtio 驱动,也是较新的Linux 内核的一部分了。

(4)Windows Guest OS virtio 驱动,可以从这里下载。

3.3.2 安装 QEMU

RedHat 6.5 上自带的 QEMU 太老,0.12.0 版本,最新版本都到了 2.* 了。

(1)参考 这篇文章,将 RedHat 6.5 的 ISO 文件当作本地源

mount -o loop soft/rhel-server-6.4-x86_64-dvd.iso /mnt/rhel6/
vim /etc/fstab=> /root/isoimages/soft/RHEL6.5-20131111.0-Server-x86_64-DVD1.iso /mnt/rhel6 iso9660 ro,loop[root@rh65 qemu-2.3.0]# cat /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt/rhel6/
enabled=1
gpgcjeck=0[root@rh65 qemu-2.3.0]# yum clean all;yum update

(2)安装依赖包

yum install gcc
yum install autoconf
yum install autoconf automake libtool
yum install -y glib*
yum install zlib*

(3)从 Download QEMU - QEMU 下载代码,上传到编译环境 RedHat 6.5.

tar -jzvf qemu-2.3.0.tar.bz2
cd qemu-2.3.0
./configure
make -j 4
make install

(4)安装完成

[root@rh65 qemu-2.3.0]# /usr/local/bin/qemu-x86_64 -version
qemu-x86_64 version 2.3.0, Copyright (c) 2003-2008 Fabrice Bellard

(5)创建link

ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu-kvm

3.3.3 安装 libvirt

从 libvirt 官网下载安装包。

3.4 修改libvirt默认配置

vi /etc/libvirt/qemu.conf

#auto_dump_path = "/var/lib/libvirt/qemu/dump"
#memory_backing_dir = "/var/lib/libvirt/qemu/ram"

vi /etc/logrotate.d/libvirtd.qemu:

/var/log/libvirt/qemu/*.log {weeklymissingokrotate 4compressdelaycompresscopytruncate
}

四、创建 KVM 虚机的几种方式

4.1 使用 virt-manager 工具--use

virt-manager简介:

The virt-manager application is a desktop user interface for managing virtual machines through libvirt. It primarily targets KVM VMs, but also manages Xen and LXC (linux containers). It presents a summary view of running domains, their live performance & resource utilization statistics. Wizards enable the creation of new domains, and configuration & adjustment of a domain’s resource allocation & virtual hardware. An embedded VNC and SPICE client viewer presents a full graphical console to the guest domain.

4.1.1 启动KVM,虚拟机连接器: 

A. 通过命令,手动创建虚拟机存储卷: 

1.创建基于文件夹的存储池(目录)
//[root@kvm ~]# mkdir /home/iso       #存放镜像的目录
//[root@kvm ~]# mkdir /home/images    #存放磁盘文件的目录
mkdir -p /data/vmfs2.定义存储池与其目录
virsh pool-define-as vmdisk --type dir --target /data/vmfs3.创建已定义的存储池(1)创建已定义的存储池virsh pool-build vmdisk(2)查看已定义的存储池,存储池不激活无法使用。virsh pool-list --all4.激活并自动启动已定义的存储池
virsh pool-start vmdisk
virsh pool-autostart vmdisk
# 这里vmdisk存储池就已经创建好了,可以直接在这个存储池中创建虚拟磁盘文件了。5.在存储池中创建虚拟机存储卷(不执行,这里通过virt-manager安装,不通过命令行安装)(1)在存储池中创建虚拟机存储卷virsh vol-create-as vmdisk oeltest03.qcow2 20G --format qcow2(2)根据创建的虚拟机存储卷安装虚拟机virt-install --name=oeltest03 --os-variant=RHEL6 \
--ram 1024 --vcpus=1 --disk path=/data/vmfs/oeltest03.qcow2, \
format=qcow2,size=20,bus=virtio --accelerate \
--cdrom /data/iso/oel63x64.iso --vnc \
--vncport=5910 --vnclisten=0.0.0.0 --network \
bridge=br0,model=virtio –noautoconsole

B. 执行命令,打开virt-manager:

[root@localhost ~]# virt-manager

 注:执行virt-manager命令打开虚拟机连接器,需要在ssh工具连接系统时,开启X11-Forwarding选项(这里以MobaXterms为例):


新建虚拟机:

然后,点击“开始安装”

重启即可。

进入到字符界面:

管理员用户登录

CentOS-7-x86_64-Minimal版需要安装的基础软件:

yum -y install net-tools net-tools.x86_64 -y
yum install initscripts -y
yum -y install gcc gcc-c++ automake autoconf libtool make -y
yum install zlib zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel -y
yum install crontabs -y

使用 VMM GUI 创建的虚机的xml 定义文件在 /etc/libvirt/qemu/ 目录中。

4.1.2 克隆虚拟机

最后点击Clone按钮进行克隆即可。

4.1.3 登录界面,配置网络

1. 进入网络接口配置项,添加网卡。

2. 选择vlan类型网卡,例添加vlan302。

3. 将虚拟机网卡调至对应网卡。

注:调节完毕后需要重启主机才能生效

相关资源:云计算与虚拟化-资源CentOS操作系统安装CentOS操作系统安装x_云...

4.2 使用 virt-install 命令

1.创建基于文件夹的存储池(目录)
mkdir -p /data/vmfs2.定义存储池与其目录
virsh pool-define-as vmdisk --type dir --target /data/vmfs3.创建已定义的存储池(1)创建已定义的存储池virsh pool-build vmdisk(2)查看已定义的存储池,存储池不激活无法使用。virsh pool-list --all4.激活并自动启动已定义的存储池
virsh pool-start vmdisk
virsh pool-autostart vmdisk
# 这里vmdisk存储池就已经创建好了,可以直接在这个存储池中创建虚拟磁盘文件了。5.在存储池中创建虚拟机存储卷
(1)在存储池中创建虚拟机存储卷virsh vol-create-as vmdisk oeltest03.qcow2 20G --format qcow2(2)根据创建的虚拟机存储卷安装虚拟机
virt-install \
--name=oeltest03 \
--os-variant=RHEL6 \
--ram 1024 \
--vcpus=1 \
--disk path=/data/vmfs/oeltest03.qcow2,format=qcow2,size=20,bus=virtio \
--accelerate \
--cdrom /data/iso/oel63x64.iso \
--vnc \
--vncport=5910 \
--vnclisten=0.0.0.0 \
--network bridge=br0,model=virtio \
–noautoconsolevirt-install \
--name=guest1-rhel5-64 \
--file=/var/lib/libvirt/images/guest1-rhel5-64.dsk \
--file-size=8 \
--nonsparse --graphics spice \
--vcpus=2 --ram=2048 \
--location=http://example1.com/installation_tree/RHEL5.6-Serverx86_64/os \
--network bridge=br0 \
--os-type=linux \
--os-variant=rhel5.4# or
virt-install \
--name=nebula \
--virt-type=kvm \
--memory 800,maxmemory=1024 \
--vcpus 1 \
--cdrom=/home/iso/CentOS-7-x86_64-Minimal-1708.iso \
--disk path=/home/images/nebula.qcow2,size=10 \
--network bridge=br0 \
--graphicsvnc \
--vncport=15950 \
--vnclisten=0.0.0.0 \
--noautoconsole \
--autostart# 命令解释:
virt-install :虚拟机的安装工具
--virt-type=kvm:虚拟化的类型
--name=nebula:虚拟机的名字
--memory 800 :虚拟机的内存(因为我上传的镜像是792M的,所以给它800M内存)
maxmemory=1024:最大内存
--vcpus 1 虚拟cpu的核数
--cdrom=/home/iso/CentOS-7-x86_64-Minimal-1708.iso :镜像的存放位置
--disk path=/home/images/nebula.qcow2,size=10 :存放磁盘文件的目录,以及磁盘类型的大小,大小为10G
--network network=default :使用默认的NAT网络
--graphics vnc --vncport=15950 --vnclisten=0.0.0.0 :默认显示器为vnc,指定端口号
--noautoconsole --autostart :可加可不加# 参数介绍
--virt-type:指定虚拟机类型
--os-type:指定系统类型
--name:虚拟机名字
--memory:内存,这个参数在centos7安装的kvm里边使用
--ram: 内存,这个参数在centos6安装的kvm里边使用
--vcpus:指定cpu个数
--disk /opt/centos2.raw,format=raw,size=10:指定磁盘位置,类型,大小
--cdrom /opt/CentOS-7-x86_64-DVD-1708.iso:指定镜像文件所在位置
--boot hd:如果不安装系统就把上一条命令换成这个
--network network=default:网络类型默认net
--network bridge=br0:桥接网络使用这个参数
默认连接端口是从5900开始的

4.3 使用 qemu-img 和 qemu-kvm 命令行方式安装

(1)创建一个空的qcow2格式的镜像文件
qemu-img create -f qcow2 windows-master.qcow2 10G(2)启动一个虚机,将系统安装盘挂到 cdrom,安装操作系统,生成一个带操作系统的镜像文件
qemu-kvm  -hda  windows-master.qcow2  -m  512  -boot d  -cdrom /home/user/isos/en_winxp_pro_with_sp2.iso(3) 以该镜像模板创建新的镜像文件。使用模板的好处是,可以设置为只读免于破坏。
qemu-img create -b windows-master.qcow2 -f  qcow2   windows-clone.qcow2(4)在镜像文件上启动虚机
qemu-kvm  -hda  windows-clone.qcow2  -m 400

5.4 通过 OpenStack Nova 使用 libvirt API 通过编程方式来创建虚机(todo)

Centos7 安装KVM相关推荐

  1. Centos7开小鸡(centos7安装KVM+kimchi+wok开小鸡)第一篇安装kimchi wok

    Centos7开小鸡(centos7安装KVM+kimchi+wok开小鸡)之第一篇:安装kimchi wok 前提条件:环境为centos7 必须支持虚拟化 前几天折腾proxmox ve虽然安装成 ...

  2. Centos7安装kvm服务器

    Centos7安装kvm服务器 什么是kvm virt-manager及相关软件简介 virt-manger架构及原理 KVM QEMU Libvirt 检查硬件是否支持kvm虚拟化 启用嵌套虚拟化( ...

  3. Centos7安装KVM虚拟化

    Centos7安装部署KVM 一.配置网桥 1.备份原来的配置文件 2.修改配置文件 a.修改已连接的网卡配置文件(以ifcfg-eno1为例) b.配置网桥配置文件(以ifcfg-br0为例) c. ...

  4. CentOS7安装KVM虚拟机

    检测是否支持KVM KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM.有返回结果,如果结果中 ...

  5. CentOS7安装KVM、KVM安装CentOS7

    1.查看cpu是否支持虚拟化 [root@localhost ~]# egrep '(vmx|svm)' /proc/cpuinfo 2.启动kvm模块 [root@localhost ~]# mod ...

  6. Centos 安装 KVM虚拟化工具 超云服务器 VMware

    需求:在裸机(超云服务器)上安装centos7,并在centos7上安装虚拟化工具,且再建三个虚拟机(centos/windows) 目录 需求:在裸机(超云服务器)上安装centos7,并在cent ...

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

    2019独角兽企业重金招聘Python工程师标准>>> Centos7.4安装kvm虚拟机(使用virt-manager管理) 之前介绍了使用WebVirtMgr或Openstack ...

  8. CentOS7文本模式下配置及安装KVM虚拟机

    一.准备工作:        在安装和配置kvm虚拟机之前,首先确保kvm软件已经被正确安装,如果没有安装,请参考如下几步操作:          第一步:检查CPU是否支持vmx相关指令,如果执行结 ...

  9. CentOS7 安装管理KVM虚拟机

    为什么80%的码农都做不了架构师?>>>    系统:CentOS7 64位 [root@e3 ~]# cat /etc/redhat-release CentOS Linux re ...

最新文章

  1. php用go做跳转翻页,go.php跳转不输出权重的跳转方式真的有用么?
  2. JAXB和java.util.Map
  3. 面向对象编程学习5月7日-5月23日 网络直播yii-外企使用最多的PHP框架
  4. Javascript中函数声明与函数表达式的不同
  5. vue中的ES6语法整理1
  6. mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
  7. Linq 三表 left join 的实现
  8. 《Core Data应用开发实践指南》一导读
  9. cs229线性回归和逻辑回归总结
  10. 【电路仿真】基于matlab Simulink光伏太阳能电池板仿真模型【含Matlab源码 771期】
  11. 搜狗手机输入法java_手机搜狗输入法制作个性皮肤的方法
  12. 写给美术看的Unity全局光照详解
  13. 什么是计算机剪贴板介绍,剪贴板在哪里,详细教您如何打开电脑剪贴板
  14. MacOS 连接网络打印机后一直不能打印
  15. pythonqq机器人酷q_基于NoneBot的QQ聊天机器人一
  16. 各主板黑苹果dsdt补丁_关于B75主板的DSDT警告修改和睡眠相关修改
  17. 2021年最具赚钱潜力的互联网项目?明年的你准备靠什么活着?
  18. oracle中的日期函数
  19. 基本排序算法 之六 ——归并排序
  20. Oracle查询CLOB类型字段的内容:

热门文章

  1. Android播放器自定义,我的音乐我做主 最强自定义Android播放器
  2. Java mongoDB查询(Query Criteria)
  3. 英巴卡迪诺发布新版RAD Studio XE2
  4. 计算机可用网络连接不上,电脑网络连接不可用?学会这招,轻松解决
  5. MATLAB数字滤波器的设计
  6. 【Linux】下打开vim出现【E325】问题
  7. Rxjs 响应式编程-第四章 构建完整的Web应用程序
  8. 面试必问的25道数据库测试题
  9. 工业互联网有什么价值?
  10. 软件公司的两种管理方式