原创!用migratepv迁移条带逻辑卷

单位买了新存储,系统管理员往往要将数据从旧存储迁移到新存储;如果是离线迁移,那么就简单多了,但实际上很多关键业务环境只能容许在线迁移的!如果逻辑卷是普通逻辑卷那好办,用migratepv就好了;那如果条带逻辑卷呢,一个LV跨多个PV的,红皮书和有些资料不是提到:migratepv可以将LV从一个PV在线迁移到另外一个PV,但这个LV是非条带的,否则会失败的吗?

其实不尽然,在有些版本当中,migratepv可以在线迁移条带化的LV。

以下是我的测试步骤及过程:
测试环境
操作系统:AIX53-10
存储:OPENFILER
主机:P170/DELL D630笔记本


1、创建包含HDISK123的测试卷组
# mkvg -y vg1 hdisk1 hdisk2 hdisk3
vg1
# lspv
hdisk0          0003744f5808d0c8                    rootvg          active
hdisk1          0003744f5ba9e80f                    vg1             active
hdisk2          0003744f5ba9fd07                    vg1             active
hdisk3          0003744f5baa10ae                    vg1             active

2、创建一个条带化的逻辑卷(看到这个LV20100928就知道我这个测试是昨天晚上作的吧,为论坛作贡献你我有责啊)
# mklv -t jfs2 -S 64k -y lv20100928 vg1 5 hdisk1 hdisk2 hdisk3
lv20100928
# lslv -l lv20100928
lv20100928:N/A
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk1            002:000:000   100%          000:002:000:000:000
hdisk2            002:000:000   100%          000:002:000:000:000
hdisk3            002:000:000   100%          000:002:000:000:000

# lsvg -l vg1
vg1:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
lv20100928          jfs2       6       6       3    closed/syncd  N/A
# lsvg lv20100928
0516-306 : Unable to find volume group lv20100928 in the Device
        Configuration Database.
# lslv lv20100928
LOGICAL VOLUME:     lv20100928             VOLUME GROUP:   vg1
LV IDENTIFIER:      0003744f00004c000000012b5bad394f.1 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       closed/syncd
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        4 megabyte(s)
COPIES:             1                      SCHED POLICY:   striped
LPs:                6                      PPs:            6
STALE PPs:          0                      BB POLICY:      relocatable
INTER-POLICY:       maximum                RELOCATABLE:    no
INTRA-POLICY:       middle                 UPPER BOUND:    3
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes (superstrict)                     
Serialize IO ?:     NO                                    
STRIPE WIDTH:       3                                      
STRIPE SIZE:        64k                                    

3、在逻辑卷上创建一个文件系统,加载点为/20100928
# crfs -v jfs2 -d /dev/lv20100928 -m /20100928
File system created successfully.
24368 kilobytes total disk space.
New File System size is 49152

# mount /20100928

# df -g
Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4           1.00      0.94    7%     5716     3% /
/dev/hd2           2.00      0.35   83%    39131    32% /usr
/dev/hd9var        0.12      0.06   54%     4456    24% /var
/dev/hd3           1.00      0.82   19%      407     1% /tmp
/dev/hd1           0.50      0.50    1%        7     1% /home
/proc                 -         -    -         -     -  /proc
/dev/hd10opt       0.59      0.50   16%     2004     2% /opt
/dev/oralv         9.00      4.58   50%    16974     2% /oracle
/dev/lv20100928      0.02      0.02    2%        4     1% /20100928

4、创建一个文本文件,输入内容
# cd /20100928
# ls
lost+found
# touch aixchina.net
# echo welcome to aixchina.net > aixchina.net
# more aixchina.net
welcome to aixchina.net

5、检查PP分布情况,共7个PP,分布在3个DISK上
# lspv hdisk1
PHYSICAL VOLUME:    hdisk1                   VOLUME GROUP:     vg1
PV IDENTIFIER:      0003744f5ba9e80f VG IDENTIFIER     0003744f00004c000000012b5bad394f
PV STATE:           active                                    
STALE PARTITIONS:   0                        ALLOCATABLE:      yes
PP SIZE:            4 megabyte(s)            LOGICAL VOLUMES:  2
TOTAL PPs:          15 (60 megabytes)        VG DESCRIPTORS:   1
FREE PPs:           12 (48 megabytes)        HOT SPARE:        no
USED PPs:           3 (12 megabytes)         MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  03..00..03..03..03                        
USED DISTRIBUTION:  00..03..00..00..00                        

# lspv hdisk2
PHYSICAL VOLUME:    hdisk2                   VOLUME GROUP:     vg1
PV IDENTIFIER:      0003744f5ba9fd07 VG IDENTIFIER     0003744f00004c000000012b5bad394f
PV STATE:           active                                    
STALE PARTITIONS:   0                        ALLOCATABLE:      yes
PP SIZE:            4 megabyte(s)            LOGICAL VOLUMES:  1
TOTAL PPs:          15 (60 megabytes)        VG DESCRIPTORS:   1
FREE PPs:           13 (52 megabytes)        HOT SPARE:        no
USED PPs:           2 (8 megabytes)          MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  03..01..03..03..03                        
USED DISTRIBUTION:  00..02..00..00..00                        

# lspv hdisk3
PHYSICAL VOLUME:    hdisk3                   VOLUME GROUP:     vg1
PV IDENTIFIER:      0003744f5baa10ae VG IDENTIFIER     0003744f00004c000000012b5bad394f
PV STATE:           active                                    
STALE PARTITIONS:   0                        ALLOCATABLE:      yes
PP SIZE:            4 megabyte(s)            LOGICAL VOLUMES:  1
TOTAL PPs:          15 (60 megabytes)        VG DESCRIPTORS:   1
FREE PPs:           13 (52 megabytes)        HOT SPARE:        no
USED PPs:           2 (8 megabytes)          MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  03..01..03..03..03                        
USED DISTRIBUTION:  00..02..00..00..00      

6、尝试将HDISK1上的部分逻辑卷迁移到HDISK3上,失败;因为目标PV包含该LV的LP
# migratepv -l lv20100928 hdisk1 hdisk3
0516-1244 migratepv: Destination physical volume hdisk3 contains
        partitions of the logical volume lv20100928.
0516-812 migratepv: Warning, migratepv did not completely succeed;
        all physical partitions have not been moved off the PV.
# lspv
hdisk0          0003744f5808d0c8                    rootvg          active
hdisk1          0003744f5ba9e80f                    vg1             active
hdisk2          0003744f5ba9fd07                    vg1             active
hdisk3          0003744f5baa10ae                    vg1             active

7、添加一个PV,加入VG1
# cfgmgr -vl iscsi0
----------------
attempting to configure device 'iscsi0'
Time: 0 LEDS: 0x25b0
invoking /usr/lib/methods/cfgiscsi -l iscsi0
Number of running methods: 1
----------------
Completed method for: iscsi0, Elapsed time = 0
return code = 0
****************** stdout ***********
hdisk4
****************** no stderr ***********
----------------
Time: 0 LEDS: 0x539
Number of running methods: 0
----------------
attempting to configure device 'hdisk4'
Time: 0 LEDS: 0x25f3
invoking /usr/lib/methods/cfgscsidisk -l hdisk4
Number of running methods: 1
----------------
Completed method for: hdisk4, Elapsed time = 0
return code = 0
****************** no stdout ***********
****************** no stderr ***********
----------------
Time: 0 LEDS: 0x539
Number of running methods: 0
----------------
calling savebase
return code = 0
****************** no stdout ***********
****************** no stderr ***********
Configuration time: 0 seconds
# lspv
hdisk0          0003744f5808d0c8                    rootvg          active
hdisk1          0003744f5ba9e80f                    vg1             active
hdisk2          0003744f5ba9fd07                    vg1             active
hdisk3          0003744f5baa10ae                    vg1             active
hdisk4          none                                None            
# chdev -l hdisk4 -a pv=yes
hdisk4 changed
# lspv
hdisk0          0003744f5808d0c8                    rootvg          active
hdisk1          0003744f5ba9e80f                    vg1             active
hdisk2          0003744f5ba9fd07                    vg1             active
hdisk3          0003744f5baa10ae                    vg1             active
hdisk4          0003744f5bbc50e9                    None            
# extendvg  vg1 hdisk4


8、把HDISK1上的逻辑卷迁移到HDISK4
# migratepv -l lv20100928 hdisk1 hdisk4

# lslv lv20100928
LOGICAL VOLUME:     lv20100928             VOLUME GROUP:   vg1
LV IDENTIFIER:      0003744f00004c000000012b5bad394f.1 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       opened/syncd
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        4 megabyte(s)
COPIES:             1                      SCHED POLICY:   striped
LPs:                6                      PPs:            6
STALE PPs:          0                      BB POLICY:      relocatable
INTER-POLICY:       maximum                RELOCATABLE:    no
INTRA-POLICY:       middle                 UPPER BOUND:    3
MOUNT POINT:        /20100928              LABEL:          /20100928
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes (superstrict)                     
Serialize IO ?:     NO                                    
STRIPE WIDTH:       3                                      
STRIPE SIZE:        64k                                    

9、属于HDISK1的部分LV20100928已经迁移到HDISK4上;整个LV分布在HDISK234上了
# lslv -l lv20100928
lv20100928:/20100928
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk4            002:000:000   100%          000:002:000:000:000
hdisk2            002:000:000   100%          000:002:000:000:000
hdisk3            002:000:000   100%          000:002:000:000:000

10、验证刚才的文本文件,还在,没丢呢
# cd /20100928
# ls
aixchina.net  lost+found
# more aixchina.net
welcome to aixchina.net

11、继续添加PV,把HDISK2 HDISK3迁移到HDISK5 HDISK6上
# lspv
hdisk0          0003744f5808d0c8                    rootvg          active
hdisk1          0003744f5ba9e80f                    vg1             active
hdisk2          0003744f5ba9fd07                    vg1             active
hdisk3          0003744f5baa10ae                    vg1             active
hdisk4          0003744f5bbc50e9                    vg1             active
hdisk5          none                                None            
hdisk6          none                                None            

# extendvg vg1 hdisk5 hdisk6
0516-1254 extendvg: Changing the PVID in the ODM.
0516-1254 extendvg: Changing the PVID in the ODM.

# migratepv -l lv20100928 hdisk2 hdisk5
# migratepv -l lv20100928 hdisk3 hdisk6

# lslv -l lv20100928
lv20100928:/20100928
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk4            002:000:000   100%          000:002:000:000:000
hdisk5            002:000:000   100%          000:002:000:000:000
hdisk6            002:000:000   100%          000:002:000:000:000

# more /20100928/aixchina.net
welcome to aixchina.net

# lslv lv20100928
LOGICAL VOLUME:     lv20100928             VOLUME GROUP:   vg1
LV IDENTIFIER:      0003744f00004c000000012b5bad394f.1 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       opened/syncd
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        4 megabyte(s)
COPIES:             1                      SCHED POLICY:   striped
LPs:                6                      PPs:            6
STALE PPs:          0                      BB POLICY:      relocatable
INTER-POLICY:       maximum                RELOCATABLE:    no
INTRA-POLICY:       middle                 UPPER BOUND:    3
MOUNT POINT:        /20100928              LABEL:          /20100928
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes (superstrict)                     
Serialize IO ?:     NO                                    
STRIPE WIDTH:       3                                      
STRIPE SIZE:        64k                     

12、把LOGLV也迁移走,最终把HDISK1 HDISK2 HDISK3从VG中踢走
# migratepv -l loglv00 hdisk1 hdisk6
# lslv -l loglv00
loglv00:N/A
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk6            001:000:000   100%          000:001:000:000:000

# reducevg vg1 hdisk1
# reducevg vg1 hdisk2
# reducevg vg1 hdisk3
# lspv
hdisk0          0003744f5808d0c8                    rootvg          active
hdisk1          0003744f5ba9e80f                    None            
hdisk2          0003744f5ba9fd07                    None            
hdisk3          0003744f5baa10ae                    None            
hdisk4          0003744f5bbc50e9                    vg1             active
hdisk5          0003744f5bcca452                    vg1             active
hdisk6          0003744f5bcca602                    vg1             active

完成!

最后悬赏:
migratepv迁移条带LV的时候,源PV与目标PV数量一致,LV不能由条带专为非条带;因为条带跨多个PV,管理起来比较麻烦,而且其中一个PV发生故障,那么PV里面的LV就也就损坏了;
因此,建议要将它专为非条带的LV,那该如何操作呢?

答案国庆之后揭晓。
参与21

21同行回答

myguangzhoumyguangzhou技术经理Uniwise
弱弱的问一句,“条带”是什么?allanwang 发表于 2010-10-11 11:56 不知道条带是什么,那RAID0总该记得吧?简单地说,就是一个LV分布在2个或以上的PV上你回头找个LVM的红皮书看下,里面有详细介绍...显示全部
弱弱的问一句,“条带”是什么?
allanwang 发表于 2010-10-11 11:56

不知道条带是什么,那RAID0总该记得吧?
简单地说,就是一个LV分布在2个或以上的PV上
你回头找个LVM的红皮书看下,里面有详细介绍收起
互联网服务 · 2010-10-11
浏览1184
myguangzhoumyguangzhou技术经理Uniwise
羡慕楼主啊,没几个人有你这样的环境去测试的,硬盘又多。sakidodo 发表于 2010-10-11 10:21 硬盘又多?嘿嘿,我用的是Openfiler模拟的阵列显示全部
羡慕楼主啊,没几个人有你这样的环境去测试的,硬盘又多。
sakidodo 发表于 2010-10-11 10:21


硬盘又多?嘿嘿,我用的是Openfiler模拟的阵列收起
互联网服务 · 2010-10-11
浏览2882
allanwangallanwangADMINIBM
弱弱的问一句,“条带”是什么?显示全部
弱弱的问一句,“条带”是什么?收起
IT分销/经销 · 2010-10-11
浏览2808
sakidodosakidodo系统工程师
羡慕楼主啊,没几个人有你这样的环境去测试的,硬盘又多。显示全部
羡慕楼主啊,没几个人有你这样的环境去测试的,硬盘又多。收起
互联网服务 · 2010-10-11
浏览2858
sakidodosakidodo系统工程师
既然lv已经迁移至一块硬盘上了,那就不存在条带化的概念吧,莫非又是ODM没有更新导致的???显示全部
既然lv已经迁移至一块硬盘上了,那就不存在条带化的概念吧,莫非又是ODM没有更新导致的???收起
互联网服务 · 2010-10-11
浏览2846
myguangzhoumyguangzhou技术经理Uniwise
俺只回答问题,不讨论你的建议,呵呵.你想去条带化也就是说LV全放一个物理DISK上.只要加块大硬盘,做个第二份拷贝(MKLVCOPY)然后把第一份拷贝(在开始的三块上的)拿掉,就搞定.具体命令管理员知道的.给钱啊..... ...铁蛋哥 发表于 2010-9-30 08:23 这个答案让我为难了详细见...显示全部
俺只回答问题,不讨论你的建议,呵呵.
你想去条带化也就是说LV全放一个物理DISK上.
只要加块大硬盘,做个第二份拷贝(MKLVCOPY)然后把第一份拷贝(在开始的三块上的)拿掉,就搞定.
具体命令管理员知道的.


给钱啊..... ...
铁蛋哥 发表于 2010-9-30 08:23

这个答案让我为难了
详细见我的测试:
将hdisk3加入卷组,并在hdisk3上创建逻辑卷的副本
# extendvg vgdata hdisk3
# lsvg -p vgdata
vgdata:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk1            active            238         235         48..45..47..47..48
hdisk2            active            238         235         48..45..47..47..48
hdisk3            active            238         238         48..48..47..47..48
# mklvcopy mylv01 2 hdisk3
# lslv -l mylv01
mylv01:N/A
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk1            003:000:000   100%          000:003:000:000:000
hdisk3            006:000:000   100%          000:006:000:000:000
hdisk2            003:000:000   100%          000:003:000:000:000
# syncvg -l mylv01
# lslv mylv01
LOGICAL VOLUME:     mylv01                 VOLUME GROUP:   vgdata
LV IDENTIFIER:      0003744f00004c000000012b6f62c6d7.1 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       opened/syncd
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        4 megabyte(s)
COPIES:             2                      SCHED POLICY:   striped
LPs:                6                      PPs:            12
STALE PPs:          0                      BB POLICY:      relocatable
INTER-POLICY:       maximum                RELOCATABLE:    no
INTRA-POLICY:       middle                 UPPER BOUND:    2
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes (superstrict)                     
Serialize IO ?:     NO                                    
STRIPE WIDTH:       2                                      
STRIPE SIZE:        64k                                    
DEVICESUBTYPE : DS_LVZ
删除位于hdisk1和hdisk2上的LP
# rmlvcopy mylv01 1 hdisk1 hdisk2
验证LV已经迁移至目标PV                                       
# lslv mylv01
LOGICAL VOLUME:     mylv01                 VOLUME GROUP:   vgdata
LV IDENTIFIER:      0003744f00004c000000012b6f62c6d7.1 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       opened/syncd
TYPE:               jfs2                   WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        4 megabyte(s)
COPIES:             1                      SCHED POLICY:   striped
LPs:                6                      PPs:            6
STALE PPs:          0                      BB POLICY:      relocatable
INTER-POLICY:       maximum                RELOCATABLE:    no
INTRA-POLICY:       middle                 UPPER BOUND:    2
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: on/ACTIVE                              
EACH LP COPY ON A SEPARATE PV ?: yes (superstrict)                     
Serialize IO ?:     NO                                    
STRIPE WIDTH:       2                                      
STRIPE SIZE:        64k                                    
DEVICESUBTYPE : DS_LVZ
# lslv -l mylv01
mylv01:N/A
PV                COPIES        IN BAND       DISTRIBUTION  
hdisk3            006:000:000   100%          000:006:000:000:000

虽然LV最终转移到一个PV上,但是他的属性依然不变。收起
互联网服务 · 2010-10-03
浏览2908
ruijhruijh服务交付浪潮商用机器有限公司
4# myguangzhou 不多显示全部
4# myguangzhou

不多收起
IT其它 · 2010-09-30
浏览2950
myciciymyciciyIT顾问某金融科技公司
有的项目有要求显示全部
有的项目有要求收起
银行 · 2010-09-30
浏览2865
myguangzhoumyguangzhou技术经理Uniwise
其实,实际生产环境中,用条带的LV多吗?我是没碰过了显示全部
其实,实际生产环境中,用条带的LV多吗?我是没碰过了收起
互联网服务 · 2010-09-30
浏览2866
铁蛋哥铁蛋哥系统管理员雀巢
俺只回答问题,不讨论你的建议,呵呵.你想去条带化也就是说LV全放一个物理DISK上.只要加块大硬盘,做个第二份拷贝(MKLVCOPY)然后把第一份拷贝(在开始的三块上的)拿掉,就搞定.具体命令管理员知道的.给钱啊........显示全部
俺只回答问题,不讨论你的建议,呵呵.
你想去条带化也就是说LV全放一个物理DISK上.
只要加块大硬盘,做个第二份拷贝(MKLVCOPY)然后把第一份拷贝(在开始的三块上的)拿掉,就搞定.
具体命令管理员知道的.


给钱啊.....收起
2010-09-30
浏览2889

提问者

myguangzhou
技术经理Uniwise
擅长领域: 服务器AIXUnix

相关问题

问题状态

  • 发布时间:2010-09-29
  • 关注会员:0 人
  • 问题浏览:26967
  • 最近回答:2013-09-26
  • X社区推广