网络存储技术
网络存储技术
前言
信息在网络中的传输,需要借助数据作为载体,那么信息和数据的关系什么,数据存储的作用是什么?本章主要介绍计算机领域信息和数据的定义,以及它们之间的关系,数据存储的概念、发展史和发展历程。
本章主要对存储系统的组件进行介绍,包括控制框、硬盘框、硬盘、接口模块等组件,以及框间级联的方式。介绍了存储介质控制框、硬盘框、硬盘及接口模块的结构、工作原理及特点。
提示:以下是本篇文章正文内容,下面案例可供参考
一、HCIA存储技术趋势与智能存储
1.1 HCIA存储技术趋势
1.1.1 数据与信息
1、数据
(1)数据的定义:数据是对所有事物的数字表示
(2)数据的种类:
①结构化数据;
②半结构化数据;
③非结构化数据
(3)数据的处理周期
数据处理是人或机器对数据进行的重组或重新排序,以增加其特定的价值。数据出炉包括以下基本步骤:输入、处理和输出,这三个步骤构成了数据处理周期
2、信息
(1)信息的定义:
①信息是已经被处理、具有逻辑关系的数据,是对数据的解释。
②信息是经过处理的数据,其中具有包括上下文,相关性和目的的数据
(2)数据与信息的关系
①数据经过加工处理之后,能够成为信息
②而信息需要经过数字化转变成数据才能存储和传输
(3)信息生命周期管理
ILM(information life cycle management,信息生命周期管理)是指信息产生和初始储存阶段到最后过时被删除时的一套综合管理方法
1.1.2 数据存储
(1)什么是数据存储
(2)数据存储系统
(3)存储的物理结构
(4)数据存储分类
(5)数据管理技术的演变
(6)数据存储的应用
1.1.3 存储技术的发展
1、存储架构的发展
(1)存储架构的历程
(2)从硬盘到磁盘阵列
(3)从分离到融合
(4)分布式存储
①通过软件将物理资源组织起来构成高性能逻辑存储池,在保证可靠性的同时提供多种存储服务。
②一般而言,分布式存储是将数据分散存储在多台独立的设备上,采用可扩展的系统结构、利用多台存储服务器分担存储负荷、利用位置服务器定位存储信息。
(5)存储虚拟化
①存储虚拟化可以将存储设备进行
抽象,以逻辑资源的方式呈现,统一提供全面的存储服务。
②可以在不同的存储形态或设备类
型之间提供统一的功能。
(6)云存储
云存储是一个多存储设备、多应用、多服务协同工作的集合体,它使用高度虚拟化的多租户基础设施为企业提供克扩展的存储资源,可以根据组织的要求动态配置
2、存储介质的发展
(1)机械硬盘发展简史
容量越来越大,体积越来越小
(2)固态硬盘发展简史
①固态硬盘出现也很早,但是因为20世纪末机械硬盘快速发展而被遗忘。
②但随着对存取速度要求的提高, 固态硬盘又开始繁荣发展。
(3)闪存介质发展
3、接口协议的发展
(1)接口协议
①硬盘接口是硬盘与主机系统见的连接部件
②接口协议指的是需要进行信息交换的接口间需要遵从的通信方式和要求
(2)接口协议发展简史
(3)NVMe与NVMe-oF
1.1.4 存储产品的发展趋势
1、存储产品发展历程
2、智能时代来临
3、智能时代对数据存储的新要求
4、智能时代数据存储的特征
5、数据存储发展趋势
6、存储介质发展趋势
7、DNA存储
8、原子存储
9、量子存储
10、存储网络发展趋势
11、华为存储产品发展历程
12、智能存储数据架构
1.2 HCIA智能存储
1.2.1 控制框
(1)控制框定义:控制框是承载了控制器的机框,对外提供存储服 务,她是存储系统中的核心组件
(2)控制框部件模块
①控制器,Ctrl:存储系统中承载业务处理的核心模块
②BBU模块:能够在系统外部供电失效的情况下, 提供备用电源支持,以保证存储阵列中业务数据 的安全性
③电源模块:电源模块为交流电源模块,可以支持 控制框在最大功耗模式下正常运行–笔记本电源 模式,接入电源后,最大功率模式
④管理模块:主要提供管理接口,包括管理网口、 网串、维护网口
⑤接口模块:IM,承载业务或管理接口的现状可更 换模块
(3)控制框组件
核心部件,负责处理存储业 务,接收用户的管理配置、保存控制信息,接入 硬盘和保存关键信息
控制器上CPU和cache共同实现对来自主机系统I/ O请求操作和对磁盘阵列RAID的管理
每个控制器可内置多个硬盘,用于保护存储系统 的数据和系统掉电后cache中的数据
①FE(Front end):负责服务器与存储设备之间进行 业务通信,对主机I/O进行处理
②BE(Back end):负责连接控制框和硬盘框,是数 据从硬盘读写的通道
③缓存(cache):硬盘控制器上的一块内存芯 片,具有极快的存储速度,是硬盘内部存储与外 界接口之间的缓冲器
④保险箱盘:用于保存存储数据系统,系统信息配 置和日志,系统停电后cache中的数据
1.2.2 硬盘框
(1)硬盘框形态
硬盘框采用部件模块化设计,主要由系统插框、级联模块、电源模块和硬盘模块组成
(2)硬盘框正视图
(3)硬盘框后视图
1.2.3 级联模块
1、级联模块
2、设备线缆
1.2.4 硬盘
1、机械硬盘
(1)机械硬盘结构
磁头臂、控制电路、读写磁盘、盘 片、主轴组件、接口
①盘片:盘片被磁性材料覆盖,盘片上的磁性粒子 被极化以表示一个二进制信息单元
②读写磁盘:负责向盘片读取和写入数据。通过磁 头改变盘片表面上级细微的磁性粒子簇的NS极性 加以存储
③磁头臂:带动读写磁头,将磁头移动到指定的位置
④主轴:马达电机个轴承在其下方,,转动盘片, 将盘片上的指定位置移动到读写磁头下
⑤控制电路:控制磁盘的速度、磁头臂的移动、向 磁头下发命令等
(2)机械硬盘工作原理
盘片、磁道、柱面、扇区、磁头
(3)硬盘上的数据组织
①盘面:每一个盘片都有两个盘面,每个盘面都能 存储数据,称为有效盘片
②磁道(track):磁道是在盘片上围绕在主轴周围 的同心环,数据被记录在磁道上
③柱面(cylinder):同一个盘片中所有盘面(包 含上下两个盘面)具有相同编号的磁道形成一个 圆柱,称之为硬盘的柱面
④扇区(setcor):每个磁道被分为更小的单元, 称为扇区,划分扇区的目的是为了使数据存储更 加条理化,扇区是硬盘中可以单独寻址的最小存 储单元
(4)硬盘容量和缓存
硬盘可以分为单碟盘和多碟盘,前者在盘体内只 有一张盘片,后者则是有多张,但是硬盘每时每 刻只允许一个磁头读写数据,因此。磁头和盘片 再多,也不能提高硬盘的吞吐量和IO性能,只能 用来提高容量
①硬盘容量 硬盘容量=柱面数磁头数扇区数*扇区大小,单 位为MB或GB,影响硬盘容量的因素有单碟容量 和碟片数量
②缓存 由于CPU和硬盘之间存在巨大的速度差 异,为解决硬盘在读取数据时CPU的等待问题, 在硬盘上适当的高速缓存,以解决二者之间速度 不匹配的问题,硬盘缓存与CPU的高速缓存作用 一样,是为了提高硬盘的读写速度
(5)影响硬盘性能的因素
①转速:是影响硬盘连续IO是吞吐量性能的首要因素
②寻道速度:是影响硬盘随机IO性能的首要因素
③单碟容量:是影响硬盘性能的一个间接因素
④接口速度:是影响硬盘性能的一个最不重要的因素
(6)平均访问时间
①平均寻道时间(Average Seek Time):指硬盘的 磁头 从初始位置移动到盘面指定磁道所需要的时 间,是影响硬盘内部数据传输的重要参数
②平均等待时间(Average Latency Time):指磁头已 处于要访问的磁道,等待需要访问的扇区旋转至 磁头下方的时间
(7)数据传输速率
①内部传输速率(Internal Transfer Rate):内部 传输速率也称为持续传输率(Sustained Transfer Rate),指磁头读写磁盘时的最高速率
②外部传输速率:(External Transfer Rate):举例 USB2.0和USB3.0
(8)硬盘的IOPS和传输带宽
1、IOPS
①IOPS:IOPS (Input/Output Per Second)指每秒的输入 输出量(或读写次数),是衡量硬盘性能的主要指 标之一。
②IOPS的计算:IOPS的计算:由寻道时间、旋转延迟和数据传输时 间三部分组成。
2、传输带宽(Throughput吞吐量)
指单位时间内成功传输的数据数量,即传输数据 流的速度。例如写入10000个1KB的文件需要 10s,则此时传输带宽只达到1MB/s;若写入一个 10MB的文件用了0.1s,则此时的传输带宽为 100MB/s
(9)并行传输和串行传输
①并行传输:与对方连接多条线时,每条线上传输 一个字符
并行传输传输效率高,但是传输距离不长,传输 频率不高
在长距离上,使用多条线路要比使用单一线路要昂贵
长距离传输要求较粗的导线,以便降低信号的衰 减,但把他们(传输信号)捆到一条单独电缆中相 当困难
长距离传输时,受导线电阻或其他因素影响,每 条线上的数据到达对方的速度不同,从而导致接 收方必须等8条线上的所有数字都到达时,才能发 起下一轮的传输
传输频率太高时,电路告诉震荡的时候,数据线 之间会产生很大的干扰,因此并行传输的时候频 率不能太高。
②串行传输:只用一条线来连接对方,依次在这条 线上发送8个数字,需要发送8次才能将数字全部 发送到对方
串行传输在效率上显然比并行传输低得多,但是 可以通过提高传输频率来提升串行传输的传输速 度,总体来说串行传输反而比并行传输的总体速 率更快
串行传输用于远距离传输,目前如PCI接口都转向 串行传输方式。PCIE接口就是典型的串行传输方 式,其单条线路的传输方式高达2.5GB/S
2、固态硬盘
(1)概述:相对于HDD而言,固态硬盘SSD在性能、可靠性、能耗、轻便性方面都有着绝对的优势,目前已经在各领域得到广泛应用
SSD特点:
□使用flash技术存储信息,数据传输速度比HDD快
□ 内部没有机械结构因此耗电量更小、散热小、噪音小
□SSD盘使用寿命受擦写次数影响
(2)SSD架构
SSD主要由控制单元和存储单元元(当前主要是Flash闪存颗粒)组成
①控制单元:SSD控制器、主机技接口、DRAM等;
②存储单元:NAND FLASH颗粒
(3)NAND Flash
①NAND Flash内部存储单元组成包括:
LUN、Plane、Block、Page、Cell
②对NAND Flash的读写数据的操作主要涉及
擦除(Erase)、编程(Program)和读(Read)。
③NAND Flsh是非易失性介质,在写入新数据
之前必须保证Block被擦除过。对Block擦除一次后再写入一次称为一次P/E Cycle。
(4)SLC、MLC、TLC 、QLC
①SLC
可擦写次数和可靠性最好的,一般5w-10w间;
但是存储容量相对较少;13、成本也最高。
②MLC
可擦写次数较少,一般3K左右;
2bit数据读写使得MLC速度比 SLC慢;
存储容量较大;
价格比较便宜。
③TLC
数据密度更大,可擦写次数只有几百次到上千次;
可靠性和性能很低;
具有成本优势,一般用在个人消费产品中,不能满足企业产品要求。
④QLC-4bit QLC
容量增加了33%;
与TLC相比较,写入性能、P/E寿命再次减少。
(5)闪存颗粒数据关系
(6)地址映射管理
(7)FTL闪存转换层
(8)SSD数据写入过程
①以8通道为例,分析H偶是同志们写SSD
②当整个SSD写满后,从用户角度来看,如果想写新的数据,必须删除一些数据,腾出空间再写。用户在删除和写入数据的过程中,会导致一些block里面的数据变无效或者变老
(9)SSD数据读取过程
(10)SSD性能优势
(11)SSD在存储中的应用
①A级应用:以高并发随机读写为主,如数据库应用;
②B级应用:顺序读写的大容量文件、图片、流媒体等;
③C级应用:已备份数据为主,或极少使用的数据。
1.2.5 接口模块
(1)GE接口模块
(2)SAS级联模块和RDMA接口模块
(3)SmartlO接口模块
(4)PCle接口模块和56GB IB接口模块
(5)FC接口和FCoF接口模块
总结
二、虚拟化与网络技术存储
2.1 虚拟化技术
如图所示,我们可以将一般的计算模型抽象成为一定的物理资源和运行于之上的计算元件,它们之间通过定义的物理资源接口进行交互。
虚拟化是一种方法,本质上讲是指从逻辑角度而不是物理角度来对资源进行配置,是从单一的逻辑角度来看待不同的物理资源的方法。虚拟化是一种逻辑角度出发的资源配置技术,是物理实际的逻辑抽象。
2.1.1 虚拟化技术分类
(1)CPU的虚拟化 CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能。
(2)服务器虚拟化 服务器虚拟化能够通过区分资源的优先次序,并随时随地将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。
(3)存储虚拟化 虚拟存储设备需要通过大规模的raid子系统和多个I/O通道连接到服务器上,智能控制器提供LUN访问控制、缓存和其他如数据复制等管理功能。
(4)网络虚拟化 网络虚拟化整合后的设备组成了一个逻辑单元,在网络中表现为一个网元节点,管理简单化、配置简单化、可跨设备链路聚合,极大简化网络架构,同时进一步增强冗余可靠性。
(5)应用虚拟化 应用虚拟化通常包括两层含义,一是应用软件的虚拟化,一是桌面的虚拟化。
2.1.2 Xen虚拟化技术简介
2.1.3 Xen虚拟化技术的优缺点
(1)Xen虚拟化技术的优点:
①Xen构建于开源的虚拟机管理程序上,结合使用半虚拟化和硬件协助的虚拟化。操作系统与虚拟化平台之间的这种协作支持开发一个较简单的虚拟机管理程序来提供高度优化的性能。
② Xen提供了复杂的工作负载均衡功能,可捕获CPU、内存、磁盘I/O和网络I/O数据,它提供了两种优化模式:一种针对性能,另一种针对密度。
③Xen利用一种名为Citrix Storage Link 的独特的存储集成功能。使用Citrix Storage Link,系统管理员可直接利用来自HP、Dell Equal Logic、NetApp、EMC等公司的存储产品。
④Xen包含多核处理器支持、实时迁移、物理服务器到虚拟机转换(P2V)和虚拟到虚拟转换(V2V)工具。集中化的多服务器管理、实时性能监控,以及Windows和Linux的快速性能。
(2)Xen虚拟化技术的缺点
①Xen会占用相对较大的空间,且依赖于0号虚拟机中的Linux操作系统。
②Xen依靠第三方解决方案来管理硬件设备驱动程序、存储、备份和恢复,以及容错
任何具有高I/O速率的操作或任何会吞噬资源的操作都会使Xen陷入困境,使其他虚拟机缺乏资源。
③Xen依靠第三方解决方案来管理硬件设备驱动程序、存储、备份和恢复,以及容错
任何具有高I/O速率的操作或任何会吞噬资源的操作都会使Xen陷入困境,使其他虚拟机缺乏资源。
④Xen依靠第三方解决方案来管理硬件设备驱动程序、存储、备份和恢复,以及容错
任何具有高I/O速率的操作或任何会吞噬资源的操作都会使Xen陷入困境,使其他虚拟机缺乏资源。
2.1.4 KVM虚拟化技术简介
2.1.5 KVM虚拟化技术的优势
(1)开源 KVM 一个开源项目,这就决定了KVM一直是开放的姿态,许多虚拟化的新技术都是首先在KVM上应用,再到其他虚拟化引擎上推广
(2)性能 KVM吸引许多人使用的一个动因就是性能,在同样的硬件条件下,能提供更好的虚拟机性能,主要是因为KVM架构简单,代码只有2万行,一开始就支持硬件虚拟化,这些技术特点保证了KVM的性能。
(3)免费 KVM因为是开源项目,绝大部分KVM的解决方案都是免费方案,随着KVM的发展,KVM虚拟机越来越稳定,兼容性也越来越好,因而也就得到越来越多的应用。
(4)技术支持 免费并不意味着KVM没有技术支持。在KVM的开源社区,数量巨大的KVM技术支持者都可以提供KVM技术支持。另外,如果需要商业级支持,也可以购买红帽公司的服务。
2.1.6 红帽RHEV虚拟化系统简介
2.1.7 RHEV虚拟化技术的优缺点
(1)Xen虚拟化技术的优点
①性能和可扩展性:为实现企业级的虚拟化应用程序,如Oracle、SAP和Microsoft Exchange,为其提供领先的性能和可扩展性。
②安全性:业界领先的安全性,在安全增强型红帽企业Linux内核基础上构建。
③企业功能:企业虚拟化管理功能,包括实时迁移、高可用性、负载均衡、节能等
④灵活性:通过消除桌面操作系统和基础硬件之间的依赖性,实现业务灵活性和连续性。
⑤成本优势:与其他解决方案相比较,凭借红帽软件订阅模式的强大功能,能够以更低的购置和总拥有成本获得相同或更好的功能集,从而获得收益。
(2)Xen虚拟化技术的缺点
①技术不成熟:KVM的出现不过三四年时间,在可用资源、平台支持、管理工具、实施经验方面当然不能与出现8年之久的Xen相比。
②需要windows支持:KVM3.0之前的RHEV-M管理程序需要Windows支持,这是KVM在部署过程中最大的障碍,RedHat公司已经意识到这个问题的严重性,从KVM3.0开始,开发出基于Linux的RHEV-M,取消了其只能运行于Windows服务器上的尴尬,这一改动得到大量Linux用户的支持。
③管理的物理服务器数量少,每台M端只能管理500台以内的H端服务器。
2.1.8 其他虚拟化简介
(1)VMware
VMware公司创办于1998年,从公司的名称就可以看出,这是一家专注于提供虚拟化解决方案的公司。VMware公司很早就预见到了虚拟化在未来数据中心中的核心地位,有针对性的开发虚拟化软件,从而抓住了21世纪初虚拟化兴起的大潮,成为了虚拟化业界的标杆。下面是VMware主要产品的简单介绍。
①VMware Workstation :VMware Workstation是VMware公司销售的运行于台式机和工作站上的虚拟化软件,也是VMware公司第一个面市的产品(1999年5月)。该产品最早采用了VMware在业界知名的二进制翻译技术,在x86 CPU硬件虚拟化技术还未出现之前,为客户提供了纯粹的基于软件的全虚拟化解决方案
②VMware ESX Serve :ESX服务器(一种能直接在硬件上运行的企业级的虚拟平台),虚拟的SMP,它能让一个虚拟机同时使用四个物理处理器,和VMFS一样,它能使多个ESX服务器分享块存储器
(2)Virtual Box
Oracle VirtualBox是由德国InnoTek软件公司出品的虚拟机软件,现在由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部分。它提供使用者在32位或64位的Windows、Solaris及Linux操作系统上虚拟其他X86的操作系统。使用者可以在VirtualBox上安装并执行Solaris、Windows、DOS、Linux、OS/2 Warp、OpenBSD及FreeBSD等操作系统作为客户端操作系统。最新的VirtualBox还支持运行Android4.0系统。
(3)Hyper-V
Hyper-V是微软提出的一种系统管理程序虚拟化技术。Hyper-V设计的目的是为广泛的用户提供更为熟悉及成本效益更高的虚拟化基础设施软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。
Hyper-V的设计借鉴了Xen,采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为ring-1(而Intel也将其称为root mode),而虚拟机的操作系统内核和驱动运行在ring0,应用程序运行在ring3。
2.2 Qemu-KVM
2.2.1 KVM原理简介
KVM模块是KVM虚拟机的核心部分。其主要功能是初始化CPU硬件,打开虚拟化模式,然后将虚拟客户机运行在虚拟机模式下,并对虚拟客户机的运行提供一定的支持。
KVM模块加载之初,只存在/dev/kvm文件,而针对该文件的最重要的IOCTL调用就是“创建虚拟机”。在这里,“创建虚拟机”可以理解成KVM为了某个特定的虚拟客户机(用户空间程序创建并初始化)创建对应的内核数据结构。
处理器对设备的访问主要是通过IO指令和MMIO,其中IO指令会被处理器直接截获,MMIO会通过配置内存虚拟化来捕捉。但是,外设的模拟一般并不由KVM模块负责。一般来说,只有对性能要求比较高的虚拟设备才会由KVM内核模块来直接负责,比如虚拟终端控制器和虚拟时钟,这样可以大量减少处理器的模式切换的开销。
2.2.2 Qemu原理介绍
1、Qemu模块
QEMU本身并不是KVM的一部分,其自身就是一个著名的开源虚拟机软件。与KVM不同,QEMU虚拟机是一个纯软件的实现,所以性能地下。但是,其优点是在支持QEMU本身编译运行的平台上就可以实现虚拟机的功能,甚至虚拟机可以与宿主机并不是同一个架构。作为一个存在已久的虚拟机,QEMU的代码中有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化,以及KVM使用到的虚拟设备模拟(比如网卡、显卡、存储控制器和硬盘等)。
从QEMU和KVM模块之间的关系可以看出,这是典型的开源社区在代码共用和开发项目共用上面的合作。诚然,QEMU可以选择其他的虚拟机或技术来加速,比如Xen或者KQEMU;KVM也可以选择其他的用户空间程序作为虚拟机实现,只要它按照KVM提供的API来设计。但是在现实中,QEMU与KVM两者的结合是最成熟的选择,这对一个新开发和后起的项目(KVM)来说,无疑多了一份未来成功的保障。
2、Qemu的特点
(1)QEMU的两种操作模式:完整的系统仿真和用户模式仿真。
(2)QEMU具有以下特点:
①QEMU可以在没有主机内核驱动程序的情况下运行。
②它适用于多种操作系统(GNU / Linux,* BSD,Mac OS X,Windows)和体系结构。
③它执行FPU的精确软件仿真
(3)QEMU用户模式仿真具有以下功能:
①通用Linux系统调用转换器,包括大部分ioctls。
②使用本机CPU clone的仿真为线程使用Linux调度程序。
③通过将主机信号重新映射到目标信号来实现精确信号处理。
(4)QEMU全系统仿真具有以下特点:
①QEMU使用完整的软件MMU来实现最大的便携性。
②QEMU可以选择使用内核加速器,如kvm。加速器本地执行大部分客户代码,同时继续模拟机器的其余部分。
③可以仿真各种硬件设备,并且在某些情况下,客户机操作系统可以透明地使用主机设备(例如串行和并行端口,USB,驱动器)。主机设备传递可用于与外部物理外围设备(例如网络摄像头,调制解调器或磁带驱动器)交谈。
④对称多处理(SMP)支持。目前,内核加速器需要使用多个主机CPU进行仿真。
2.2.3 KVM和Qemu的关系
·Qemu是一个独立的虚拟化解决方案,通过intel-VT 或AMD SVM实现全虚拟化,安装qemu的系统,可以直接模拟出另一个完全不同的系统环境。QEMU本身可以不依赖于KVM,但是如果有KVM的存在并且硬件(处理器)支持比如Intel VT功能,那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。
·KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel-VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。准确来说,KVM是Linux kernel的一个模块。
2.2.4 Qemu工具介绍
(1)qemu-img
qemu-img是QEMU的磁盘管理工具,在qemu-kvm源码编译后就会默认编译好qemu-img这个二进制文件。qemu-img也是QEMU/KVM使用过程中一个比较重要的工具。下面我们将几条重要的选项讲解一下
①check [-f fmt] filename 对磁盘镜像文件进行一致性检查,查找镜像文件中的错误,目前仅支持对“qcow2”、“qed”、“vdi”格式文件的检查。
②create [-f fmt] [-o options] filename [size] 创建一个格式为fmt大小为size文件名为filename的镜像文件。
③commit [-f fmt] [-t cache] filename 提交filename文件中的更改到后端支持镜像文件(创建时通过backing_file指定的)中去。
④convert [-c] [-p] [-f fmt] [-t cache] [-O output_fmt] [-o options] [-s snapshot_name] [-S sparse_size] filename [filename2 […]] output_filename 将fmt格式的filename镜像文件根据options选项转换为格式为output_fmt的名为output_filename的镜像文件。
⑤info [-f fmt] filename 展示filename镜像文件的信息。
⑥snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename “-l” 选项是查询并列出镜像文件中的所有快照,“-a snapshot”是让镜像文件使用某个快照,“-c snapshot”是创建一个快照,“-d”是删除一个快照。
⑦rebase [-f fmt] [-t cache] [-p] [-u] -b backing_file [-F backing_fmt] filename 改变镜像文件的后端镜像文件,只有qcow2和qed格式支持rebase命令。
⑧resize filename [+ | -]size 改变镜像文件的大小,使其不同于创建之时的大小。
(2)qemu-kvm
此命令用于创建虚拟机,其使用格式为**“qemu-kvm [options] [disk_image]”**,其选项非常多,大致可分为如下几类:
标准选项;
USB选项;
显示选项;
i386平台专用选项;
网络选项;
字符设备选项;
蓝牙相关选项;
Linux系统引导专用选项;
调试/专家模式选项;
PowerPC专用选项;
Sparc32专用选项。
下面我们将讲解几个重要的选项
qemu-kvm的标准选项
该选项主要涉及指定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。
qemu-kvm的显示选项
该选项主要用来配置虚拟机的显示状态。
网络属性相关选项:
该选项用来配置虚拟机的网络信息。
(3)**qemu-ga**
·qga是一个运行在虚拟机内部的普通应用程序(可执行文件名称默认为qemu-ga,服务名称默认为qemu-guest-agent),其目的是实现一种宿主机和虚拟机进行交互的方式,这种方式不依赖于网络,而是依赖于virtio-serial(默认首选方式)或者isa-serial,而QEMU则提供了串口设备的模拟及数据交换的通道,最终呈现出来的是一个串口设备(虚拟机内部)和一个unix socket文件(宿主机上)。
·qga通过读写串口设备与宿主机上的socket通道进行交互,宿主机上可以使用普通的unix socket读写方式对socket文件进行读写,最终实现与qga的交互,交互的协议与qmp(QEMU Monitor Protocol)相同(简单来说就是使用JSON格式进行数据交换),串口设备的速率通常都较低,所以比较适合小数据量的交换。
(4)qemu-io
这是一个执行 Qemu I/O 操作的命令行工具,可以对qemu-img创建的镜像进行I/O测试,其帮助文档为,使用格式为qemu-io [-h] [-V] [-rsnm] [-c cmd] … [file],下面是常用的选项:
①-c, --cmd:执行指令;
②-r, --read-only:设置出口为只读模式;
③-s, --snapshot:使用快照文件进行测试;
④-n, --nocache:禁用主机缓存;
⑤-k, --native-aio:使用内核AIO实现(仅在Linux上);
⑥-t, --cache=MODE:对image使用指定的缓存模式。
(5) qemu-nbd
qemu-nbd在有的系统上叫kvm-nbd,qemu-nbd-xen等。基本上都一样。用qemu-nbd实现mount虚拟硬盘到Host上的功能。
网络块设备: Network Block Device。可以将一个远程主机的磁盘空间,当作一个块设备来使用,就像一块硬盘一样。使用它,可以很方便的将另一台服务器的硬盘空间增加到本地服务器上。
NBD与NFS有所不同,NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式。而NBD提供的是一个块设备,客户端可以把这个块设备格式化成各种类型的分区,更便于用户的使用。
2.2.5 Qemu支持的磁盘格式介绍
qemu-nbd
qemu-img支持非常多种的文件格式,我们可以通过“qemu-img --help”查看帮助文档得到,它支持二十多种格式:vvfat、vpc、vmdk、vhdx、vdi、ssh、sheepdog、rbd、raw、host_cdrom、host_floppy、host_device、file qed、qcow2、qcow、parallels、nbd、iscsi、gluster、 dmg、tftp、ftps、ftp、https、http、cloop、bochs、blkverify、blkdebug。
下面对其中几种常用的文件格式做简单的介绍。
①raw raw格式是简单的二进制镜像文件,一次性会把分配的磁盘空间占用。
②host_device 在需要将镜像转化到不支持空洞的磁盘设备时需要用这种格式来代替raw格式。
③qcow2 qcow2是QEMU目前推荐的镜像格式,它是功能最多的格式。
④qcow 较旧的QEMU镜像格式,现在已经很少使用了,一般用于兼容比较老版本的QEMU。它支持backing_file(后端镜像)和encryption(加密)两个选项。
⑤cow copy-on-write format,写时复制格式。曾经qemu的写时拷贝的镜像格式,目前由于历史遗留原因不支持窗口模式,后来被qcow格式所取代。
⑥vdi 兼容Oracle(Sun)VirtualBox1.1的镜像文件格式(Virtual Disk Image)。
⑦vmdk VMDK(VMWare Virtual Machine Disk Format)是虚拟机VMware创建的虚拟硬盘格式,文件存在于VMware文件系统中,被称为VMFS(虚拟机文件系统)。
⑧vpc 兼容Microsoft的Virtual PC的镜像文件格式(Virtual Hard Disk format)。
⑨sheepdog Sheepdog项目是由日本的NTT实验室发起的,为QEMU/KVM做的一个开源的分布式存储系统,为KVM虚拟化提供块存储。
⑩cloop 压缩的loop格式,主要用于可直接引导优盘或者光盘的一种镜像格式。
总结
本章主要介绍了常见的虚拟化技术分类,包括CPU虚拟化、服务器虚拟化、存储虚拟化、网络虚拟化及应用虚拟化,体现虚拟化技术对云计算的重要性。
了解KVM技术的原理;
了解Qemu技术的原理;
了解KVM和Qemu的关系;
了解常用的Qemu工具及其支持的磁盘类型;