故障背景:客户需要把AIX 5.3.10上的一些VG做两台存储之间的LVM级别的Mirror,存储使用的是两台EMC DMX3,但是由于两套SAN存储之前是使用EMC的软件做存储级别的Mirror,所以就出现了一些匪夷所思的问题。

需要做LVM Mirror的VG名叫vga,其所拥有的PV为hdiskpower0和hdiskpower1,新存储划分过来的两个新LUN系统识别为hdiskpower15和hdiskpower16。现有的最新的生产数据是放在hdiskpower0和1里面,而hdiskpower15和16对应的LUN是在2013年的时候就停止了存储层面镜像,所以生产数据是停留到2013年的。

存储Mapping了新LUN,系统做了cfgmgr之后,发现hdiskpower15和hdiskpower0的PVID完全一样,hdiskpower16和hdiskpower1的PVID完全一样,15和16也属于vga,状态都为active。

对于AIX的LVM来讲,PVID一样意味着系统将会把它识别为同一块盘,但由于hdiskpower0/15以及1/16在此前是做了存储层面的镜像,所以会出现PVID一样的情况,但是实际上这种现象是不正常的,它会造成系统的ODM库对vga的信息识别混乱。

故障发生在重启LPAR分区之后,按照正常的起HA的流程,一切都正常。应用启动完之后,应用开发人员在检查应用的时候,发现vga里面的生产LV的文件系统里面的数据最新的只是到2013年,也就是说近三年的生产数据都不见了!

此时有怀疑过激活的vga使用的是hdiskpower15和16(因为4个PV的状态都是显示为active),使用lsvg
–p vga命令查看vga的PV,结果显示为hdiskpower0和1。但是这个地方是不正常的,因为由于0/15和1/16之前是存储层面完全镜像,所以VGDA信息里面存的都是hdiskpower0/1,也就是说,即使系统激活vga使用的是hdiskpower15/16,它读到的VGDA里面也会认为hdiskpower15是hdiskpower0,hdiskpower16是hdiskpower1,所以lsvg –p vga显示的也是0/1,但是由于生产数据时间对不上,很明显vga激活时使用的是旧的存储数据,但是系统会误认为激活的是hdiskpower0/1,因为ODM库里面根本就没有hdiskpower15/16的信息。

于是varyoffvg vga之后手工把hdiskpower15/16做rmdev –dl操作,删除这两个PV以及对应的hdiskX路径盘,此时varyonvg vga,再挂载生产LV的文件系统,发现最新的数据是今天的了。

但新问题又出现了,lsvg
–l vga查看LV的时候发现,有两个重要的生产LV的文件系统,类型显示为???,正常情况下类型应该显示的是jfs2。尝试手工mount那两个LV对应的文件系统,系统提示LV找不到。

由于怀疑到可能是VG的ODM信息混乱,在二线指导下,把vga先exportvg,再importvg回来,那两个LV的状态就变成jfs2的正常状态了。于是正常起HA,检查应用一切正常。

后面得知,那两个重要的生产LV的文件系统是在2013年之后才创建的,也就是说还是ODM信息混乱了,导致系统找不到那两个LV。Export再Import操作,是为了同步系统ODM库里面vga的信息。

最后,还是要把hdiskpower15和16处理一下,因为现在vga是激活状态,15和16影响不到生产数据,但是如果不把PVID干掉,下次重启系统自动激活vga的时候,还是会出现激活错误的PV这种情况。使用如下命令把15和16的PVID清掉:

chdev –l hdiskpower15 –a
pv=clear

chdev –l hdiskpower16 –a
pv=clear

苦逼的系统运维啊,各种锅各种背,唉。

还好生产数据没丢,要生产数据丢了就得死翘翘了。

一次AIX LVM PV重复PVID故障处理记录的更多相关文章

  1. AIX LVM学习笔记

    LVM: LOGIC VOLUMN MANAGEMENT (逻辑卷管理器) 通过将数据在存储空间的 逻辑视图 与 实际的物理磁盘 之间进行映射,来控制磁盘资源.实现方式是在传统的物理设备驱动层之上加载 ...

  2. AIX中PV,VG,LV及FS常用相关命令

    1.PV常用相关命令 1)lsdev:列出ODM(Object Data Manager)中的设备. 2)chdev:修改一个AIX设备的属性. 3)mkdev:创建一个AIX设备. 4)chpv:修 ...

  3. [SQL] SQL 查出一张表中重复的所有记录

    在A表中存在一个字段“AccountId”,而且不同记录之间的“AccountId”值有可能会相同,现在就是需要查询出在该表中的各记录之间,“AccountId”值存在重复的项,这里count记录该字 ...

  4. 使用aggregate在MongoDB中查找重复的数据记录

    我们知道,MongoDB属于文档型数据库,其存储的文档类型都是JSON对象.正是由于这一特性,我们在Node.js中会经常使用MongoDB进行数据的存取.但由于Node.js是异步执行的,这就导致我 ...

  5. 重复ID的记录,只显示其中1条

    --重复ID的记录,只显示其中1条 --生成原始表 select * into #tempTable from ( select '1' as id ,'a' as name union all se ...

  6. AIX LVM 常用命令记录

    针对物理卷的操作指令 lsdev--列出ODM中的设备 chdev--修改一个AIX设备的属性 mkdev--创建一个AIX设备 chpv--修改物理卷的状态和属性 lspv--查看AIX中物理卷的相 ...

  7. LVM基础详细说明及动态扩容lvm逻辑卷的操作记录

    LVM概念:---------------------------------------------------------------------------------------------- ...

  8. sql 查出一张表中重复的所有记录数据

    1.在面试的时候碰到一个 问题,就是让写一张表中有id和name 两个字段,查询出name重复的所有数据,现在列下: select * from xi a where (a.username) in ...

  9. LVM 创建分区扩展分区记录

    LVM 原理   图片来自百度百科   测试环境centOS 7                 LVM version:     2.02.115(2)-RHEL7 (2015-01-28)     ...

随机推荐

  1. Android ScrollView 滚动到顶部

    有时候使用ScrollView,里边控件比较多的时候,打开界面,会滑到底部,如果要设置滑动到顶部,一般有两种方法 1.使用fullScrol(),scrollView.fullScroll(Scrol ...

  2. Android tablayout增加选择tab 的事件.

    tablayout在点击或者滑动的时候会触发监听事件  , 当你调用这个方法的时候 会触发事件 mTablayout.addOnTabSelectedListener(new TabLayout.On ...

  3. UVa 10943 How do you add?【递推】

    题意:给出n,k,问恰好有k个不超过n的数的和为n的方案数有多少 可以隔板法来做 现在有n个小球放到k个盒子里面,盒子可以为空 那么就是n-k+1个缝隙,放上k-1个隔板(k-1个隔板就分成了k份) ...

  4. 【BZOJ4940】【YNOI2016】这是我自己的发明

    阅读此篇文章前请先跟我大喊三声:dllxl!dllxl!dllxl! 咳咳. 题意: Description 给一个树,n 个点,有点权,初始根是 1. m 个操作,每次操作: 1. 将树根换为 x. ...

  5. Manacher 求最长回文子串算法

    Manacher算法,是由一个叫Manacher的人在1975年发明的,可以在$O(n)$的时间复杂度里求出一个字符串中的最长回文子串. 例如这两个回文串“level”.“noon”,Manacher ...

  6. Maven命令下载源码和javadocs

    1:Maven命令下载源码和javadocs 当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的 ...

  7. 嵌入式(C)笔试题

    1 读程序段,回答问题 (a) int main(int argc,char *argv[]) { int c=9,d=0; c=c++%5; d=c; printf("d=%d\n&quo ...

  8. CSDN 轻松周赛赛题:能否被8整除

    轻松周赛赛题:能否被8整除 题目详情 给定一个非负整数,问能否重排它的全部数字,使得重排后的数能被8整除. 输入格式: 多组数据,每组数据是一个非负整数.非负整数的位数不超过10000位. 输出格式 ...

  9. java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized

    Exception in thread "main" java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä ...

  10. APK反编译去广告大揭秘

    APK反编译去广告 具体步骤: 1.下载 apktool 下载地址:https://code.google.com/p/android-apktool/downloads/list 2.通过apkto ...