kvm

KVM虚拟化之KVM基本管理(二)

只谈情不闲聊 提交于 2019-12-19 10:21:43
KVM虚拟化之KVM管理(二) KVM管理操作 virsh是kvm虚拟机常用的管理工具 1、virsh命令格式: virsh 参数 kvm虚拟机名 2、 virsh 常用参数: 查看正在运行的KVM虚拟机 virsh list 查看所有的KVM虚拟机 virsh list --all 开启KVM虚拟机 virsh start centos7 关闭KVM虚拟机 virsh shutdown centos7 拔电源关机(强制关机) virsh destroy centos7 导出配置 virsh dumpxml centos7 #删除配置 virsh undefine centos7 导入配置 virsh define centos7 修改配置 virsh edit centos7 重命名KVM虚拟机(低版本不支持) virsh dormrename centos7 挂起KVM虚拟机 virsh suspend centos7 恢复(取消挂起)KVM虚拟机 virsh resume centos7 开机自动启动KVM虚拟机 virsh autostart centos7 关闭开机自动启动KVM虚拟机 virsh autostart —disable centos7 查询KVM虚拟机的VNC端口号 virsh vncdisplay centos7 查看虚拟机的CPU信息 virsh

2.LXC和namespace介绍

℡╲_俬逩灬. 提交于 2019-12-19 06:25:11
lxc介绍 LXC又名Linux container,是一种虚拟化的解决方案,这种是内核级的虚拟化。(主流的解决方案Xen ,KVM, LXC) Linux Container容器是一种 内核虚拟化技术 ,可以提供轻量级的虚拟化,以便隔离进程和资源。可以最大效率隔离进程和资源。它可以把传统虚拟技术以及后来的Xen、KVM的VM进程像HOST进程一样运行管理, 所以创建和销毁都非常轻。 如果说LXC着眼点在于提供轻量级的虚拟技术,扎根在虚拟机,那Docker则定位于应用。 概述 LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于: (1)与宿 主机 使用同一个 内核 ,性能损耗小; (2)不需要指令级模拟; (3)不需要即时(Just-in-time)编译; (4)容器可以在CPU核心的本地 运行指令 ,不需要任何专门的解释机制; (5)避免了准虚拟化和系统调用替换中的复杂性; (6)轻量级隔离,在隔离的同时还提供共享机制,以实现容器与宿主机的资源共享。 总结:Linux Container是一种轻量级的虚拟化的手段。

KVM网络

吃可爱长大的小学妹 提交于 2019-12-19 05:08:49
编辑下面文件保存成net81.xml <network> <name>net81</name> <bridge name='net81' stp='on' delay='0' /> </network> 应用设定并启动 virsh net-define net81.xml virsh net-start net81 使用ifconfig查看配置好的网卡 net81 Link encap:Ethernet HWaddr 52:54:00:84:92:2E UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 配置VLAN ID <interface type='bridge'> <source bridge='br2'/> <vlan> <tag id='304'/> </vlan> <virtualport type='openvswitch'> </virtualport> <model type=

开源KVM虚拟化平台-Jimv

瘦欲@ 提交于 2019-12-19 02:54:44
在日常工作中随着服务器的增多对于运维来说,我们需要一个web虚拟化管理平台,在搭建OpenStack,ZStack等开源虚拟化平台过程中还是遇到了很多问题,结合日常工作机缘巧合让我遇到了Jimv,值得推荐给大家,为日常工作解决了很大一部分问题。推荐的原因很多,一键式快速安装,自定义镜像模板,扩容、快照等功能,非常适合中小企业虚拟化平台管理。 在工作中我们会有不同的环境,数据库和中间件、jenkins cicd部署,docker环境、监控平台,ELK、链路跟踪等。可以制作镜像模板快速给项目提供环境,也可以给客户快速提供环境,磁盘扩容更是方便,在给多个客户实施都一样正常,一年的沉淀感谢遇到了一个好的产品,做的很用心。 一年的时间里:禅道、Jira、Gitlab、Svn、Yapi、Wiki、Jenkins、Jimv、监控平台集成钉钉、ELK、链路探针收获很多 新的项目新的环境,以后的日子继续加油,学习k8s,学习python,需要学习的还有很多,加油。 链路探针: 主机监控: 镜像文件模板 参考: https://github.com/jamesiter/JimV-C https://space.bilibili.com/486485762 https://www.jimv.cn/ 来源: CSDN 作者: qing2005cheng 链接: https://blog.csdn.net

KVM设备透传与重定向

依然范特西╮ 提交于 2019-12-18 20:50:41
1.1 设备透传与重定向 在私有云桌面中,设备的透传(passthrough)与重定向(redirection)一直以来都是作为基本功能出现的。两者的在使用上的区别是前者一般将主机上的设备直接传递给在其中运行的虚拟机,后者则是将客户端的设备通过网络传递给其正在连接的虚拟机,相同点是当传递至虚拟机或虚拟机归还设备时,这对于主机来说是个设备热插拔操作。 1.1.1 PCI/PCI-E设备 在QEMU中,PCI/PCI-E设备目前仅支持透传(某些商业软件可对PCI/PCI-E设备进行重定向),且需要在主机BIOS设置中CPU打开Intel VT-d/选项(AMD CPU与之对应的是AMD Vi),可透传的设备包括显卡、声卡、HBA卡、网卡、USB控制器等,其中某些设备需要额外设置(比如IOMMU)才可进行透传。 使用libvirt透传PCI/PCI-E设备时需要知道要透传设备的总线地址,以在域定义中指定要透传的设备。一般落实到QEMU中有这些为透传准备的设备模型,包括pci-assgn、vfio-pci、vfio-vga等。 以透传主机网卡为例: [root@node1 ~]# lspci 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge ... 02:05.0 Ethernet

虚拟化-KVM

喜欢而已 提交于 2019-12-18 20:45:44
虚拟化-KVM 虚拟化-KVM 开始部署: 安装虚拟机: 连接虚拟机: 虚拟机的文件: 需要的配置!!! 操作步骤: (1)制作二代模板机 (2)使用二代模板机克隆出需要的节点 修改虚拟机的IP 主机名 修改虚拟机的CPU和内存 (3)单机一键启动和关闭 (4)分发虚拟机 (5)虚拟机的启动控制脚本 sshpass 使用二代模板机之前,你要把所有需要准备的东西都想好。 [root@kvm ~]# virsh list --all Id Name State 虚拟化-KVM 在centos7环境部署kvm虚拟化 应用场景: 1. 割接 使用新服务器替换老旧的服务器。 2. 迁移 如果坏了,多长时间你能修好? 开始部署: 安装之前,将vmware中虚拟机的虚拟化功能打开,勾选上即可 (生产环境中服务器不需要这样设置) [ root@kvm ~ ] # lftp 172.16.0.99 lftp 172.16.0.99:~ > cd release/ lftp 172.16.0.99:/release > get epel-release-7-6.noarch.rpm [ root@kvm ~ ] # rpm -ivh epel-release-7-6.noarch.rpm [ root@kvm ~ ] # yum install -y libvirt-python virt

Python libvirt API - create a Virtual Machine

一世执手 提交于 2019-12-18 13:31:00
问题 I am trying to create a python script to handle basic VM operations like: create a VM, delete a VM, start, stop, etc. Currently I'm rather "stuck" on create From the command line you would do something like: qemu-img create -f qcow2 vdisk.img <size> virt-install --virt-type kvm --name testVM --ram 1024 --cdrom=ubuntu.iso --disk /path/to/virtual/drive,size=10,format=qcow2 --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux And that will create a new VM

KVM虚拟化之KVM基本管理(二)

老子叫甜甜 提交于 2019-12-17 14:49:11
KVM虚拟化之KVM管理(二) KVM管理操作 * virsh是kvm虚拟机常用的管理工具 1、virsh命令格式: virsh 参数 kvm虚拟机名 2、 virsh 常用参数: # 查看正在运行的KVM虚拟机 virsh list # 查看所有的KVM虚拟机 virsh list --all # 开启KVM虚拟机 virsh start centos7 # 关闭KVM虚拟机 virsh shutdown centos7 # 拔电源关机(强制关机) virsh destroy centos7 # 导出配置 virsh dumpxml centos7 #删除配置 virsh undefine centos7 # 导入配置 virsh define centos7 # 修改配置 virsh edit centos7 # 重命名KVM虚拟机(低版本不支持) virsh dormrename centos7 # 挂起KVM虚拟机 virsh suspend centos7 # 恢复(取消挂起)KVM虚拟机 virsh resume centos7 # 开机自动启动KVM虚拟机 virsh autostart centos7 # 关闭开机自动启动KVM虚拟机 virsh autostart —disable centos7 # 查询KVM虚拟机的VNC端口号 virsh

转-挂载raw和qcow2格式的KVM硬盘镜像

两盒软妹~` 提交于 2019-12-16 22:09:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> from:http://lazyhack.net/mount-raw-and-qcow2-kvm-disk-images/ raw格式 对于未分区镜像文件直接使用loop: mount -o loop image.img /mnt/image 已分区的镜像文件: 如果已知分区的起始位置 mount -o loop,offset=32256 image.img /mnt/image 或者使用losetup + kpartx losetup /dev/loop0 image.img kpartx -a /dev/loop0 mount /dev/mapper/loop0p1 /mnt/image kpartx命令的作用,是让Linux内核读取一个设备上的分区表,然后生成代表相应分区的设备。 kpartx -l imagefile 可以查看一个映像文件中的分区,使用 kpartx -a imagefile 命令后,就可以通过 /dev/mapper/loop0pX (其中X是 分区号)来访问映像。 qcow2格式 对于qcow2格式需要使用qemu-nbd这个工具 modprobe nbd max_part=63 qemu-nbd -c /dev/nbd0 image.img mount /dev/nbd0p1

转: qemu-kvm内存管理

心已入冬 提交于 2019-12-16 20:06:22
记得很早之前分析过KVM内部内存虚拟化的原理,仅仅知道KVM管理一个个slot并以此为基础转换GPA到HVA,却忽略了qemu端最初内存的申请,而今有时间借助于qemu源码分析下qemu在最初是如何申请并管理虚拟机内存的,坦白讲,还真挺复杂的。 一、概述 qemu-kvm 模型下的虚拟化引擎,内存虚拟化部分要说简单也挺简单,在虚拟机启动时,有qemu在qemu进程地址空间申请内存,即内存的申请是在用户空间完成的。通过kvm提供的API,把地址信息注册到KVM中,这样KVM中维护有虚拟机相关的slot,这些slot构成了一个完成的虚拟机物理地址空间。slot中记录了其对应的HVA,页面数、起始GPA等,利用它可以把一个GPA转化成HVA,想到这一点自然和硬件虚拟化下的地址转换机制EPT联系起来,不错,这正是KVM维护EPT的技术核心。整个内存虚拟化可以分为两部分:qemu部分和kvm部分。qemu完成内存的申请,kvm实现内存的管理。看起来简单,但是内部实现机制也并非那么简单。本文重点介绍qemu部分。 二、涉及数据结构 qemu中内存管理的数据结构主要涉及:MemoryRegion、AddressSpace、FlatView、FlatRange、MemoryRegionSection、RAMList、RAMBlock、KVMSlot、kvm_userspace_memory