0

0

linux lun是什么

藏色散人

藏色散人

发布时间:2023-03-25 10:28:25

|

2190人浏览过

|

来源于php中文网

原创

linux lun是指逻辑单元号,其英文全称是“Logical Unit Number”,它实际上是在SCSI-3中定义的,而并非单用于存储范畴,也可以指使用SCSI协议的一切外围设备,如磁带机、SCSI打印机等。

linux lun是什么

本教程操作环境:linux5.9.8系统、Dell G3电脑。

linux 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视频教程

相关专题

更多
云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

0

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

20

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

62

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号