linux卷什么状态失败,linux lvm卷的错误解决方法

一、基本知识:

1、vgda

VGDA位于每个物理卷的开头,它包含所有属于本VG的LV和PV的信息.VGDA被几乎所有的LVM命令更新.VGDA产生每个VG的自述.AIX可以读取每个磁

盘的VGDA,从VGDA中,可以获知哪些PV和LV属于这个卷组.每个盘至少包含一个VGDA,时间的变化很重要,VGDA中的时间戳用于确定哪个VGDA正确地

反映了VG的状态.如果VG中一个盘出错,VGDA可能无法同步磁盘,这样磁盘上的VGDA就无法在磁盘不运行的时候更新.所以需要一种方法来更新

VGDA刚在线的磁盘,这就是处理进程要做的.

当磁盘被创建为一个PV(以mkdev命令)的时候,VGDA也被创建,这时会在盘开始保留一段空间给VGDA.当PV被分派到一个VG(用mkvg或extendvg)的

时候实际的VG信息就被写到VGDA中去.当一个PV从VG中删除的时候(用reducevg),VG信息也从VGDA中删除.

2、odm中的内容来自vgda。Matters have not improved, as a second lsvg would confirm. We think

exportvg only references the ODM. We also think lsvg only references the

ODM.(我们要知道lslv和lsvg是用odm来取得信息的)

3、exportvg和importvg

exportvg只是删除原来的vg的odm的信息,在pv上面仍然保留了vgsa和vgda信息,importvg的时候导回来。但是也有exportvg出错,因为有可能

odm损坏而无法清楚。

4、我们在做lvm操作的时候能用高级命令,就不要用低级命令了。

例如下面pvid出现异常的情况,使用chpvid这个高级命令

# varyonvg workvg

PV Status: hdisk5 00017d372f1de834 PVACTIVE

hdisk6 0000000000000000 INVPVID

00017d372f67da78 NAMIDMTCH

varyonvg: Volume group workvg is varied on.

# chpvid 00017d372f67da78 hdisk6

# varyoffvg workvg

# varyonvg workvg

#

(repair any damage if exportvg was run)

# mount /workfs

$ ls /workfs

fs_ok lost+found

#

产生lvm高级命令的实际运行情况,因为lvm大多数高级命令是脚本程序,用sh -xv来追踪lvm命令的过程。

二、问题解决

1、odm坏了,怎么解决:

直接用高级命令解决

redefinevg -d hdisk_name vg_name

synclvodm -P -v vgname

有什么区别。

synclvodm 是同步设备配置数据裤命令

-l 参数是逻辑卷。-p 是物理卷,-v是卷组

系统故障可能导致设备配置数据库(odm)变得与lvm不一致。

一般错误消息为 0516-322 或0516-306。

这个时候主要解决的问题是odm和vgsa不一致,synclvodm用vgsa的东西同步到odm中能够解决一定的问题。

当这个时候问题仍然等不到解决,可以exportvg后importvg中就可以解决大部分这个问题。(所有的这些问题的假设是odm坏了)

2、如果vgsa坏了,怎么解决

------------------------------------------------------------------

一个实例

-------------------------------------------------------------------

由于操作失误(chdev -l hdiskx -a pv=yes) 使得 hdiskx 的PVID发生改变, 硬盘上的内容尽管没被破坏,但由于与VGDA区的描述不一致,造

成卷组无法访问, 该怎么办?

解答 可用recreatevg命令来重新创建一内容相同的卷组, 以达到修复的目的。

1.首先将原卷组的定义从系统的ODM库中删除:

# exportvg vgname

2. 检查硬盘上VGDA 区的信息,从中得到有关逻辑卷的名称及定义:

如:

#lqueryvg -Atp hdisk2

Max LVs: ------256

PP Size: ------26

Free PPs: -----538

LV count: -----2

PV count: -----1

Total VGDAs: --2

Conc Allowed --0

MAX PPs per ---1016

MAX PVs: ------32

Conc Autovar --0

Varied on Co --0

Logical: ------0003f62a00004c00000000f52f1737c5.1 --datalv1 1

---------------0003f62a00004c00000000f52f1737c5.2 --datalv2 1

Physical: -----0003f62a2f135f0e --------------2 ----0

Total PPs: ----542

LTG size: -----128

HOT SPARE: ----0

AUTO SYNC: ----0

VG PERMISSIO --0

3. 创建逻辑卷名对应表文件。 第一字段为VGDA区中的逻辑卷的名,第二字段为在新卷组中新的逻辑卷名,可相同也可不同;为了修复原有卷

组的内容,通常逻辑卷名保持不变。

如:

#vi -/tmp/lvname

-----datalv1:datalv1

-----datalv2:datalv2

4. 在硬盘上重新创建卷组,保留原有卷组的数据结构。

#recreatevg -y vgname ---l lv_file hdisk_name...

如:

#recreatevg -y forrecr2 ---l /tmp/lvname hdisk2

经过上述步骤, 在hdisk2 上创建了一个卷组 forrecr2, 原有的 datalv1, datalv2 逻辑卷的内容也保留了下来。 此时硬盘的PVID与新卷组

VGDA的一致。

5. 如果卷组上有文件系统,还需修改 /etc/filesystems ,使对应的文件系统的加载点与原来的一致。

ps.可以重新建立vg,也可以采用另外一种方法重新建立lv,不过需要map文件。

-------------------------------------------------------------

-------------------------------------------------------------

3.如果lv有问题的话

getlvcb -AT lvname查找问题,如果有问题的话,例如log出错,可以使用

chfs -a log=/dev/loglv00 /workfs指定log。

note:指定log不能跨越vg的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值