免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9390 | 回复: 6
打印 上一主题 下一主题

veritas volume manager故障处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-15 08:58 |只看该作者 |倒序浏览
从未完成的磁盘组移动中恢复
如果当磁盘组移动、分割或结合操作正在进行时系统崩溃或子系统失败,则在系统重新启
动或子系统修复时, VxVM 会尝试逆转或完成该操作。是逆转还是完成操作,取决于操作
进展程度。
自动恢复要求源和目标磁盘组均能够导入。如果该条件不可能满足 (例如,如果其中一个
磁盘组已在另一主机上导入),则执行以下步骤来恢复磁盘组:

1.        使用 vxprint 命令检查这两个磁盘组的配置。未完成移动的磁盘组中的对象,其
TUTIL0 域设置为 MOVE。

2.        输入以下命令,尝试完成移动:
#        vxdg recover        sourcedg
如果因为其中一个磁盘组已在另一主机上导入或因为其不存在而不能导入,则此操作
失败:
vxvm: vxdg: 错误 :        diskgroup:        磁盘组不存在
如果恢复失败,请执行下列相应的步骤。

        如果磁盘组已在另一主机上导入,则将它从那个主机上逐出,然后在当前主机上导入。
如果在源磁盘组或目标磁盘组中,所有需要的对象均已存在,则使用以下命令在该磁
盘组中重置 MOVE 标志:
#        vxdg -o clean recover        diskgroup1
而在另一磁盘组上使用以下命令,将那些 TUTIL0 域标记为 MOVE 的对象删除:
#        vxdg -o remove recover diskgroup2

        如果只有一个磁盘组可用于导入,则使用以下命令在此磁盘组上重置 MOVE 标志:
#        vxdg -o clean recover        diskgroup
从 DCO 日志卷故障中恢复
Persistent FastResync (保留式快速再同步)使用数据更改对象 (DCO) 日志卷来执行卷中
更改区域的跟踪。如果当读取或写入 DCO 日志卷时发生错误,则分离该卷并在 DCO 上设
置 badlog        标志。 (可对 vxprint 使用 -a、 -F 或 -m 选项中的一个,检查是否在 DCO
上设置了 badlog 标志。)所有对卷的进一步写入将不会被 DCO 跟踪。
若要恢复 DCO 日志卷,请执行以下步骤:

1.        纠正导致 I/O 失败的问题。

2.        使用以下命令从 DCO 中删除 badlog 标志:
#        vxdco -g diskgroup -o force enable dco

3.        使用以下命令重新启动 DCO 日志卷:
#        vxvol -g diskgroup start        dco_log_vol

4.        使用 vxassist snapclear 命令清除原始卷及其所有镜像的 FastResync 映像。这确
保在对快照进行快照合并时,不会使用有可能失效的 FastResync 映像 (执行一次完全
再同步)。对卷的任何后续快照,将重新启用快速再同步跟踪。
警告在将 badlog 标记从 DCO 中删除后,必须对卷的所有快照使用 vxassistsnapclear 命令。否则,当对快照卷进行快照合并时,有可能丢失或损坏数据。
如果卷及其快照卷在同一磁盘组中,则以下命令将同时清除这两个卷的 FastResync 映
像:
#        vxassist -g diskgroup snapclear        volume        snap_obj_to_snapshot
其中, snap_obj_to_snapshot 是指向快照卷的 snap 对象的名称,该对象与 volume
关联。
如果快照卷和原始卷在不同的磁盘组中,则必须对每个卷执行单独的 snapclear 操
作:
#        vxassist -g diskgroup1 snapclear volume        snap_obj_to_snapshot
#        vxassist -g diskgroup2 snapclear snapvol        snap_obj_to_volume
其中, snap_obj_to_volume 是指向原始卷的 snap 对象的名称,该对象与快照卷
snapvol 关联。

5.        若要对在前一步骤中执行了 snapclear 操作的快照卷进行快照合并,请使用以下命
令 (如有必要,请在使用 vxdg move 命令将快照卷移回原始磁盘组之后执行 ):
#        vxplex -f -g diskgroup snapback volume        snapvol_plex
注意        不能使用 vxassist snapback 命令,因为 snapclear 操作已删除了快照关联信
息。
下列命令序列演示如何恢复跟踪磁盘组 egdg 中顶层卷 vol1 的 DCO 日志卷,还演示如何
将快照卷 SNAP-vol1 与 vol1 快照合并:
#        vxdco -g egdg -o force enable vol1_dco
#        vxvol -g egdg start vol1_dco
#        vxassist -g egdg snapclear vol1 SNAP-vol1_snp
#        vxplex -g egdg snapback vol1 SNAP-vol1-01
其中,vol1_dco 是与 vol1 关联的 DCO,SNAP-vol1_snp 是与 vol1 关联的指向快照
SNAP-vol1 的 snap 对象,而 SNAP-vol1-01 是与 vol1 快照合并的快照 plex。
更多信息,请参见 vxassist(1M) 和 vxdco(1M) 帮助手册。
可能的根、 swap 和 usr 配置
在安装期间,根 (/)、 swap 和 usr 文件系统可能有不同的配置。可能出现下列情况:
usr 是 / 下的一个目录,没有为它分配单独的分区。在这种情况下,当封装根磁盘并
使其受 VERITAS Volume Manager 控制时, usr 成为 rootvol 卷的一部分。
usr 在根磁盘上的一个独立于根分区的分区中。在这种情况下,为 usr 分区创建一个
独立卷。vxmirror 在目的地磁盘上镜像 usr 卷。
usr 在根磁盘以外的一个磁盘上。在这种情况下,仅当使用 VxVM 封装该磁盘时才为
usr 分区创建一个卷。注意,如果独立的 usr 分区因任何原因而变得无法存取,则封
装根磁盘和拥有根卷的镜像对维护系统的可用性不起作用。要获得系统的最大可用性,
建议您封装根磁盘和包含 usr 分区的磁盘,并镜像 usr、rootvol, 和 swapvol 卷。
VxVM 允许您将 swap 分区放置在任何磁盘上; 在引导进程的早期阶段,不需要初始
swap 区域。默认情况下, VERITAS Volume Manager 安装选择选定磁盘上的分区 0 作为
根分区,而分区 1 作为 swap 分区。但是, swap 分区也可以在根磁盘以外的分区上。在这
种情况下,建议您封装该磁盘并为 swap 卷创建镜像。如果不这样做,则对 swap 分区的
损坏将最终导致系统崩溃。或许还可以引导系统,但具有 swapvol 卷的镜象可以防止系
统故障。
从替换引导磁盘启动系统
如果已封装并镜像根磁盘,则当主引导磁盘失败时,可以使用其镜像中的一个来引导系
统。在 SPARC 系统上,若要在主引导磁盘发生故障后引导系统,请按下列步骤进行:

1.        在引导提示符下输入以下命令,检查 EEPROM 变量 use-nvramrc? 的设置:
ok printenv        use-nvramrc?
如果此变量设置为 true,则允许使用替换的引导磁盘。若要将 use-nvramrc? 的值
设置为 true,在引导提示符下输入以下命令:
ok setenv        use-nvramrc? true
如果 use-nvramrc? 设置为 false,则系统无法从 devalias 引导,并显示诸如以
下的错误信息:
Rebooting with command: boot vx-mirdisk                              
Boot device: /pci@1f,4000/scsi@3/disk@0,0 File and args:vx-mirdisk
boot: cannot open vx-mirdisk
Enter filename [vx-mirdisk]:

2.        在引导提示符下使用以下命令,检查可用的引导磁盘别名:
ok devalias
根磁盘的合适镜像以 vx-diskname 形式的名称列出。

3.        输入此命令:
ok boot alias
其中, alias 是从前一步骤找到的替换根磁盘镜像的名称。
如果选定的磁盘包含失效的根镜像,则 vxconfigd 显示错误信息,指出镜像不可用,
并列出所有非失效的替换引导磁盘。
SPARC 系统上的引导进程
除非已在固件所使用的非易失存储区域设置了 autoboot 标志,否则 Sun SPARC 系统会
提示输入引导命令。带有较老的 PROM 的机器,其提示符不同于较新的 V2 和 V3 版本。
这些较新版本的 PROM 还称为 OpenBoot PROM (OBP)。较新类型 PROM 的 boot 命令的
语法为:
ok boot [OBP names] [filename] [boot-flags]
OBP names 指定 OpenBoot PROM 标示。例如,在 Desktop SPARC 系统上,标示
sbus/esp@0,800000/sd@3,0:a 表示一个位于 SCSI 总线上的目标 3、 lun 0 的 SCSI 磁
盘 (sd),带有插入插槽 0 的 esp 主机总线适配器。
注意        可以使用 VERITAS Volume Manager 引导磁盘别名来取代 OBP 名称。别名实例为
vx-rootdisk 或 vx-disk01。若要列出可用的引导设备,在 OpenBoot 提示符下
使用 devalias 命令。
filename 是包含内核的文件名称。默认为根分区中的 /kernel/unix。如有必要,可以
通过指定 -a 标志来指定其它程序 (如 /stand/diag)。 (某些固件版本允许在系统的
非易失存储区域保存默认文件名。)
注意        不要使用由 -a 标志所引入的全部默认值来引导正在运行启用了根目录可置性的VxVM  的系统。
热重定位与引导磁盘故障
如果引导 ( 根 ) 磁盘发生故障并且它已镜像,热重定位会自动尝试用新镜像更换出错的根
磁盘。要达到此目的,热重定位使用幸存的根磁盘镜像在备用磁盘或者在具有足够空闲空
间的磁盘上创建新镜像。这确保始终有至少两个根磁盘的镜像可用于引导系统。热重定位
后台驻留程序还调用 vxbootsetup 实用程序,将带有新镜像的磁盘配置为可引导磁盘。
如果 rootdg 磁盘组未包含足够的备用磁盘或空闲空间来容纳来自出错根磁盘的卷,则对
根磁盘的热重定位会失败。rootvol 和 swapvol 卷需要连续的磁盘空间。如果出错根磁
盘上的根卷和其它卷不能重定位到同一新磁盘,则每个卷可能重定位到不同的磁盘。
rootvol 和 swapvol 卷的镜像必须是磁柱对准的。这意味着,它们只能创建在那些具有
足够空间来允许其子磁盘起始和结束于磁柱边界的磁盘上。如果没有这样的磁盘存在,则
热重定位无法创建镜像。

将子磁盘解除重定位至替换引导磁盘
当封装引导磁盘时,会将根文件系统和其它系统区域,如 swap        分区建立为卷。 VxVM 使
用部分现有的交换区来创建专用区域,它通常位于磁盘的中部。但是,当磁盘初始化为
VM 磁盘时, VxVM 在磁盘的起始处创建专用区域。
如果镜像的封装引导磁盘失败,则热重定位在备用磁盘上创建其子磁盘的新副本。作为此
进程的一部分,出错磁盘的名称及其成分子磁盘的偏移均存储在子磁盘记录中。在以具有
同样存储容量的磁盘更换出错的引导磁盘之后,它被 “初始化”并添加回磁盘组。可以运
行 vxunreloc 以将所有子磁盘移回该磁盘。但是,初始化磁盘与封装磁盘间的不同磁盘
布局会影响计算每个解除重定位的子磁盘在磁盘中的偏移的方式。对 vxunreloc 使用 -f
选项,可将子磁盘移到该磁盘,但不必移到相同的偏移处。为使此操作成功,替换磁盘应
至少比原始引导磁盘大 2 千兆字节。
vxunreloc 在将所有子磁盘移到新磁盘后,使该磁盘成为可引导磁盘。

注意        系统转储设备通常配置为根磁盘的 swap        分区。一旦交换子磁盘从一个磁盘移动
(通过热重定位,或使用 vxunreloc)到另一磁盘,必须在新磁盘上重新配置转储
设备。
在 Solaris 2.6 和早期版本中,转储设备的名称存储在 dumpfile 结构中。使用以下命令来
发现其设置:
#        echo dumpfile+0x10/s | adb -k /dev/ksyms /dev/mem
其输出类似于如下显示:
physmem 3d24
dumpfile+0x10: /dev/dsk/c0t0d0s1
在此实例中,转储设备配置为 /dev/dsk/c0t0d0s1。要更改此设置,请关机并重新引导
系统。这会将第一个交换分区配置为转储设备。
在 Solaris 7 和其后的版本中,使用 dumpadm 命令查看和设置转储设备。详见 dumpadm
(1M) 帮助手册。
(参考volume manager管理的故障卷)

论坛徽章:
0
2 [报告]
发表于 2007-03-15 08:59 |只看该作者

veritas volume manager(故障处理二)

从引导故障中恢复
尽管存在许多类型的故障可阻碍系统引导,但可采取相同的基本步骤使系统启动。当系统
引导失败时,首先应尝试通过留在屏幕上的证据来识别故障,然后尝试纠正问题 (例如,
接通偶然掉电的驱动器)。如果问题无法纠正 (如引导磁盘上的数据错误),则从包含根
卷镜像的替换引导磁盘来引导系统,从而使损坏得以修复或出错磁盘得以更换。
引导设备无法打开
在引导进程的早期,紧接系统初始化之后,可能存在类似以下的信息:
SCSI device 0,0 is not responding (SCSI 设备没有响应)
Cant open boot device (无法打开引导设备)

这表明,系统 PROM 无法从引导驱动器读取引导程序。此问题的一般原因是:
引导磁盘未上电。
SCSI 总线未终接。
存在某类控制器故障。
磁盘正发生故障并锁住总线,使任何磁盘不能向控制器标识自己,并使控制器以为不
存在挂接的磁盘。
诊断此问题的第一步是仔细检查 SCSI 总线上的每个部件是否正常。如果磁盘掉电或总线未
终接,则更正该问题并重新启动系统。如果其中一个磁盘发生故障,则从总线中移去该磁
盘并替换该磁盘。
如果没有发现任何硬件问题,则错误可能是由于引导磁盘上的数据错误引起。为了纠正该
问题,尝试从替换引导磁盘 (包含根卷的镜像)引导系统。如果无法从替换引导磁盘引导
系统,则可能仍然存在某种类型的硬件问题。与此相类似,如果用替换引导磁盘取代故障
磁盘后仍无法引导系统,这也表明有硬件问题。
无法从不可用的或失效的 Plex 引导
如果磁盘在系统运行时不可用,则驻留在该磁盘上的卷的任何镜像都将失效。这意味着该
磁盘上的数据与该卷的其它镜像不一致。在引导进程中,在获得卷的一个完整配置前,系
统只存取根卷的一个副本 (引导磁盘上的副本)。
如果结果表明用于引导的卷的 plex 失效,则必须从包含非失效 plex 的替换引导磁盘来引
导系统。例如,关闭了初始引导磁盘并从 VxVM 建立的可引导磁盘来引导系统,就有可能
出现该问题。系统仍会正常启动,但驻留在断电磁盘上的 plex 失效。如果系统在重新接通
初始引导磁盘后从该磁盘重新引导,则会用到那个失效的 plex。
如果引导磁盘上 VERITAS Volume Manager 头文件中的错误使 VxVM 不能正确标识磁盘,
则可能会发生另外的问题。在这种情况下, VxVM 不知道该磁盘的名称。这会产生问题,
因为 plex 与磁盘名称相关联,所以在未标识磁盘上的任何 plex 都不可用。
如果根磁盘上的故障影响到根卷 plex ,也会发生问题。在下一次引导尝试中,系统仍期望
使用故障根 plex 来引导。如果在发生故障时已镜像了根磁盘,则可以指定替换根磁盘 (带
有有效的根 plex)来引导系统。
如果发生这些情况中的任何一种,则在作为引导序列的 init 处理部分进行系统配置时,
配置后台驻留程序 vxconfigd 将会注意到该情况。vxconfigd 将显示描述错误的信息并
显示处理错误的方法,然后停止系统。例如,如果磁盘 rootdisk 上根卷 rootvol 的
plex rootvol-01 失效, vxconfigd 可能显示下列信息:
vxvm:vxconfigd: 警告:根卷的 Plex rootvol-01        失效或者不可用。
vxvm:vxconfigd: 错误 :        系统引导磁盘没有有效的根 plex
请从下列磁盘之一启动:
磁盘 : disk01 设备 : c0t1d0s2
vxvm:vxconfigd: 错误 :        系统启动失败
系统关闭。
这将通知管理员:名为 disk01 的替换引导磁盘包含根 plex 的可用副本,应使用该副本来引导系统。
如果引导磁盘上的 plex 不可用,则会收到 VERITAS Volume Manager 实用程序描述该问
题的邮件。确定问题的另一种方法是用 vxdisk 实用程序列出磁盘。在上面的实例中,如
果问题出在根磁盘专用区域的故障 (如:由于介质故障或意外地改写了磁盘上的
VERITAS Volume Manager 专用区域),则 vxdisk list 将显示下列内容:
设备            类型      磁盘            组       状态
-                -   rootdisk           rootdg   故障        位:c0t3d0s2
无效的 UNIX 分区

联机

引导程序一旦装入,便会尝试通过正常的 UNIX 分区信息来存取根磁盘。如果该信息受到
损坏,则引导程序失败,并出现下列错误信息:
File just loaded does not appear to be executable (刚装入的文件看来不
可执行)

如果该消息在引导过程中出现,则应当从替换引导磁盘来引导系统。在引导时,大多数磁
盘驱动程序会在控制台上显示出错信息,指出故障磁盘上存在无效 UNIX 分区。这些信息
类似如下:
WARNING: unable to read label (无法读取标签)
WARNING: corrupt label_sdo (损坏的 label_sdo)
/etc/vfstab 中的不正确项
当封装根磁盘并将其置于  VERITAS Volume Manager 控制之下时,作为正常封装进程的
一部分,为磁盘上的所有分区创建了卷。 VxVM 修改 /etc/vfstab 以使用相应的卷替代
磁盘分区。在手动编辑 /etc/vfstab 文件时应小心,并且应总是在提交对它的任何更改
之前制作一个备份副本。最重要的项是那些对应于 / 和 /usr 的项。在 VERITAS Volume
Manager 安装前便已存在的 vfstab 保存在 /etc/vfstab.prevm 中。
/etc/vfstab 中损坏的根 (/) 项
如果 /etc/vfstab 中根文件系统 (/) 项丢失或不正确,则系统将以单用户模式引导。显
示类似以下的消息:
File just loaded does not appear to be executable (刚装入的文件看来不
可执行)

建议此刻运行 fsck:
#        fsck /dev/vx/rdsk/rootvol

在引导进程的此刻, / 安装为只读,而不是读 / 写。由于 /etc/vfstab 中的项不正确或
已删除,需使用下列命令手动以读 / 写模式安装 /:
#        mount -o remount /dev/vx/dsk/rootvol

将 / 以读 / 写模式安装后,退出 shell。系统提示输入新的运行级。对于多用户模式,输入
运行级 3:
ENTER RUN LEVEL (0-6,s or S):        3

系统引导后,恢复 /etc/vfstab 中的 / 项。

/etc/vfstab 中损坏的 /usr 项
只有当 /usr 位于一个独立的磁盘分区上时,/etc/vfstab 中才有 /usr 的项。封装包含
/usr 分区的磁盘后, VxVM 将更改 /etc/vfstab 中的项以使用相应的卷。
在丢失 /etc/vfstab 中 /usr 项的情况下,无法引导系统 (即使有 /usr 卷的镜像)。
在这种情况下,从 CD-ROM 引导系统并使用以下步骤恢复 /etc/vfstab:

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

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

3.        编辑 /tmp/a/root/etc/vfstab,确保存在 /usr 文件系统的项,如下所示:
/dev/vx/dsk/usr /dev/vx/rdsk/usr /usr ufs 1 yes -

4.        关机并从恢复 vfstab 文件的同一根分区上重新启动系统。
缺失或损坏的 /etc/system
不要编辑 /etc/system 中由 VxVM 添加的任何项。所有的 VERITAS Volume Manager
项都包括在 vxvm_START 和 vxvm_END 注释之间。
在对 /etc/system 进行任何更改之前,在根文件系统中制作它的一个副本。如果对新
/etc/system 文件的更改不正确,则可将保存的副本指定给 boot 程序。要将保存的系
统文件指定给 boot 程序,请按照下一节中的步骤进行。

在根磁盘上恢复 /etc/system 的副本
如果 /etc/system 文件被损坏,而 /etc/system 文件的保存副本可用,则可利用
VERITAS Volume Manager 根目录可置性来引导系统:

1.        采用以下命令引导系统:
ok boot -a

2.        按 Return 键接受所有提示下的默认值,以下情况除外:

a.        内核程序的默认路径名 /kernel/unix 可能不适合于您的系统结构。如果是这
样,在以下提示处输入正确的路径名,如 /platform/sun4u/kernel/unix:
Enter filename [/kernel/unix]:/platform/sun4u/kernel/unix

b.        在以下提示处输入保存的 system 文件名,如 /etc/system.save:
Name of system file [/etc/system]:/etc/system.save

c.        在以下提示处输入 /pseudo/vxio@0:0 作为根设备的物理名:
Enter physical name of root device
[...]:/pseudo/vxio@0:0

根磁盘上的 /etc/system 副本不可用
如果 /etc/system 文件损坏或遗失,并且该系统文件的保存副本在根磁盘上不可用,则
在 VERITAS Volume Manager 根目录可置性功能打开的情况下,无法引导系统。
以下步骤假定根磁盘的设备名为 c0t0d0s2,且根 (/) 文件系统在分区 s0 上。
若要在不采用 VERITAS Volume Manager 根目录可置性的情况下引导系统并恢复
/etc/system 文件:

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

2.        在合适的安装点上 (如 /a 或 /mnt),安装 /dev/dsk/c0t0d0s0:
#        mount /dev/dsk/c0t0d0s0 /a
3.        如果 /etc/system 的备份副本可用,则恢复它作为文件 /a/etc/system。如果备
份副本不可用,则创建一个新的 /a/etc/system 文件。确保        /a/etc/system 包含
下列 VxVM 所需的项:
* vxvm_START
forceload: drv/driver
...
forceload: drv/vxio
forceload: drv/vxspec
forceload: drv/vxdmp
rootdev:/pseudo/vxio@0:0
set vxio:vol_rootdev_is_volume=1
* vxvm_END
形式为 forceload: drv/driver        的行用于强制装入根镜像磁盘的驱动程序。 driver
名称的实例为 pci、sd、ssd、dad 和 ide。要找出驱动程序的名称,使用 ls 命令获
取与用于根磁盘的设备对应的特殊文件的长列表,例如:
#        ls -al /dev/dsk/c0t0d0s2
此程序输出类似如下 (删除了不相关的细节):
lrwxrwxrwx ... /dev/dsk/c0t0d0s2 ->
../../devices/pci@1f,0/pci@1/pci@1/SUNW,isptwo@4/sd@0,0:c
此实例将会需要强制装入 pci 和 sd 驱动程序的文件行:
forceload: drv/pci
forceload: drv/sd

4.        关机并从恢复 system 文件的同一根分区重新启动系统。
(参考veritas volume manager的故障卷)

论坛徽章:
0
3 [报告]
发表于 2007-03-15 09:00 |只看该作者

veritas volume manager(故障处理三)

修复镜像卷上的 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命令来进行替换。
(参考vertias volume manager故障卷)

论坛徽章:
0
4 [报告]
发表于 2007-05-29 15:50 |只看该作者
好文章就要顶,楼主辛苦。

论坛徽章:
4
IT运维版块每日发帖之星
日期:2015-09-06 06:20:00数据库技术版块每日发帖之星
日期:2015-09-06 06:20:00数据库技术版块每日发帖之星
日期:2016-07-10 06:20:00IT运维版块每日发帖之星
日期:2016-07-12 06:20:00
5 [报告]
发表于 2011-11-02 20:44 |只看该作者
不同的平台都可以吗?

论坛徽章:
0
6 [报告]
发表于 2011-10-27 11:32 |只看该作者
太强大了。。。

论坛徽章:
0
7 [报告]
发表于 2011-09-29 15:45 |只看该作者
辛苦了哈,,顶顶。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP