openstack之kvm学习

openstack 开启嵌套虚拟化 嵌套式虚拟nested是一个可通过内核参数来启用的功能。它能够使一台虚拟机具有物理机CPU特性,支持vmx或者svm(AMD)硬件虚拟化。该特性需要内核升级到Linux 3.X版本 ,所以在centos6下是需要先升级内核的,而在centos7下已默认支持该特性,不过默认是不开启的,需要通过修改参数支持。工作中,有时用户想在虚拟机里面运行kvm或者kata等虚拟化功能的应用,所以需要让vm支持vt,所以需要支持嵌套虚拟化功能。cpu模式需要是passthrough模式,透传cpu feature给vm。 阅读详情

openstack之kvm学习(一)

感谢Cloudman提供的系列基础博客:

http://cloudman.blog.51cto.com/10425448/1745873

虚拟化基础-Hypervisor

Hypervisor(也称VMM):运行在物理服务器和操作系统之间的中间软件层,允许多个操作系统和应用共享一套基础物理硬件,其是虚拟化的核心和基础:协调VM对硬件资源访问、VM的隔离等等。

Hypervisor的虚拟化类型:

(1) 1型,即全裸虚拟化,构建硬件全仿真实例,如ESXI、XEN(直接运行在物理机上)

(2) 2型,Hypervisor作为OS内核的一个程序模块,如KVM、VirtualBox、VMware Workstation(运行在linux系统上)

(3) 3型,运行在传统OS上,创建虚拟化容器,如LXC

其中1型虚拟化一般做了特别优化,性能一般会比较好。此外,当前Openstack对KVM的支持是最好的。

https://www.ibm.com/developerworks/cn/linux/l-hypervisor/ 


kvm基础

1. kvm基础:

全称为kernel-based virtual machine,基于linux内核实现,用于管理物理cpu和内存(IO的虚拟化由qemu实现)。

 

其依赖于内核中的kvm.ko模块。

2. libvirt基础:

libvirt是KVM的管理工具(但是同样也可管理XEN、VirtualBox),包含:

(1) libvirtd:后台daemon,接收和处理API请求;

(2) API库:libvirt对外提供的API,virt-manager就是使用该API进行;

(3) virsh:命令行工具

 

kvm安装

1. 创建Centos:使用Vmware Workstation创建CentOS7虚拟机

 

2. 对接yum镜像源

对接阿里的yum镜像源,具体参见网上教程。

 

3. 安装qemu虚拟化:

yum install qemu-kvm qemu-system-x86 libvirt virt-manager bridge-utils

qemu-kvm、qemu-system-x86:kvm和qemu的核心包,提供CPU、内存、IO虚拟化

libvirt:虚拟化管理工具,提供虚拟化的API管理

virt-manager:可视化的虚拟化管理工具

bridge-utils:网络虚拟化需要,kvm网络虚拟化的实现是linux-bridge

(suse和centos,以及在不同版本下的安装包是不一样的)

 

4. 打开CPU的VT虚拟化能力(更改时需要在关闭VM的情况进行)

 

打开Centos,确认CPU是否正常的开启了虚拟化能力:

[root@localhost Desktop]# egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
vmx
vmx
vmx

vmx:Inter的cpu虚拟化技术

svm:AMD的cpu虚拟化技术

虚拟化技术VT(Virtualization Technology)是对资源虚拟化管理的结果,其中Intel在CPU端的虚拟化里实现了VMX(Virtual-Machine Extensions,虚拟机扩展)架构。包含两种角色环境:

(1) VMM(Virtual Machine Monitor,虚拟机管理者)host

(2) VM(Virtual Machine,虚拟机)guest

guest端软件访问的资源收到VMM的监管。

 

5. 查看libvirtd状态:

[root@localhost Desktop]# service libvirtd status
Redirecting to /bin/systemctl status  libvirtd.service
● libvirtd.service - Virtualization daemon
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-24 06:28:15 PDT; 14min ago
     Docs: man:libvirtd(8)
           http://libvirt.org
 Main PID: 1494 (libvirtd)
   CGroup: /system.slice/libvirtd.service
           ├─1494 /usr/sbin/libvirtd
           ├─2818 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_l...
           └─2819 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_l...

Sep 24 06:28:10 localhost.localdomain systemd[1]: Starting Virtualization daemon…
Sep 24 06:28:15 localhost.localdomain systemd[1]: Started Virtualization daemon.
Sep 24 06:28:21 localhost.localdomain dnsmasq[2818]: started, version 2.66 cachesize 150
Sep 24 06:28:21 localhost.localdomain dnsmasq[2818]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP…t auth
Sep 24 06:28:21 localhost.localdomain dnsmasq-dhcp[2818]: DHCP, IP range 192.168.122.2 – 192.168.122.254, lease time 1h
Sep 24 06:28:21 localhost.localdomain dnsmasq[2818]: reading /etc/resolv.conf
Sep 24 06:28:21 localhost.localdomain dnsmasq[2818]: using nameserver 192.168.98.2#53
Sep 24 06:28:21 localhost.localdomain dnsmasq[2818]: read /etc/hosts - 2 addresses
Sep 24 06:28:21 localhost.localdomain dnsmasq[2818]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Sep 24 06:28:21 localhost.localdomain dnsmasq-dhcp[2818]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Hint: Some lines were ellipsized, use -l to show in full.

启动KVM VM

1. 执行virt-manager,启动图形界面,并创建cirrors,请确保本地有一个cirrors镜像:

 

2. 使用virsh查看cirros:

 

虚拟化原理

1. CPU虚拟化:一个KVM虚拟机就是host上一个qemu-kvm进程,与其它linux进程一样被调度。

[root@localhost Desktop]# ps -ef | grep kvm
root        749      2  0 08:12 ?        00:00:00 [kvm-irqfd-clean]
qemu       4674      1  9 08:28 ?        00:00:13 /usr/libexec/qemu-kvm -name cirrors -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off,dump-guest-core=off -cpu Haswell,-hle,-rtm -m 100 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid f316ac73-f9a1-4d4a-92f7-5679b5142e9c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-1-cirrors/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/home/lanyyyy/cirros-0.3.0-x86_64-disk.img,format=qcow2,if=none,id=drive-ide0-0-0 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,fd=25,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:ad:83:79,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -global qxl-vga.vgamem_mb=16 -global qxl-vga.max_outputs=1 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=1 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
 

2. 内存虚拟化:

KVM实现了了VA(虚拟内存) -> PA(物理内存) -> MA(机器内存)直接的地址转换。虚拟机是直接不能直接访问物理OS的内存,仅仅只是保存了VA -> PA到映射

 

3. 存储虚拟化:

是通过存储池(Storage Pool)、卷(volume)来管理的。Storage Pool是宿主机上可以看到的一片存储空间,可以是多种类型。Volume是在Storage Pool中划分出一块空间,宿主机将Volume分配给VM。

 

 

 

openStack:学习openStack的前提知识(1)虚拟化以及KVM简介 openStack 阅读详情

相关推荐

OpenStack所支持的虚拟化技术和KVM、Xen、Hyer-V、QEMU、Libvirt说明

OpenStack所支持的虚拟化技术和KVM、Xen、Hyer-V、QEMU、Libvirt说明

没刮胡子的程序员专栏 2693

OpenStack 和 KVM

OpenStack 和 KVM 的结合广泛应用于私有云部署、公共云平台、HPC 环境、虚拟化迁移以及 DevOps 自动化等多个场景。低成本开源:OpenStack 和 KVM 都是开源项目,企业可以降低软件许可费用。灵活性和可扩展性:支持按需资源分配和动态扩展,适用于不同规模的部署。高效的虚拟化管理:KVM 提供稳定且高效的虚拟化支持,能够很好地与 OpenStack 集成。

SAFE20242034的博客 1189

在Window上安装和配置VTK9.x,并在QT项目中调试VTK是否可用

VTK+MSVC+Qt Creator + CMake配置

qq_42279379的博客 1000

OpenStack与KVM的区别与联系

转:https://www.aliyun.com/zixun/content/2_6_280418.html OpenStack与KVM都是目前IT界比较热门的两个词汇。它们都是开源的,都与Linux有着千丝万缕的关系。但这两者还是有很大的差别呢。 OpenStack:开源管理项目 OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它不是一个软件,而是由几个...

1207

Webots+UR机械臂仿真全流程:手把手教你用Python实现Pick-and-Place轨迹规划

本文详细介绍了使用Webots和Python实现UR六自由度机械臂的Pick-and-Place轨迹规划全流程。从环境搭建、运动学正逆解计算到轨迹规划实战技巧,涵盖工业场景中的关节补偿、末端校准等实际问题解决方案,帮助开发者快速掌握机械臂精准控制技术。

weixin_29083649的博客 284

Modbus TCP 通信(C#)

【代码】Modbus TCP 通信(C#)

weixin_56229359的博客 1150

openstack与KVM的关系

openstack 我理解是一个云管理平台,KVM是虚拟化技术,openstack可以管理KVM虚拟化环境 openstack是云管理平台,其本身并不提供虚拟化功能,真正的虚拟化能力是由底层的hypervisor(如KVM、Qemu、Xen等)提供。所谓管理平台,就是为了方便使用而已。打一个不恰当的比方,订单管理平台之类的产品,其实就是整合了一系列的sql调用而已。类似的,如果没有openstack,一样可以通过virsh、virt-manager来实现创建虚拟机的操作,只不过敲命令行的方式需要一定的学习成

Jun____________的博客 5241

Jetson Orin Nano Super开发板实战:视觉模型部署与性能优化指南

本文详细介绍了Jetson Orin Nano Super开发板在边缘AI视觉模型部署与性能优化的完整实战指南。内容涵盖JetPack 6.1环境配置、Docker容器化部署、YOLO11及Transformer模型的TensorRT优化技巧,并通过实测数据展示了性能提升与功耗管理策略,为开发者提供高效的视觉AI部署解决方案。

7h6j5k4l3的博客 1196

openstack之kvm学习(一)

openstack之kvm学习(一) 感谢Cloudman提供的系列基础博客: http://cloudman.blog.51cto.com/10425448/1745873 虚拟化基础-Hypervisor Hypervisor(也称VMM):运行在物理服务器和操作系统之间的中间软件层,允许多个操作系统和应用共享一套基础物理硬件,其是虚拟化的核心和基础:协调VM对硬件资源访问、VM的隔离

zhaole524的专栏 1999

鸿蒙录屏推流应用完整解决方案

本文介绍了鸿蒙录屏推流应用的完整解决方案。项目采用分层架构设计,包含录屏、编码、推流等功能模块,要求实现4小时稳定运行且延迟小于3秒。技术实现包括:1) 通过config.json配置应用权限和功能;2) 使用ScreenRecorderManager类管理录屏服务,实现视频采集、音频录制和编码参数配置;3) 核心功能包含初始化录屏器、开始/停止录屏等操作。该方案充分利用鸿蒙系统的多媒体API,实现了高性能的屏幕录制与实时推流功能。

huanghm88的专栏 289

提升ARM Cortex-M系统性能的关键技术:TCM技术解析与实战指南

TCM技术为ARM Cortex-M处理器提供了宝贵的确定性性能提升手段,特别适合对时序敏感的实时应用。通过合理配置和优化,工程师可以显著提高系统性能、降低中断响应时间并优化功耗。随着嵌入式系统对实时性要求的不断提高,TCM技术将在工业控制、汽车电子、医疗设备等领域发挥更加重要的作用。未来,ARM处理器可能会进一步扩展TCM容量并优化其与其他内存子系统的协同工作方式,为开发者提供更强大的实时性能保障。

1680

OpenStack学习笔记(一)KVM虚拟化

一、KVM 实验 # sudoapt-getinstallkubuntu-desktop 图形化界面安装失败,apt-get install E: 无法定位软件包问题 1.检查/etc/apt/sources.list国内镜像是否正确 2.如果镜像正确依旧执行失败,sudoapt-getupdate更新repository 3.ps -e |grep ssh检查当前的ssh开...

TinaSprunt的开发笔记 567

【DDR3 控制器设计】(1)MIG IP 核的详解与配置

2:1 比例的用户接口数据总线宽度是 MIG 内存接口宽度的 4 倍,比如 MIG 中配置的数据位宽是 16 位,而 DDR 双边采样,所以用户接口是 MIG 内存接口的 4 倍即数据位宽为 64 位,同理可以得到如果设置为 4:1 则是 8 倍的数据位宽即数据位宽为 128 位。这里选择不使用OFF。以下为 MIG 和 DDR 之间的连接框图,可以看到框图的左边是用户接口,中间是 MIG 核,右边是需要控制的 DDR 接口,用户只需要去配置使用 MIG 核,就可以对 DDR 进行控制读写等操作。

记录学习历程 5359

KVM虚拟化与云计算Openstack-学习笔记

一。KVM虚拟化 1.KVM的安装:      yum install qemu-kvm qemu-kvm-tools virt-manager libvirt      /etc/init.d/libvirtd start       2.创建一个5G的大小的虚拟机:     qemu-img create -f raw /opt/centos-6.5-x86_64.raw 5G ...

不懂 820

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

openstack学习笔记----KVM

1 什么是KVM ?  与他相同的一个概念就是Xen, KVM是一个全虚拟化的解决方案,可以在x86架构的计算机上实现虚拟化功能。  Xen的实现方法是运行支持Xen功能的kernel,这个kernel是工作在Xen的控制之下,叫做Domain0,使用这个kernel启动机器后,你可以在这个机器上使用qemu软件,虚拟出多个系统。 KVM就简化的多了。它不需要重新编译内核,也不需要对

rually的专栏 609

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OpenStack学习 (2) - KVM 与 Qemu

Qemu QEMU是一个主机上的VMM(virtual machine monitor),通过动态二进制转换来模拟CPU,并提供一系列的硬件模型,使guest os认为自己和硬件直接打交道,其实是同QEMU模拟出来的硬件打交道,QEMU再将这些指令翻译给真正硬件进行操作。通过这种模式,Guest os可以和主机上的硬盘,网卡,CPU,CD-ROM,音频设备和USB设备进行交互。但由于所有指令都需...

JavaLab 626

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

openstack学习(一)kvm-libvirt

准备工作: 操作系统:ubuntu 16.04 安装KVM Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技...

weixin_34041003的博客 106

openstack学习笔记:Kvm基础实验环境

系统:centos7.1安装环境:桌面环境、kvm基础服务一、关闭selinux[root@localhost~]#setenforce0 [root@localhost~]#sed-i's/enforcing/disabled/g'/etc/selinux/config二、关闭iptables[root@localhost~]#systemctlsto...

wangpengtai的博客 266

速通KVM(云计算学习指南)

KVM网络架构fill:#333;color:#333;color:#333;fill:none;SDN扩展virtio-netVXLAN隧道Overlay网络流量控制VM1bond0物理网卡云网络功能安全组:虚拟防火墙VPC:租户隔离网络弹性IP:公网访问LBaaS:负载均衡服务🔥云虚拟化三大定律没有监控的虚拟机等于黑暗中的火箭(随时爆炸)快照不是备份,就像备忘录不是保险柜过度优化是万恶之源(留20%资源缓冲!云原生魔法包# 一键安装云平台监控工具。

weixin_45631123的博客 1304

KVM虚拟化与云计算Openstack共享存储-学习笔记2

一。块存储服务Cinder控制节点 1.安装cinder: yum install openstack-cinder python-cinderclient 2.修改配置文件: vim /etc/cinder/cinder.conf rabbit_host=172.16.1.210 rabbit_port=5672 rabbit_use_ssl=false rabbit_use...

不懂 388

KVM虚拟化与云计算Openstack的负载均衡-学习笔记3

一。负载均衡服务LBaas 1.在dashboard中打开lbaas菜单: 'enable_lb': True, 'enable_firewall': True, 'enable_quotas': True, 'enable_vpn': True, 将原来的False改为True.(注意大写)  2.重启dashboard服务: /etc/in...

不懂 354
上一篇: KVM和Xen的区别
下一篇: KVM源代码框架
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值