hypervisor

Docker基本介绍与安装

為{幸葍}努か 提交于 2019-12-07 06:01:17
Docker入门基础知识 1. 初识Docker Docker的优点 Docker的体系结构 内部组件 虚拟机与容器的区别 (1)虚拟机 (2)容器 应用场景 Docker-CE安装 卸载Docker 2. 镜像管理 镜像是什么 镜像与容器的联系 存储驱动 常见的Linux发行版支持的存储驱动 下载镜像 镜像管理命令 (1) 镜像查看 (2) 镜像拉取和推送 (3)删除一个镜像 (4) 标记镜像 (5) 导出导入镜像 3. 容器管理 (1) 创建容器 (2)暴露端口到宿主机上 (3)执行重启策略 (4 )容器资源限制!!! 容器管理常用命令 4. 管理应用程序数据 将Docker主机数据挂载挂载到容器 (1)volume (2)Bind Mounts 搭建LNMP(Linux,Nginx, Mysql, PHP)网站平台 1. 初识Docker Docker是一个 开源 应用容器引擎,使用 Go语言开发 ,基于Linux内核的 cgroup,namespace, Union FS 等技术,对应用进程进行封装隔离,并且独立于宿主机与其他进程,这种运行时封装的状态称为 容器 。 Docker的优点 Docker的理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行程序,程序之间相互隔离 总结:开箱服务,快速部署,可移植性强

System Virtualization : Understanding IO virtualization and role of hypervisor [closed]

ぐ巨炮叔叔 提交于 2019-12-06 05:06:46
问题 Closed. This question is off-topic. It is not currently accepting answers. Want to improve this question? Update the question so it's on-topic for Stack Overflow. Closed 6 years ago . I would like to obtain a correct understanding of I/O virtualization. The context is pure/full virtualization and not para-virtualization. My understanding is that a hypervisor virtualizes hardware and offers virtual resources to each sandboxed application. Each sandbox thinks its accessing the underlying

大数据组件——nova

断了今生、忘了曾经 提交于 2019-12-04 15:29:04
/*--> */ /*--> */ nova提供了一种配置计算实例,支持创建虚拟机,裸机服务器。 nova在 linux上作为一组守护进程运行,以提供该服务 nova分成两类节点:一个是 nova-compute计算节点,另一个是控制节点 /*--> */ /*--> */ nova api:负责接收和响应外部请求,外部访问 nova的唯一途径,接受外部请求并通过 Message Queue将请求发送给其他的服务组件 nova scheduler:云主机调度,决策虚拟机应该创建在哪个计算节点上。决策一个虚拟机应该调度到哪个物理节点上(过滤,计算权值) nova computer:运行在计算节点上,通过 message queue接收并管理 KVM的生命周期。管理虚拟机的核心服务,通过调用 hypervisor API实现虚拟生命周期管理 hypervisor:计算节点上跑的虚拟化管理程序,虚拟机管理最底层的程序。不同虚拟化技术提供自己的 hypervisor nova conductor:计算节点访问数据库的中间件, nova-computer经常需要更新数据库(比如虚拟机环境),但不会直接访问数据库,而是将这个任务委托给 nova-conductor nova consoleauth :控制台的授权验证,需要打开vnc 需要在consoleauth 进行授权认证 nova

Docker底层原理介绍

纵饮孤独 提交于 2019-12-03 21:25:40
1.docker介绍 1.1什么是docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。 1.2docker能解决什么问题 1.2.1高效有序利用资源 机器资源有限; 单台机器得部署多个应用; 应用之间互相隔离; 应用之间不能发生资源抢占,每个应用只能使用事先注册申请的资源。 1.2.2一次编译,到处运行 类似于java代码,应用及依赖的环境构建一次,可以到处运行。 1.2.docker底层原理介绍 1.2.1Linux的namespace和cgroup简单理解 namespace:类似于JAVA的命名空间 controll groups : controll (system resource) (for) (process)groups 1.2.2Linux中的namespace 在Linux系统中,可以同时存在多用户多进程,那么对他们的运行协调管理,通过进程调度和进度管理可以解决,但是,整体资源是有限的,怎么把有限的资源(进程号、网络资源等等)合理分配给各个用户所在的进程? image Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的

5.libvirt 介绍 [ Libvrit for KVM/QEMU ]

匿名 (未验证) 提交于 2019-12-03 00:34:01
1. Libvirt 是什么 为什么需要Libvirt? Hypervisor 比如 qemu-kvm 的命令行虚拟机管理工具参数众多,难于使用。 Hypervisor 种类众多,没有统一的编程接口来管理它们,这对云环境来说非常重要。 没有统一的方式来方便地定义虚拟机相关的各种可管理对象。 Libvirt提供了什么? 它提供统一、稳定、开放的源代码的应用程序接口(API)、守护进程 (libvirtd)和和一个默认命令行管理工具(virsh)。 它提供了对虚拟化客户机和它的虚拟化设备、网络和存储的管理。 它提供了一套较为稳定的C语言应用程序接口。目前,在其他一些流行的编程语言中也提供了对libvirt的绑定,在Python、Perl、Java、Ruby、PHP、OCaml等高级编程语言中已经有libvirt的程序库可以直接使用。 它对多种不同的 Hypervisor 的支持是通过一种基于驱动程序的架构来实现的。libvirt 对不同的 Hypervisor 提供了不同的驱动,包括 Xen 的驱动,对QEMU/KVM 有 QEMU 驱动,VMware 驱动等。在 libvirt 源代码中,可以很容易找到 qemu_driver.c、xen_driver.c、xenapi_driver.c、vmware_driver.c、vbox_driver.c 这样的驱动程序源代码文件。

虚拟化技术

匿名 (未验证) 提交于 2019-12-02 23:43:01
虚拟化类型   在虚拟化蓬勃发展的这些年里,虚拟化可以根据不同划分标准进行分类,包括全虚拟化,CPU 虚拟化,硬件虚拟化,服务器虚拟化,桌面虚拟化等等。我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用 Hypervisor,隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(即虚拟机)。   这种分类并不是绝对的,一个优秀的虚拟化软件往往融合了多项技术。例如 VMware Workstation 是一个著名的全虚拟化的 VMM,但是它使用了一种被称为动态二进制翻译的技术把对特权状态的访问转换成对影子状态的操作,从而避免了低效的 Trap-And-Emulate (陷入-模拟)的处理方式,这与半虚拟化相似,只不过半虚拟化是静态地修改程序代码。对于半虚拟化而言,如果能利用硬件特性,那么虚拟机的管理将会大大简化,同时还能保持较高的性能。   下面分别介绍四类主流的分类方法: 从虚拟化的层次划分,主要分为软件辅助的虚拟化和硬件辅助的虚拟化。 软件辅助虚拟化:通过软件的方法,让客户机的特权指令陷入异常,从而触发宿主机进行虚拟化。主要使用的技术就是优先级压缩和二进制代码翻译。 硬件辅助虚拟化:是指在 CPU 中加入新的指令集和处理器运行模式,完成虚拟化操作系统对硬件资源的的直接调用。典型技术指的是 Intel VT,AMD-V。 从虚拟平台角度分为全虚拟化和半虚拟化

kvm 安装

匿名 (未验证) 提交于 2019-12-02 23:42:01
一、 虚拟化 是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互相不影响,从而显著提高计算机的工作效率。 虚拟化使用软件的方法重新定义划分 IT 资源,可以实现 IT 资源的动态分配、灵活调度、跨域共享,提高 IT 资源利用率,使 IT 资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求 KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。IO 的虚拟化,就交给 Linux 内核和qemu来实现。 Libvirt:是 KVM 的管理工具。Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。OpenStack 底层也使用 Libvirt。 Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh (1)libvirtd是服务程序,接收和处理 API 请求; (2)API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具,后面我们也会介绍; (3)virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。作为 KVM 和 OpenStack

KVM&Libvirt基本概念及开发杂谈

时光总嘲笑我的痴心妄想 提交于 2019-12-02 16:59:14
导读 大家好,本次肖力分享的主题是KVM&Libvirt基本概念及开发杂谈,内容有些凌乱松散,主要基于自己早期整理的笔记内容和实践感悟,有些内容难免有失偏颇,望见谅。前面先介绍下需要了解的基本知识,大部分内容在肖力著作中都有更详细的解释,可阅读参考。 KVM包含: 1.内核模块kvm.ko,用于核心虚拟框架。 2.包含与处理器相关的模块kvm-intel.ko,kvm-amd.ko 3.kvm需要使用经过修改定制的qemu软件提供用户空间工具 *内核组件已经包含在Linux内核2.6.20中了 *部分操作系统在kvm中运行仍然存在某些问题,可以查看KVM官网提供的操作系统运行兼容性状态列表 使用KVM的前提条件: 1.qemu-kvm-release.tar.gz 2.kvm-kmod-release.tar.bz2,自己编译内核模块的需要这个东东 3.支持VT技术的Intel处理器或支持SVM技术的AMD处理器 使用qemu前提条件: 1.zlib库及头文件 2.sdl库及头文件 3.alsa库及头文件,这个是用来提供虚拟化音频相关功能,默认是禁用的,现在不知道什么状态了,可以使用--enable-alsa来启用 4.gnutls库及头文件,可选的VNC TLS支持,默认此功能是开启的,可以用--disable-vnc-tls关闭 5.kernel头文件 *创建,安装

How do I emulate the vmx feature with QEMU?

妖精的绣舞 提交于 2019-12-02 04:12:36
问题 I read from here that vmx capability support on QEMU must be explicitly enabled by providing the +vmx option to the command but the problem is that it does not seem to work. In my system, the VMX feature is still undetected. Command: qemu-system-x86_64 -no-kvm -cpu qemu64,+vmx,-svm ... In my guest OS, when I execute cpuid 1 I get ECX = 0x80802001; bit 5 = 0 meaning that my virtual CPU does not have VMX. Is this a bug? Or is there another way to enable the vmx feature in QEMU? 回答1: The