移动一个JFS 或 JFS-2 文件系统到一个新的卷组
移动文件系统
注意:在进行下列步骤描述的任何操作之前。请确认对将要迁移的数据拥有一个完整备份。
由于AIX 存储分配是在卷组的级别上执行的,存储不能跨越卷组。在一个卷组的空间变得很有限的情况下,另一个卷组的可用空间不可以直接被用来解决存储短缺的问题。
一个解决方法是增加更多的物理卷到相关的卷组,但在某些情况下,这种方法可能不是一个好的选择。如果其他的卷组包含足够的可用空间,另一个选择可能是,移动需要的逻辑卷到想要的卷组中,并且按需要扩展它们。
源逻辑卷能被移动到另一个卷组用cplv命令。如以下步骤所示:
注意:为了保证数据的完整性和一致性,在进行这些操作的时候,逻辑卷必须处在非活动状态(inactive)。如果逻辑卷包含一个已经装入(mounted)的文件系统,这个文件系统必须被先行卸下(unmount)。如果逻辑卷正被用作一个裸的(RAW)存储设备,使用这个逻辑卷的应用必选先关闭这个设备,或者应用本身退出运行。
1. 用cplv命令拷贝源逻辑卷到目的卷组
举例而言,如果myvg 是新的卷组名,mylv是用户的逻辑卷,键入:
# cplv -v myvg mylv
这将返回新的逻辑卷的名字,诸如 lv00
如果被移动的逻辑卷正用于裸设备存储,跳到第6步。如果是JFS 或 JFS2文件系统,进行第2步。
注意,裸存储设备不应该使用裸设备的前512个字节。这是为逻辑卷控制块(LVCB)保留的。cplv将不拷贝裸逻辑卷的前512个字节,但它会更新新的逻辑卷的LVCB中的域。
2. 所有的JFS和JFS2 文件系统都需要一个日志设备,它是jfslog类型的逻辑卷或者jfs2log型的逻辑卷(对于JFS2文件系统)。 在目的卷组上运行
lsvg –l <卷组名> 。如果在新的卷组上不存在JFS或JFS2日志设备,使用mklv和logform 命令创建日志设备。
# mklv -t jfslog myvg 1 或 # mklv -t jfs2log myvg 1
# logform /dev/loglv00
如果JFS 或JFS2日志设备已经存在,直接到步骤3
3. 用chfs命令改变文件系统以引用新的卷组和新的逻辑卷中的日志设备
例如,如果myfilesystem 是用户的文件系统名,键入
# chfs -a dev=/dev/lv00 -a log=/dev/loglv00 /myfilesystem
4. 运行fsck确保文件系统的完整性
# fsck -p /dev/lv00
5. 装载文件系统
例如,如果用户的文件系统名是myfilesystem,键入
# mount /myfilesystem
到这一步,迁移就算完成了,任何用户和应用应该能存取这个文件系统上的数据。
如果要改变逻辑卷的名字,进行下一步。
6. 再次确认在新的卷组中所有数据都可以存取以后,可以用rmlv命令移走源逻辑卷。
7. 使用chlv 和chmod命令重新命名或者重置在新的逻辑卷上可能需要设置的属性。为了重新命名逻辑卷,文件系统或者裸逻辑卷必须在关闭的 (closed)状态。
rootvg特定的逻辑卷
以下逻辑卷和文件系统是rootvg特定的,它们不可以被移动到其他的卷组。
Logical Volume File System or Description
------------------------------------------------------
hd2 /usr
hd3 /tmp
hd4 /
hd5 <引导逻辑卷>
hd6 <主页面空间>
hd8 <主JFS或JFS2日志设备>
hd9var /var
实例:
将db2vg 中的文件系统/ibm/lotus迁移到rootvg
/ibm/lotus的相关权限
# ls -ld /ibm/lotus
drwxr-xr-x 4 notes notes 256 Jul 19 02:05 /ibm/lotus
# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 14 14 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 5 5 1 open/syncd /
hd2 jfs2 15 15 1 open/syncd /usr
hd9var jfs2 2 2 1 open/syncd /var
hd3 jfs2 21 21 1 open/syncd /tmp
hd1 jfs2 5 5 1 open/syncd /home
hd10opt jfs2 6 6 1 open/syncd /opt
fwdump jfs2 5 5 1 open/syncd /var/adm/ras/platform
lg_dumplv sysdump 4 4 1 open/syncd N/A
fslv00 jfs2 20 20 1 closed/syncd /copycd
fslv01 jfs2 16 16 1 open/syncd /export/lpp_source
fslv03 jfs2 4 4 1 open/syncd /export/spot
fslv04 jfs2 16 16 1 closed/syncd /soft
fslv07 jfs2 12 12 1 open/syncd /ibmdb2pro
# lsvg -l db2vg
db2vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
fsloglv00 jfs2log 1 1 1 open/syncd N/A
fsfslv06 jfs2 80 80 1 open/syncd /ibm/db2data
fsfslv05 jfs2 8 8 1 open/syncd /ibm/lotus
fsfslv08 jfs2 20 20 1 open/syncd /ibm/notesdata
fsfslv02 jfs2 80 80 1 closed/syncd /osbak
将/ibm/lotus文件系统umount,
# umount /ibm/lotus
# lsvg -l db2vg
db2vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
fsloglv00 jfs2log 1 1 1 open/syncd N/A
fsfslv06 jfs2 80 80 1 open/syncd /ibm/db2data
fsfslv05 jfs2 8 8 1 closed/syncd /ibm/lotus
fsfslv08 jfs2 20 20 1 open/syncd /ibm/notesdata
fsfslv02 jfs2 80 80 1 closed/syncd /osbak
将文件系统/ibm/lotus对应的lv复制一份到rootvg
# cplv -v rootvg fsfslv05
cplv: Logical volume fsfslv05 successfully copied to fslv02 .
rootvg会生成一个新的lv-----fslv02
# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 14 14 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 5 5 1 open/syncd /
hd2 jfs2 15 15 1 open/syncd /usr
hd9var jfs2 2 2 1 open/syncd /var
hd3 jfs2 21 21 1 open/syncd /tmp
hd1 jfs2 5 5 1 open/syncd /home
hd10opt jfs2 6 6 1 open/syncd /opt
fwdump jfs2 5 5 1 open/syncd /var/adm/ras/platform
lg_dumplv sysdump 4 4 1 open/syncd N/A
fslv00 jfs2 20 20 1 closed/syncd /copycd
fslv01 jfs2 16 16 1 open/syncd /export/lpp_source
fslv02 jfs2 8 8 1 closed/syncd N/A
fslv03 jfs2 4 4 1 open/syncd /export/spot
fslv04 jfs2 16 16 1 closed/syncd /soft
fslv07 jfs2 12 12 1 open/syncd /ibmdb2pro
改变文件系统调用新的卷组及新的逻辑卷中的日志设备
# chfs -a dev=/dev/fslv02 -a log=/dev/hd8 /ibm/lotus
对文件系统进行一个检查
# fsck -p /dev/fslv02
The current volume is: /dev/fslv02
Primary superblock is valid.
J2_LOGREDO:log redo processing for /dev/fslv02
J2_LOGREDO:logredo: /dev/fsloglv00 is not a log file
j2_logredo.cpp: ERROR in openFilesystems line 1852, openLog
j2_logredo.cpp: ERROR in j2_logredo line 656, openFilesystems
Failure replaying log: -8
exec module "/sbin/helpers/jfs2/logredo64" failed.
logredo failed (rc=248). fsck continuing.
Primary superblock is valid.
*** Phase 1 - Initial inode scan
*** Phase 2 - Process remaining directories
*** Phase 3 - Process remaining files
*** Phase 4 - Check and repair inode allocation map
*** Phase 5 - Check and repair block allocation map
File system is clean.
装载文件系统
# mount /ibm/lotus
查看结果
# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 1 1 closed/syncd N/A
hd6 paging 14 14 1 open/syncd N/A
hd8 jfs2log 1 1 1 open/syncd N/A
hd4 jfs2 5 5 1 open/syncd /
hd2 jfs2 15 15 1 open/syncd /usr
hd9var jfs2 2 2 1 open/syncd /var
hd3 jfs2 21 21 1 open/syncd /tmp
hd1 jfs2 5 5 1 open/syncd /home
hd10opt jfs2 6 6 1 open/syncd /opt
fwdump jfs2 5 5 1 open/syncd /var/adm/ras/platform
lg_dumplv sysdump 4 4 1 open/syncd N/A
fslv00 jfs2 20 20 1 closed/syncd /copycd
fslv01 jfs2 16 16 1 open/syncd /export/lpp_source
fslv02 jfs2 8 8 1 open/syncd /ibm/lotus
fslv03 jfs2 4 4 1 open/syncd /export/spot
fslv04 jfs2 16 16 1 closed/syncd /soft
fslv07 jfs2 12 12 1 open/syncd /ibmdb2pro
# lsvg -l db2vg
db2vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
fsloglv00 jfs2log 1 1 1 open/syncd N/A
fsfslv06 jfs2 80 80 1 open/syncd /ibm/db2data
fsfslv05 jfs2 8 8 1 closed/syncd N/A
fsfslv08 jfs2 20 20 1 open/syncd /ibm/notesdata
fsfslv02 jfs2 80 80 1 closed/syncd /osbak
属性保持不变
# ls -ld /ibm/lotus
drwxr-xr-x 4 notes notes 256 Jul 19 02:05 /ibm/lotus
检查应用是否正常启动
# ps -ef|grep notes
notes 73798 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/rnrmgr
notes 98424 233496 0 13:00:29 pts/1 0:00 -ksh
notes 200820 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/event
notes 217160 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/router
notes 225378 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/update
notes 233496 245774 0 13:00:16 pts/1 0:00 -ksh
notes 241688 311578 0 13:00:34 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/amgr -e 1
notes 249892 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/adminp
notes 258144 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/replica
notes 102730 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/sched
notes 282896 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/calconn
root 303422 163982 0 13:01:41 pts/0 0:00 grep notes
notes 307512 98424 0 13:00:29 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/server
notes 311578 307512 0 13:00:33 pts/1 0:00 /ibm/lotus/notes/latest/ibmpow/amgr -s
收起