AIX LVM底层数据结构剖析
LVM原理及详细操作
LVM原理及详细操作
一、LVM简介
Logical Volume Manager(LVM)是一种重要的数据存储技术,利用
它可以对物理的磁盘空间进行逻辑的管理,它可以不受物理硬盘的结构和
容量的限制,对多个硬盘的容量进行聚合,从而构建出一个更大的存储空间,以满足用户的存储要求,从而更大幅度地提高企业的存储性能和可
用性,是不可或缺的存储技术。
它可以很好地管理一个存储单元中的若干
物理磁盘,把它们组织成更大的物理单元,比如一个虚拟磁盘,这样就可
以让虚拟磁盘有更高的性能。
二、LVM原理
LVM的核心思想是让物理磁盘空间可以按照逻辑结构进行定义和管理,其中包括物理卷(PV)、卷组(VG)、逻辑卷(LV)这三个层次。
1、物理卷
物理卷(PV)是LVM容量管理的最底层,它是基于操作系统认识的物
理磁盘分区(当然也可以是磁盘本身),它可以是任何文件系统类型。
PV
比物理磁盘细分,它是LVM容量管理的最小单位,PV使用PV数据结构来
记录自身信息,要想将物理磁盘分区成PV,需要使用LVM的pvcreate命
令指定物理分区空间,创建PV时,系统会自动为PV生成UUID (universally unique identifier),用于标识PV,PV可以加入或者从LVMs存储系统中移除,因此它的生命周期是可控的。
2、卷组。
AIX LVM底层数据结构剖析
AIX LVM底层数据结构剖析(根据qintl讲稿整理)背景:一个关于数据丢失后的恢复问题,在LU中引起热烈的讨论,在相关的讨论帖中,qintl对LVM底层数据结构做了详细而精彩的演讲,受益匪浅。
现将qintl 主要讲稿内容整理如下,以便大家阅读。
相关讨论帖地址:/viewthread.php?tid=76187&extra=page%3D5%26amp%3 Bfilter%3Ddigest/viewthread.php?tid=75851&highlight=%B6%AA%CA%A 7硬盘的PVID一个硬盘要被操作系统正常使用,必须先分配PVID,硬盘的PVID在以后加入某个VG、LV都是要用到的。
分配PVID的过程就像windows下的初始化硬盘操作,就是把硬盘0扇区改写成符合操作系统使用的格式,只改写0扇区,别的地方没有任何改变。
用lspv命令就可以知道哪些硬盘还没有分配PVID,用#chdev -l hdiskX -a pv=yes就可以给硬盘分配PVID,当一个硬盘在操作系统中已经有了PVID,#chdev -l hdiskX -a pv=yes命令不会改变原来的PVID。
如果要修改某块盘的PVID,我们要先清除掉原先的PVID,然后再生成,可以用以下命令:#chdev -l hdiskX -a pv=clear#chdev -l hdiskX -a pv=yeschinadns的Blog有对PVID的详细介绍:/u/16252/showart_94788.html我们从底层观察chdev -l hdiskX -a pv=yes对硬盘0扇区的改动:# lspvhdisk0 003752149a0b2b91 rootvghdisk10 none Nonehdisk11 003752146ff979f4 Nonehdisk12 003752146ff9a31b Nonehdisk10没有分配PVID,我们看看0扇区的十六进制代码:# lquerypv -h /dev/hdisk10 0 200 (结果:第一列是序号,后4列是十六进制数据)00000000 C9C2D4C1 00000000 00000000 00000000 |................|00000010 00000000 00000000 00000000 00000000 |................|00000020 00000000 00000000 00000000 00000000 |................|00000030 00000000 00000000 00000000 00000000 |................|00000040 00000000 00000000 00000000 00000000 |................|00000050 00000000 00000000 00000000 00000000 |................|00000060 00000000 00000000 00000000 00000000 |................|00000070 00000000 00000000 00000000 00000000 |................|00000080 00000000 00000000 00000000 00000000 |................|00000090 00000000 00000000 00000000 00000000 |................|000000A0 00000000 00000000 00000000 00000000 |................|000000B0 00000000 00000000 00000000 00000000 |................|000000C0 00000000 00000000 00000000 00000000 |................|000000D0 00000000 00000000 00000000 00000000 |................|000000E0 00000000 00000000 00000000 00000000 |................|000000F0 00000000 00000000 00000000 00000000 |................|00000100 00000000 00000000 00000000 00000000 |................|00000110 00000000 00000000 00000000 00000000 |................|00000120 00000000 00000000 00000000 00000000 |................|00000130 00000000 00000000 00000000 00000000 |................|00000140 00000000 00000000 00000000 00000000 |................|00000150 00000000 00000000 00000000 00000000 |................|00000160 00000000 00000000 00000000 00000000 |................|00000170 00000000 00000000 00000000 00000000 |................|00000180 00000000 00000000 00000000 00000000 |................|00000190 00000000 00000000 00000000 00000000 |................|000001A0 00000000 00000000 00000000 00000000 |................|000001B0 00000000 00000000 00000000 00000000 |................|000001C0 00000000 00000000 00000000 00000000 |................|000001D0 00000000 00000000 00000000 00000000 |................|000001E0 00000000 00000000 00000000 00000000 |................|000001F0 00000000 00000000 00000000 00000000 |................|# chdev -l hdisk10 -a pv=yeshdisk10 changed# lspvhdisk0 003752149a0b2b91 rootvghdisk10 0037521474170251 Nonehdisk11 003752146ff979f4 Nonehdisk12 003752146ff9a31b None00000000 C9C2D4C1 00000000 00000000 00000000 |................|00000010 00000000 00000000 00000000 00000000 |................|00000020 00000000 00000000 00000000 00000000 |................|00000030 00000000 00000000 00000000 00000000 |................|00000040 00000000 00000000 00000000 00000000 |................|00000050 00000000 00000000 00000000 00000000 |................|00000060 00000000 00000000 00000000 00000000 |................|00000070 00000000 00000000 00000000 00000000 |................|00000080 00375214 74170251 00000000 00000000 |.7R.t..Q........|00000090 00000000 00000000 00000000 00000000 |................|000000A0 00000000 00000000 00000000 00000000 |................|000000B0 00000000 00000000 00000000 00000000 |................|000000C0 00000000 00000000 00000000 00000000 |................|000000D0 00000000 00000000 00000000 00000000 |................|000000E0 00000000 00000000 00000000 00000000 |................|000000F0 00000000 00000000 00000000 00000000 |................|00000100 00000000 00000000 00000000 00000000 |................|00000110 00000000 00000000 00000000 00000000 |................|00000120 00000000 00000000 00000000 00000000 |................|00000130 00000000 00000000 00000000 00000000 |................|00000140 00000000 00000000 00000000 00000000 |................|00000150 00000000 00000000 00000000 00000000 |................|00000160 00000000 00000000 00000000 00000000 |................|00000170 00000000 00000000 00000000 00000000 |................|00000180 00000000 00000000 00000000 00000000 |................|00000190 00000000 00000000 00000000 00000000 |................|000001A0 00000000 00000000 00000000 00000000 |................|000001B0 00000000 00000000 00000000 00000000 |................|000001C0 00000000 00000000 00000000 00000000 |................|000001D0 00000000 00000000 00000000 00000000 |................|000001E0 00000000 00000000 00000000 00000000 |................|000001F0 00000000 00000000 00000000 00000000 |................|这样我们就知道chdev -l hdisk10 -a pv=yes更改了哪些数据了。
AIX系统LVM管理
AIX系统 LVM 管理一、逻辑卷管理LVMLVM是一种与传统UNIX分区策略完全不同的磁盘管理方法,它的优点之一是允许动态地给一个文件系统分配更多的空间。
LVM的组成要素有:物理卷(PV)、卷组(VG)、物理分区(PP)、逻辑卷(LV)、逻辑分区(LP)等。
1、AIX存储管理的思想(1)层次结构:Physical Volume→Volume Group→Logical Volume→FileSystem(2)物理硬盘系统定义为hdisk(x)、rhdisk(x);Hdisk由多个PPs组成,每个PP的大小可以为1M/2M/4M/6M…256M。
(3)一个或多个hdisk组成VG,系统定义为“*vg”。
一个VG中的hdisk只能使用相同大小的PP。
(4)在VG上可以划分LV。
LV是面向应用的设备,有五种类型(jfs、jfslog、paging、boot、sysdump),用户可以在LV上建立文件系统,也可以将其用作原始设备。
(5)在Informix中使用的是LV的原始设备,如数据空间、物理日志和逻辑日志空间。
2、基本概念(1)物理卷(Physical Volume):一个物理卷指一个硬盘。
(2)卷组(Volume Group):卷组是可用物理硬盘的集合,可以逻辑地看成一块大硬盘。
一个卷组由一个或多个物理卷组成,最多可达32个(AIX4.3.2以上版本已经增至128个)。
(3)物理分区(PP):卷组中的物理卷划分成固定大小的块(缺省为4MB),这样的块称为物理分区。
(4)逻辑卷(Logical Volume):每个卷组中可以定义一个或多个逻辑卷,逻辑卷是位于物理分区上信息集合:可以是一个文件系统、调页空间、日志或转储设备空间等。
(5)逻辑分区(LP):逻辑卷由一定数量的逻辑分区组成。
二、增加硬盘:以蓬莱联社为例,说一下在RS/6000系统中如何增加一个SCSI硬盘。
蓬莱联社备机测试环境数据库空间不够,需要增加一个SCSI硬盘来扩充数据空间。
AIX LVM
AIX LVM一.LVM基本概念1.PV物理卷,通常操作系统层面一块硬盘就是一个PV,PV必须加入VG后才能使用其存储空间每个PV头部都有一个保留区域,记录PVID等信息。
当将硬盘加入操作系统后,执行cfgmgr或者chedev –l hdiskx –a pv=yes会为此硬盘分配pvid。
chdev –l hdiskx –a pv=clear 会清除pvid信息,慎用。
硬盘有了PVID后,才能进行后续的LVM操作。
# lspv查看PVIDhdisk0 000a1ddc7f36a2f0 rootvg active2.VG卷组,由一个或者多个PV组成,VG的信息保存在VGSA和VGDA中。
AIX卷组有三种类型:Normal,Big,Scalable,区别如下:●LP逻辑分区,相当于HPUX的LE●PP物理分区,类似与HPUX的PE,大小为2的幂—-4、8…1024MB●LV逻辑卷,由LP组成,1个LP对应1-3个PP,AIX中常见的逻辑卷用途如下:●LVCB逻辑卷控制块,位于逻辑卷的开始位置,占用512个字节。
逻辑卷控制块包括的信息有:逻辑卷创建日期逻辑卷的镜像拷贝数和安装点。
(HPUX中逻辑卷不存在LVCB)可以通过getlvcb命令查看LVCB信息# getlvcb -AT lvtestAIX LVCBintrapolicy = mcopies = 2interpolicy = mlvid = 00c97cbe00004c000000012e3282db2e.1lvname = lvtestlabel = /testmachine id = 97CBE4C00number lps = 1relocatable = ystrict = ystripe width = 0stripe size in exponent = 0type = jfs2upperbound = 32fs = vfs=jfs2:log=INLINE:options=rw:account=falsetime created = Thu Feb 17 15:55:06 2011time modified = Thu Feb 17 15:59:41 2011●VGDA卷组描述区,包含整个卷组,包括逻辑卷,物理卷的信息,LP与PP的对应关系通常情况,1块硬盘组成的vg,每块硬盘保存两份VGDA;两块硬盘组成的vg,其中一块硬盘保存两份VGDA,另外一块保存一份VGDA;三块硬盘组成的卷组,每块硬盘保存一份VGDA。
lvm_解析
Data Area
Bad Block Pool
Sector 1724
PVRA中的BBD:55 sector 当有IO请求网盘上写数据出现错误无法完成时,即在该表中记录下该块的sector号,并将数 据写入BBR区,并记录下该块的sector num。 2011年4月11日星期一 CHP Overview
6
LVM Physical Disk Layout
LIF Header PVRA BDRA LIF Volume VGRA User Data Area
Magic/ Timestamp PVs in root vg Root VG # Root LV #s Root PV list Root Lvols Swap Lvols Dump Lvols State info PVol List Duplicate BDRA & PVol List
Bad Block Pool
PVRA中的lvm record:128 sector 主要包含以下几个部分等信息: Lvm_id: 为LVMREC01,标示为PA RISC HPUX 的LVM结构。 PVID VGID PV在vg中的num号。
2011年4月11日星期一
CHP Overview
5
LVM PVRA Disk Structures
vg_timestamp
vgda_magic
PX entry [n]
每个VGRA包含一个VG header,包含vgid,现有lv、pv、pe的最大值。 Lv entry 中包含lvo1的最大值,lv的标志信息,mirrors的数量,条带的大小,schedule strategy等信息。 Pv entry中包含pvid,pe的数量,pv的标志信息,每个pe和le之间的对应表CHP Overview 2011年4月11日星期一
AIX存储管理LVM中VGDA分析
AIX存储管理LVM中VGDA分析把PV加入VG后才可以使用,对于同一个操作系统,一个PV只能属于一个VG,一个VG根据其类型不同可能用有最多32-1024个PV。
VG中包含那些PV都写在VG的一个区域中,这个区域就是VGDA,VGDA中记录了很多VG的重要信息,包括VG中包含的所有PV的PV ID。
由于VGDA内的信息非常重要,因此VGDA被保存了多份。
如果VG中只有一块磁盘,则在此磁盘上存在两份VGDA;如果VG中有两块磁盘,则第一块磁盘有两份VGDA,第二块磁盘有一份。
如果VG 中包含三块或更多的磁盘,则每块磁盘上都有一个VGDA的拷贝。
完好的VGDA数量与VG中的总磁盘数之比被称为Quorum,如果Quprum 小于50%,此VG将不能被继续访问(如果已经被激活,则会自动关闭),这样做是为了防止数据被进一步破坏,由于在每块磁盘上都至少有一份VGDA,所以在一个新小型机上,只要给出未知的 VG中的一块磁盘,就可以正确识别出全部的VG信息,并注册到新小型机上,这个过程叫做import。
命令是:#import vg -y vg_name hdisk。
其中vg_name是你希望的VG名,hdiskx是此VG中的任一磁盘,由于在执行importvg命令的时候,可以自定义 VG名,因此系统中并没有更改名称的命令。
如果你想更改VG的名称,则需要先执行exportvg,把此VG在系统中的定义删掉,在用新名字importvg进来。
反之,如果想把某个VG信息从一台小型机删除,则需要执行exportvg vg_name,此操作并没有对磁盘做任何操作,磁盘的数据依然存在,只是将此VG在小型机系统中的定义给删除了,任何时候,你还可以再重新import回来。
在执行imortvg的时候,操作系统可以从指定磁盘上读到VG中所有磁盘(PV)的定义,如果操作系统发现此VG中一些磁盘没有被系统识别到,哪么系统将重新计算Quorum,如果大于50%,则依然可以执行imortvg,但会有警告信息。
AIX LVM知识总结
AIX LVM知识总结目录AIX LVM知识总结 (1)1. 基本概念 (2)典型问题 (2)提炼回答 (2)2. 故障排错 (3)典型问题 (3)提炼回答 (3)3. LVM在集群环境中的应用 (4)典型问题 (5)提炼回答 (5)4. 基于LVM的高可用或迁移方案 (6)典型问题 (6)提炼回答 (6)本文是应邀参加twt技术交流活动---对AIX LVM逻辑卷管理技术的技术总结,活动主要从两个方面展开讨论,一是在AIX日常工作中LVM相关的存储资源使用、镜像技术、存储性能调优、疑难故障处理等话题,二是一些基于AIX LVM技术的一些衍生性方案,如基于LVM 的存储迁移、存储高可用等技术。
通过本次交流活动,我们在以下的几个方面对LVM进行了总结归纳。
1. 基本概念LVM内置在aix系统中,随着AIX版本的更新而更新。
不管是功能性还是扩展性都在逐步发展。
我们在日常的工作中,一定结合自己的实际情况做好规划再使用,避免由于LVM本身的限制带来后期维护和扩展的困难。
典型问题Q1. AIX上卷组里关于quorum这个值的作用和意义?Q2. 请问chvg -t factor各个因子分别代表什么?Q3. lvm里关于VG三种选项有何差异,在实际使用中有何种不同体现,优缺点在哪里?提炼回答这三种VG最重要的区别就是在扩展性上的支持有很大差异。
normal VG扩展性最小,Big VG 次之、Scalable VG扩展性最好。
这三种类型的vg是随着AIX版本的更新逐步推出的。
如果在早期的项目实施中使用了normal vg,后续还有陆续扩容的需求,可能就会超出normal vg 的自身限制,造成扩容失败的后果。
此时又两个解决方法:1. 升级到其他VG类型获取更高的扩展性:Chvg –B xxvg升级到big vg,可以在线升级Chvg –G xxvg 升级到scalable vg,需要先执行varyoffvg命令才能升级两者都需要pv中有足够的空间来承载vgda信息的变更。
AIX关于LUN、PV、VG和LV
1.划分LUNLUN只是一个逻辑的东西。
在存储设备内部,LUN与物理硬盘的关系,如同主机中逻辑卷与物理硬盘的关系,也就是好像LV和PV的关系,在不同范畴。
可以理解为LUN就是在做完RAID之后的逻辑盘上分出来的logic driver。
但不同的是,LUN在主机上看来是一个物理硬盘。
LUN绝对不是以硬盘为单位的东西,他是在raid组下的单位,连在主机上,NT反映成磁盘,AIX反映成pv。
一个RAID在EMC存储中最多可以划成226个LUN(cx4-480支持4096个lun),大小从几M到。
几百G都行。
LUN是从SCSI起源的:Logical Unit Number,因为SCSI时代最多只有16个SCSI ID,卡本身起码占用一个,如果没有LUN,意味着每个卡连的磁盘阵列最多只能15块硬盘——不可思议嘛,所以SCSI ID+LUN(0-255),可以有15*256=3840个硬盘,总算够用了。
后来存储服务器出来了,经过虚拟化,从主机端以SCSI的概念来看,就表现为一个个不同LUN的硬盘(实际上是虚拟的,存储服务器这时成为一个黑箱)。
LUN与物理硬盘的关系没有规律,自己设定,也不一定要做RAID,只是一般都做而已。
2. 添加新的PV一个硬盘在能够被LVM使用之前一定要初始化,可以使用pvcreate命令将PVRA的信息写入到硬盘当中,而这样被写入了PVRA信息的硬盘,就叫做PV。
#pvcreate /dev/rdsk/c0t5d0如果之前已经有PVRA的信息在这块硬盘上,也就是说,这块硬盘之前可能被其他的LVM 使用过,那么你将得到一个报错信息:#pvcreate: The Physical Volume already belongs to a Volume Group如果你确定要初始化这块硬盘,那么可以带上-f的参数来强行执行#pvcreate -f /dev/rdsk/c0t5d0注意:如果是启动盘,还应该加上-B的选项。
AIXLVM镜像同步原理
AIX LVM 镜像同步原理物理卷Physical Volume,称为PV:指物理上硬盘,一个硬盘就是一个PV,硬盘必须加入一个卷组,系统才能使用其空间。
一块硬盘添加到一个卷组后,按照卷组定义的物理分区(PP)的大小,被格式化大小相等的PP,一个物理卷最多能包含1016个物理分区。
物理卷名一般是hdiskn形式,其中n是系统中唯一的磁盘号。
逻辑卷组Logical Volume Group,称为VG:一个VG包含整数个PV,但是至少包括一块硬盘。
创建卷组时,就定义了卷组中物理分区(PP)的大小。
物理分区的大小为4M的整数倍。
逻辑卷Logical Volume,称为LV:相当于对大硬盘进行逻辑分区,一个VG里可有若干个LV。
逻辑卷(LV)有多个逻辑上连续的逻辑分区(LP)组成,逻辑分区与物理分区存在映射关系,它们大小相等。
一个逻辑卷的数据可能分布在多块硬盘,也就是多个物理卷上。
文件系统File System:在逻辑卷的基础上,可建立文件系统,然后MOUNT到一个目录下,这样就可以文件存取的方式来使用这块硬盘了。
文件系统AIX系统通过逻辑卷来管理存储空间,但是用户通过操作系统中的命令是无法对逻辑卷进行读写操作的,只有在逻辑卷上创建文件系统,用户通过对文件系统的操作才能完成对逻辑卷的访问。
在一个逻辑卷上只能创建一个文件系统,也就是说,一个文件系统对应一个逻辑卷,每个文件系统都有许多目录和文件。
由于文件系统依附于逻辑卷,所以如果删除逻辑卷,则同时删除文件系统。
文件系统必须在一个未挂载文件系统的逻辑卷上创建,并指定挂载点,然后再挂载文件系统。
文件系统创建好之后,用户还不能直接使用它,必须将它安装在以前定义好的安装点上,因为用户通过安装点来访问文件系统中的文件和目录。
在Unix系统中用mount命令安装一个文件系统。
/etc/filesystems文件中凡是定义了mount=true 或mount=automatic属性的文件系统将在系统启动时自动安装。
AIX LVM管理
备份LVM配置:使用lvmdump命令备份LVM配置 恢复LVM配置:使用lvmresre命令恢复LVM配置 备份LVM快照:使用lvmcrete命令备份LVM快照 恢复LVM快照:使用lvmresre命令恢复LVM快照 备份LVM日志:使用lvmlogdump命令备份LVM日志 恢复LVM日志:使用lvmlogresre命令恢复LVM日志
添加标题
添加标题
添加标题
添加标题
逻辑卷管理:可以将多个物理卷组 合成一个逻辑卷实现数据的集中管 理和分配
性能优化:可以对逻辑卷进行性能 优化提高系统的运行效率和稳定性
IX LVM的创建与 配置
物理卷 (PV): 由一个或 多个物理 磁盘或分 区组成
创建PV: 使用mkpv 命令指定 磁盘或分 区
卷组等
诊 断 LV M 的 性 能 问题:使用lvm 命 令 诊 断 LV M 的 性能问题包括物 理卷、逻辑卷、
卷组等
IX LVM的高级应 用
快照功能:创建数据副本 用于数据恢复
应用场景:数据备份、数 据迁移、数据恢复等
操作步骤:创建快照、挂 载快照、恢复数据等
注意事项:确保快照空间 充足避免数据丢失
问题:LVM卷无法挂载 解决方案:检查LVM 配置文件确保卷组和逻辑卷存在
解决方案:检查LVM配置文件确保卷组和逻辑卷存 在
问题:LVM快照无法创建 解决方案:检查 LVM配置文件确保快照卷组和逻辑卷存在
解决方案:检查LVM配置文件确保快照卷组和逻辑 卷存在
问题:LVM卷无法恢复 解决方案:使用 lvmresre命令恢复LVM卷
检查PV:
使
用
pvdisply
命令查看
PV的状态
和属性
aix的lvm
AIX中逻辑存储的限制卷组(VG) 255个/每个系统物理卷(PV)32个/每个卷组物理分区(PP)1016个/每个物理卷逻辑卷(LV)256个/每个卷组逻辑分区(LP)32512个/每个逻辑卷AIX系统逻辑卷:Paging Space:/dev/hd6,用于存储虚拟内存中信息的固定的磁盘空间Journal Log:/dev/hd8,用于记录系统中文件系统结构的改变Boot LV:/dev/hd5,用于系统启动映象的物理上连续的磁盘空间AIX系统文件系统:/(root):系统启动进程所需的重要的系统设备信息及应用程序的存储空间/usr:/dev/hd2,系统命令、信息库以及应用程序的存储空间/var:/dev/hd9var,系统的日志文件和打印数据文件的存储空间/home:/dev/hd1,系统中用户数据的存储空间/tmp:/dev/hd3,系统临时文件和用户工作的存储空间LVM操作命令:# lsvg [–o | –l | –p] [VG_Name]查看系统中VG的信息-o:查看系统中活动的VG列表-l:查看属于指定VG的LV的信息-p:查看属于指定VG的PV的信息如:# lsvg –o | lsvg –i –l查看系统中属于活动VG的LV的信息注意:当用# lsvg –p VG_Name命令查看属于指定VG的PV信息时,系统将给出VG中每个PV上的空闲PP的分布情况(FREE DISTRIBUTION)。
如:# lsvg –p rootvgrootvg:PV_NAMEPV_STATETOTAL PPsFREE PPsFREE DISTRIBUTIONhdisk0active1595224..00..00..00..28hdisk1active1597832..02..00..12..32FREE DISTRIBUTION的含义如下:外部边界..外部中间..中心..内部中间..内部边界outer edge..outer middle..center..inner middle..inner edge# lslv [–l | –m] [LV_Name]查看系统中LV的信息-l:查看属于指定LV的LP的分配方式(intra-physical volume)-m:查看指定LV中的LP与PP之间的映射关系(inter-physical volume)注意:当用# lslv –l lv00命令查看属于指定LV的信息时,系统将给出指定LV的LP数及其拷贝数,符合内部物理卷(intra-physical volume)分配方针的PP所占整个LV包含PP数的比例,以及PP在每个PV上的分布情况(DISTRIBUTION)。
LVM架构
一. LVM 架构1.基本概念介绍:∙PP,物理分区(Physical Partition),如硬盘的分区,或 RAID 分区。
∙PV,物理卷(Physical Volume),是 PP 的 LVM 抽象,它维护了 PP 的结构信息,是组成 VG 的基本逻辑单元,一般一个 PV 对应一个 PP。
∙PE,物理扩展单元(Physical Extends),每个 PV 都会以 PE 为基本单元划分。
∙VG,卷组(Volume Group),即 LVM 卷组,它可由一个或数个 PV 组成,相当于 LVM 的存储池。
∙LE,逻辑扩展单元(Logical Extends),组成 LV 的基本单元,一个 LE 对应一个 PE。
∙LV,逻辑卷(Logical Volume),它建立在 VG 之上,文件系统之下,由若干个LE 组成。
2. LVM 原理分析LVM 在每个物理卷(PV)头部都维护了一个MetaData,叫做卷组描述域(VGDA,Volume Group Description Area),每个VGDA中都包含了整个VG(Volume Group)的信息,包括每个VG的布局配置、PV 的编号、LV的编号,以及每个PE 到LE的映射关系。
同一个VG中的每个PV头部的信息是相同的,这样有利于发生故障时进行数据恢复。
LVM 对上层文件系统提供 LV 层,隐藏了操作细节。
对文件系统而言,对LV 的操作与原先对 Partition 的操作没有差别。
当对 LV 进行写入操作时,LVM 定位相应的 LE,通过 PV 头部的映射表,将数据写入到相应的 PE 上。
LVM 实现的关键在于在PE 和LE间建立映射关系,不同的映射规则决定了不同的LVM存储模型。
LVM 支持多个PV的Stripe和Mirror,这点和软RAID 的实现十分相似。
LVM 对上层文件系统提供抽象层,隐藏了操作细节,对文件系统而言,对LV的操作与原先对分区( Partition)的操作没有差别。
AIX_存储管理概念_AIX存储方面不可多得好资料
AIX 存储管理概念(一)―――Aix系统管理员实例LVM 使用的基本概念包括物理卷、卷组、物理分区、逻辑卷、逻辑分区、文件系统和原始设备。
下面介绍它们的一些特征:∙每个单独的磁盘驱动器是一个命名的物理卷 (PV),并具有诸如hdisk0 或 hdisk1 等名称。
∙一个或多个 PV 可以构成一个卷组 (VG)。
一个物理卷最多只能属于一个 VG。
∙不能将某个 PV 的一部分分配到一个 VG。
一个物理卷整体地分配到某个卷组。
∙即使物理卷属于不同的类型,例如 SCSI 或 SSA,也可以将它们分配到同一个卷组。
∙物理卷中的存储空间划分为物理分区 (PP)。
在属于同一个 VG 的所有磁盘上,物理分区的大小完全相同。
∙在每个卷组中,可以定义一个或多个逻辑卷 (LV)。
从用户的角度看,逻辑卷上存储的数据似乎是连续的,但是可以分散在同一个卷组中的不同物理卷上。
∙逻辑卷由一个或多个逻辑分区 (LP) 组成。
每个逻辑分区至少有一个对应的物理分区。
一个逻辑分区和一个物理分区始终具有相同的大小。
最多可以将数据的三个副本定位在不同的物理分区上。
通常,为了实现冗余,将存储相同数据的物理分区定位在不同的物理磁盘上。
∙逻辑卷中的数据可以按有组织的方式进行存储,并具有位于有目录中的文件的形式。
这种结构化和层次性的组织形式称为文件系统。
∙还可以将逻辑卷中的数据视为一个连续的字节串。
此类逻辑卷称为原始逻辑卷。
使用该数据以正确地访问和解释它是应用程序的责任。
∙卷组描述符区域 (VGDA) 是磁盘上的一个区域,其中包含有关该物理卷所在的卷组的信息。
它还包括有关属于该卷组的所有物理和逻辑卷的属性和状态的信息。
VGDA 中的信息由 LVM 命令使用和更新。
每个物理卷至少有一个 VGDA。
属于同一个卷组的所有磁盘的 VGDA 中的信息必须完全相同。
VGDA 的内部体系结构及其在磁盘上的位置取决于卷组的类型(原始、大容量或可扩展)。
∙卷组状态区域 (VGSA) 用于描述卷组中所有物理卷中的所有物理分区的状态。
AIX LVM基础结构
在学习AIX LVM基础结构的过程中,有一些心得,在此和大家一起交流学习的方式是基于od命令,直接查看相关设备文件的二进制代码,从而分析LVM基础结构,以及LVM高级命令的效果二、LVM配置信息保存位置LVM中的配置信息,比如VG、LV、FS保存在两个部分1)磁盘本身上的数据块中这部分可以通过低级LVM命令或者od命令直接查看2)ODM数据库中ODM数据库中的信息直接源于磁盘数据块,可以通过高级LVM命令或者ODM命令查看LVM命令会修改 1)和2)中的相关配置信息ODM和磁盘数据块中信息不一致时,可以通过相应的同步命令,根据磁盘数据块中的信息来更新ODM三、PV每个PV头部有一个保留区,主要保留PVID信息PV保留区如下:0000200 00c9 bbed 1c16 5948 0000 0000 0000 00000000220 0000 0000 0000 0000 0000 0000 0000 0000*注意:其中的 00c9 bbed 1c16 5948就是PVID当把磁盘设置为pv=yes时,会在保留区生成这样的PVID反之pv=clear时,则清除保留区中的PVID磁盘只有设置为pv=yes,有了PVID后,才能够继续下面后继LVM操作四、VGVG是由一个或者多个PV组成VG的信息保存在VGSA和VGDA中,当磁盘设置为pv=yes时,除了在PV保留区中写入PVID外。
另外保留部分空间给VGSA和VGDA需要注意的是,创建VG时的参数,如是否支持大VG,会影响分配给VGSA和VGDA的空间大小当创建VG的时候,向VGSA和VGDA空间里写入相应的参数根据VG中的PV数量,VGDA在PV上有一份或者两份,具体如下:PV数 1#PV 2#PV 3#PV1 VGDA数 22 VGDA数 2 13 VGDA数 1 1 1VGSA内容举例如下:十六进制格式0010000 4667 a0e6 2462 3f5d 0000 0000 0000 00000010010 0000 0000 0000 0000 0000 0000 0000 0000*0010fe0 0000 0000 0000 0000 0000 0000 0001 00000010ff0 0000 0000 0000 0000 4667 a0e6 2462 3f5dVGDA内容举例如下:十六进制格式0011000 4667 a33b 2aba 553c 00c2 2f2f 0000 4c000011010 0000 0113 04cc 9a47 0009 0100 001c 00020011020 0003 0832 0000 0001 0001 0000 0000 00000011030 0000 0832 0000 0000 0000 0000 0000 00000011040 0000 0000 0000 0000 0000 0000 0000 0000*ASCII字符格式0113200 h d 5 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0113210 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 *0113240 h d 6 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \00113250 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0*0113280 h d 8 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0113290 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0*01132c0 h d 4 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \001132d0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0*0113300 h d 2 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0113310 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0对比 lsvg的输出结果,可以看出来,VG所有信息都包括在了VGSA和VGDA中比如:0011000 4667 a33b 2aba 553c 00c2 2f2f 0000 4c000011010 0000 0113 04cc 9a47 0009 0100 001c 0002中的00c2 2f2f 0000 4c00 0000 0113 04cc 9a47即为VGIDVG中的LV名也包括在内所以ODM中的内容是源自于VGSA和VGDA对于exportvg来说,只是从ODM中删除了VG相关信息,但是用od查看hdiskX时,上述VGDA 信息仍然存在,因此importvg时,就根据VGDA信息把VG信息重新写入到ODM中五、LVVG下划分LV,用于FS或者做raw设备LV基本分配单位是逻辑块在每个LV的头部0号逻辑块作为LVCB,用于保存LV配置信息LVCB内容举例:ASCII代码0000000 A I X L V C B \0 \0 j f s \0 \0 \0 0000010 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0 0 c 2 2 f 0000030 2 f 0 0 0 0 4 c 0 0 0 0 0 0 0 1 0000040 1 3 \0 h d 1 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000050 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0*0000080 \0 \0 \0 T h u J u n 7 0 6 0000090 : 0 8 : 4 4 2 0 0 7 \n \0 \0 \0 \0 00000a0 \0 T h u J u n 7 0 6 : 0 00000b0 8 : 4 4 2 0 0 7 \n \0 \0 \0 \0 \0 2 00000c0 2 F 2 F 4 C 0 0 \0 y m c \0 y \000000d0 \0 001 \0 001 / h o m e \0 \0 \0 \0 \0 \0 \0 00000e0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0从中可以看出,LVCB中有mount点等相关信息LVCB被破坏后,可以用低级命令putlvcb来修复,或者直接通过编辑二进制文件来修复六、FSFS的配置信息保存在超级块中,每个FS有两个超级块主超级块在1号逻辑块,次超级块在31号逻辑块超级块内容举例:ASCII格式0001000 e 207 ! C \0 \0 \0 \0 \0 \0 @ \0 \0 \0 \0 003 0001010 \0 \b \0 \0 020 \0 \0 \0 / h o m e \0 / h 0001020 o m e \0 \0 \n \0 003 001 \0 \0 \0 F g ? ? 0001030 \0 \0 \0 001 \0 \0 002 \0 \0 \0 \b \0 \0 \0 \0 \0 0001040 \0 \0 \0 \0 \0 \f \0 \0 \0 \0 \0 F g ?025 ******* \0 \0 \0 \0 F g ? ? \0 \0 \0 \0 \0 \0 \0 \0 0001060 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0*0001c10 \0 \0 \0 \0 \0 \0 \0 \00001c18十六进制格式0001000 6587 2143 0000 0000 0000 4000 0000 00030001010 0008 0000 1000 0000 2f68 6f6d 6500 2f680001020 6f6d 6500 000a 0003 0100 0000 4667 a0f20001030 0000 0001 0000 0200 0000 0800 0000 00000001040 0000 0000 000c 2000 0000 0000 4667 a2150001050 0000 0000 4667 a1ae 0000 0000 0000 00000001060 0000 0000 0000 0000 0000 0000 0000 0000*0002000对比lsfs结果,同样可以大体看出超级块各个byte的定义注意:6587 2143是幻数,如果crfs是采用了默认参数,则幻数为 4321 8765如果主超级块被破坏,可以通过dd拷贝次超级块来修复,或者直接编辑二进制文件来修复FS被误删除后的恢复用rmfs误删除FS,实际上只是删除了LVCB中的信息,超级块中的信息不变,FS中的数据也不会变这样只要没有向这些空间写入新的数据,都可以做修复的方法是:按照原来的参数mklv,恢复LVCB中的信息,编辑/etc/filesystem后,就可以mount FS,数据不会丢失七、总结上面是我学习LVM的一点体会,主要用的命令如下:# od -x/c -N 64 /dev/hdisk1 +0200|more PV保留区# od -x/c /dev/hdisk1 +0x10000|more VGSA# od -x/c /dev/hdisk1 +0x11000|more 1# VGDA# od -x/c /dev/hdisk1 +0x118400|more 2 # VGDA# od –c/x /dev/myfs00 +0x1000 主超级块# od –cx /dev/myfs00 +0x1f000 次超级块建议大家在做LVM操作的时候,可以多用od查看设备文件二进制代码,这样可以更好地了解LVM命令执行的效果,对于LVM基础结构有更多的了解PVchdev -l hdisk7 -a pv=yes 给PV加上PVID(物理卷描述,是AIX种ODM和LVM用于识别PV 的描述序列号)chdev -l hdisk7 -a pv=clear清除PV上原有的PVIDlquerypv -h /dev/hdisk2 80 10查询某个PV的PVIDPVID的生成原理是:主板序列号+形成PV时的时间戳,PVID除了写入ODM库,在硬盘0扇区的头几个字节里,以及VGDA中都有写入PVID。
AIX学习笔记之存储管理LVPVVGPP
AIX 学习笔记之存储管理LV PV VG PP1.基本概念:PV 物理卷:普通的直接访问的存储设备,有固定的和可移动的之分,代表性的就是硬盘。
vg 卷组:AIX中最大的存储单位,一个卷组由一组物理硬盘组成,也就是由一个或多个物理卷组成。
pp 物理分区:是把物理卷划分成连续的大小相等的存储单位,一个卷组中的物理分区大小都相等。
lp 逻辑分区:适映射物理分区的逻辑单位,一个逻辑分区可以对应一个也可以对应多个物理分区。
lv 逻辑卷:是指卷组中由多个逻辑分区组成的集合,逻辑卷中的逻辑分区是连续的,但是对应的物理分区是不连续的,可以在一个磁盘上,也可以在不同的磁盘上。
fs 文件系统:是指在AIX系统中面向用户的存储空间。
一个逻辑卷只能创建一个文件系统,也就是说一个文件系统对应一个逻辑卷,如果删除逻辑卷也将删除文件系统。
2.存储结构:逻辑卷lv 不能被直接访问,是生设备(裸设备),逻辑卷上建文件系统,文件系统可以被用户访问,市熟设备。
文件系统里建目录,目录下建文件。
物理卷,卷组,物理分区,逻辑卷,逻辑分区,逻辑卷是面向操作系统的概念文件系统,目录,文件是面向用户的概念。
3.LVM的配置数据卷组描述区(VGDA):描述卷组中的所有物理卷和逻辑卷的对应关系卷组状态区(VGSA):记录卷组中物理卷和物理分区的状态信息,在卷组激活时,确定哪些物理分区可用逻辑卷控制块(LVCB):位于每个逻辑卷开头,包含逻辑卷的信息,占用数百个字节LVM管理命令就是对VGDA内容的更新,当一块硬盘变成PV时,这个硬盘开始保留一部分空间存放VGDA 信息,当把它加入卷组中时,开始将卷组信息写入VGDA区域,当把它从卷组删除时,也同时清除VGDA 数据,这个数据还存在于AIX系统的ODM库中,当导入一个卷组时,把VGDA信息写入ODM,导出时删除。
4.磁盘Quorum卷组的每一个物理卷至少包含着一份VGDA和VGSA。
当一个卷组只有一块硬盘时,这块硬盘存有两份VGDA和VGSA,当这个卷组由两块硬盘时,其中一块存有两份,另一块存有一份,当卷组由三块以上硬盘时,每块硬盘存有一份。
AIX 5L 磁盘性能优化之iostat、lvmstat、lslv、lspv 和 lsvg
AIX 5L 磁盘性能优化之iostat、lvmstat、lslv、lspv 和lsvg引言与其他子系统的优化工作不同,实际上在构建系统的体系结构设计阶段就应该开始进行磁盘I/O 优化。
尽管存在一些I/O 优化参数的虚拟内存等价项(ioo和lvmo),但是提高磁盘I/O 性能的最佳方法是正确地配置您的系统,而不是优化相关的参数。
与虚拟内存优化不同,在创建了逻辑卷并开始运行之后,要更改它们的组织结构会变得更加复杂,所以您通常只有一次机会正确地完成这项任务。
本文讨论了配置逻辑卷的方式,以及相对于物理磁盘应该将它们布置于何处,本文还介绍了用于监视您的逻辑卷的工具。
其中,大多数工具并不适合于长期趋势研究,并且是AIX 特定的工具,它们可以提供相关信息以便了解如何配置逻辑卷,以及是否针对您的环境对它们进行了优化。
本系列文章的第 1 部分介绍了iostat,但其中仅介绍了使用该工具来查看异步I/O 服务器。
第2 部分使用iostat 来监视您的磁盘,并向您介绍了它能够完成哪些工作以帮助您快速地确定I/O 瓶颈。
尽管iostat是通用的UNIX® 实用工具之一,并且它不是专门为AIX 而开发的,但实际上,对于快速地确定系统的运行情况,它是非常有用的。
更特定的AIX 逻辑卷命令可以帮助您更深入地研究逻辑卷,以帮助您真正地分析实际问题(如果存在任何问题)。
在使用这些工具之前,您必须清楚地了解您需要哪些信息,这一点是很重要的。
本文描述了相关的工具,并向您介绍了如何分析它们的输出,这将帮助您分析磁盘I/O 子系统。
逻辑卷和磁盘布置概述这个部分定义了逻辑卷管理器(Logical Volume Manager,LVM),并介绍了它的一些特性。
让我们深入地研究逻辑卷的概念,分析它们与提高磁盘I/O 使用率之间的关系,并通过定义和讨论intra-policy 和inter-policy 磁盘实践,从物理磁盘的角度介绍有关逻辑卷的布置。
AIX的磁盘与文件管理
AIX的磁盘与文件管理在了解AIX 处理文件系统的方式之前,最好先对LVM(逻辑卷管理)有一个基本的了解。
LVM 是一种与传统UNIX 分区策略完全不同的磁盘管理方法。
它的优点之一是允许动态地给一个文件系统分配更多的空间。
LVM 的组成要素有:物理卷(PV)、卷组(VG)、物理分区(PP)、逻辑卷(LV)和逻辑分区(LP)等。
物理卷:一个物理卷指一块硬盘。
卷组:卷组是可用物理硬盘的集合,可以逻辑地看成一块大硬盘。
一个卷组由一个或多个物理卷组成,最多可达32 个(AIX4.3.2 版本下该值已经增至128)。
物理分区:卷组中的物理卷划分成固定大小的块(缺省为4MB),这样的块称为物理分区。
逻辑卷:每个卷组中可以定义一个或多个逻辑卷,逻辑卷是位于物理分区上的信息集合(可以是一个文件系统、调页空间、日志或转储设备空间等)。
LVM:是Logical Volume Manager(逻辑卷管理)的简写,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组(volumegroup),形成一个存储池。
管理员可以在卷组上随意创建逻辑卷(logicalvolumes),并进一步在逻辑卷组上创建文件系统。
管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配。
且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
名词解释:物理卷:physical volume PV卷组:vlolume groap VG物理分区:physical partition PP逻辑卷:logical volume LV逻辑分区:logical partition LP。
aix高可用与容灾
基本技术介绍AIX LVM Mirror 本地存储高可用解决方案介绍Logical Volume Manager(LVM)是 AIX 上用于逻辑卷管理的软件。
LVM 本身提供 Logical Volume (LV)数据在多个 Physical Volume (PV)之间做数据镜像的功能,以达到存储的本地高可用性。
在 LVM Mirror 方案中写 I/O 与底层设备交互如下图所示。
图 1. LVM Mirror 方案架构当服务器发出写 I/O 时,该 I/O 在 Parallel 模式下会同时并行发送到两台存储设备上。
如上图中 Step 1, Step 2 和Step 1’, Step 2’。
只有当 Step 2 和Step 2’都完成时,一个写 I/O 才会被服务器认为完成。
在该解决方案中,当底层任一存储,即 PV,出现故障时,LVM 会自动将停止该 PV 上所有的 I/O 活动,并将相应读写切换到剩下的正常 PV 上。
整个切换过程在 LVM 层完成,所有 LV 在故障切换过程中状态保持在线,对应用层透明。
切换时间最低在 15 秒左右,甚至更短。
同城容灾解决方案介绍DS8000 Metro Mirror (MM)技术是一种满足 Recovery Point Object (RPO)为 0 的存储级同城容灾解决方案。
该方案中,数据通过存储底层的 I/O 同步复制到容灾站点来达到相应的容灾目的。
在 DS8000 MM 方案中写 I/O 与不同站点间DS8000 存储交互如下图所示。
图 2. DS8000 MM 方案架构当服务器发出写 I/O 时,首先该写 I/O 首先放往在生产站点主存储设备上;其次该写 I/O 由生产站点主存储发往灾备站点备存储;接着备存储发回写I/O 完成信息;最后主存储向服务端发送写 I/O 完成信息。
整个过程中,每个写I/O 保证会在生产和容灾站点间同步完成。
在该解决方案中,当生产站点发生灾难时,会触发站点切换场景,即生产站点所有设备宕机,灾备站点服务器和存储在容灾端被启用并提供服务。
LVM详解——精选推荐
LVM详解简述LVM Logical Volume Manager,中⽂⼀般翻译为 "逻辑卷管理",它是 Linux 下对磁盘分区进⾏管理的⼀种机制。
LVM利⽤Linux内核的device-mapper功能来实现存储系统的虚拟化(系统分区独⽴于底层硬件)。
LVM 是建⽴在磁盘分区和⽂件系统之间的⼀个逻辑层,++系统管理员可以利⽤ LVM 在不重新对磁盘分区的情况下动态的调整分区的⼤⼩++。
如果系统新增了⼀块硬盘,通过LVM就可以将新增的硬盘空间直接扩展到原来的磁盘分区上。
LVM 的优点:⽂件系统可以跨多个磁盘,因此⼤⼩不再受物理磁盘的限制。
可以在系统运⾏状态下动态地扩展⽂件系统⼤⼩。
可以以镜像的⽅式冗余重要数据到多个物理磁盘上。
可以很⽅便地导出整个卷组,并导⼊到另外⼀台机器上。
LVM 缺点:在从卷组中移除⼀个磁盘的时候必须使⽤ reducevg 命令(这个命令要求root权限,并且不允许在快照卷组中使⽤)。
当卷组中的⼀个磁盘损坏时,整个卷组都会受影响。
因为增加了⼀个逻辑层,存储的性能会受影响。
LVM相关概念PV(Physical Volume):物理卷硬盘分区后但还未格式化为⽂件系统,可使⽤pvcreate命令将分区创建为PV,其对应的system ID为8e即LVM格式所对应的系统标识符。
VG(Volume Group):卷组将多个PV组合起来,使⽤vgcreate创建卷组,这样卷组就可以包含多个PV,相当于重新组合多个分区后所得到的磁盘。
虽然VG是组合了多个PV,但创建VG时会将VG所有的空间根据指定的PE⼤⼩划分为多个PE,在LVM模式中存储都是以PE为单元,类似于⽂件系统中的BLOCK。
PE(Physical Extent):物理块PE是VG的存储单元,实际的数据都是存储在PE中LV(Logical Volume):逻辑卷VG相当于组合的多个硬盘,则LV相当于分区,只不过该分区是通过VG进⾏划分的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
背景:一个关于数据丢失后的恢复问题,在LU中引起热烈的讨论,在相关的讨论帖中,qintl对LVM底层数据结构做了详细而精彩的演讲,受益匪浅。
现将qintl 主要讲稿内容整理如下,以便大家阅读。
相关讨论帖地址:/viewthread.php?tid=76187&extra=page%3D5%26amp%3Bfilter%3Ddigest/viewthread.php?tid=75851&highlight=%B6%AA%CA%A7硬盘的PVID一个硬盘要被操作系统正常使用,必须先分配PVID,硬盘的PVID在以后加入某个VG、LV都是要用到的。
分配PVID的过程就像windows下的初始化硬盘操作,就是把硬盘0扇区改写成符合操作系统使用的格式,只改写0扇区,别的地方没有任何改变。
用lspv命令就可以知道哪些硬盘还没有分配PVID,用#chdev -l hdiskX -a pv=yes就可以给硬盘分配PVID,当一个硬盘在操作系统中已经有了PVID,#chdev -l hdiskX -a pv=yes命令不会改变原来的PVID。
如果要修改某块盘的PVID,我们要先清除掉原先的PVID,然后再生成,可以用以下命令:#chdev -l hdiskX -a pv=clear#chdev -l hdiskX -a pv=yeschinadns的Blog有对PVID的详细介绍:/u/16252/showart_94788.html我们从底层观察chdev -l hdiskX -a pv=yes对硬盘0扇区的改动:# lspvhdisk0 003752149a0b2b91 rootvghdisk10 none Nonehdisk11 003752146ff979f4 Nonehdisk12 003752146ff9a31b Nonehdisk10没有分配PVID,我们看看0扇区的十六进制代码:# lquerypv -h /dev/hdisk10 0 200 (结果:第一列是序号,后4列是十六进制数据)00000000 C9C2D4C1 00000000 00000000 00000000 |................|00000010 00000000 00000000 00000000 00000000 |................|00000020 00000000 00000000 00000000 00000000 |................|00000030 00000000 00000000 00000000 00000000 |................|00000040 00000000 00000000 00000000 00000000 |................|00000050 00000000 00000000 00000000 00000000 |................|00000060 00000000 00000000 00000000 00000000 |................|00000070 00000000 00000000 00000000 00000000 |................|00000080 00000000 00000000 00000000 00000000 |................|00000090 00000000 00000000 00000000 00000000 |................|000000A0 00000000 00000000 00000000 00000000 |................|000000B0 00000000 00000000 00000000 00000000 |................|000000C0 00000000 00000000 00000000 00000000 |................|000000D0 00000000 00000000 00000000 00000000 |................|000000E0 00000000 00000000 00000000 00000000 |................|000000F0 00000000 00000000 00000000 00000000 |................|00000100 00000000 00000000 00000000 00000000 |................|00000110 00000000 00000000 00000000 00000000 |................|00000120 00000000 00000000 00000000 00000000 |................|00000130 00000000 00000000 00000000 00000000 |................|00000140 00000000 00000000 00000000 00000000 |................|00000150 00000000 00000000 00000000 00000000 |................|00000160 00000000 00000000 00000000 00000000 |................|00000170 00000000 00000000 00000000 00000000 |................|00000180 00000000 00000000 00000000 00000000 |................|00000190 00000000 00000000 00000000 00000000 |................|000001A0 00000000 00000000 00000000 00000000 |................|000001B0 00000000 00000000 00000000 00000000 |................|000001C0 00000000 00000000 00000000 00000000 |................|000001D0 00000000 00000000 00000000 00000000 |................|000001E0 00000000 00000000 00000000 00000000 |................|000001F0 00000000 00000000 00000000 00000000 |................|# chdev -l hdisk10 -a pv=yeshdisk10 changed# lspvhdisk0 003752149a0b2b91 rootvghdisk10 0037521474170251 Nonehdisk11 003752146ff979f4 Nonehdisk12 003752146ff9a31b None# lquerypv -h /dev/hdisk10 0 20000000000 C9C2D4C1 00000000 00000000 00000000 |................| 00000010 00000000 00000000 00000000 00000000 |................| 00000020 00000000 00000000 00000000 00000000 |................| 00000030 00000000 00000000 00000000 00000000 |................| 00000040 00000000 00000000 00000000 00000000 |................| 00000050 00000000 00000000 00000000 00000000 |................| 00000060 00000000 00000000 00000000 00000000 |................| 00000070 00000000 00000000 00000000 00000000 |................| 00000080 00375214 74170251 00000000 00000000 |.7R.t..Q........| 00000090 00000000 00000000 00000000 00000000 |................| 000000A0 00000000 00000000 00000000 00000000 |................| 000000B0 00000000 00000000 00000000 00000000 |................| 000000C0 00000000 00000000 00000000 00000000 |................| 000000D0 00000000 00000000 00000000 00000000 |................| 000000E0 00000000 00000000 00000000 00000000 |................| 000000F0 00000000 00000000 00000000 00000000 |................| 00000100 00000000 00000000 00000000 00000000 |................| 00000110 00000000 00000000 00000000 00000000 |................| 00000120 00000000 00000000 00000000 00000000 |................| 00000130 00000000 00000000 00000000 00000000 |................| 00000140 00000000 00000000 00000000 00000000 |................| 00000150 00000000 00000000 00000000 00000000 |................| 00000160 00000000 00000000 00000000 00000000 |................| 00000170 00000000 00000000 00000000 00000000 |................| 00000180 00000000 00000000 00000000 00000000 |................| 00000190 00000000 00000000 00000000 00000000 |................| 000001A0 00000000 00000000 00000000 00000000 |................|000001B0 00000000 00000000 00000000 00000000 |................|000001C0 00000000 00000000 00000000 00000000 |................|000001D0 00000000 00000000 00000000 00000000 |................|000001E0 00000000 00000000 00000000 00000000 |................|000001F0 00000000 00000000 00000000 00000000 |................|这样我们就知道chdev -l hdisk10 -a pv=yes更改了哪些数据了。