分享

关于LUN和存储卷的区别详解

 你好_顺其自然 2020-07-29

平时有很多朋友在咨询LUN和存储卷的概念,今天刚好有点时间,在网上查了查LUN和卷的资料,然后给大家整理一下,供大家一起学习和交流。

一、LUN的概念

  LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用Target ID(也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。

  而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了LUN的概念,也就是说LUN ID的作用就是扩充了Target ID。每个Target下都可以有多个LUN Device,我们通常简称LUN Device为LUN,这样就可以说每个设备的描述就有原来的Target x变成Target x LUN y了,那么显而易见的,我们描述设备的能力增强了。

正如我们的电脑中有一块物理上的硬盘,我们要给它进行分区,分为逻辑盘:如C盘、D盘、E盘..  
所以我们可以总结一下,LUN就是我们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方。
LUN ID不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。

二、到底什么是LUN?

  LUN的神秘之处(相对于一些新手来说)在于,它很多时候不是什么可见的实体,而是一些虚拟的对象。比如一个阵列柜,主机那边看作是一个Target Device,那为了某些特殊需要,我们要将磁盘阵列柜的磁盘空间划分成若干个小的单元给主机来用,于是就产生了一些什么逻辑驱动器的说法,也就是比Target Device级别更低的逻辑对象,我们习惯于把这些更小的磁盘资源称之为LUN0、LUN1、LUN2…什么的。而操作系统的机制使然,操作系统识别的最小存储对象级别就是LUN Device,这是一个逻辑对象,所以很多时候被称为Logical Device。

  有人说,我的Windows里,就认到一个磁盘呀,没看到什么LUN的说法,是不是LUN=Physical Disk呢?回答是否定的,只要你注意,磁盘的属性里就可以看到有一个LUN的值,只是因为你的Disk没有被划分为多个存储资源对象,而将整个磁盘当作 一个LUN来用,LUN ID默认为零,如此而已。

  我们曾经碰到过这样的问题,比如有人问,我们有一个磁盘阵列,连到了两个主机上,我们划分了一个LUN给两个主机认到,然后我们想,先在操作系统将磁盘分为两个分区,让两个主机分别使用两个分区,然后再出现某一台主机宕机之后,使用集群软件将该分区切换到另外一个主机上去,这样可行吗?答案也是否定的,集群软件操作的磁盘单元是LUN,而不是分区,所以该操作是不可行的。当然,在一些环境,一般也是一些要求比较低的环境,可以在多个主机上挂载不同的磁盘分区,但是这种情况下,实际上是没有涉及到磁盘的切换的,所以在一些高要求的环境里,这种情况根本就不允许存在。

  还要说明的地方是,在有些厂商和有些产品的概念里,LUN ID被绑定到了具体的Device上,比如IBM的一些带库,整个带库只有一个Target ID,然后changer,tape drive被分别分配为LUN0、LUN1、LUN2…,但是我们要注意到,这只是产品做了特别设计,也是少数情况。

三、LUN和存储卷到底有什么区别?

  常见有人说起存储卷和LUN有什么区别,然后争论不休。由上边我们可以知道什么是LUN。LUN就是英文 Logical unit number的缩写,即逻辑单元号,它实际上是在SCSI-3中定义的,而并非单用于存储范畴,也可以指使用SCSI协议的一切外围设备,如磁带机、SCSI打印机等等。从SCSI-3的SAM模型中我们知道,SCSI-3(或者之后的版本)的协议层规定,对于16位宽的SCSI总线,其寻址范围只有16个,即只能挂载16个外围设备,每个设备称为一个target。为了提高总线的寻址能力,于是又引入了一层,它规定在每个target上,还可以虚拟(也可以实际连接)出多个设备,例如某个target上可能接了一个磁带机,一个打印机,他们共用一个target地址,但为了区分他们,于是就用LUN加以区别,磁带机假设为LUN0,打印机假设为LUN2,这样就解决了多设备的寻址问题。

  这是实际设备连接的例子,存储阵列(比如:HP leftHand P4000 SAN)是最好的虚拟设备的例子。一个存储磁盘阵列在SCSI总线看来是一个Target,占用一个SCSI的Target地址,但存储阵列的存储空间太大,我们需要将其分成不同的部分,以供不同的应用,达到集中存储,集中管理的目的。所以在分割出来的每个存储部分(或区域)我们就用Lun来区别,如LUN1代表地址块0-1023,LUN2代表地址块1024-65535等等。从上面可以看出,计算机在使用SCSI标准(注意我这里用的标准一词,代表了统含SAM模型中的4层,而并不使用接口,协议或者命令等词语)接外挂存储时,使用的是总线(BUS)-目标(Target)-LUN三元寻址方案,总线指的是你的计算机上有几条SCSI总线,有几块SCSI卡?目标指的是在该总线上,设备的目标地址即常说的SCSI地址是多少?LUN指的是设备在一个Target上分配的逻辑地址,逻辑单元号。这种寻址方案和设备的连接方式,类似于物理上星形连接,逻辑上总线连接的一种网络拓扑。

  那么什么又是存储卷呢?这要从存储的卷管理器说起。存储卷管理器是操作系统中的一个对象,他主要负责存储块设备的在线管理。当我们的一个存储LUN接入计算机后,计算机发现这个设备的存在,就需要在卷管理器上注册,卷管理器为存储卷提供注册的虚拟接口,获取存储LUN的基础信息,如空间大小,三元地址,块大小,起止地址,健康情况等,再为其创建一个对应的数据结构的抽象,这样计算机通过卷管理器,就能够动态的扑捉被注册的存储LUN的实时信息,实现动态管理。一个存储LUN被卷管理器进行注册抽象之后,就被卷管理器认为是一个可被鱼肉的直接下属,它可以再次被分割成更小区域,当然也可以不分割,再对分割后或者没分割后的存储空间进行数据抽象,建立相关的数据结构,供文件系统层调用。

  因此,存储LUN和卷在物理上可能是同一个东西,只是从不同的角度,不同的层次去看它,去理解它。当然,对计算机来说,这些不同确实数据处理过程的需要,也有必要弄清楚的。

 

 

 

 

深入理解逻辑卷的概念

 

1、深入理解逻辑卷的概念:
什么是物理卷,什么是逻辑卷组,什么是逻辑卷?初始接触很多人都搞不清楚,我们先来看一张图:
 
从上面的图中,我们就能很形象的理解物理卷,逻辑卷组,逻辑卷的概念:
· 物理卷(Physical Volume, PV):LVM是操作系统识别到的物理磁盘(或者RAID提交的逻辑磁盘LUN)改了个叫法,叫物理卷, 物理卷可以是一个磁盘,也可以是磁盘中的一个分区。它为LVM提供了存储介质。
· 逻辑卷组(Logical Volume Group, LVG):多个PV可以被逻辑的放到一个VG中,逻辑卷组是一个虚拟的打存储空间,逻辑上是连续的,它可以由多块PV组成,此时VG会将所有PV首尾相连,组成一个逻辑上连续编址的大存储池,这就是VG。在一个VG上可以创建多个逻辑卷(LV)。
· 物理区块(Physical Partion):它是在逻辑上再将一个VG分割成连续的小块(注意,是逻辑上的分割,而不是物理上) ,也就是说LVM会记录每个PP的大小(具体有几个扇区组成啊),还会记录PP的序号偏移。这样就相当于在VG这个大池中顺序切割,比如我们假设一个PP的大小是4MB,那么由之前的知识知道一个扇区是512B,所以4MB/512B =8192 个扇区。  如果PV是实际的一块物理磁盘,那么这些扇区就是连续的。如果PV本身是经过RAID控制器虚拟化形成的虚拟盘(LUN),那么这些扇区可能位于若干条带中:也就是说这8192个扇区物理上不一定连续。
· 逻辑区块(logical Partition):PP可以再次组成LP,逻辑区块是比较难理解的,一个LP可以对应一个PP,也可以对应多个PP。前者对应前后没有什么区别,而后者,又分为两种情况:一种为多个PP,组成一个大的LP,像是RAID0一样;另一种是一个LP对应几份PP,这几份PP没一份内容都一样,类似于RAID1,对个PP内容互为镜像,然后用一个LP来代表它们,往这个LP写数据,也就同时写入了这个LP对应的几份PP中。
· 逻辑卷(Logical Volume, LV): 若干LP再经过连续组合成LV,也就是LVM所提供的最终可用来存储数据的单位。生产逻辑卷,在主机看来还是和普通磁盘一样,对其进行分区,格式化等。每个逻辑分区上都可以创建具体的文件系统。
LVM看起来很复杂,其实操作起来很简单,我们理一下思路,首先创建PV(真实或者RAID提供的LUN)——> 将PV加入VG ——> 在VG中创建LV  ——> 然后格式化这个LV,当成普通硬盘来使用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多