wangmj
作者wangmj·2017-08-10 21:13
系统运维工程师·CES

NIM迁移恢复OS时磁盘空间不足的处理方法

字数 7627阅读 1694评论 0赞 4

在恢复时报错提示如下

**A disk of size 140013 was specified in the
bosinst.data file, but there is not a disk of at least
that size on the system.**

上述情况表明待恢复系统没有大于或者等于原系统rootvg磁盘,根据提示该信息记录在bosinst.data文件中

下面介绍如何取得bosinst.data文件并进行编辑
如果原系统目前正在运行,则可以将其从原系统copy至nim服务器上

scp root@App:/var/adm/ras/bosinst.data /export/nim/mksysb/

或者直接从备份镜像中提取

cd /export/nim/mksysb/
restore -vxqf mksysb_app01 ./bosinst.data

下述为我提取的过程

nim:/export/nim/mksysb# restore -vxqf mksysb_app01 ./bosinst.data
New volume on mksysb_app:
Cluster size is 51200 bytes (100 blocks).
The volume number is 1.
The backup date is: Wed Sep 23 15:45:25 BEIST 2015
Files are backed up by name.
The user is root.
x 6847 ./bosinst.data
The total size is 6847 bytes.
The number of restored files is 1.
nim:/export/nim/mksysb# ls -l bosinst.data
-rw-r--r-- 1 root system 6847 Sep 23 15:45 bosinst.data

对bosinst.data文件进行编辑,主要编辑的字段为target_disk_data,它记录了原系统rootvg中磁盘的信息
下述是针对rootvg就一块硬盘的情况,如果target_disk_data记录了多块硬盘,处理方式请看文档后半部分

target_disk_data:
    PVID = 00c9691240e6f180

PHYSICAL_LOCATION = U9117.MMA.0696912-V8-C2-T1-L8100000000000000

    CONNECTION = vscsi0//810000000000
    LOCATION =
    SIZE_MB = 140013       ##此为原磁盘的大小
    HDISKNAME = hdisk0

建议将SIZE_MB直接留空,修改后信息如下:

target_disk_data:
    PVID = 00c9691240e6f180

PHYSICAL_LOCATION = U9117.MMA.0696912-V8-C2-T1-L8100000000000000

    CONNECTION = vscsi0//810000000000
    LOCATION =
    SIZE_MB = 
    HDISKNAME = hdisk0

在nim上定义bosinst_data的资源

nim -o define -t bosinst_data -a server=master -a location=/export/nim/mksysb/bosinst.data bosinst_data

由于上一次恢复未成功,此时主机还有资源,需要reset其资源

smit nim_mac
->Perform Operations on Machines
->选择待恢复的主机
->选择reset操作

将新定义的bosinst_data资源也指定给待恢复主机

nim -o bos_inst -a source=mksysb -a spot=spot_app01 -a mksysb=mksysb_app01 -a bosinst_data=bosinst_data -a accept_licenses=yes -a boot_client=no SKAPP

使用HMC console终端从网络启动

如果报错提示如下

**The data file did not specify enough disk space to
contain the operating system.**

上述提示不仅仅由于原系统磁盘总空间大于待恢复主机的,而且原系统中已分配的空间也大于待恢复主机,但是实际空间小于待恢复主机,此时需要修改bosinst.data文件及image.data文件,bosinst.data文件修改方法如上,image.data文件的取得方式可以参考bosinst.data,我这里使用第二种方法

restore -vxqf mksysb_app01 ./image.data

编辑image.data
统计lv_data字段中LPS和并计算所有LPS的总大小,确认是否大于待恢复主机的磁盘空间;
统计lv_data字段中LV_MIN_LPS和并计算所有LV_MIN_LPS的总大小,确认是否小于待恢复主机的磁盘空间;
如果满足上述2个条件,则适当修改某些LV的LPS数,如:

lv_data:
    VOLUME_GROUP= rootvg
    LV_SOURCE_DISK_LIST= hdisk0 
    LV_IDENTIFIER= 00c9691200004c000000014ff290f5fd.13
    LOGICAL_VOLUME= lv_app
    VG_STAT= active/complete
    TYPE= jfs2
    MAX_LPS= 512
    COPIES= 1
    LPs= 200                     ##指定的LPS
    STALE_PPs= 0
    INTER_POLICY= minimum
    INTRA_POLICY= middle
    MOUNT_POINT= /app
    MIRROR_WRITE_CONSISTENCY= on/ACTIVE
    LV_SEPARATE_PV= yes
    PERMISSION= read/write
    LV_STATE= opened/syncd
    WRITE_VERIFY= off
    PP_SIZE= 256
    SCHED_POLICY= parallel
    PP= 200                      ##指定的PP
    BB_POLICY= relocatable
    RELOCATABLE= yes
    UPPER_BOUND= 32
    LABEL= /app
    MAPFILE=
    LV_MIN_LPS= 8               ##实际使用的LPS
    STRIPE_WIDTH= 
    STRIPE_SIZE= 
    SERIALIZE_IO= no
    FS_TAG= vfs=jfs2:log=INLINE:mount=true:options=rw:account=false 
    DEV_SUBTYP=

如上所示,LPS为200,但是LV_MIN_LPS为8,表示该lv实际使用仅8了PP,因此可以将LPS修改为20,PP修改为20同时需修改文件系统字段

fs_data:
    FS_NAME= /app
    FS_SIZE= 104857600    ##文件系统总大小,单位为512-blocks
    FS_MIN_SIZE= 4096000
    FS_LV= /dev/lv_app
    FS_JFS2_BS= 4096
    FS_JFS2_SPARSE= yes
    FS_JFS2_INLINELOG= yes
    FS_JFS2_SIZEINLINELOG= 200
    FS_JFS2_EAFORMAT= v1
    FS_JFS2_QUOTA= no
    FS_JFS2_DMAPI= no
    FS_JFS2_VIX= yes
    FS_JFS2_EFS= no

需要将上述FS_SIZE修改为20个PP的大小

上述修改后如下

lv_data:
    VOLUME_GROUP= rootvg
    LV_SOURCE_DISK_LIST= hdisk0 
    LV_IDENTIFIER= 00c9691200004c000000014ff290f5fd.13
    LOGICAL_VOLUME= lv_app
    VG_STAT= active/complete
    TYPE= jfs2
    MAX_LPS= 512
    COPIES= 1
    LPs= 20                     ##指定的LPS
    STALE_PPs= 0
    INTER_POLICY= minimum
    INTRA_POLICY= middle
    MOUNT_POINT= /app
    MIRROR_WRITE_CONSISTENCY= on/ACTIVE
    LV_SEPARATE_PV= yes
    PERMISSION= read/write
    LV_STATE= opened/syncd
    WRITE_VERIFY= off
    PP_SIZE= 256
    SCHED_POLICY= parallel
    PP= 20                      ##指定的PP
    BB_POLICY= relocatable
    RELOCATABLE= yes
    UPPER_BOUND= 32
    LABEL= /app
    MAPFILE=
    LV_MIN_LPS= 8               ##实际使用的LPS
    STRIPE_WIDTH= 
    STRIPE_SIZE= 
    SERIALIZE_IO= no
    FS_TAG= vfs=jfs2:log=INLINE:mount=true:options=rw:account=false 
    DEV_SUBTYP=
fs_data:
    FS_NAME= /app
    FS_SIZE= 10485760    ##文件系统总大小,单位为512-blocks
    FS_MIN_SIZE= 4096000
    FS_LV= /dev/lv_app
    FS_JFS2_BS= 4096
    FS_JFS2_SPARSE= yes
    FS_JFS2_INLINELOG= yes
    FS_JFS2_SIZEINLINELOG= 200
    FS_JFS2_EAFORMAT= v1
    FS_JFS2_QUOTA= no
    FS_JFS2_DMAPI= no
    FS_JFS2_VIX= yes
    FS_JFS2_EFS= no

上述修改的目的是为了使还原时需要创建的LV总大小小于磁盘空间

定义image_data资源

nim -o define -t image_data -a server=master -a location=/export/nim/mksysb/image.data image_data

将新定义的image_data资源也指定给待恢复主机

nim -o bos_inst -a source=mksysb -a spot=spot_app01 -a mksysb=mksysb_app01 -a bosinst_data=bosinst_data -a image_data=image_data -a accept_licenses=yes -a boot_client=no SKAPP

使用HMC console终端从网络启动

镜像拆除恢复

下述是针对rootvg中有两块或者多块硬盘的情况,主要是指rootvg做了mirror,此时需要修改image.data

restore -vxqf mksysb_oldhostname ./image.data

编辑image.data

lv_data:
    VOLUME_GROUP= rootvg
    LV_SOURCE_DISK_LIST= hdisk0 hdisk1     ##LV所在的磁盘
    LV_IDENTIFIER= 00c9691200004c000000014ff290f5fd.4
    LOGICAL_VOLUME= hd4
    VG_STAT= active/complete
    TYPE= jfs2
    MAX_LPS= 512
    COPIES= 2        ##copy的数目
    LPs= 8           ##LPS数目
    STALE_PPs= 0
    INTER_POLICY= minimum
    INTRA_POLICY= center
    MOUNT_POINT= /
    MIRROR_WRITE_CONSISTENCY= on/ACTIVE
    LV_SEPARATE_PV= yes
    PERMISSION= read/write
    LV_STATE= opened/syncd
    WRITE_VERIFY= off
    PP_SIZE= 256
    SCHED_POLICY= parallel
    PP= 16          ##PP数目
    BB_POLICY= relocatable
    RELOCATABLE= yes
    UPPER_BOUND= 32
    LABEL= /
    MAPFILE=
    LV_MIN_LPS= 1
    STRIPE_WIDTH= 
    STRIPE_SIZE= 
    SERIALIZE_IO= no
    FS_TAG= vfs=jfs2:log=/dev/hd8:mount=automatic:type=bootfs:vol=root:free=true:quota=no 
    DEV_SUBTYP=

将上述COPIES修改为1,将PP修改为LPS的大小,同LV_SOURCE_DISK_LIST仅保留hdisk0
修改完成后如下:

lv_data:
    VOLUME_GROUP= rootvg
    LV_SOURCE_DISK_LIST= hdisk0     ##LV所在的磁盘
    LV_IDENTIFIER= 00c9691200004c000000014ff290f5fd.4
    LOGICAL_VOLUME= hd4
    VG_STAT= active/complete
    TYPE= jfs2
    MAX_LPS= 512
    COPIES= 1        ##copy的数目
    LPs= 8           ##LPS数目
    STALE_PPs= 0
    INTER_POLICY= minimum
    INTRA_POLICY= center
    MOUNT_POINT= /
    MIRROR_WRITE_CONSISTENCY= on/ACTIVE
    LV_SEPARATE_PV= yes
    PERMISSION= read/write
    LV_STATE= opened/syncd
    WRITE_VERIFY= off
    PP_SIZE= 256
    SCHED_POLICY= parallel
    PP= 8          ##PP数目
    BB_POLICY= relocatable
    RELOCATABLE= yes
    UPPER_BOUND= 32
    LABEL= /
    MAPFILE=
    LV_MIN_LPS= 1
    STRIPE_WIDTH= 
    STRIPE_SIZE= 
    SERIALIZE_IO= no
    FS_TAG= vfs=jfs2:log=/dev/hd8:mount=automatic:type=bootfs:vol=root:free=true:quota=no 
    DEV_SUBTYP=

定义image_data资源

nim -o define -t image_data -a server=master -a location=/export/nim/mksysb/image.data image_data

将新定义的bosinst_data资源也指定给待恢复主机

nim -o bos_inst -a source=mksysb -a spot=spot_app01 -a mksysb=mksysb_app01 -a bosinst_data=bosinst_data -a image_data=image_data -a accept_licenses=yes -a boot_client=no SKAPP

使用HMC console终端从网络启动

总结
总的来说如果恢复时提示空间不足,建议提取bosinst.data、image.data两个文件
1、将bosinst.data中的SIZE_MB参数留空
2、如果bosinst.data中只有一块盘,建议确认下image.data中LV的总大小是否小于待恢复主机磁盘空间
3、如果bosinst.data中只有两块盘,则修改LV_SOURCE_DISK_LIST、COPIES、PP三个参数,同时检查LV总大小是否小于待恢复主机磁盘空间

阅读此文档需对NIM操作有简单的了解

前提已经定义好了mksysb、spot资源

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广