【大话存储】学习笔记(14章), 虚拟化.md

操作系统对硬件的虚拟化

操作系统:就是为其他程序提供编写和运行环境的程序

由程序来运行程序,而不是程序自己来运行,这是操作系统提供的虚拟化的表现

加电之后,首先运行OS,随时可以载入其他程序执行。执行完以后切换回OS本身。

但是每次还是要等待这个程序执行完毕,才能接着载入下个程序执行。任何中断事件,都会中断正在运行的程序。

程序执行完毕,会将CPU归还给OS。从而继续OS本身的运行。这种操作系统就是单任务操作系统,典型代表就是DOS。

而批处理就是操作系统将多个程序一个一个的排列起来。省去了人为载入的过程。所以批处理操作系统相对单任务来说又进了一步,但是本质仍然是一个程序独占资源。

再后来操作系统针对系统时钟中断开发了中断服务程序,也就是多任务OS中的调度程序

中断来临,CPU根据中断向量表的内容,指向调度程序所在的内存地址入口,执行调度程序的代码。

调度程序将CPU的执行跳转到各个应用程序所在的内存地址入口。

从微观上看,每个应用程序独占CPU,但是时间非常小10ms,从宏观上看就是同时执行多个任务。

多任务操作系统的关键就是有多任务调度程序。

虚拟化的好处

虚拟化的好处是,将下层复杂的逻辑转换为上层简单的逻辑,方便人类读懂。

其实整个计算机技术就是抽象、封装、虚拟、映射的过程。就连CPU也在想办法把功能封装到CPU的逻辑电路里面,从而出现了更多的指令集。1.6GHz的酷睿双核CPU性能比主频3GHz的奔腾4代CPU更高。

计算机存储子系统的虚拟化

存储子系统主要分为:

  • 磁盘
  • 磁盘控制器
  • 存储网络
  • 磁盘阵列
  • 卷管理层
  • 目录虚拟层
  • 文件系统虚拟层

下面将介绍这些子系统如何进行抽象虚拟的。

磁盘控制器的虚拟化

控制器的工作就是根据驱动程序发来的磁盘读写信息,向磁盘发送SCSI指令和数据。

所以磁盘控制器完全可以对驱动程序隐藏下挂的物理磁盘。而虚拟出一个或者多个虚拟磁盘。RAID就是典型代表。控制器将物理磁盘组成RAID Group,然后在RG的基础上虚拟出多个LUN,通告给主机驱动。

存储网络的虚拟化

在交换式SAN中,任何节点都是通过交换设备来进行通信的,如果在交换节点上做些手脚,就可以达到虚拟化的效果。

我们可以在交换机上嵌入SCSI协议感知模块。,SCSI发起设备向目标设备传输的数据,经过交换机,会主动复制对应的帧到另一个节点的LUN上,形成镜像。若一个节点故障,则会将数据重定向到镜像的LUN上。

还可以将某些N节点的LUN合并成,然后动态的从这个池中分出虚拟LUN

磁盘阵列的虚拟化

磁盘阵列本来就是一个小计算机系统,是对存储子系统的抽象虚拟化最佳表现。

何为磁盘阵列,指的是将大量磁盘进行组织管理,抽象虚拟成逻辑磁盘。通过和主机适配器通信,呈现给主机。

盘阵控制器的角色都是不直接参与连接每块磁盘,而是利用后端适配器来管理下挂的磁盘

适配器就是中心控制器驱动的二级磁盘控制器。作为中心CPU的IO适配器,直接控制和管理物理磁盘,然后由中心控制器统一实现RAID、卷管理等功能。

后端适配器与中心控制器CPU之间通过PCIX总线等连接。

中心控制器不但可以实现最基本的RAID功能,还可以实现LUN镜像、快照、远程复制、CDP数据保护、LUN再分配等。

卷管理层

运行在应用主机上的功能模块,对底层的物理磁盘或者LUN搜集再分配。

对盘阵控制器虚拟化之后的LUN再虚拟化

  • 比如进行镜像处理,
  • 或者对其中的多个LUN做成软RAID 。
  • 再或者将所有的LUN合并形成资源池。

然后掰成多个

文件系统

SAN存储解决的是怎么记录的问题,文件系统解决的是怎么组织磁盘的数据

需要在相应的地方做标记,通过一个链表一次一次指引找出完整的数据。

把链表单独做成一个记录,放在固定的位置,可以通过表找出一条数据在磁盘上的完整分布。利用这种思想做出来的文件系统,比如FAT文件系统,把每个完整数据称为文件

文件分配表:FAT , File Allocate Table文件可以在磁盘不连续的存放,由单独数据结构来描述文件在磁盘的分布,

NTFS:给出文件在磁盘上的具体扇区,利用“开始——结束”这样的结构来描述文件的分布情况。

文件系统将磁盘抽象成了文件柜,同一份文件放在柜子的不同抽屉,利用元数据 来记录“文件——对应抽屉” 的分布情况。

描述其他文件分布情况及属性的文件,元文件Metadata

文件系统是对磁盘块的虚拟、抽象、组织和管理。只需要访问文件,就等于访问了扇区。

目录虚拟层

操作系统中有一个虚拟目录结构,在linux中叫VFS。--

虚拟文件系统,也就是说文件系统的目录不是真实的,任何的文件系统可以挂在目录下。成为虚拟目录的子目录,可以增强灵活性。

其次,OS外部设备虚拟成一个虚拟文件,比如卷。/dev/hda

磁盘——控制器——存储网络——总线适配器——卷管理层——文件系统——虚拟目录层和最终应用层

带内虚拟化和带虚拟化

  • 带内 InBand :控制指令和数据包走同一路线,所谓控制指令指的是控制数据流向的数据,如IP路由协议产生的数据包,它也是利用实际数据线路进行传输。
  • 带外 OutBand:控制指令走单独的路线。

带外和带内虚拟化:

  • 带内虚拟化:进行虚拟化的设备直接横在发起者和目标路径之间,也就是串在同一路径上,作为一个“泵”
  • 带外虚拟化:旁路,用这条路径来走控制信号,而实际数据还是由发起者直接走向目标。发起者必须先咨询旁路的虚拟化设备,经过提示之后,才根据虚拟化设备的指示直接向目标请求数据

硬网络与软网络

硬网络

硬件网络设备其功能还是靠软件来实现的,特别是路由设备,本质是一台Server,上面运行着处理数据包的程序。

所以硬件网络环境实际上是用一部分PC充当网络硬件设备,其他PC利用网络设备的PC实现通信

软件网络程序

message queue和Message Broker在硬件网络设备 的基础上,模拟出一个纯软件的网络转发引擎。

MQ:消息转发器。客户端通过TCP/IP与之相连,将消息转发到这个转发器上,然后根据策略将消息转发到其他客户端上。类似于交换机,不过MQ的链路层由TCP/IP来充当

MB:应用逻辑转发引擎。应用层次的转发,类似邮件服务器。只不过可转发各种格式的数据包。

多虚一

HPC

HPC主要分为两类:

  • CPU密集运算:专门用来计算数据,称为计算节点
  • IO密集运算:专门用来存储计算过程中所需要提取或者存放的数据,称为存储节点

计算节点看做CPU和内存,存储节点看做硬盘。对独立的PC,CPU内存与硬盘的连接为高速IO总线,如PCIe

但是对HPC ,有些利用Infiniband有些利用以太网。前者一般适用于IO密集运算,后者用于CPU密集运算。

Web + APP + db

客户端通过Web服务器获得网页,应用逻辑由APP服务器处理。最后通过Web服务器进行展现。

可以把Web看做显示终端,APP看做CPU和内存,将DB看做硬盘

一虚多

计算虚拟化:模拟硬件系统,将程序对这个硬件系统CPU发送的指令经过处理之后,加以虚拟传到物理CPU上。比如Vmware的ESX

用磁盘阵列来虚拟磁带库

VTL,Virtual Tape Lib

要提高磁带库的速度,只能多个驱动器同时工作,成本高。

VTL使用磁盘来存储数据而不是磁带,虚拟出机械手、磁带驱动器、磁带

原文地址:https://www.cnblogs.com/dy2903/p/8443908.html

时间: 2024-07-31 07:47:10

【大话存储】学习笔记(14章), 虚拟化.md的相关文章

RHCE7学习笔记14——使用虚拟化系统KVM

1.虚拟化平台 开源: Openstack,Ovint 收费:RHEV 2.虚拟机KVM KVM:kernal virtual machine基于内核的虚拟机,内核的一个模块: 用户空间管理工具:libvirt 接口, 要配置KVM,必须在Bios开启虚拟化功能,前提是CPU支持虚拟化: [[email protected] ~]# grep vmx /proc/cpuinfo  flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pg

大话存储学习笔记(1)

一.存储历史 二.计算机IO 1.什么叫IO I表示in,对于CPU来说,从内存中取数据:O表示out,CPU运算完后将数据发送至内存 同理,对于磁盘来说,将数据写入磁盘表示in,将输入从磁盘读出来叫out 2.总线 PCI总线:一种南桥与外设连接的总线技术 PCI总线特点:中断共享,即不同设备使用同一中断而不发生冲突.硬件上采用电平触发:软件上采用中断链,即,假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A:系统发现板卡B也用了中断7,这是

大话存储学习笔记(4)

七.逻辑卷管理 逻辑卷管理(简称LVM),是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层. 通过LVM管理可以轻松管理磁盘分区,如:若干个磁盘分区连接为一整块的卷组,形成一个存储池.管理员可以在卷组上随意创建逻辑卷组,并进一步在逻辑卷组上创建文件系统.管理员通过LVM可以方便调整卷组大小,并且可以按照磁盘存储的方式进行命名.管理和分配. LVM的配置信息记录在叫做VGDA(Volume Group Descriptor Area)的区域,LVM就是通过读

大话存储学习笔记(3)

五.磁盘IOPS和传输带宽 磁盘IOPS:每秒能进行多少次IO,每次IO根据写入数据的大小,这个值也不是固定的. 如果IO每次都写入很大的一块连续的数据,则每秒所做的IO次数是比较低的: 如果磁头频繁换道,每次写入的数据还是较大的话,此时IOPS是这块硬盘的最低数值了. 如果在不频繁换道,每次写入最小的数据块,如512字节,则此时IOPS将是最高值. 传输带宽:指硬盘或设备在传输数据是数据流的速度,如果写入1000个1kb的文件需要10s,那么传输带宽只能达到每秒1MB,而写入一个10MB的文件

大话存储学习笔记(5)

九.磁盘阵列 1.关于LUN LUN是SCSI ID的更细一级的地址号,每个SCSI ID下有更多的LUN ID.对大型磁盘阵列来说,可以生产几百几千个虚拟磁盘,为每个磁盘分配一个SCSI ID是远远不够的.因为每个SCSI总线最多允许16个设备接入(目前32位SCSI标准可以接入32个).LUN是一个次级寻址ID.磁盘阵列可以在一个SCSI ID下虚拟多个LUN地址,每个LUN对应一个虚拟磁盘.硬件层次生成的虚拟磁盘,称为LUN:软件生成的虚拟磁盘,称为卷. 2.双控制器的磁盘阵列 如果盘阵内

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

Mysql Cookbook学习笔记第二章

1,使用python链接mysql + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # -*- coding: utf-8 -*- # connect.py --连接到MySQL服务器 import sys import MySQLdb try:     conn = MySQLdb.connect(db = "cookbook",                            host = "localhost"

《Python基础教程(第二版)》学习笔记 -&gt; 第九章 魔法方法、属性和迭代器

准备工作 >>> class NewStyle(object): more_code_here >>> class OldStyle: more_code_here 在这两个类中,NewStyle是新式的类,OldStyle是旧式的类,如果文件以__metaclass__ = type 开始,那么两个类都是新式类. 构造方法 构造方法,当一个对象被创建后,会立即调用构造方法.Python中创建一个构造方法,只要把init方法的名字从简单的init修改成__init__

mybatis学习笔记(14)-mybatis整合ehcache

mybatis学习笔记(14)-mybatis整合ehcache mybatis学习笔记14-mybatis整合ehcache 分布缓存 整合方法掌握 整合ehcache 加入ehcache的配置文件 ehcache是一个分布式缓存框架 分布缓存 我们系统为了提高系统并发,性能.一般对系统进行分布式部署(集群部署方式) 不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统开发.所以要使用分布式缓存对缓存数据进行集中管理. mybatis无法实现分布式缓存,需要和其它分布式缓存框架进行整合.