Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578595
  • 博文数量: 113
  • 博客积分: 3322
  • 博客等级: 少校
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-04 11:38
文章分类

全部博文(113)

文章存档

2012年(21)

2010年(92)

分类:

2010-03-05 17:34:31

昨天遇到的事情给自己的感受很多。下午下班一个人坐在一个很大的饮食长廊里吃饭。看到身边来来往往的人,男人,女人,单身,情侣,结伴而行的。看到这些人脸上洋溢那灿烂的笑容。感觉春天的美好。突然,看到我身边吃饭的一个人,要了一碗和我一样的饭。看得出这个年轻人是一个从外地来我们这里打工的。手里拿着一份找工作的指南一类的东西。看得出这个年轻人是多么的苦难。因为从他吃饭的动作和举止可以感觉到。他内心对工作的渴望让我真的有一些感动。突然想到了自己,自己生活在这个城市里,有自己的家,无论工作多晚,回去以后,总有一盏灯为我点亮着。有母亲为我准备好的饭。那个时候,我感觉到我是世界上最幸福的人。再想想原来一个人在外地漂泊的时候,无论多晚回来以后,总要自己为自己点上那一盏微弱的灯光。其实,有的时候,想想自己在外玩的开心,快乐而忽略了家人的时候。当加班回去的时候,母亲在那里等着我,问我吃了没有。说了自己还没有吃。母亲不管多晚都会为自己端上那一碗热热的汤面。看着母亲因为关节炎,那走路的姿势。我的眼眶湿润了。。。。。。。。。。。。。
晚上失眠了,睡不着,总结出来的,希望可以对大家有帮助。

修复镜像卷上的 root 或 /usr 文件系统
如果根或 /usr 文件系统定义在卷上,则其中一个镜像的基础分区中的错误可导致引导时
刻 (当启动了 VxVM 并假定已同步镜像时)的数据损坏或系统错误。
此问题有两种解决办法:
安装根或 /usr 文件系统的一个 plex,修复它,卸载它,然后使用 dd 将修复的 plex
复制到所有其它 plex。因为此过程易于发生错误,不建议采用。
从有效的备份磁带恢复系统。此过程在下节中描述。它不需要从基础 CD-ROM 重新安
装操作系统。当根磁盘及其镜像均损坏时,它提供了一种简单、有效并且可靠的恢复
方法。
从备份磁带恢复根磁盘和根镜像
此过程假定您拥有:
封装前的原始根磁盘的分区表列表。
VERITAS Volume Manager 控制下的原始根磁盘上所有文件系统的最新完整备份。如
果根文件系统类型为 ufs,则可使用 ufsdump 命令备份它。详见 ufsdump(1M) 帮助
手册。
已安装的新引导磁盘,用于替换受到物理损坏的原始引导磁盘。
此过程要求重新安装根磁盘。为防止不涉及重新安装的磁盘上的数据丢失,在重新安装过
程中应只涉及根磁盘。
安装操作的若干自动选项无需管理员确认便可存取除根磁盘外的磁盘。因此,明智的做法
是在开始该过程前将其它所有包含卷的磁盘从系统断开。这将确保这些磁盘不受重新安装
的影响。该过程完成后再重新连接这些磁盘。
以下过程假定新根磁盘的设备名称为 c0t0d0s2,并且需要恢复分区 s0 上的根 (/) 文件系
统和分区 s6 上的 /usr 文件系统。如果您的系统没有独立的 /usr 文件系统,则忽略步骤
7 和步骤 8。

1.        在引导提示符下使用以下命令,从操作系统的安装 CD-ROM 将其引导为单用户模式
ok boot cdrom -s

2.        使用 format 命令在新的根磁盘 (c0t0d0s2) 上创建分区。这些分区在大小上应该与
封装前原始根磁盘上的分区一致,除非您要使用此过程更改它们的大小。如果要更改
分区的大小,请确保它们足以存储恢复到其上的数据。详见 format(1M) 帮助手册。
封装操作为 VERITAS Volume Manager 专用和公共区域预留了 2 个分区,因此最多只能为文件系统或交换区域创建 5 个分区。
3.        使用 mkfs 命令,在前一步骤创建的根和 usr 分区上建立新的文件系统。例如,要在
根分区上建立一个 ufs 文件系统,输入:
#        mkfs -F ufs /dev/rdsk/c0t0d0s0
更多信息,请参见 mkfs(1M) 和 mkfs_ufs(1M) 帮助手册。

4.        在合适的安装点上 (如 /a 或 /mnt),安装 /dev/dsk/c0t0d0s0:
#        mount /dev/dsk/c0t0d0s0 /a

5.        将根文件系统从磁带恢复到 /a 目录分层结构中。例如,如果您曾使用 ufsdump 备份
文件系统,则使用 ufsrestore 命令恢复它。详见 ufsrestore(1M) 帮助手册。

6.        使用 installboot 命令在 /a        上安装一个引导块设备。
7.        使用 mkdir 命令创建一个合适的安装点,如 /a/usr/,并将        /dev/dsk/c0t0d0s6
装入其上:
#        mkdir -p /a/usr
#        mount /dev/dsk/c0t0d0s6 /a/usr

8.        将 /usr 文件系统从磁带恢复到 /a/usr 目录分层结构中。

9.        通过对恢复的根文件系统中的文件进行如下修改,禁止启动 VxVM :

a.        创建文件 /a/etc/vx/reconfig.d/state.d/install-db 以阻止配置后台驻
留程序 vxconfigd 启动:
#        touch /a/etc/vx/reconfig.d/state.d/install-db

b.        将 /a/etc/system 复制到备份文件,如 /a/etc/system.old。

c.        通过在下列各行的前面放一个 * 字符,将它们从 /a/etc/system 中注释掉:
rootdev:/pseudo/vxio@0:0
set vxio:vol_rootdev_is_volume=1
这些行应变为:
* rootdev:/pseudo/vxio@0:0
* set vxio:vol_rootdev_is_volume=1

d.        将 /a/etc/vfstab 复制到备份文件,如 /a/etc/vfstab.old。

e.        编辑 /a/etc/vfstab,将 / 和 /usr 文件系统项的卷设备名称 (以
/dev/vx/dsk        开头)用其标准磁盘设备 /dev/dsk/c0t0d0s0 和
/dev/dsk/c0t0d0s6 替换。例如,将下列各行:
/dev/vx/dsk/rootvol /dev/vx/rdsk/rootvol / ufs 1 no -
/dev/vx/dsk/usrvol /dev/vx/rdsk/usrvol /usr ufs 1 yes -
替换为:
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no -
/dev/dsk/c0t0d0t6 /dev/rdsk/c0t0d0s6 /usr ufs 1 yes -
10. 使用 init 0 命令彻底关闭系统,然后从新的根磁盘重新启动系统。系统启动,并认为
VxVM 未安装。
此过程的下一步取决于旧的 rootdg 中是否存在根磁盘镜像:
如果旧的 rootdg 中存在未 用作根磁盘镜像的其它磁盘,则仅执行步骤 11。
如果旧的 rootdg 中仅存在根磁盘镜像,则仅执行步骤 12。
11. 如果在旧的 rootdg 中存在未 用作根磁盘镜像的其它磁盘,请按以下步骤将旧的
rootdg 引入 (减去 VxVM 将认作已失败的引导磁盘)并安装新的引导磁盘。

a.        删除涉及安装操作而不再需要的文件:
#        rm -r /etc/vx/reconfig.d/state.d/install-db

b.        启动 VERITAS Volume Manager I/O 后台驻留程序:
#        vxiod set 10

c.        以禁用模式启动 VERITAS Volume Manager 配置后台驻留程序:
#        vxconfigd -m disable

d.        初始化 volboot 文件:
#        vxdctl init

e.        启用 vxconfigd:
#        vxdctl enable
步骤 a 至 e 启用了旧 rootdg (不包括被 VxVM 认作失败的根磁盘)。

f.        使用 vxedit 命令 (或 VERITAS Volume Manager Storage Administrator
(VMSA))从 VERITAS Volume Manager 的控制中删除旧的根磁盘卷及根磁盘自
身。

g.        使用 vxdiskadm 命令封装新的根磁盘,并初始化充当根磁盘镜像的任何磁盘。在
必需的重启动之后,将根磁盘镜像到根磁盘镜像上。

12. 如果在旧的 rootdg 中仅有根磁盘镜像:

a.        运行 vxinstall 命令封装 (新)引导磁盘,并初始化根磁盘镜像。

b.        在必需的重启动之后,将根磁盘镜像到根磁盘镜像上。

重新添加和更换引导磁盘
对于启动系统不太关键的数据,只在系统完全正常运转后由 VxVM 进行存取,所以该数据
不必位于特定的区域中。 VxVM 可以找到这些数据。但是,启动系统所需的关键数据必须
放在可引导磁盘上的特定区域中,以便引导进程查找。
在某些系统上,控制器特有的操作由磁盘控制器在进程中执行,并且系统 BIOS 限制此关
键数据的位置。
如果引导磁盘发生故障,可以采用以下过程之一来更正问题:
如果是暂态错误或可更正性错误,则可以重新使用同一磁盘。这称为重新添加 磁盘。
在某些情况下,重新格式化故障磁盘或进行磁盘表面分析来重建替换扇区映射,便足
以使磁盘可重新添加。
如果磁盘彻底失败,则应将其替换。
以下各节描述如何重新添加或更换故障引导磁盘。
重新添加故障引导磁盘
除使用相同的物理磁盘外,重新添加磁盘与更换磁盘的过程相同。通常,需要重新添加的
磁盘已经被分离 。这意味着 VxVM 已经检测到磁盘故障并已停止存取该磁盘。
例如,考虑有 disk01 和 disk02 两个磁盘的系统,这两个磁盘通常在引导期间分别作为
磁盘 c0t0d0s2 和 c0t1d0s2 映射到系统配置中。某个故障导致了 disk01 分离。这可以
通过使用 vxdisk 实用程序列出磁盘而得到确认:
# vxdisk list
可以看到关于故障磁盘的情况。一般来讲这个磁盘会退出服务。
但是,由于该错误不可纠正,因此磁盘被视为失败。在这种情况下,需使用 vxdiskadm
的 “为替换而删除磁盘”菜单项来删除故障设备与其磁盘名之间的关联。 (详见
vxdiskadm (1M) 帮助手册。)然后可执行任何特殊过程 (如重新格式化设备)来纠正问
题。
若要重新添加磁盘,使用 vxdiskadm 的 “替换出错的或已删除的磁盘”菜单项来更换磁
盘,并指定相同 设备作为替换磁盘。
如果热重定位功能在镜像引导磁盘发生故障时已启用,将尝试创建新镜像并从故障引导磁盘中删除故障子磁盘。如果在热重定位成功之后接着进行重新添加,那么受磁盘故障影响的根和其它卷不再存在于重新添加的磁盘上。运行 vxunreloc 可将热重定位子磁盘移回到新替换的磁盘上。
更换故障引导磁盘
替换磁盘的存储容量至少应与被替换的磁盘上使用的存储容量相同。替换磁盘必须足以用
当前的磁盘偏移容纳原始磁盘的所有子磁盘。
若要估计替换磁盘的大小,请使用以下命令:
#        vxprint -st -e sd_disk="diskname"

其中 diskname 是故障磁盘或其镜像中的一个磁盘的名称。根据所得的输出,将列出的该
磁盘最后一个子磁盘的 DISKOFFS 和 LENGTH 值相加。此大小以 512 字节扇区为单位。将
此数值除以 2,得到以千字节为单位的大小。
若要更换引导磁盘:可以使用vxdiskadm命令来进行替换。
阅读(4042) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~