今天看到公司的系统上有个Lun的告警,在网上查了查资料这篇博客感不错, 分享一下

平时有很多朋友在咨询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和卷在物理上可能是同一个东西,只是从不同的角度,不同的层次去看它,去理解它。当然,对计算机来说,这些不同确实数据处理过程的需要,也有必要弄清楚的。

Linux中Lun是什么,以及和存储卷的区别相关推荐

  1. linux挂载到哪个分区,Linux中直接挂载硬盘和挂载分区有什么区别?

     1.问题 Linux中直接挂载硬盘和挂载分区有什么区别? 比如 /dev/sdb 的硬盘,直接mkfs.ext4 /dev/sdb 后mount 使用, 和 先fdisk 分区 ,在 mkfs ...

  2. linux中进程退出函数:exit()和_exit()的区别

    linux中进程退出函数:exit()和_exit()的区别 (1)_exit()执行后立即返回给内核,而exit()要先执行一些清除操作,然后将控制权交给内核. (2)调用_exit函数时,其会关闭 ...

  3. Linux 中 which、whereis、locate、find的区别

    Linux 中 which.whereis.locate.find的区别 which whereis locate find 总结 which which [-a] cmdname1 cmdname2 ...

  4. linux中的软RAID实现,逻辑卷和btrfs文件系统

    RAID: Redundant Arrays of Inexpensive Disks,廉价磁盘冗余阵列:              Redundant Arrays of Independent D ...

  5. Linux中静态库和动态库(共享库)的区别

    1. 静态库和动态库的制作过程区别 1.1 静态库的制作过程 详见博客:Linux中静态库的制作与使用 1.2 动态库的制作过程 详见博客:Linux中动态库(共享库)的制作与使用 2. 静态库和动态 ...

  6. Linux中fstat、stat和lstat的用法与区别

    stat系统调用系列包括了fstat.stat和lstat,它们都是用来返回"相关文件状态信息"的,三者的不同之处在于设定源文件的方式不同. struct stat结构体 首先隆重 ...

  7. Linux中rz -y命令和rz -E命令的区别

    把文件上传到Linux中可以用rz指令,一般小文件我们都是用rz -y来进行上传文件,除此之外还可以用rz -E. 我是用的xshell6来链接Linux的,通常手敲指令都是用rz -y,另外还可以直 ...

  8. linux egrep和grep区别,Linux中的Grep,Egrep和Fgrep有什么区别?

    在Unix系统上的一个着名的搜索工具,可以用于搜索任何东西,无论是一个文件,或一行或多行的文件是grep实用程序.它在功能上非常庞大,这可以归因于它支持的大量选项:使用字符串模式或reg-ex模式或基 ...

  9. 如何在 Linux 中减少/缩小 LVM 大小(逻辑卷调整)

    目录 卸载文件系统 检查文件系统是否有任何错误 缩小文件系统 减少逻辑卷 (LVM) 容量 可选:检查文件系统是否有错误 挂载文件系统并检查缩小后的大小 减少/缩小逻辑卷是数据损坏的最高风险. 所以, ...

最新文章

  1. rtsp有没有好使_轻量级RTSP服务和内置RTSP网关有什么不同?
  2. 你不可不知的9种Lisp语言思想
  3. opencv 图片剪切
  4. 【MM配置】Pricing 采购定价过程总览
  5. Qt Creator创建按钮
  6. mpvue tabBar设定 app.json
  7. 吴恩达深度学习 —— 2.14 向量化逻辑回归的梯度输出
  8. 在Kubernetes上部署Hyperledger Fabric
  9. 计算机组成原理 第六章 总线
  10. c++标准程序库:STL容器之map
  11. Fullpage:基础学习
  12. ffmpeg推流错误
  13. oppo的手机上如何找回原来的小米的云便签
  14. Mac系统搭建C语言开发环境
  15. 用python做youtube自动化下载器 思路
  16. 超调量怎么计算公式_matlab超调量怎么计算 求超调量、上升时间、峰值时间、调节时间 - 西部娱乐网...
  17. JVM调优工具锦囊:JDK自带工具与Arthas线上分析工具对比
  18. github的Whoa there!问题
  19. taobao.trades.sold.get-查询卖家已卖出的交易数据(根据创建时间),淘宝店铺卖出订单查询API接口,R2接口,oAuth2.0交易接口代码分享
  20. Android LruCache和DiskLruCache相结合打造图片加载框架(仿微信图片选择,照片墙)

热门文章

  1. 万字长文,冲刺备战金九银十,奉上[Java一线大厂高岗面试题解析合集]
  2. 配上新的pip源再来安装pytorch有如神助
  3. Linux ALSA声卡驱动之四:Codec 以及Codec_dai
  4. oracle 获取当月的1号_Oracle 获取当前年、月、日
  5. 利用spring+springMvc对单点登录(SSO)的简单实现(含源码)
  6. 904. 水果成篮(c++)
  7. 《深入浅出图神经网络》读书笔记(5.图信号处理与图卷积神经网络)
  8. 安装和配置PhysX
  9. 机器学习的思考–计算机的潜意识
  10. C/C++就业领域与学习方向 | 学习计划