免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: netzh
打印 上一主题 下一主题

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-10-09 13:19 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

如果将Max PE per PV改为12000的话,上面的那个错误就解决了,但是:
# ./vgmodify -e 12000 /dev/vg00 /dev/dsk/c1t4d0 /dev/dsk/c1t8d0
Activating /dev/vg00 read-only to collect data
Activated volume group
Volume group "/dev/vg00" has been successfully changed.
Max. PVs=(old=16 new=16) PEs/PVs=(*OLD*=2500 *NEW*=12000) LVs=(old=255 new=255)
VGRA sizes=(*OLD*=368kb *NEW*=1584kb)
ERROR: /dev/rdsk/c1t8d0 requested change type to bootable but extents are in use
No writes have been performed
De-activating /dev/vg00
Volume group "/dev/vg00" has been successfully changed.

论坛徽章:
0
12 [报告]
发表于 2005-10-09 13:21 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

首先非常感谢netzh兄为大家提供了这个vgmodify工具,为大家的技术交流提
供了一个机会,以下是我做的一些测试和结论,供大家参考,谢谢

一、个人观点
========
如大家讨论,更改VG的属性如Max PE per PV,Max LV per VG,Max PV
per VG等有两种方法,一种是HP support的,即备份VG数据,用vgcreate来
重建VG;另外一种是使用vgmodify来更改VG属性,这种方法不是HP support
的,故有一定的危险性,同时vgmodify局限性也不小,在下面的测试中可以看到
;我个人强烈推荐使用重建VG的方法。

二、vgmodify测试
============
1、测试平台
HP L3000 With Disk Array HP VA7100
测试所用的VG为vg02,我专门为测试划分了2个LUN,一个LUN为10G,另一
个LUN为90G,主机配置了多个HBA卡,每一个LUN可以对应4个PV Link,为了
简便计,Alternate Link就暂时不用了,故我们实验中的用到的两个LUN对应的
PV Link(disk)为:

  1. /dev/rdsk/c13t0d4
  2. /dev/rdsk/c13t0d6
复制代码




2、测试脚本
为了加快测试速度,我写了两个脚本,该脚本可以根据需求创建PE Size不同的
VG,同时创建一个5G的LV,脚本一"vg_crt_with_bootdisk.sh" 如下:

  1. TEST_HOST1:/tmp/vgmodify# cat vg_crt_with_bootdisk.sh
  2. #!/usr/bin/sh

  3. diskinfo /dev/rdsk/c13t0d4
  4. diskinfo /dev/rdsk/c13t0d6
  5. vgchange -a n vg02
  6. vgexport vg02
  7. pvcreate -B -f /dev/rdsk/c13t0d4
  8. pvcreate -f /dev/rdsk/c13t0d6
  9. mkdir /dev/vg02
  10. mknod /dev/vg02/group c 64 0x030000
  11. vgcreate -s $1 /dev/vg02 /dev/dsk/c13t0d4
  12. vgdisplay vg02
  13. lvcreate -L 5000 -n my_lv /dev/vg02
  14. lvdisplay /dev/vg02/my_lv
  15. vgextend /dev/vg02 /dev/dsk/c13t0d6
  16. vgdisplay vg02
复制代码


  1. #!/usr/bin/sh

  2. diskinfo /dev/rdsk/c13t0d4
  3. diskinfo /dev/rdsk/c13t0d6
  4. vgchange -a n vg02
  5. vgexport vg02
  6. pvcreate -f /dev/rdsk/c13t0d4
  7. pvcreate -f /dev/rdsk/c13t0d6
  8. mkdir /dev/vg02
  9. mknod /dev/vg02/group c 64 0x030000
  10. vgcreate -s $1 /dev/vg02 /dev/dsk/c13t0d4
  11. vgdisplay vg02
  12. lvcreate -L 5000 -n my_lv /dev/vg02
  13. lvdisplay /dev/vg02/my_lv
  14. vgextend /dev/vg02 /dev/dsk/c13t0d6
  15. vgdisplay vg02
复制代码


以上两个脚本的区别仅仅在于以下这条命令:

  1. pvcreate -B -f /dev/rdsk/c13t0d4
  2. 或者
  3. pvcreate -f /dev/rdsk/c13t0d4
复制代码


即一个脚本创建的VG内的第一个PV是bootable的,而第二个脚本创建的VG
内的第一个PV是Non-Bootable的,从测试结果中发现这点区别很大。

两个脚本运行时均可加一个参数,该参数代表PE Size of VG,如以下命令
将会创建一个PE Size为4M的VG

  1. #./vg_crt_with_bootdisk.sh  4
复制代码


从测试中发现,PE Size对vgmodify的结果影响巨大。

3、模拟测试1
本测试模拟使用vgmodify更改vg00的属性,众所周知,vg00有一些属性:
(a)vg00内的第一个PV必定是bootable的
(b)vg00创建后,PE已经固定,而且一般不会太大,特别是老机器,一般4M
,8M居多,我见过的vg00最大的PE Size为32M
(c)vg00一般不可deactivate,vgmodify的操作需要在maintenance
mode下做,本测试没有直接拿vg00做测试,而是仅仅是模拟。

论坛徽章:
0
13 [报告]
发表于 2005-10-09 13:27 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

测试一的详细log,具体见附件,有兴趣的同学可以下载看看,把附件的.jpg后缀去掉即可。

vgmodify_with_bootdisk_pe_4m_8m_16m_32m.log.jpg

46.97 KB, 下载次数: 13739

论坛徽章:
0
14 [报告]
发表于 2005-10-09 13:33 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

4、模拟测试2
本测试模拟尝试使用vgmodify更改一般的VG属性,即Non-bootable的VG,log见附件,感兴趣的同学可以下载看看,把.jpg的后缀去掉即可

vgmodify_without_bootdisk_pe_4m_8m_16m.log.jpg

21.42 KB, 下载次数: 78

论坛徽章:
0
15 [报告]
发表于 2005-10-09 13:35 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

三、测试结论
========
1、个人不推荐使用vgmodify来对VG做修改,如果你决定使用vgmodify,请务
必备份你的数据。

2、经过测试,该工具要求VG中的PV要么为可引导(bootable)的或者PV上的
第一个PE从来没有被使用过的,在这种情况下,vgmodify命令可以带PV list参
数,并顺利通过测试。

对于第一个PV为非引导盘的情况,需要注意的是:只要命令行不带PV list参数,
仍然可以使用vgmodify来更改VG的属性,感谢netzh的研究。

3、除了要满足上面的条件以外,vgmodify能修改VG的属性到什么程度,和
VG创建时确定的PE大小有关系,因为vgmodify要修改VGRA,VGRA在第一个
PE上,PE上有多少连续的空间,限制了vgmodify能修改的程度。

如在测试一中,当PE为4M时,vgmodify -d 21g可以通过,vgmodify -d 22g
就通不过了,即该VG中最大只能利用21G的PV空间,即使你的PV有50G;而PE
为32M时,这个限制就放到160g左右了;

/// 通过netzh兄的提醒,经过测试,确认可以使用vgmodify -p的参数来减少
Max PV per VG的定义来减少对VGRA区的空间需求,从而满足增加更大的硬盘
的需求,这也是一种折中的方法。

4、vgmodify有单个PV大小不能大于256g的硬限制,显然vgcreate是没有这
个限制的。

5、使用中发现,当目前VG上已经有>;2 PV、且存在跨PV的LV的情况下,该工具
出错可能性很大,非official的工具就是这样,请不要抱怨。

6、vgmodify修改成功后,需要用vgcfgbackup手工做一下备份。

论坛徽章:
0
16 [报告]
发表于 2005-10-09 14:12 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

佩服oldnetdog兄的效率,这么快就能提供如此详细的测试结果,谢谢。
我也觉得是不到万不得已不要用这个HP unsupport的工具。呵呵

关于VGRA区容量不足的问题,我想是不是可以加 -p 参数,减少MAX PV的值来留出空间给MAX PE PER PV用?
我照搬了AIX上的思路,不知能否行的通?望olonetdog兄回复

论坛徽章:
0
17 [报告]
发表于 2005-10-09 14:14 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

测试结果相当详细,精彩!佩服中@_@

论坛徽章:
0
18 [报告]
发表于 2005-10-09 15:01 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

感谢netzh兄的提醒,继续做测试,附加结论如下:

1、确实可以通过减少Max PV per VG的值(默认为16)来给Max PE per VG预留更多的VGRA空间,在上面的实验基础上:
Current:PE=16M,Max PV=16
vgmodify -d 160g基本达到极限,170g就无法通过了

If:PE=16M,Max PV=3
这时候vgmodify -p 3 -g能够接受250g了(256g的限制仍然有)

If:PE=4M,Max PV=3
这时候vgmodify -p 3 -g能够接受110g左右(256g的限制仍然有)

log如下:

  1. # vgchange -a y vg02
  2. Activated volume group
  3. Volume group "vg02" has been successfully changed.
  4. # vgdisplay vg02
  5. --- Volume groups ---
  6. VG Name                     /dev/vg02
  7. VG Write Access             read/write     
  8. VG Status                   available                 
  9. Max LV                      255   
  10. Cur LV                      0      
  11. Open LV                     0      
  12. Max PV                      16     
  13. Cur PV                      2      
  14. Act PV                      2      
  15. Max PE per PV               10239        
  16. VGDA                        4   
  17. PE Size (Mbytes)            16              
  18. Total PE                    6398   
  19. Alloc PE                    0      
  20. Free PE                     6398   
  21. Total PVG                   0        
  22. Total Spare PVs             0              
  23. Total Spare PVs in use      0                     

  24. # vgchange -a n vg02
  25. Volume group "vg02" has been successfully changed.
  26. # ./vgmodify -d 170g /dev/vg02 /dev/dsk/c13t0d4 /dev/dsk/c13t0d6
  27. Activating /dev/vg02 read-only to collect data
  28. Activated volume group
  29. Volume group "/dev/vg02" has been successfully changed.
  30. For a disk of 170g 10879 PEs will be required
  31. Max. PVs=(old=16 new=16) PEs/PVs=(*OLD*=10239 *NEW*=10879) LVs=(old=255 new=255)
  32. VGRA sizes=(*OLD*=1392kb *NEW*=1456kb)
  33. ERROR: Logic error on /dev/rdsk/c13t0d4 pe_space 0 vgrasize 1456 data_psn 2912 space1_psn 2144
  34. No writes have been performed
  35. De-activating /dev/vg02
  36. Volume group "/dev/vg02" has been successfully changed.
  37. # ./vgmodify -p 3 -d 170g /dev/vg02 /dev/dsk/c13t0d4 /dev/dsk/c13t0d6
  38. Activating /dev/vg02 read-only to collect data
  39. Activated volume group
  40. Volume group "/dev/vg02" has been successfully changed.
  41. For a disk of 170g 10879 PEs will be required
  42. Max. PVs=(*OLD*=16 *NEW*=3) PEs/PVs=(*OLD*=10239 *NEW*=10879) LVs=(old=255 new=255)
  43. VGRA sizes=(*OLD*=1392kb *NEW*=304kb)
  44. De-activating /dev/vg02
  45. Volume group "/dev/vg02" has been successfully changed.

  46. /dev/rdsk/c13t0d4:
  47.    User data=(*OLD*=1536 *NEW*=2912) PEs=(old=639 new=639)
  48.    stolen PEs=0 VGRA PSN (*OLD*=128 *NEW*=2144)
  49.    type (*OLD*=non-boot *NEW*=boot)
  50.    last block=(old=10485759kb new=10485759kb) PEs used (First=-1 Last=-1)

  51. /dev/rdsk/c13t0d6:
  52.    User data=(*OLD*=1536 *NEW*=2912) PEs=(old=5759 new=5759)
  53.    stolen PEs=0 VGRA PSN (*OLD*=128 *NEW*=2144)
  54.    type (*OLD*=non-boot *NEW*=boot)
  55.    last block=(old=94371839kb new=94371839kb) PEs used (First=-1 Last=-1)
  56. Performing writes
  57. /dev/rdsk/c13t0d4:
  58.         Writing primary lvmrec
  59.         Writing secondary lvmrec
  60.         Writing VGRA to starting block 2144
  61. /dev/rdsk/c13t0d6:
  62.         Writing primary lvmrec
  63.         Writing secondary lvmrec
  64.         Writing VGRA to starting block 2144
  65. A current backup for the new configuration does not exist.
  66. Please perform a vgcfgbackup(1m) after activating the VG.
  67. # ./vgmodify -p 3 -d 250g /dev/vg02 /dev/dsk/c13t0d4 /dev/dsk/c13t0d6
  68. Activating /dev/vg02 read-only to collect data
  69. Activated volume group
  70. Volume group "/dev/vg02" has been successfully changed.
  71. For a disk of 250g 15999 PEs will be required
  72. Max. PVs=(old=3 new=3) PEs/PVs=(*OLD*=10879 *NEW*=15999) LVs=(old=255 new=255)
  73. VGRA sizes=(*OLD*=304kb *NEW*=432kb)
  74. De-activating /dev/vg02
  75. Volume group "/dev/vg02" has been successfully changed.

  76. /dev/rdsk/c13t0d4:
  77.    User data=(*OLD*=2912 *NEW*=1024) PEs=(old=639 new=639)
  78.    stolen PEs=0 VGRA PSN (*OLD*=2144 *NEW*=128)
  79.    type (*OLD*=boot *NEW*=non-boot)
  80.    last block=(old=10485759kb new=10485759kb) PEs used (First=-1 Last=-1)

  81. /dev/rdsk/c13t0d6:
  82.    User data=(*OLD*=2912 *NEW*=1024) PEs=(old=5759 new=5759)
  83.    stolen PEs=0 VGRA PSN (*OLD*=2144 *NEW*=128)
  84.    type (*OLD*=boot *NEW*=non-boot)
  85.    last block=(old=94371839kb new=94371839kb) PEs used (First=-1 Last=-1)
  86. Performing writes
  87. /dev/rdsk/c13t0d4:
  88.         Writing primary lvmrec
  89.         Writing secondary lvmrec
  90.         Writing VGRA to starting block 128
  91. /dev/rdsk/c13t0d6:
  92.         Writing primary lvmrec
  93.         Writing secondary lvmrec
  94.         Writing VGRA to starting block 128
  95. A current backup for the new configuration does not exist.
  96. Please perform a vgcfgbackup(1m) after activating the VG.
  97. # vgchange -a y vg02
  98. Activated volume group
  99. Volume group "vg02" has been successfully changed.
  100. # vgdisplay vg02
  101. --- Volume groups ---
  102. VG Name                     /dev/vg02
  103. VG Write Access             read/write     
  104. VG Status                   available                 
  105. Max LV                      255   
  106. Cur LV                      0      
  107. Open LV                     0      
  108. Max PV                      3      
  109. Cur PV                      2      
  110. Act PV                      2      
  111. Max PE per PV               15999        
  112. VGDA                        4   
  113. PE Size (Mbytes)            16              
  114. Total PE                    6398   
  115. Alloc PE                    0      
  116. Free PE                     6398   
  117. Total PVG                   0        
  118. Total Spare PVs             0              
  119. Total Spare PVs in use      0                     

  120. #
复制代码


2、通过vgmodify的-l参数来减少MaxLogicalVolumes的定义对腾出VGRA空间无帮助
3、谢谢各位同学们的意见,呵呵,欢迎继续讨论。

论坛徽章:
0
19 [报告]
发表于 2005-10-09 15:56 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

辛苦oldnetdog兄了!关于第二个非引导盘的测试,就是下面脚本

  1. diskinfo /dev/rdsk/c13t0d4
  2. diskinfo /dev/rdsk/c13t0d6
  3. vgchange -a n vg02
  4. vgexport vg02
  5. pvcreate -f /dev/rdsk/c13t0d4
  6. pvcreate -f /dev/rdsk/c13t0d6
  7. mkdir /dev/vg02
  8. mknod /dev/vg02/group c 64 0x030000
  9. vgcreate -s $1 /dev/vg02 /dev/dsk/c13t0d4
  10. vgdisplay vg02
  11. lvcreate -L 5000 -n my_lv /dev/vg02
  12. lvdisplay /dev/vg02/my_lv
  13. vgextend /dev/vg02 /dev/dsk/c13t0d6
  14. vgdisplay vg02
复制代码

在./vgmodify -d 20g /dev/vg02 /dev/dsk/c13t0d4 /dev/dsk/c13t0d6的时候提示:
ERROR: /dev/rdsk/c13t0d4 requested change type to bootable but extents are in use
我的思路是:把后面的参数去掉(PV list)试试,
直接用./vgmodify -d 20g /dev/vg02
因为这个工具限制了PV list中的硬盘要么是可引导的,要么是第一个extent是未被使用的,还不行的话我们再讨论,我感觉HP不会作个鸡肋工具哈。

论坛徽章:
0
20 [报告]
发表于 2005-10-09 16:23 |只看该作者

[原创]HP超级工具vgmodify,不用重建VG修改VG属性(测试中)

不错,确实是个好东西,兄弟谢谢了!!!!!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP