lun与lvm

http://www.boobooke.com/bbs/archiver/tid-47909.html


常见有人说起存储卷和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,这样就解决了多设备的寻址问题。这是实际设备连接的例子,存储阵列是最好的虚拟设备的例子。一个存储阵列在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和卷在物理上可能是同一个东西,只是从不同的角度,不同的层次去看它,去理解它。当然,对计算机来说,这些不同确实数据处理过程的需要,也有必要弄清楚的。



http://blog.sina.com.cn/s/blog_45722cc001010d86.html

lun是指硬件层分出的逻辑盘,如raid卡可以将做好的400G的raid5再分成若干个逻辑盘,以便于使用,每一个逻辑盘对应一个lun号,OS层仍把这些逻辑盘看做是物理盘。(lun最早出自scsi,后来引申到所有硬件层划分的逻辑盘)


卷是软件层分成的逻辑分区,如LVM的逻辑卷LV对于OS层来说就是一个分区(可以格式化成一种文件系统,挂载到某个目录下),只是逻辑卷的大小是可以扩展的,而且一个逻辑卷可能是由多个物理硬盘组成。本质上LVM是一个软件,介于OS与磁盘驱动程序之间。
LVM名称介绍
PV:物理磁盘
VG:卷组,多个PV可以组成一个VG,一个VG可以划分成多个LV(逻辑卷)。
PP:物理区块,将一个VG逻辑的划分成连续的小块。
LP:逻辑区块,若干个PP组成一个LP,多个PP组成一个LP,类似于raid0;一个LP映射多个PP镜像,类似于raid1。
LV:由VG划分,若干连续LP组成一个LV(对应OS层的分区



<think>好的,用户现在想了解在Oracle环境下如何划分LUN,以及相关的存储配置和磁盘管理。首先,我需要回顾之前的对话和用户提供的引用内容。之前的回答中提到了Oracle的ASM、LVM以及存储管理的内容,而用户现在提供的引用[1]和[2]分别涉及ASMLib和LVM的逻辑卷管理。这可能意味着用户需要结合这两部分知识来配置存储。 用户的问题集中在Oracle环境中划分LUN,这可能涉及到存储层面的配置(比如在存储设备上划分LUN),以及在操作系统层面对这些LUN的管理(比如使用LVM或ASM)。同时,用户可能希望了解如何将这些存储资源提供给Oracle数据库使用,特别是通过ASM来管理。 首先,我需要明确LUN是什么。LUN(Logical Unit Number)是存储区域网络(SAN)中的逻辑单元,由存储设备划分出来,供主机识别和使用。在Oracle环境中,特别是使用ASM的情况下,正确配置LUN非常重要,因为ASM直接管理磁盘组,而磁盘组由多个物理磁盘或LUN组成。 接下来,用户提到的引用[1]中提到了ASMLib的作用,它简化了ASM对磁盘的管理。引用[2]则讨论了LVM的逻辑卷管理,包括扩容和缩容。这说明用户可能需要了解两种不同的方法:一种是直接使用ASM和ASMLib管理原始LUN,另一种是通过LVM管理LUN后再提供给ASM或Oracle使用。需要比较这两种方法的优缺点,帮助用户选择适合的方案。 用户的实际需求可能包括如何从存储设备划分LUN,如何在主机层面对这些LUN进行配置(比如多路径、权限设置),然后如何将这些存储资源通过ASM或文件系统提供给Oracle数据库使用。此外,可能还需要考虑性能优化、高可用性(如使用多路径)和扩容管理。 需要分步骤说明整个流程,从存储配置到操作系统层面的处理,再到Oracle层面的配置。同时,应该提到最佳实践,比如避免使用LVM在ASM之上,因为ASM本身已经提供了卷管理功能,双重管理可能带来复杂性和性能损耗。此外,要强调权限和所有权的设置,确保Oracle用户能够访问这些设备。 可能还需要考虑不同的场景,比如是否使用RAC(Real Application Clusters),这时需要共享存储的配置,确保所有节点都能访问相同的LUN。此外,ASM磁盘组的冗余策略(如外部冗余、正常冗余、高冗余)也是需要提及的内容,帮助用户根据业务需求选择合适的配置。 最后,用户可能需要一些具体的命令示例,比如如何用multipath配置多路径,如何用udev规则设置权限,以及如何通过ASMCMD工具创建磁盘组。这些实际操作步骤能帮助用户更好地理解和实施配置。 需要确保回答结构清晰,步骤明确,涵盖从存储层到操作系统层再到Oracle层的完整流程,同时结合用户提供的引用内容,突出ASMLib和LVM的作用,但建议在ASM环境下优先使用ASMLib或UDEV而不是LVM,以避免不必要的复杂性。</think>### Oracle 环境下 LUN 划分存储配置详解 在 Oracle 数据库环境中,LUN(Logical Unit Number)的划分存储配置是保障性能和高可用的关键步骤,通常涉及存储设备、操作系统和 Oracle 存储管理工具(如 ASM)的协同工作。以下是具体步骤和注意事项: --- #### **1. 存储设备层:LUN 划分映射** - **LUN 创建**: 在存储设备(如 SAN/NAS)上划分 LUN,根据需求定义容量、RAID 级别(如 RAID 10 或 RAID 5)及冗余策略。例如: - **OLTP 系统**:建议 RAID 10 以提高随机读写性能。 - **数据仓库**:可选择 RAID 5 以节省存储成本。 - **主机映射**: 将 LUN 映射到数据库服务器,确保多路径访问(如通过 **Multipath I/O** 配置),避免单点故障[^1]。 --- #### **2. 操作系统层:磁盘识别配置** - **扫描新 LUN**: 在 Linux 系统中执行 `rescan-scsi-bus.sh` 或重启 HBA 服务以识别新 LUN。 - **多路径配置**: 使用 `multipath` 工具聚合多个物理路径,提升可用性和负载均衡: ```bash # 安装 multipath yum install device-mapper-multipath # 配置 /etc/multipath.conf 并启动服务 systemctl start multipathd ``` - **权限管理**: 通过 `udev` 规则设置磁盘权限,确保 Oracle 用户(如 `oracle:dba`)可访问: ```bash # 示例 udev 规则(/etc/udev/rules.d/99-oracle-asm.rules) KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="<LUN_ID>", OWNER="oracle", GROUP="dba", MODE="0660" ``` --- #### **3. Oracle 存储管理:ASM 或 LVM 选择** - **方案一:直接使用 ASM 管理原始 LUN(推荐)** - **ASMLib 或 UDEV 配置**: 使用 ASMLib 或 UDEV 规则标记磁盘为 ASM 磁盘,避免依赖操作系统设备名(如 `/dev/sd*`)的变动[^1]。 ```bash # 使用 ASMLib 标记磁盘 /etc/init.d/oracleasm createdisk DATA_DISK1 /dev/sdb1 ``` - **创建 ASM 磁盘组**: 通过 SQL*Plus 或 ASMCMD 创建磁盘组,指定冗余级别(External/Normal/High): ```sql CREATE DISKGROUP DATA_EXTERNAL EXTERNAL REDUNDANCY DISK 'ORCL:DATA_DISK1', 'ORCL:DATA_DISK2'; ``` > **注意**:ASM 直接管理裸设备,无需文件系统,简化了容量扩展和性能优化[^1]。 - **方案二:通过 LVM 管理后再供 Oracle 使用** - **逻辑卷创建**: 将 LUN 初始化为物理卷(PV),加入卷组(VG),并划分逻辑卷(LV): ```bash pvcreate /dev/mapper/mpatha vgcreate oravg /dev/mapper/mpatha lvcreate -n oradata -L 500G oravg ``` - **文件系统挂载**: 格式化为 ext4/XFS 并挂载,供 Oracle 数据文件使用。 > **局限性**:LVM 可能增加 I/O 延迟,且 ASM 叠加管理会导致复杂度上升,通常建议优先使用 ASM[^2]。 --- #### **4. 关键配置实践** - **ASM 最佳实践**: - **冗余策略**:生产环境建议使用 Normal Redundancy(镜像)或 High Redundancy(三副本)。 - **AU(Allocation Unit)大小**:根据数据文件类型调整(默认为 1MB,大文件可设为 4MB)。 - **磁盘组分离**:将数据文件、日志文件(REDO)、归档日志分配至不同磁盘组,避免 I/O 竞争。 - **性能监控**: - 使用 `asm_diskstring` 参数指定 ASM 磁盘扫描路径。 - 通过 `V$ASM_DISK` 视图监控磁盘状态和负载。 --- #### **5. 扩容维护** - **在线扩容**: - 存储端扩展 LUN 容量 → 操作系统层扩展多路径设备 → ASM 磁盘组动态扩展: ```sql ALTER DISKGROUP DATA_EXTERNAL ADD DISK 'ORCL:DATA_DISK3'; ``` - **数据迁移**: 使用 `RMAN` 或 `ASM Online Disk Resync` 实现无停机迁移。 --- ### 常见问题解答 **Q1: ASM 和 LVM 是否可以同时使用?** 不推荐。ASM 本身具备卷管理能力,叠加 LVM 会引入额外开销,仅在特殊需求(如加密卷)时考虑。 **Q2: 如何确保多节点集群(RAC)中 LUN 的共享访问?** 需配置共享存储(如 SAN),所有节点通过多路径访问同一 LUN,并在 ASM 中标记为共享磁盘组。 --- ### 操作示例:从 LUN 到 ASM 磁盘组 1. **存储端操作**:创建 4 个 500GB LUN,映射至主机。 2. **操作系统层**: ```bash multipath -ll # 确认多路径设备(如 mpatha, mpathb) chown oracle:dba /dev/mapper/mpath* # 设置权限 ``` 3. **ASM 配置**: ```sql CREATE DISKGROUP DATA_NORMAL NORMAL REDUNDANCY DISK 'ORCL:mpatha', 'ORCL:mpathb', 'ORCL:mpathc', 'ORCL:mpathd'; ``` --- ### 相关问题 1. 如何监控 ASM 磁盘组的 I/O 性能? 2. 在 RAC 环境中配置 ASM 需要注意哪些关键点? 3. ASM 磁盘组的数据平衡(Rebalance)机制是如何工作的?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值