LUN

1概念

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

而实际上咱们须要用来描述的对象,是远远超过该数字的,因而咱们引进了LUN的概念,也就是说LUN ID的做用就是扩充了Target ID。每一个Target下均可以有多个LUN Device,咱们一般简称LUN Device为LUN,这样就能够说每一个设备的描述就由原来的Target x变成Target x LUN y了,那么显而易见的,咱们描述设备的能力加强了。就比如,之前你给别人邮寄东西,写地址的时候,能够写:安全

xx市人民大街54号 xxx(收)服务器

可是自从高楼大厦愈来愈多,你不得不这么写:网络

xx市人民大街54号xx大厦518室 xxx (收)app

因此咱们能够总结一下,LUN就是咱们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方。操作系统

2介绍

LUN ID不等于某个设备,只是个号码而已,不表明任何实体属性,在咱们的实际环境里,咱们碰到的LUN多是磁盘空间,多是磁带机,或者是media changer等等。设计

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

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

咱们曾经碰到过这样的问题,好比有人问,咱们有一个磁盘阵列,连到了两个主机上,咱们划分了一个LUN给两个主机认到,而后咱们想,先在操做系统将磁盘分为两个分区,让两个主机分别使用两个分区,而后再出现某一台主机宕机以后,使用集群软件将该分区切换到另一个主机上去,这样可行吗?答案也是否认的,集群软件操做的磁盘单元是LUN,而不是分区,因此该操做是不可行的。固然,在一些环境,通常也是一些要求比较低的环境,能够在多个主机上挂载不一样的磁盘分区,可是这种状况下,其实是没有涉及到磁盘的切换的,因此在一些高要求的环境里,这种状况根本就不容许存在。接口

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

3区别

还有不少新手老是把阵列里面的磁盘和主机的内部磁盘的一些概念搞混淆了。

磁盘阵列磁带库大行其道的时代,存储愈来愈智能化,愈来愈像一个独立的机器,实际上存储和主机的电气独立原本就是一个必然趋势,俗话说得好,儿大要分家嘛。在存储愈来愈重要的时代,存储要自立门户是必然的事。

若是咱们把存储看成一个独立的主机来看,理解起来就很简单了。咱们说到LUN的概念的时候,咱们就要将分为两个层面。一个层面就是在阵列这个机器的OS识别到的范围,另外一个层面就是服务器的OS识别到的范围。这两个层面是相对独立的,由于若是咱们把存储看成一个主机来看,那么它天然有本身的Device、Target、LUN之说,而服务器也有本身的Device、Target、LUN之说;另一方面,这两个层面又是相互关联的,一个阵列的控制系统,大多都有虚拟化的功能,阵列想让主机看到什么样的东西,主机才能看到相应的东西。固然,服务器识别到的最小的存储资源,就是LUN级别的。那么主机的HBA 卡看到的存储上的存储资源就靠主要两个东西来定位,一个就是存储系统的控制器(Target),一个就是LUN ID,这个LUN是由存储的控制系统给定的,是存储系统的某部分存储资源。

4磁盘管制

咱们有了独立的磁盘阵列用了以后,服务器只要看到存储的控制系统,就有可能使用磁盘阵列的磁盘资源,可是磁盘阵列不可能只为某一个服务器来使用,因此它必须管制主机使用某部分磁盘资源。这个管制分为两个部分:一部分就是LUN mapping,相似于绿色通道,就是保证服务器能看到某部分存储资源,一部分就是LUN masking,相似于警惕线,就是保证服务器只可访问给它分配的存储资源,而没分配给服务器的资源,就不要染指了。

实现LUN masking和LUN mapping有三种方法:一个是基于存储控制系统来设置,一个是基于存储交换系统来设置,一个是基于服务器OS来设置。

基于存储控制系统的设置,是比较常见的设置,好比不少磁盘阵列的控制系统,自己就能设置LUN被某服务器看到。好比FastT的partition功能。

基于存储交换系统的设置,也是一种经常使用的方法,好比常说的zoning。

基于服务器OS的设置,比较少采用,通常采用安装某些操做系统上安装某些软件来实现,由于这个方法全靠服务器自觉,因此比较少用,呵呵。

5多访问

如今,存储网络愈来愈发达了,一个LUN有多条通路能够访问也不是新鲜事了。

服务器使用多个HBA链接到存储网络,存储网络又多是由多个交换设备组成,而存储系统又可能有多个控制器和链路,LUN到服务器的存储网络链路又可能存在着多条不一样的逻辑链路。那么,必然的,同一个physical LUN在服务器上必然被识别为多个设备。由于OS区别设备无非用的是总线、Target ID、LUN ID来,只要号码不一样,就认为是不一样的设备。

因为上面的状况,多路径管理软件应运而生了,好比emc的powerpath,这个软件的做用就是让操做系统知道那些操做系统识别到LUN其实是一个真正的physical LUN,具体的作法,就是生成一个特别的设备文件,操做系统操做这个特殊的设备文件。而咱们知道,设备文件+driver+firmware的一个做用, 就是告诉操做系统该怎么使用这个设备。那么就是说,多路径管理软件从driver和设备文件着手,告诉了操做系统怎么来处理这些身份复杂的LUN。

LUN 逻辑单元编号企业级磁盘阵列可容纳许许多多的处理器、主机端口、磁盘和缓存器件,其主要做用是为了给相连的服务器分配逻辑单元号(LUN)。服务器能够直接与磁盘阵列链接在一块儿,也能够经过交换设备与之相连。磁盘阵列的LUN掩码和交换设备的分区功能,都属于某种形式的安全保障屏蔽,用来控制服务器访问LUN的权限。一旦服务器与LUN链接上,就能够经过当前的网络接口将数据传输到磁盘阵列上。值得一提的是,典型的企业级磁盘阵列通常均可以支持多种接口标准。

相关文章
相关标签/搜索