网络存储其中大作业

目录

1.HCIA 存储技术趋势与智能存储组件

(1)存储技术趋势

 1.数据与信息

1.1   什么是信息

1.2   数据与信息的关系

1.3   信息生命周期管理

2.数据存储

2.1   什么是数据存储?

2.2    数据存储系统

2.3    存储的物理结构

2.4   数据存储分类

2.5    数据管理技术的演变

2.6   数据存储的应用

3.存储技术的发展

4.存储架构的发展

5.存储介质的发展

 5.1    DNA存储

5.2   原子存储

5.3   量子存储

6.存储产品的发展

7.接口协议的发展

(2)智能存储组件

 1. 控制框:包含(控制器,保险箱,BBU模块)   

1.1.1   存储产品形态

1.1.2   控制框形态 

1.1.3   控制框正视图详解

1.1.4   控制框后视图详解

1.2   控制器

1.2.1   电源模块 

1.2.2   BBU模块和风扇模块

1.2.3   保险箱盘

 2. 硬盘框

2.1   硬盘框形态 

2.2    硬盘框正视图

2.3    硬盘框后视图

3.1.1    CE交换机

3.1.2   FC交换机

3.2    设备线缆

4.1.1   硬盘类型

4.1.2   机械硬盘结构

4.1.3   机械硬盘工作原理

4.1.4   硬盘上的数据组织

 4.1.5   硬盘容量和缓存

4.1.6   影响硬盘性能的因素

 4.1.7   平均访问时间

4.1.8   数据传输速率

 4.1.9   硬盘的IOPS和传输带宽

4.1.10   并行传输和串行传输

4.1.11   硬盘接口技术

4.1.12   IDE硬盘接口

4.1.13   SATA硬盘接口

4.1.14   SCSI硬盘接口

4.1.15   SAS硬盘接口

4.1.16   FC硬盘接口

4.2   固态硬盘

4.2.1   固态硬盘概述

4.2.2   SSD架构

4.2.3   NAND Flash

 4.2.4   SLC、MLC、TLC和QLC

 4.2.5     闪存颗粒数据关系

4.2.6   地址映射管理

 4.2.7   FTL闪存转换层

4.2.8   SSD数据写入过程 (1)

4.2.9   SSD数据写入过程 (2)

4.2.10   SSD数据读取过程​

4.2.11   SSD性能优势

4.2.12   SSD在存储中的应用

5.1   GE接口模块

5.1.2   SAS级联模块和RDMA接口模块

5.1.3   SmartIO接口模块

5.1.4   PCIe接口模块和56Gb IB接口模块

 5.1.5   FC接口和FCoE接口模块

2. 虚拟化与网络存储技术虚拟化技术  Qemu-kvm

(1)虚拟化技术

1.1  虚拟化技术简介

1.2  虚拟化技术的分类

1.3XEN虚拟化技术的优缺点

1.4  KVM虚拟化技术

1.5  红帽RHEV技术功能特性及优缺点

1.6  虚拟化技术的实现方法

(2)Qemu-kvm

2.1  KVM原理简介

2.1.1   KVM工作流程

2.1.2   KVM架构

2.1.3   KVM模块

2.2    Qemu原理介绍

2.2.1   Qemu架构

2.2.2    Qemu模块

2.3    Qemu的三种运行模式

 2.3.1   Qemu的特点

2.3.2   KVM和Qemu的关系

2.4    Qemu工具介绍

2.4.1qemu-img

2.4.2   qemu-kvm

2.4.3   qemu-ga

2.4.4   qemu-io

2.4.5   qemu-nbd

2.5   Qemu支持的磁盘格式介绍

2.5.1   qemu-nbd

2.5.2   几种常用的文件格式


二:正文

1.HCIA 存储技术趋势与智能存储组件

(1)存储技术趋势

 1.数据与信息

数据和信息之间是相互联系的。数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就成为信息;而信息需要经过数字化转变成数据才能存储和传输。接收者对信息识别后表示的符号称为数据。数据的作用是反映信息内容并为接收者识别。声音、符号、图像、数字就成为人类传播信息的主要数据形式。因此,信息是数据的含义,数据是信息的载体

1.1   什么是信息

信息是已经被处理、具有逻辑关系的数据,是对数据的解释。
信息是经过处理的数据,其中包括具有上下文,相关性和目的的数据。

 

1.2   数据与信息的关系

数据经过加工处理之后,能够成为信息;而信息需要经过数字化转变成数据才能存储和传输。

 

1.3   信息生命周期管理

ILM(Information life cycle managment,信息生命周期管理)是指从信息产生和初始储存阶段到最后过时被删除时的一套综合管理方法。

2.数据存储

数据存储是数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。数据存储要命名,这种命名要反映信息特征的组成含义。数据流反映了系统中流动的数据,表现出动态数据的特征;数据存储反映系统中静止的数据,表现出静态数据的特征。

2.1   什么是数据存储?

 

2.2    数据存储系统

 

2.3    存储的物理结构

 

2.4   数据存储分类

 

2.5    数据管理技术的演变

 

2.6   数据存储的应用

容量越来越大,体积越开越小

 
 

3.存储技术的发展

甲骨文、造纸术、书本、盘式磁带、软盘、硬盘、RAID。

4.存储架构的发展

5.存储介质的发展

 5.1    DNA存储

DNA作为存储介质的优势:体积小;密度大;稳定性强。
现阶段的瓶颈与局限:
DNA分子合成成本高;读取和搜索数据的效率不高。

5.2   原子存储

因原子足够小,原子存储器的单位体积容量也会比现有介质更大。
随着科技的发展,有序排列原子成为了现实。
现阶段的瓶颈与局限:
原子存储器对运行环境要求严苛

5.3   量子存储

量子存储器难以同时满足的条件:
高存储效率;
低噪音;
长寿命;
室温下使用。
 

 

 

6.存储产品的发展

7.接口协议的发展

接口协议指的是需要进行信息交换的接口间需要遵从的通信方式和要求。
硬盘接口是硬盘与主机系统间的连接部件。

 

(2)智能存储组件

 1. 控制框:包含(控制器,保险箱,BBU模块   

1.1.1   存储产品形态

2U盘控一体 ,4U盘控分离, 整机柜

1.1.2   控制框形态 

控制框采用部件模块化设计,主要由系统插框、控制器(内含风扇模块)、BBU模

块、电源模块、管理模块和接口模块等组成

1.1.3   控制框正视图详解

 

1.1.4   控制框后视图详解

 

1.2   控制器

控制器是设备中的核心部件,主要负责处理存储业务、接收用户的配置管理命令

保存配置信息、接入硬盘和保存关键信息到保险箱硬盘

1.2.1   电源模块 

电源模块为交流电源模块,可以支持控制框在最大功耗模式下正常运行

1.2.2   BBU模块和风扇模块

1.2.3   保险箱盘

 2. 硬盘框

2.1   硬盘框形态 

硬盘框采用部件模块化设计,主要由系统插框、级联模块、电源模块和硬盘模块等

组成

2.2    硬盘框正视图

2.3    硬盘框后视图

3. 级联模块

 

3.1.1    CE交换机

3.1.2   FC交换机

 

3.2    设备线缆

 

4. 硬盘

4.1   机械硬盘

4.1.1   硬盘类型

4.1.2   机械硬盘结构

机械硬盘的结构大致包括:盘片、磁头臂、读/写磁头、主轴、硬盘接口和控制电路等。

4.1.3   机械硬盘工作原理

4.1.4   硬盘上的数据组织

 

 4.1.5   硬盘容量和缓存

硬盘容量 =柱面数*磁头数*扇区数*扇区大小,单位为MBGB,影响硬盘容量的因素有碟容量碟片数量

缓存(Cache) : 由于CPU和硬盘之间存在巨大的速度差异,为解决硬盘在读写数据时CPU的等待问题,在 硬盘上设置适当的高速缓存,以解决二者之间速度不匹配的问题,硬盘缓存与CPU上的高 速缓存作用一样,是为了提高硬盘的读写速度。

4.1.6   影响硬盘性能的因素

 4.1.7   平均访问时间

平均访问时间由以下两项构成

 平均寻道时间(Average Seek Time

平均等待时间( Average Latency Time

4.1.8   数据传输速率

数据传输速率( Data Transfer Rate
内部传输速率( Internal Transfer Rate
外部传输速率( External Transfer Rate / 接口传输率

 4.1.9   硬盘的IOPS和传输带宽

 IOPS :指每秒的输入输出量(或读写次数),是衡量硬盘性能的主要指标之一。

 IOPS的计算:由寻道时间、旋转延迟和数据传输时间三部分组成。

 传输带宽(Throughput吞吐量)

指单位时间内成功传输的数据数量,即传输数据流的速度。例如写入 10000 1KB 的文件
需要 10s ,则此时传输带宽只达到 1MB/s ;若写入一个 10MB 的文件用了 0.1s ,则此时的传
输带宽为 100MB/s

4.1.10   并行传输和串行传输

(现在有8个数字从18,需要传送给对方。传输方式如下: )

4.1.11   硬盘接口技术

不管硬盘内部多么复杂,它必定要给使用者一个简单的接口,用来对其访问读取数
据。硬盘向用户提供的物理接口包括如下几种:

 

4.1.12   IDE硬盘接口

IDE 接口,也称为 PATA 接口( Parallel ATA ,并行传输 ATA
ATA Advanced Technology Attachment 高级技术附加装置
ATA 硬盘也经常称为 IDE Integrated Drive Electronics 硬盘
ATA 接口为并行 ATA 技术

 

4.1.13   SATA硬盘接口

SATA Serial ATA ,串行 ATA
SATA 采用串行方式进行数据传输,接口速率比 IDE 接口高。
SATA 硬盘采用点对点连接方式,支持热插拔,即插即用

4.1.14   SCSI硬盘接口

SCSI (Small Computer System Interface ) 小型计算机系统接口。

4.1.15   SAS硬盘接口

SAS(Serial Attached SCSI) 串行连接 SCSI
SAS 是一种点对点、全双工、双端口的接口
SAS 向下兼容 SATA
速率每路 600M
SAS 具有高性能、高可靠性、强大的扩展性能

4.1.16   FC硬盘接口

FC 硬盘采用 FC-AL( Fiber Channel Arbitrated Loop )光纤通道仲裁环
FC-AL 是一种基于 SCSI 协议设计的双端口的串行存储接口
FC-AL 支持全双工工作方式
FC 为上层协议( SCSI,IP 等)提供一个通用硬件传输平台, FC 是一种高速度、高可靠、低
延迟、高吞吐量的串行数据传输接口。

4.2   固态硬盘

4.2.1   固态硬盘概述

相对于 HDD 而言,固态硬盘 SSD 在性能、可靠性、能耗、轻便性方面有着绝对的优
势,目前已经在各领域得到广泛应用。
SSD 特点:
使用 flash 技术存储信息,数据传输速度比 HDD
内部没有机械结构因此耗电量更小、散热小、噪音小
SSD 盘使用寿命受擦写次数影响

4.2.2   SSD架构

SSD 主要由控制单元和存储单元(当前主要是 Flash 闪存颗粒)组成。
控制单元: SSD 控制器、主机接口、 DRAM 等;
存储单元: NAND FLASH 颗粒。

4.2.3   NAND Flash

NAND Flash 内部存储单元组成包括:
LUN Plane Block Page Cell
NAND Flash 的读写数据的操作主要涉及
擦除( Erase )、编程( Program )和读
Read )。
NAND Flsh 是非易失性介质,在写入新数据
之前必须保证 Block 被擦除过。对 Block 擦除
一次后再写入一次称为一次 P/E Cycle

 

 4.2.4   SLCMLCTLCQLC

 4.2.5     闪存颗粒数据关系

4.2.6   地址映射管理

 4.2.7   FTL闪存转换层

4.2.8   SSD数据写入过程 (1)

8 通道为例,分析 Host 怎么写 SSD

4.2.9   SSD数据写入过程 (2)

当整个 SSD 写满后,从用户角度来看,如果想写入新的数据,必须删除一些数据,腾出空间再写。用户
在删除和写入数据的过程中,会导致一些 Block 里面的数据变无效或者变老。


4.2.10   SSD数据读取过程

4.2.11   SSD性能优势

4.2.12   SSD在存储中的应用

5. 接口模块

5.1   GE接口模块

 

5.1.2   SAS级联模块和RDMA接口模块

5.1.3   SmartIO接口模块

5.1.4   PCIe接口模块和56Gb IB接口模块

 

 5.1.5   FC接口和FCoE接口模块

2. 虚拟化与网络存储技术

(1)虚拟化技术

1.1  虚拟化技术简介

我们可以将一般的计算模型抽象成为一定的物理资源和运行于之上的计算元件,它们之间通过定义的物理资源接口进行交互。 虚拟化是一种方法,本质上讲是指从逻辑角度而不是物理角度来对资源进行配置,是从单一的逻辑角度来看待不同的物理资源的方法。虚拟化是一种逻辑角度出发的资源配置技术,是物理实际的逻辑抽象。

1.2  虚拟化技术的分类

1.CPU虚拟化:

         CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能

2.服务器虚拟化:

          服务器虚拟化能够通过区分资源的优先次序,并随时随地将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源

3.存储虚拟化:

          虚拟存储设备需要通过大规模的raid子系统和多个I/O通道连接到服务器上,智能控制器提供LUN访问控制、缓存和其他如数据复制等管理功能

4.网络虚拟化:

          网络虚拟化整合后的设备组成了一个逻辑单元,在网络中表现为一个网元节点,管理简单化、配置简单化、可跨设备链路聚合,极大简化网络架构,同时进一步增强冗余可靠性。

5.应用虚拟化:

          应用虚拟化通常包括两层含义,一是应用软件的虚拟化,一是桌面的虚拟化。

1.3XEN虚拟化技术的优缺点

优点:

①: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的快速性能。

缺点:

① :Xen会占用相对较大的空间,且依赖于0号虚拟机中的Linux操作系统

②:Xen依靠第三方解决方案来管理硬件设备驱动程序、存储、备份和恢复,以及容错 任何具有高I/O速率的操作或任何会吞噬资源的操作都会使Xen陷入困境,使其他虚拟机缺乏资源。

③:Xen缺少802.1Q 虚拟局域网(VLAN)中继,出于安全考虑,它没有提供目录服务集成、基于角色的访问控制、安全日志记录和审计或管理操作

④: Xen目前最大的困难在于Linux内核社区的抵制,导致XEN相关的内核改动一直不能顺利进入内核源代码,从而无法及时得到内核最新开发成果的支持

1.4  KVM虚拟化技术

功能特性:  ①内存管理 ②存储③设备驱动程序④Linux的性能和可伸缩性

优点: 

①:开源:KVM 一个开源项目,这就决定了KVM一直是开放的姿态,许多虚拟化的新技术都是首先在KVM上应用,再到其他虚拟化引擎上推广。

②:性能:KVM吸引许多人使用的一个动因就是性能,在同样的硬件条件下,能提供更好的虚拟机性能,主要是因为KVM架构简单,代码只有2万行,一开始就支持硬件虚拟化,这些技术特点保证了KVM的性能。

③免费: KVM因为是开源项目,绝大部分KVM的解决方案都是免费方案,随着KVM的发展,KVM虚拟机越来越稳定,兼容性也越来越好,因而也就得到越来越多的应用。

④技术支持: 免费并不意味着KVM没有技术支持。在KVM的开源社区,数量巨大的KVM技术支持者都可以提供KVM技术支持。另外,如果需要商业级支持,也可以购买红帽公司的服务

缺点:KVM一直没有成熟的工具可用于管理KVM服务器和客户机

1.5  红帽RHEV技术功能特性及优缺点

功能特性:

①在线迁移(在200ms之内完成VM到物理内存的迁移,但迁移过程中不能有过多的I/O操作)

②高用性③系统计划调度(自动迁移·,设定完成CPU负载阀值)④电源管理⑤模板管理⑥快照(3.1支持1张快照,3.2以上支持多张快照)

优点:  

(1)性能和可扩展性:为实现企业级的虚拟化应用程序,如Oracle、SAP和Microsoft Exchange,为其提供领先的性能和可扩展性。

(2)安全性:  业界领先的安全性,在安全增强型红帽企业Linux内核基础上构建。

(3)企业功能: 业虚拟化管理功能,包括实时迁移、高可用性、负载均衡、节能等。

(4)灵活性:  通过消除桌面操作系统和基础硬件之间的依赖性,实现业务灵活性和连续性。(4)灵活性:通过消除桌面操作系统和基础硬件之间的依赖性,实现业务灵活性和连续性。

缺点:  

(1)技术不成熟:KVM的出现不过三四年时间,在可用资源、平台支持、管理工具、实施经验方面当然不能与出现8年之久的Xen相比。

(2)需要Windows支持;  KVM3.0之前的RHEV-M管理程序需要Windows支持,这是KVM在部署过程中最大的障碍,RedHat公司已经意识到这个问题的严重性,从KVM3.0开始,开发出基于Linux的RHEV-M,取消了其只能运行于Windows服务器上的尴尬,这一改动得到大量Linux用户的支持。

(3)管理的物理服务器数量少,每台M端只能管理500台以内的H端服务器。

1.6  虚拟化技术的实现方法

①:VMware
VMware公司创办于1998年,从公司的名称就可以看出,这是一家专注于提供虚拟化解决方案的公司。VMware公司很早就预见到了虚拟化在未来数据中心中的核心地位,有针对性的开发虚拟化软件,从而抓住了21世纪初虚拟化兴起的大潮,成为了虚拟化业界的标杆。

 ②:VMware Workstation

         VMware Workstation是VMware公司销售的运行于台式机和工作站上的虚拟化软件,也是VMware公司第一个面市的产品(1999年5月)。该产品最早采用了VMware在业界知名的二进制翻译技术,在x86 CPU硬件虚拟化技术还未出现之前,为客户提供了纯粹的基于软件的全虚拟化解决方案。

③:VMware ESX Server

   ESX服务器(一种能直接在硬件上运行的企业级的虚拟平台),虚拟的SMP,它能让一个虚拟机同时使用四个物理处理器,和VMFS一样,它能使多个ESX服务器分享块存储器。

④: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系统。

⑥:Hyper-V
Hyper-V是微软提出的一种系统管理程序虚拟化技术。Hyper-V设计的目的是为广泛的用户提供更为熟悉及成本效益更高的虚拟化基础设施软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。  Hyper-V的设计借鉴了Xen,采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V底层的Hypervisor运行在最高的特权级别下,微软将其称为ring-1(而Intel也将其称为root mode),而虚拟机的操作系统内核和驱动运行在ring0,应用程序运行在ring3。
 

(2)Qemu-kvm

2.1  KVM原理简介

2.1.1   KVM工作流程

 用户模式的qemu利用libkvm通过ioctl进入内核模式,kvm模块为虚拟机创建虚拟内存,虚拟CPU后执行VMLauch指令进入客户模式。加载Guest OS并执行。如果Guest OS 发生外部中断或者影子页表缺页之类的情况,会暂停Guest OS的执行,退出客户模式,执行异常处理,之后重新进入客户模式,执行客户代码。如果发生I/O事件或者信号队列中有信号到达,就会进入用户模式处理。如下图所示

2.1.2   KVM架构

如下图所示,左侧部分是一个标准的Linux操作系统,可以是RHEL、Fedora、Ubuntu等。KVM内核模块在运行时按需加载进入内核空间运行。KVM本身不执行任何设备模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个虚拟客户机的地址空间,向它提供模拟的I/O设备,并将它的视频显示映射回宿主机的显示屏。

2.1.3   KVM模块

①:KVM模块是KVM虚拟机的核心部分。其主要功能是初始化CPU硬件,打开虚拟化模式,然后将虚拟客户机运行在虚拟机模式下,并对虚拟客户机的运行提供一定的支持。

  ②:KVM模块加载之初,只存在/dev/kvm文件,而针对该文件的最重要的IOCTL调用就是“创建虚拟机”。在这里,“创建虚拟机”可以理解成KVM为了某个特定的虚拟客户机(用户空间程序创建并初始化)创建对应的内核数据结构。

③:处理器对设备的访问主要是通过IO指令和MMIO,其中IO指令会被处理器直接截获,MMIO会通过配置内存虚拟化来捕捉。但是,外设的模拟一般并不由KVM模块负责。一般来说,只有对性能要求比较高的虚拟设备才会由KVM内核模块来直接负责,比如虚拟终端控制器和虚拟时钟,这样可以大量减少处理器的模式切换的开销。

2.2    Qemu原理介绍

2.2.1   Qemu架构

  Qemu是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,是一个完整的可以运行的软件,非常灵活可移植,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。

 

2.2.2    Qemu模块

①:QEMU本身并不是KVM的一部分,其自身就是一个著名的开源虚拟机软件。与KVM不同,QEMU虚拟机是一个纯软件的实现,所以性能地下。但是,其优点是在支持QEMU本身编译运行的平台上就可以实现虚拟机的功能,甚至虚拟机可以与宿主机并不是同一个架构。作为一个存在已久的虚拟机,QEMU的代码中有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化,以及KVM使用到的虚拟设备模拟(比如网卡、显卡、存储控制器和硬盘等)。

②:从QEMU和KVM模块之间的关系可以看出,这是典型的开源社区在代码共用和开发项目共用上面的合作。诚然,QEMU可以选择其他的虚拟机或技术来加速,比如Xen或者KQEMU;KVM也可以选择其他的用户空间程序作为虚拟机实现,只要它按照KVM提供的API来设计。但是在现实中,QEMU与KVM两者的结合是最成熟的选择,这对一个新开发和后起的项目(KVM)来说,无疑多了一份未来成功的保障。

2.3    Qemu的三种运行模式

①:第一种模式是通过kqemu模块实现内核态的加速。

②:第二种模式是在用户态直接运行QEMU,由QEMU对目标机的 所有 指令进行翻译后执行,相当于全虚拟化。

③:第三种模式则是KVM官方提供的kvm-qemu加速模式。(如下图所示)

 2.3.1   Qemu的特点

①:QEMU的两种操作模式:完整的系统仿真和用户模式仿真

②:QEMU具有以下特点:QEMU可以在没有主机内核驱动程序的情况下运行;它适用于多种操作系统(GNU / Linux,* BSD,Mac OS X,Windows)和体系结构;它执行FPU的精确软件仿真;

③:QEMU用户模式仿真具有以下功能:通用Linux系统调用转换器,包括大部分ioctls;使用本机CPU clone的仿真为线程使用Linux调度程序;通过将主机信号重新映射到目标信号来实现精确信号处理。

④:QEMU全系统仿真具有以下特点:QEMU使用完整的软件MMU来实现最大的便携性;QEMU可以选择使用内核加速器,如kvm。加速器本地执行大部分客户代码,同时继续模拟机器的其余部分;可以仿真各种硬件设备,并且在某些情况下,客户机操作系统可以透明地使用主机设备(例如串行和并行端口,USB,驱动器)。主机设备传递可用于与外部物理外围设备(例如网络摄像头,调制解调器或磁带驱动器)交谈;对称多处理(SMP)支持。目前,内核加速器需要使用多个主机CPU进行仿真。

2.3.2   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.4    Qemu工具介绍

2.4.1qemu-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.4.2   qemu-kvm

①:此命令用于创建虚拟机,其使用格式为“qemu-kvm [options] [disk_image]”,其选项非常多,大致可分为如下几类:

②:标准选项; USB选项; 显示选项; i386平台专用选项; 网络选项; 字符设备选项; 蓝牙相关选项; Linux系统引导专用选项; 调试/专家模式选项; PowerPC专用选项; Sparc32专用选项。

③:重要的选项:qemu-kvm的标准选项     该选项主要涉及指定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。

qemu-kvm的显示选项     该选项主要用来配置虚拟机的显示状态。

网络属性相关选项:         该选项用来配置虚拟机的网络信息。

2.4.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格式进行数据交换),串口设备的速率通常都较低,所以比较适合小数据量的交换

2.4.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使用指定的缓存模式。

2.4.5   qemu-nbd

  qemu-nbd在有的系统上叫kvm-nbd,qemu-nbd-xen等。基本上都一样。用qemu-nbd实现mount虚拟硬盘到Host上的功能。       网络块设备:  Network Block Device。可以将一个远程主机的磁盘空间,当作一个块设备来使用,就像一块硬盘一样。使用它,可以很方便的将另一台服务器的硬盘空间增加到本地服务器上。       NBD与NFS有所不同,NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式。而NBD提供的是一个块设备,客户端可以把这个块设备格式化成各种类型的分区,更便于用户的使用。

2.5   Qemu支持的磁盘格式介绍

2.5.1   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

2.5.2   几种常用的文件格式

①:raw     格式是简单的二进制镜像文件,一次性会把分配的磁盘空间占用

②:host_device     在需要将镜像转化到不支持空洞的磁盘设备时需要用这种格式来代替raw格式

③: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格式,主要用于可直接引导优盘或者光盘的一种镜像格式

总结:存储技术的发展趋势包括:数据与信息,数据存储,存储技术的发展,存储产品的发展趋势。存储技术的发展有包含存储架构的发展,存储介质的发展,接口协议的发展;智能存储组件由控制框,硬盘框,级联模块,硬盘,接口模块,控制框包含控制器,保险箱盘,BBU模块,级联模块包括设备线缆,硬盘由机械硬盘,固态硬盘构成。而虚拟化技术又 虚拟化技术简介,虚拟化技术的分类,XEN虚拟化技术的优缺点,KVM虚拟化技术,红帽RHEV技术功能特性及优缺点虚拟化技术的实现方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值