KVM 企业级虚拟化技术

一、KVM 简介

        KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机,是采用硬件辅助虚拟化技术的全虚拟化解决方案。对于I/O设备(如硬盘、网卡等),KVM即支持QEMU仿真的全虚,也支持virtio方式的半虚。KVM从诞生开始就定位于基于硬件虚拟化支持的全虚实现,由于其在Linux内核2.6版本后被集成,通过内核加载模式使得Linux内核变成一个事实上的Hypervisor(虚拟机管理器,也叫VMM(Virtual Machine Monitor)),但是硬件管理还是由Linux Kernel来完成。

二、虚拟化技术的分类

  • 全虚拟化:运行在虚拟机上的操作系统通过 Hypervisor 来最终分享硬件,所以虚拟机发出的指令需经过Hypervisor捕获并处理。

  • 半虚拟化:在全虚拟化的基础上,通过在 GuestOS 修改,增加了一个专门 API 用于发送指令,这个 API 可以将客户操作系统发出的指令进行最优化,即不需要Hypervisor 的翻译行为,从而整体性能提升。

  • 硬件辅助虚拟化:基于 CPU 厂商的辅助虚拟化技术如 Intel VT-x 实现Hypervisor可以在部分功能上与硬件直接交互,提升性能。比如在CPU性能较差的网络IO方面与硬件直接交互。

三、KVM安装 

 然后打开虚拟机,安装kvm即可

查看cpu是否支持虚拟化
# cat /proc/cpuinfo | grep -E 'vmx|svm'

flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 arat pku ospke md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

 1.需求内核(rhel6以上):

[root@kvm-server ~]# uname -r 
3.10.0-1062.el7.x86_64

2.如果之前安装kvm了清理环境:卸载kvm

[root@kvm-server ~]# yum remove `rpm -qa | egrep 'qemu|virt|kvm'` -y
[root@kvm-server ~]# rm -rf /var/lib/libvirt  /etc/libvirt/

 3.升级系统:(在安装虚拟机出错的情况下,一般是操作系统的版本问题)

[root@kvm-server ~]# yum upgrade

4.安装软件:

[root@kvm-server ~]# yum install -y librbd1-devel qemu-kvm libvirt virt-manager virt-install

qemu-kvm : 主包
libvirt:api接口
virt-manager:图形化界面

在所谓的kvm技术中,应用到的其实有2个东西:qemu+kvm kvm
负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备;
qemu是模拟IO设备(网卡,磁盘),kvm加上qemu之后就能实现真正意义上服务器虚拟化。
因为用到了上面两个东西,所以一般都称之为qemu-kvm。
libvirt则是调用kvm虚拟化技术的接口用于管理的,用libvirt管理方便,直接用qemu-kvm的接口太繁琐。

5.启动服务: centos7:
 

[root@kvm-server ~]# systemctl start libvirtd

6.查看kvm模块加载:

[root@kvm-server ~]# lsmod | grep kvm
kvm_intel             188740  0 
kvm                   637515  1 kvm_intel
irqbypass              13503  1 kvm

如果看到有这两行,说明支持kvm模块

四、完全文本方式安装虚拟机 

[root@kvm-server ~]# yum install -y vsftpd  #安装ftp,并配置最后将镜像上传到ftp中
[root@kvm-server ~]# systemctl start vsftpd
[root@kvm-server ~]# mkdir /var/ftp/centos7u4
[root@kvm-server IOS]# mount CentOS-7-x86_64-DVD-1708.iso /var/ftp/centos7u4/
[root@kvm-server ~]# virt-install --connect qemu:///system -n vm10 -r 2050 --disk path=/var/lib/libvirt/images/vm10.img,size=5  --os-type=linux --os-variant=centos7.0 --vcpus=1  --location=ftp://10.0.111.182/centos7u4 -x console=ttyS0 --nographics

用这种方式安装的操作系统有一个毛病:纯文本安装的输入时大小写莫名的变换,远程ssh没问题。kvm 限制:内存不低于2G

注意:
virt-install 
bash: virt-install: 未找到命令...
# yum install libguestfs-tools -y
# yum install virt-install.noarch -y

参数解释:
-n name
-r  以M为单位指定分配给虚拟机的内存大小
--disk 指定作为客户机存储的媒介 size以G为单位的存储
--os-type   系统类型
--os-variant 系统类型版本
--vcpus 指定核数,不能超过物理cpu
--location  客户虚拟机安装源下载,必须为镜像挂载在ftp目录下
-x console=ttyS0 执行终端0
--nographics 无图形,文本模式
 

 

 

KVM 操作虚拟机常用命令_怎么查看kvm虚拟机-CSDN博客 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值