打印

Solaris技术专题——zone详解(2)执行备份、恢复和灾难恢复

本帖已经被作者加入个人空间

Solaris技术专题——zone详解(2)执行备份、恢复和灾难恢复

备份、恢复和灾难恢复是数据管理的重要组成部分。使用区域时,可以根据组织的需求选择合适的解决方案对运行 Solaris 操作系统 (Operating System, OS) 的系统进行备份。

备份文件系统是指将文件系统备份到可移除介质(如磁带),以防丢失、损坏或破坏。恢复文件系统是指将当前的备份文件从可移除介质复制到工作目录。本文档介绍了备份系统上区域配置和数据的各种方法,并就所能使用的不同方法提供了建议。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

确定备份的执行位置

您可以在各个非全局区域 (non-global zone) 中执行备份,也可以从全局区域 (global zone) 备份非全局区域。

备份 LOFS 目录

因为很多非全局区域通过使用回送文件系统只读挂载(通常是 /usr、/lib、/sbin 和 /platform)与全局区域共享文件,所以,使用全局区域备份策略备份 LOFS 目录是很重要的。建议不要在非全局区域中备份 LOFS 文件系统。在这种情况下,无法进行恢复。如果非全局管理员尝试这样做,则会导致严重的问题。

从全局区域备份系统

满足以下条件时,应该选择从全局区域执行备份:

    *

      拥有网络备份软件,如 Symantec/VERITAS NetBackup。
    *

      需要备份非全局区域的配置以及应用程序数据。
    *

      主要问题是灾难恢复。如果需要恢复系统上的所有内容或者绝大部分内容(包括区域的根文件系统及其配置数据和全局区域中的数据),则最好在全局区域中执行备份。
    *

      需要使用 ufsdump 执行数据备份。因为将物理磁盘设备导入非全局区域会更改该区域的安全配置文件,所以,只能在全局区域中使用 ufsdump。

在系统上备份各个非全局区域

满足以下条件时,应决定在非全局区域中执行备份:

    *

      非全局区域管理员需要备份他们管理的区域中的数据,以便可以从不太严重的故障中恢复,或者恢复特定于某个区域的应用程序或用户数据。
    *

      需要使用对文件进行逐个备份的程序,如 tar(1) 或 cpio(1)。
    *

      使用区域中运行的特定应用程序或服务的备份软件。可能很难在全局区域中执行备份软件,因为全局区域和非全局区域中的应用程序环境(例如目录路径和已安装的软件)不同。

      如果应用程序可以按照自己的备份计划在每个非全局区域中执行快照,并将这些备份存储在从全局区域导出的可写目录中,则作为备份策略的一部分,全局区域管理员可以从全局区域中选取这些单个备份。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

区域备份方法摘要

以下部分概述了在区域中备份文件所能使用的方法。

使用 ufsdump 执行备份

可以使用 ufsdump 命令执行完整备份或增量备份。此过程可将区域 /export/zone1 备份到 /backup/zone1.ufsdump,其中,"zone1" 会由系统中区域的名称取代。

1.(可选)可以在使用 ufsdump 命令前关闭区域,以便使其处于静态,并避免备份共享的文件系统。

global# zlogin -S zone1 init 0

2.(可选)检查区域的状态。

global# zoneadm list -cv

ID NAME     STATUS       PATH
0 global    running      /
- zone1     installed    /export/zone1

3. 执行备份。

global# ufsdump 0f /backup/zone1.ufsdump /export/zone1

DUMP: Date of this level 0 dump: Wed Aug 10 16:13:52 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c0t0d0s0 (bird:/) to /backup/zone1.ufsdump.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 63 Kilobyte records
DUMP: Estimated 363468 blocks (174.47MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 369934 blocks (180.63MB) on 1 volume at 432 KB/sec
DUMP: DUMP IS DONE

4. 引导区域。

global# zoneadm -z zone1 boot

使用 fssnap 创建 UFS 快照

这种方法使用了 fssnap 命令,它可以为专用于备份操作的文件系统创建临时映像。

这种方法只能用于提供一个全新、一致的区域文件备份,并且可以在区域运行时执行。但是,最好在创建快照时暂停或检查正在更新文件的活动应用程序。在创建快照时更新文件的应用程序可能会使这些文件内部不一致、被截断或不可用。

在下面的示例过程中:

    * /export/home 下面有个名为 zone1 的区域。
    * /export/home 是一个单独的文件系统。
    * 目标备份为 /backup/zone1.ufsdump。必须在开始前创建 /backup。

1. 创建快照:

global# fssnap -o bs=/export /export/home

/dev/fssnap/0

2. 挂载快照。

global# mount -o ro /dev/fssnap/0 /mnt

3. 从快照备份 zone1。

global# ufsdump 0f /backup/zone1.ufsdump /mnt/zone1

DUMP: Date of this level 0 dump: Thu Oct 06 15:13:07 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rfssnap/0 (bird:/mnt) to /backup/zone1.ufsdump.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Writing 32 Kilobyte records
DUMP: Estimated 176028 blocks (85.95MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 175614 blocks (85.75MB) on 1 volume at 2731 KB/sec
DUMP: DUMP IS DONE

4. 卸载快照。

global# umount /mnt

5. 删除快照。

global# fssnap -d /dev/fssnap/0

请注意,重新引导系统时,也会删除快照。

使用 find 和 cpio 执行备份

以下方法可在正在运行的区域上使用 find 和 cpio。

1. 将目录更改为 / 目录:

global# cd /

2. 备份没有回送挂载到 /backup/zone1.cpio 的 zone1 文件。

global# find export/zone1 -fstype lofs -prune -o -local |
  cpio -oc -O /backup/zone1.cpio

3. 检验结果。

global# ls -l backup/zone1.cpio

-rwxr-xr-x 1 root root 99680256 Aug 10 16:13 backup/zone1.cpio

使用网络备份软件备份和恢复系统

可以使用诸如 Symantec/VERITAS NetBackup 的产品备份或恢复 Solaris 系统。借助 Symantec/VERITAS NetBackup,可以协调整个企业范围的备份、归档和恢复。有关安装有区域的 Solaris 10 系统的 Netbackup 支持的说明,请访问:http://seer.support.veritas.com/docs/275107.htm

非全局区域支持 NetBackup 客户机软件。全局区域支持 NetBackup 主服务器和介质服务器。NetBackup 主服务器可以管理备份、归档和恢复。介质服务器可以提供附加存储,即允许 NetBackup 使用它们控制的存储设备,如 4 毫米的磁带驱动器。

可以恢复整个系统,也可以恢复特定文件和目录。NetBackup 可以定位到选定的文件和目录,并将它们恢复到客户机上的磁盘。

不需要更改标准的 NetBackup 体系结构,就可将其应用到安装有区域的系统。可将每个非全局区域视作运行 NetBackup 客户机软件的独立服务器。

应在区域及其应用程序处于静态时对要备份的数据执行备份。

注:如有可能,应对网络备份软件进行配置,使其跳过继承的所有 LOFS 文件系统。

提示:如果要整合服务器或利用同一系统上非全局区域之间较高的网络带宽(相对于有线网络而言),也可以同时定位到同一系统上的介质服务器。服务器和存储设备之间的连接必须具有足够的带宽,可供所有备份流使用。

有关 Symantec/VERITAS NetBackup 产品的完整文档,请访问:
http://www.sun.com/products-n-so ... etBackup/index.html

确定备份内容

可以备份非全局区域中的任何内容,或者也可以只备份应用程序数据,因为区域配置的更改并不频繁。

只备份应用程序数据

如果应用程序数据保存在文件系统的特定部分中,可能需要只对这些数据进行常规备份。可以不必经常备份区域的根文件系统,因为其更改并不频繁。

确定应用程序放置文件的位置可能要比表面上看起来更难。一些文件存储在每个用户的主目录中,一些文件存储在 /etc(绝大部分是配置数据)之下,而其他文件则保存在 /var 之下。

假设应用程序管理员知道数据的存储位置,则可以创建一个系统,其中每个区域均可使用其各自的可写目录。然后,每个区域可以存储自己的备份,并且全局管理员可以将此位置用作系统上的备份位置之一。

常规数据库备份操作

如果数据库应用程序数据不在自己的目录之下,以下规则将适用。

    * 首先确保数据库处于一致的状态。数据库必须处于静态,因为它们包含要刷新到磁盘的内部缓冲区。确保非全局区域中的数据库处于静态,然后从全局区域中开始备份。
    * 在每个区域中,使用文件系统功能创建数据的快照。直接从全局区域备份快照。这样,将会最大程度地缩短备份时间,同时避免备份所有区域中的客户机/模块。

磁带备份

每个非全局区域都可以创建其专用文件系统的快照,前提是该区域便于创建快照,且应用程序已经暂时处于静态。随后,全局区域可以备份每个快照,并在应用程序再次使用之后将备份放置在磁带上。

这种方法具有以下优点:

    * 最大限度地减少所需的磁带设备数。
    * 不需要在非全局区域之间进行协调。
    * 不需要直接为区域分配设备,从而提高了安全性。
    * 通常,此方法在全局区域中执行系统管理,这是首选方法。
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP

关于恢复非全局区域

如果恢复在全局区域中执行的备份,则全局管理员可以重新安装受影响的区域,然后恢复该区域的文件。请注意,上述情况以下面的假设为前提:

    * 所要恢复的区域的配置与执行备份时的配置相同。
    * 在完成备份到恢复区域这段时间内,未升级或修补全局区域。

否则,恢复操作可能会覆写某些应手动合并的文件。

例如,如果在备份之后、恢复非全局区域之前已对全局区域进行修补,可能需要手动合并文件。在这种情况下,恢复已备份的区域文件时必须谨慎,因为备份文件可能与新安装的区域(此区域在将修补程序应用于全局区域之后生成)不兼容。在这种情况下,必须逐个检查文件并将它们与新安装的区域中的副本进行比较。在多数情况下,会发现可以直接在区域中复制文件,但在某些情况下,必须将最初对文件所做的更改合并到区域中新安装或修补的副本中。

注:如果全局区域中的所有文件系统发生灾难性的丢失,只要备份中包含了非全局区域各自的根文件系统,恢复全局区域中的所有内容时也会恢复非全局区域。

备份各个区域配置以供将来使用

应该制作非全局区域配置的副本,以防将来某个时刻需要重新创建这些区域。在首次登录到区域,并回答了 sysidtool 问题之后,应该创建该区域配置的副本。

可以将每个区域的配置输出到文件,如下所述。

1. 成为超级用户或承担主管理员角色。

2. 将名为 zone1 的区域的区域配置输出到名为 zone1.config 的文件。

global# zonecfg -z zone1 export > zone1.config


如何恢复各个非全局区域

要从使用 zonecfg export 命令创建的文件恢复非全局区域,请使用以下过程。

1. 成为超级用户或承担主管理员角色。

2. 指定重新创建区域时将 zone1.config 用作 zonecfg 命令文件:

global# zonecfg -z zone1 -f zone1.config

3. 安装区域:

global# zoneadm -z zone1 install

4. 为了防止系统显示首次登录时提出的 sysidtool 问题,请删除文件 zonepath/root/etc/.UNCONFIGURED。例如:

global# rm /export/home/zone1/root/etc/.UNCONFIGURED

有关首次登录非全局区域时提出的 sysidconfig(1M) 问题的详细信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的“执行初始内部区域配置”。

5.(可选)将诸如应用程序数据备份的文件手动恢复(可能是手动合并)到新建区域的文件系统中。

参考

    * 手册页:
          o cpio(1)
          o tar(1)
          o fssnap(1M)
          o sysidtool(1M)
          o ufsdump(1M)
          o zonecfg(1M)
          o lofs(7FS)
    * 《系统管理指南:设备和文件系统》。请参见:
          o 表 23-4 各种备份类型之间的差异
          o 第 25 章“使用 UFS 快照(任务)”
          o 第 26 章“恢复文件和文件系统(任务)”
    * 《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》
    * Symantec/VERITAS NetBackup 文档
    * Symantec NetBackup 技术说明
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

通告:即日起启用新MSN和Mail地址:aic.lab.sif@gmail.com 原来的最多1个月后停用!

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-11-22 20:33 京ICP证060528 号

Designed By 17DST