免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11590 | 回复: 18
打印 上一主题 下一主题

[新手入门] 关于AIX PVID的几点疑问 [复制链接]

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-28 11:07 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2014-07-28 11:07 |只看该作者
1. cfgmgr 命令什么情况下会为硬盘生成PVID?分以下几种情况:
a. 新加入的硬盘,本身没有PVID。
b. 新加入的硬盘,但是已经有PVID。
c. 已经识别过的硬盘,但是已使用pv=clear清除PVID。
d. 已经识别过的硬盘,并且已经分配了PVID。

都不会。
a,cfgmgr对于pvid什么都不做,lspv会看到none
b,一半正确,cfgmgr会读出pvid,放到odm里,lspv可以看到读出的pvid但是不会“生成”新的pvid
c,等同a,none
d,什么都不做,但由于已经有了pvid,所以看到的还是旧的pvid


2. 以下是关于PVID的一段描述:
To make a disk into a physical volume, the PVID is placed onto the disk. ThePVID is an combination of the machine's serial number (from the systems EPROMs) and the date the PVID was generated. This combination ensures the extremely low chance of PVIDs being duplicated. When the system is booted, the disk configurator looks at the PVID residing on the disk and compares it with an entry in the ODM. If an entry is found, then the disk is given the hdiskx number in the ODM that is associated with the PVID. If there is no matching entry, then the next name in the pool of 'free' hdisk names is allocated to the physical volume.

问题:
a. 对于没有PVID的硬盘(或者使用pv=clear清除了PVID),如果硬盘在ODM中已经有了定义,但是系统重启后由于无法根据PVID在ODM中找到匹配的记录,是不是会导致系统重新分配新的名字给硬盘呢?

不会。这时候的磁盘对应不是根据pvid,是根据scsi id,lun id和vpd信息。


b. 对于没有PVID的硬盘(或者使用pv=clear清除了PVID),如果硬盘在ODM中已经有了定义,重启时会执行cfgmgr,那么cfgmgr会对硬盘重新分配PVID吗?如果会的话那之前清除PVID的操作不就白费力气了?

不会。

c. 没有PVID的情况下系统怎么将硬盘设备和ODM中的定义联系起来呢?

chdev .... pv=yes

3. 下面是 Oracle ASM 的一段描述:

This note will give the steps to clear the PVID of these ASM Disks.
Solution When the PVID is set to a disk in a volume group, the PVID is stored in two locations. In Physical disk header ( within first 4K )and in AIX's system object database, called ODM ( Object Data Manager ). When the diskgroup is created, the disk header information of PVID is overwritten. However, with reboot the OS, from ODM, AIX might try to restore the PVID information onto the disk header, there by destroying the ASM metadata. So we need to run the following commands to update the ODM

意思是如果disk header的PVID被清除了,但是ODM中还存在PVID的话,那系统重启时会将PVID从ODM中还原到disk header,我的疑问是disk header的PVID都没了,系统是根据什么信息将硬盘设备和ODM中的定义联系起来的呢?

不会,aix没有从odm回写磁盘的动作。但由于也没有更新odm中pvid的动作,所以如果不是通过aix chdev清的pvid,lspv看到的还是旧的pvid,虽然磁盘上的pvid已经没了。

4. mkdev和cfgmgr都会对设备进行定义和配置,那么mkdev会和cfgmgr一样为硬盘设备生成PVID吗?

都不会,只有chdev .... pv=yes会新写pvid,同时同步odm中的pvid信息

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
3 [报告]
发表于 2014-07-29 11:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2014-07-30 03:29 |只看该作者
2. 不是,对应物理磁盘和hdiskx永远跟pvid没关系,只有对应hdiskx和vg才用到pvid

3. 当然可能不一致,如果你把磁盘从一个系统挪到另一个系统。当然vg就认不出该pv了

当然不能创建,而且也不可能创建,因为你必须指定系统已经有驱动的设备类型,没有驱动的根本没有类型对应,创建不了
有没有硬件无所谓,创建只是定义阶段,只有在configure阶段才需要硬件
当然存在对应的设备文件,已经defined啦

论坛徽章:
0
5 [报告]
发表于 2014-07-30 03:29 |只看该作者
2. 不是,对应物理磁盘和hdiskx永远跟pvid没关系,只有对应hdiskx和vg才用到pvid

3. 当然可能不一致,如果你把磁盘从一个系统挪到另一个系统。当然vg就认不出该pv了

当然不能创建,而且也不可能创建,因为你必须指定系统已经有驱动的设备类型,没有驱动的根本没有类型对应,创建不了
有没有硬件无所谓,创建只是定义阶段,只有在configure阶段才需要硬件
当然存在对应的设备文件,已经defined啦

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
6 [报告]
发表于 2014-07-30 10:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2014-07-30 21:36 |只看该作者
》》系统启动时对每一个扫描到的设备都会去查找ODM中是否已经有这个设备的定义,如果没有就当做新的设备在ODM中创建该设备的定义,我想问的就是系统是根据什么信息发现ODM是否有该设备的定义呢?
根据scsi id, lunid和vpd,系统根据一些规则从lun id和vpd合成uuid,uuid相同就是同一磁盘,不同就是不同的。相同磁盘不同的scsi id或者parent等等就是不同的path

》》其实我想问的是如果一个硬盘的disk header的PVID被清除了(VGDA没有被清除),但是ODM中还存在该硬盘的PVID,那么VG还能认出该disk么?
看清除前磁盘的状态。如果磁盘已经被varyon,只要不做和vg结构有关的操作,甚至只要不varyoffvg,什么事情都不会发生。但varyoffvg之后,就varyon不起来的,会说pv missing的

》》mkdev在不加-d的情况下也会包含configure阶段的吧,此时是不是会报错?
你说的是创建啊,没说mkdev,mkdev当然可能包括configure阶段了,如果设备是defined的,再mkdev就做configure了。

》》如果仅仅定义了设备文件(比如硬盘设备文件hdisk5),那么是否下一个连进来的硬盘就叫hdisk5呢?这个设备文件和接进来的设备怎么关联起来?
肯定不会,因为hdisk5被占用了,除非你创建了hdisk5全套的定义,包括UUID,而且和新盘恰好一样。关联磁盘靠UUID,一致了就当一个盘。

》》另外如果一个硬盘设备hdisk2,我把它拔下来再插回去,那系统怎么知道这个硬盘设备就是之前定义的hdisk2而不是hdisk3呢?
UUID相同。


》》我理解的defined应该指的是在ODM中已经定义,而不是已经定义设备文件吧?
包括设备文件,当然是由驱动程序什么时候创建/dev下文件,如果是系统自动定义,会走全套的过程,设备文件就有了,你自己定义,相当于分解动作,那就没了。无论如何在驱动configure的过程中要做的一步是检查设备文件,如果有,就验证,如果没有,就创建。

》》另外如果一个设备的状态是defined,那接入该设备后,设备的状态是会自动变为available,还是需要手动执行mkdev -l或cfgmgr命令才行?
configure过程中的一步是把状态变available
mkdev和cfgmgr中都会通知驱动执行configure的。至于是否自动,如果aix后台有个进程定时刷新设备,就自动了,当前看是没有这样的东西,要显式执行以下什么。




pv missing

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
8 [报告]
发表于 2014-07-31 18:40 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
9 [报告]
发表于 2014-08-02 09:24 |只看该作者
》》为什么会用到lun id来生成uuid呢?我感觉lun id和parent、scsi id一样都只是设备的连接位置信息(path)吧,和识别是否同一个磁盘有关系吗?
lun id可能不会变,scsi id是随卡的,会变。说lun id不会变要看是谁提供的lun id,如果普通scsi卡直接连磁盘jbod,lun id由scsi卡本身控制,换了卡当然lun id就变了。一般这种情况都是在磁盘上跳线,跳多少就是多少,具体情况跟磁盘和卡本身有关。但如果lun是raid array里面给出来的,完全就是array磁盘系统提供的虚拟号,只要磁盘系统没变,lun id是不会变的。

》》如果同一磁盘的path变了(比如换到另外一个scsi接口或者scsi总线),那么设备名称会变吗?
普通scsi卡连jbod会变,变成新设备了,没办法聚合path,但只要驱动支持,由于lun id没变,通过同样规则(驱动提供的)得到的uuid一样,aix自动将其认为另一个路径,设备名不变,但旧path变成missing,认到新path。这也是为什么有些非ibm磁盘认到多个盘的原因,由于驱动不支持,根据ibm default驱动识别的uuid不同,那就不是一个盘,尽管可能pvid相同,但这时候没人看pvid,只认uuid

》》在linux中使用devfs管理设备时设备名是不固定的,会根据内核加载设备驱动的顺序而改变,所以需要用到udev来固定设备名称。那么在AIX中对于一个设备来说设备名是固定的么(假如设备不更改PATH)?我的理解是由于设备名会存放在ODM中,所以系统如果在ODM中找到该设备,就会沿用原来的设备名,所以应该是固定的,不过这只是我的猜测。

odm存放设备名和uuid对应关系,uuid相同,就对上,不同,就认为是新设备。

》》如果使用mkdev执行define+configure,并且此时没有连接实际的设备,此时mkdev命令可以成功执行吗?在configure阶段会不会报错?
define没问题,cfg的时候当然报错,我不知道是否回退define,还是留着define,没式过,估计会留着define的设备。

》》你说的全套定义是不是指这样:
mkdev -l hdisk5 -c disk -t 160mb -s scsi -p scsi0 -w 6,1 -d
这样创建设备文件后,如果硬盘接进来后系统发现scsi0上该设备的uuid(包括scsi_id、lun_id和vpd)和创建的设备文件匹配,就会将这块硬盘当做hdisk5?但是mkdev创建设备定义时并没有指定vpd的信息啊?
mkdev创建硬盘设备文件时需要指定硬盘的scsi_id和lun_id,请问这两个属性是怎么确定的?

不同的驱动最终效果不一样,没有统一标准,关键看驱动怎么处理。我见到的大部分情况都是如果发现有别的设备名对应于同一设备,则把之前的删掉,用新的。如果之前的设备busy,则当命令失败。

》》这里有点疑惑,根据你之前的说法“当然存在对应的设备文件,已经defined啦”,说明defined阶段会创建设备文件,但是这里又说configure过程会创建设备文件,那究竟设备文件是在那个阶段创建的呢?

还是根据驱动不同来决定,通常是cfg的时候才去判断/dev/下的设备是否存在或者新生成。如果以前说的不确切,以现在为准。但还是那句话,驱动是人写的,驱动愿意怎么做,结果就是怎样。aix的标准是在cfg的时候检查/生成/dev下的设备名。


》》mkdev加-d选项只会define设备,不加-d选项则是define+configure设备,那mkdev有只configure设备的选项吗?是 mkdev -l 吗?


》》能简单说说设备在define和configure阶段都分别做什么动作吗?
参考aix的手册,有一本kernel extension guide,写得很清楚,但仅仅是概念。

》》如果我将设备拔出后,对应的设备文件会删除吗?
当然不会,aix没有后台即插即用的进程进行动态设备管理,但如果通过hmc或者系统的管理界面进行热插拔操作,则执行过程中有可能(仅仅是有可能)自动做了相应处理,其中包括删设备。

》》像CuDv, CuAt, CuVPD等信息是在define还是configure阶段导入ODM的?
define要用CuDv, CuAt
cfg过程三个都需要

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
10 [报告]
发表于 2014-08-02 18:00 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP