Disk is Disk

复杂度3
机密度4

最后更新时间2021/04/15

AIX中的磁盘怎么成为磁盘的?驱动都干了什么?为什么那是hdisk0而不是hdisk1?为什么写进hdiskpower而不是vpath?

磁盘之所以成为磁盘,很简单,驱动搞的鬼。但为啥aix知道这是hds的磁盘不是ibm的?其实简单得不得了。

首先,aix去query 磁盘vpd,然后根据关键字filter,每种磁盘驱动有自己特定的关键字。同样,也是根据关键字进行mpio合并的。通过两个不同path得到的磁盘的uuid相同,所有uuid相同的都是一个磁盘。磁盘有多少参数?很多。

path类 parent,scsi id, uuid。这3个参数确定了是否是同一个磁盘,是否是同一条path,经常看到的path missing之类的错误,就是parent,scsi id和uuid对不上了。但是有意思的是uuid并不是总能被检查到,例如刚起机引导的时候,sms和boot image似乎都不进行uuid检查,所以只要parent和scsi id相同,即使磁盘换了,系统也不管。常见的552, 554之类的错误就是这个问题的间接后果。经过vio处理,经常会导致parent, scsi id被更改,可是uuid不变,启动的时候parent, scsi id变幻会引起aix找不到路径(但已经到start kernel之后才会出现),于是552, 554错误就来了。解决办法。。。嘿嘿,我不告诉你。

驱动参数类,这一类用于控制磁盘访问特性,什么reserve policy, queue depth, health check interval之类的,这些参数大都市性能影响。当然reserve policy也是搞怪锁盘的捣蛋鬼。

访问类。hdiskx, major/minor number /dev/hdiskx,这几个东西任何一个改变,都会导致磁盘访问走错了路,访问到别的地方。当然,这些是逻辑的,物理上还是path类是关键的。因此,path类不能改,而访问类随便改。当然,要注意一致性,也就是大家要match,否则就出错了。另外一个有趣的事情是更改这些参数纪录(odm, /dev…)不会影响到当时的磁盘访问,因为驱动已经把这些参数“读”到内存中了,只有在chdev, cfgmgr之类命令执行的时候,才可能让驱动去刷新,这就给了大家机会,什么机会呢?恶搞硬盘。例如换个hdisk号,更改排列顺序。这本来是雕虫小技,没啥用,可在有些变态的地方,这些技术就是神乎其技,大有作为的冬冬了。

应用程序认磁盘,认的是/dev/hdiskx -> major / minor number
驱动程序认磁盘,认的是uuid之类的vpd,而访问路径认的是parent和scsi id
sms认磁盘认的是什么?估计也是uuid

可以做的简单事情:
更改盘号
第三方磁盘,让aix支持
磁盘经由虚拟化设备迁移

复杂一点:
自己做个mpio的软件
容灾啊,备份啊之类的

磁盘也是设备,而设备的所有的秘密都在uniquetype

uniquetype分为3段,第一段是设备类型,如果是disk,那就是磁盘,如果是apple,那就是苹果;第二段是父设备类型;第三段是自己的类型。

也就是说,无论你的磁盘叫什么名字,powerdisk也好,vpath也罢,真也好假也罢,只要其类型是disk/xxxx/xxxx,则aix就把他认为是磁盘,而会在lspv中显示出来。当然,还有另外一个控制,也就是status,如果status不是available,也不会显示的。

其他一些辅助的参数没有什么特别大的用处,都是用来给驱动作为初始化参数,例如queue_depth等等,当然,还有一些给操作使用,如pvid的纪录,尽管磁盘本身有这个信息,操作系统不会每次都去读此盘,它仅仅从odm取去。这里面也就存在了一种不一致的可能:只有在(首次)cfgmgr或chdev -l hdiskx -a pv=yes/clear才会取、清pvid,如果在这之后,pvid绕过当前操作系统发生了变化,则odm中不会更新,也就开始乱套了。

lsdev要求至少要有一个设备的entry
lsattr要求设备属性的entry,多少不限
lspv要求有处于available状态的设备的entry,再加上pvid entry,即使没有pvid,也要一个空的entry

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ensighine

如需特定专题,踢我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值