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 intervel之类的,这些参数大都市性能影响。当然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的软件 容灾啊,备份啊之类的
给你分享一篇orian的文章