当前位置:首页 > CN2资讯 > 正文内容

linux镜像 Linux镜像制作

2天前CN2资讯



文章目录

  • 一、linux 系统qcow2镜像制作
  • 1. 基础知识
  • KVM
  • 虚拟化kvm发展
  • VMware与KVM
  • KVM和Qemu、libvirt的关系
  • 5. 通过qemu-img命令,vmdk格式 转成 qcow2
  • 6. qcow2镜像转vmdk,导入ESXi
  • 7. qcow2镜像压缩


一、linux 系统qcow2镜像制作

1. 基础知识

KVM

Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。

计算机最重要几种资源分别是:计算(CPU)、存储(RAM、ROM),以及为了连接各种设备抽象出的 I/O 资源。所以 Intel 分别设计出了 VT-x 指令集、VT-d 指令集、VT-c 指令集等技术来实现硬件虚拟化,让 CPU 配合我们来实现这个目标,了解了核心思想之后,让我们来看一看 KVM 的架构图。

图片出自论文《Residency-Aware Virtual Machine Communication Optimization: Design Choices and Techniques》)


Intel 定义了 Virtual Machine Extension(VMX)这个处理器特性,也就是传说中的 VT-x 指令集。

虚拟化kvm发展

2006 年 10 月由以色列的 Qumranet 组织开发的一种新的“虚拟机”方案,并将其贡献给开源世界

2007 年 2 月于 Linux Kernel-2.6.20 中第一次包含了 KVM

2008 年 9 月,红帽收购了 Qumranet ,由此入手了 KVM 的虚拟化技术。在之前红帽决是将Xen 加入到自己的默认特性当中——那是 2006 年,因为当时Xen技术脱离了内核的维护方式,也许是因为采用 Xen 的 RHEL 在企业级虚拟化方面没有赢得太多的市场,也许是因为思杰跟微软走的太近了,种种原因,导致其萌生了放弃 Xen。而且在正式采用 KVM 一年后,就宣布在新的产品线中彻底放弃 Xen ,集中资源和精力进行 KVM 的工作。

2009 年 9 月,红帽发布其企业级 Linux 的 5.4 版本( RHEL5.4 ),在原先的 Xen 虚拟化机制之上,将 KVM 添加了进来

2010 年 11 月,红帽发布其企业级 Linux 的 6.0 版本( RHEL6.0 ),这个版本将默认安装的 Xen 虚拟化机制彻底去除,仅提供 KVM 虚拟化机制

2011 年初,红帽的老搭档 IBM 找上红帽,表示 KVM 这个东西值得加大力度去做。于是到了 5 月, IBM 和红帽,联合惠普和英特尔一起,成立了开放虚拟化联盟( Open Virtualization Alliance ),一起声明要提升 KVM 的形象,加速 KVM 投入市场的速度,由此避免 VMware 一家独大的情况出现。联盟成立之时,红帽的发言人表示, 大家都希望除 “ VMware 之外还有一种开源选择。未来的云基础设施一定会基于开源

自 Linux 2.6.20 之后逐步取代 Xen 被集成在Linux 的各个主要发行版本中,使用 Linux 自身的调度器进行管理。

VMware与KVM

KVM:需要硬件支持的虚拟化技术,从硬件层面实现隔离;(openstack默认使用的虚拟化技术就是KVM)

QEMU:QEMU和KVM一样是一种虚拟化软件;

QUEMU和KVM的区别:由于KVM是内核级虚拟化软件(能虚拟化出CPU和内存),磁盘、网卡虚拟不出来,于是KVM就是结合了QEMU实现了用户态的虚拟化;

KVM和Qemu、libvirt的关系

不同的基于KVM的虚拟化平台,可能会采用不同的虚拟化组件,目前主流的采用QEMU-KVM组件。

KVM:Kernel-Based Virtual Machine 基于内核的虚拟机,是Linux内核的一个可加载模块,通过调用Linux本身内核功能,实现对CPU的底层虚拟化和内存的虚拟化,使Linux内核成为虚拟化层,需要x86架构的,支持虚拟化功能的硬件支持(比如Intel VT,AMD-V),是一种全虚拟化架构。KVM在2007年年2月被导入Linux 2.6.20内核中。从存在形式来看,它包括两个内核模块:kvm.ko 和 kvm_intel.ko(或kvm_amd.ko),本质上,KVM是管理虚拟硬件设备的驱动,该驱动使用字符设备/dev/kvm(由KVM本身创建)作为管理接口,主要负责vCPU的创建,虚拟内存的分配,vCPU寄存器的读写以及vCPU的运行。

QEMU:是一套由Fabrice Bellard编写的模拟处理器的自由软件,它是一个完整的可以单独运行的软件,可以独立模拟出整台计算机,包括CPU,内存,IO设备,通过一个特殊的“重编译器”对特定的处理器的二进制代码进行翻译,从而具有了跨平台的通用性。QEMU有两种工作模式:系统模式,可以模拟出整个电脑系统,另一种是用户模式,可以运行不同与当前硬件平台的其他平台上的程序(比如在x86平台上运行跑在ARM平台上的程序);其代码地址 http://git.qemu.org/qemu.git ,有兴趣的同学可以自己去看看,目前最新的版本是2.7.0,在0.9.1及之前版本还可以使用kqemu加速器(可以理解为QEMU的一个插件,用来提高QEMU的翻译性能,支持Windows平台),但1.0以后版本就只能使用qemu-kvm(只支持Linux)进行加速了,1.3版本后QEMU和QEMU-KVM合二为一了。

QEMU-KVM:从前面对KVM内核模块的介绍知道,它只负责CPU和内存的虚拟化,加载了它以后,用户就可以进一步通过工具创建虚拟机(KVM提供接口),但仅有KVM还是不够的,用户无法直接控制内核去做事情(KVM只提供接口,怎么创建虚拟机,分配vCPU等并不在它上面进行),还必须有个运行在用户空间的工具才行,KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,并对其进行了修改,最后形成了QEMU-KVM。

在QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建,管理各种虚拟硬件,QEMU将KVM整合了进来,通过/ioctl 调用 /dev/kvm,从而将CPU指令的部分交给内核模块来做,KVM实现了CPU和内存的虚拟化,但kvm不能虚拟其他硬件设备,因此qemu还有模拟IO设备(磁盘,网卡,显卡等)的作用,KVM加上QEMU后就是完整意义上的服务器虚拟化。

总结:QEMU-KVM具有两大作用:

1.提供对cpu,内存(KVM负责),IO设备(QEMU负责)的虚拟

2.对各种虚拟设备的创建,调用进行管理(QEMU负责)

libvirt
RedHat开始支持KVM后,大概是觉得QEMU+KVM方案中的用户空间虚拟机管理工具不太好用或者通用性不强,所以干脆搞了个libvirt出来,一个针对各种虚拟化平台的虚拟机管理的API库,一些常用的虚拟机管理工具如virsh(类似vim编辑器),virt-install,virt-manager等和云计算框架平台(如OpenStack,OpenNebula,Eucalyptus等)都在底层使用libvirt提供的应用程序接口。

libvirt主要由三个部分组成:API库,一个守护进程 libvirtd 和一个默认命令行管理工具 virsh。

QEMU是一个独立的虚拟化解决方案,并不依赖KVM(它本身自己可以做CPU和内存的模拟,只不过效率较低),而KVM是另一套虚拟化解决方案,对CPU进行虚拟效率较高(采用了硬件辅助虚拟化),但本身不提供其他设备的虚拟化,借用了QEMU的代码进行了定制,所以KVM方案一定要依赖QEMU

即使后来RedHat后来开发了libvirt,也只能简单的认为是个虚拟机管理工具,仍然需要通过用户空间QEMU来与KVM进行交互

2. 什么是qcow2

QCOW2镜像格式是Qemu支持的磁盘镜像格式之一。它可以使用一个文件来表示一个固定大小的块设备。与Raw镜像格式相比,QCOW2具有如下优点:

  • 更小的文件大小,即便不支持holes(稀疏文件)的文件系统同样适用
  • 支持写时拷贝(COW, Copy-on-write),QCOW2镜像只反映底层磁盘镜像所做的修改
  • 支持快照,QCOW2镜像可以包含镜像历史的多重快照
  • 支持基于zlib的数据压缩
  • 支持AES加密

3. KVM环境下制作qcow2格式镜像

CentOS7 KVM环境下制作qcow2格式镜像
参考URL:
云平台虚拟机镜像制作(从iso到qcow2)
参考URL: https://www.jianshu.com/p/4c1998854be5
linux系统qcow2镜像的制作
参考URL:

未测试验证,TODO!

4. 检查CPU是否支持虚拟化

Linux虚拟化是利用基于内核的KVM和libvirt来实现,需要CPU支持虚拟化

egrep -c '(vmx|svm)' /proc/cpuinfo

输出结果
56

如果回显大于0,说明有vmx或者svm,说明硬件支持虚拟化。

vmx是Intel,svm是AMD
匹配到’svm’说明你的linux服务器是支持AMD的虚拟化技术AMD-V;匹配到’vmx’说明你的linux服务器是支持Intel的虚拟化技术Intel-VT

开启服务器物理机的CPU虚拟化功能

开机时按‘F2、F12、DEL、ESC’等键就可以进入到BIOS
启用CPU虚拟化功能,设置【Configuration】【Intel Virtual Technology】【Enabled】

VMware开启VT-x硬件虚拟化技术

VMware安装centos 6.5虚拟机,无法支持KVM虚拟化,后发现未开启VT。 关闭虚拟机,打开虚拟机设置,VT开启操作如下

如果勾选,那么在虚拟机(GuestOS)中会获得本机上的硬件虚拟化特性,但会降低虚拟化性能;

ESXI 6 开启VT-x硬件虚拟化技术

一般虚拟化主ESXi都会开启BIOS中的CPU虚拟化技术,INTEL叫VT-x,AMD的叫AMD-V。

ESXI 6.0 CPU虚拟化是在web端设置的,在客户端vSphere中没有这个设置,切记!

检查主板是否开启虚拟化

先安装检查工具:
Ubuntu系统执行以下命令:

sudo apt update && sudo apt install cpu-checker -y

Ubuntu 安装完成后,执行以下命令:

sudo kvm-ok

输出的结果如下:

INFO: /dev/kvm existsKVM acceleration can be used

表明kvm加速可用。

2) 确认CPU和主板都可支持后。接下来安装kvm虚拟化套件:

只用VMware开虚拟机?来了解一下更强大KVM虚拟化技术
参考URL: https:///blogs-details/20210223032018622k

3)命令行启动kvm虚拟机
kvm虚拟机常用管理命令

查看启动中的kvm虚拟机:

virsh list

查看所有kvm虚拟机状态:

virsh list --all

启动kvm虚拟机:

virsh start FH-UMP-ZABBIX2(虚拟机名称)

5. 通过qemu-img命令,vmdk格式 转成 qcow2

VMWare 导出vmdk并转为qcow2格式
参考URL:

核心思路:qemu-img命令
qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件。

安装qemu-img
https://qemu.weilnetz.de/w64/ 去官网下载安装包安装

选择安装路径:

添加到系统环境变量PATH中:

qemu-img convert -O qcow2 xxxx-disk1.vmdk xxxx-disk1.qcow2

如上,命令 亲测可用!

实战:

# qemu-img info SLES11SP1-single.vmdk image: SLES11SP1-single.vmdk file format: vmdk virtual size: 20G (21474836480 bytes) disk size: 3.9G # qemu-img convert -f vmdk -O qcow2 SLES11SP1-single.vmdk SLES11SP1-single.img # qemu-img info SLES11SP1-single.img image: SLES11SP1-single.img file format: qcow2

img转换vmdk

qemu-img convert -f raw openwrt.img -O vmdk openwrt.vmdk

-O的O是大写!

6. qcow2镜像转vmdk,导入ESXi

阿里云qcow2镜像转vmdk,导入ESXi

7. qcow2镜像压缩

压缩 KVM 的 qcow2 镜像文件


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25306.html

    分享给朋友:

    “linux镜像 Linux镜像制作” 的相关文章

    WordPress登录验证设置:提升网站安全性与用户体验

    在使用WordPress构建网站时,登录验证设置是确保用户身份安全和信息保护的重要环节。它不仅涉及用户从何处进入网站,更关乎整个网站的安全性能。在这章中,我将为你详细解析什么是WordPress登录验证,它的重要性以及基本的流程。 什么是WordPress登录验证 WordPress登录验证主要是通...

    腾讯云国际站:助力企业全球化发展的云计算服务平台

    腾讯云国际站是腾讯云为全球用户打造的云计算服务平台,其目的是为企业和开发者提供强大的技术支持。这一平台的核心特点在于其全球化的服务网络与数据中心布局,让每位用户都能感受到来自不同地区的高效服务。 全球服务与数据中心特点 我对腾讯云国际站的全球服务网络感到非常惊艳。它在全球开通了21个地理区域,涵盖了...

    全面指南:在Linux上使用dd命令安装Windows系统的教程

    在当今的技术环境中,许多用户都希望能够在Linux系统上安装Windows。这不仅能帮助开发者和测试人员多平台间的快速切换,还能让个人用户享受到两个操作系统的优点。dd命令成为了实现这一目标的一个重要工具,通过它,可以将Windows操作系统的映像文件直接写入到一个虚拟专用服务器上。这篇教程将为你提...

    Digital-VM优惠码:解锁超值VPS主机服务的最佳选择

    Digital-VM成立于2019年初,专注于为用户提供基于KVM架构的VPS主机服务。在这短短的几年中,它已经迅速崛起,成为业界的一颗新星。作为一个技术驱动的品牌,Digital-VM不断创新,以满足各种客户需求,提供高性能、灵活性和可靠性的VPS解决方案。 我觉得Digital-VM的成长路程相...

    全面解析CPU租用服务:灵活性与高效性的最佳选择

    CPU租用服务概述 在当今快速发展的科技环境中,CPU租用服务作为一种创新的计算资源提供模式,正在受到越来越多用户的关注。这种服务使得用户可以根据具体需求,灵活地租用不同配置的CPU资源,从而有效地降低了硬件采购成本。 CPU租用服务的意义不仅在于提供强劲的计算能力,更在于它的灵活性。用户不再需要一...

    50kvm VPS主机服务:最优性价比与便捷选择

    50kvm是一个备受推崇的VPS主机服务品牌,它因其卓越的性价比和高效的速度而广受欢迎。这个品牌提供多种不同 유형的VPS解决方案,覆盖了从美国到亚洲的多个数据中心。特别是美国波特兰的Cera (NCP)和洛杉矶C3、Cera CN2 GIA等产品,都是非常值得关注的选择。 在我了解50kvm的过程...