创建和管理 Oracle® Solaris 11.2 引导环境

退出打印视图

更新时间: 2014 年 7 月
 
 

克隆引导环境的示例

以下示例介绍了如何克隆引导环境以及该克隆过程如何因区域和数据集结构的不同而有所不同。第一个示例说明了在包含全局和非全局区域的系统中克隆如何执行。第二个示例显示与克隆相关的数据集具体信息。第三个示例显示克隆系统时共享数据集发生的情况。


注 - 有关区域和数据集的信息,请参见以下章节:
示例 3-1  在包含非全局区域的全局区域中克隆引导环境

本示例显示当您在包含非全局区域的全局区域中克隆引导环境时,beadm create 命令所影响的区域。

如果克隆的引导环境具有非全局区域中的关联区域引导环境,则也会克隆该关联的引导环境。例如,BE1 在非全局区域中具有关联的区域引导环境 BE2。如果克隆了 BE1,则也将克隆 BE2。

  • 在本示例中,全局区域中的原始引导环境名为 solaris,其根数据集位于 rpool/ROOT/solaris 中。

  • 存在名为 z1 的非全局区域,以数据集 rpool/zones/z1 作为其区域路径。全局区域中的原始 solaris 引导环境在 z1 非全局区域中具有关联的引导环境。此关联的区域引导环境名为 solaris,其根数据集位于 rpool/zones/z1/rpool/ROOT/solaris 中。

# zfs list -r rpool
NAME                                    USED  AVAIL  REFER MOUNTPOINT
rpool                                  11.5G  3.89G  4.46M  /rpool
rpool/ROOT                             8.47G  3.89G    31K  legacy
rpool/ROOT/solaris                     2.98M  3.89G  2.49G  /
rpool/ROOT/solaris/var                  428K  3.89G   298M  /var
rpool/dump                             1.03G  3.92G  1.00G  -
rpool/export                            120K  3.89G    32K  /export
rpool/export/home                      88.5K  3.89G    32K  /export/home
rpool/export/home/user1                56.5K  3.89G  56.5K  /export/home/user1
rpool/swap                             1.03G  3.92G  1.00G  -
rpool/zones                             672M  3.89G    32K  /zones
rpool/zones/z1                          672M  3.89G    32K  /zones/z1
rpool/zones/z1/rpool                    671M  3.89G    31K  /rpool
rpool/zones/z1/rpool/ROOT               671M  3.89G    31K  legacy
rpool/zones/z1/rpool/ROOT/solaris       671M  3.89G   591M  /zones/z1/root
rpool/zones/z1/rpool/ROOT/solaris/var  79.3M  3.89G  78.4M  /zones/z1/root/var
rpool/zones/z1/rpool/export              62K  3.89G    31K  /export
rpool/zones/z1/rpool/export/home         31K  3.89G    31K  /export/home

在本示例中,您应以 root 用户身份发出以下命令,以克隆全局区域中的引导环境,并将新的引导环境命名为 solaris-1

# beadm create test
# zfs list -r rpool
NAME                                      USED  AVAIL  REFER MOUNTPOINT
rpool                                    11.5G  3.89G  4.46M  /rpool
rpool/ROOT                               8.47G  3.89G    31K  legacy
rpool/ROOT/solaris                       2.98M  3.89G  2.49G  /
rpool/ROOT/solaris/var                    428K  3.89G   298M  /var
rpool/ROOT/test                           71K  3.89G  2.50G  /
rpool/ROOT/test/var                        1K  3.89G  2.88G  /var
rpool/dump                               1.03G  3.92G  1.00G  -
rpool/export                              120K  3.89G    32K  /export
rpool/export/home                        88.5K  3.89G    32K  /export/home
rpool/export/home/user1                  56.5K  3.89G  56.5K  /export/home/user1
rpool/swap                               1.03G  3.92G  1.00G  -
rpool/zones                               672M  3.89G    32K  /zones
rpool/zones/z1                            672M  3.89G    32K  /zones/z1
rpool/zones/z1/rpool                      671M  3.89G    31K  /rpool
rpool/zones/z1/rpool/ROOT                 671M  3.89G    31K  legacy
rpool/zones/z1/rpool/ROOT/solaris         671M  3.89G   591M  /zones/z1/root
rpool/zones/z1/rpool/ROOT/solaris/var    79.3M  3.89G  78.4M  /zones/z1/root/var
rpool/zones/z1/rpool/ROOT/solaris-1        2K  3.89G   591M  /
rpool/zones/z1/rpool/ROOT/solaris-1/var    1K  3.89G  78.4M  /var
rpool/zones/z1/rpool/export                62K  3.89G    31K  /export
rpool/zones/z1/rpool/export/home           31K  3.89G    31K  /export/home
  

克隆名为 test,其根数据集位于 rpool/ROOT/test 中。

请注意,由于全局区域中的 solaris 引导环境在 z1 非全局区域中具有关联的区域引导环境,因此克隆进程还将克隆 z1 中的关联区域引导环境。区域 z1 中的新 solaris-1 克隆的根数据集位于 rpool/zones/z1/rpool/ROOT/solaris-1 中。

示例 3-2  使用数据集克隆新引导环境

该示例介绍了如何在最新创建的引导环境中设置数据集。本示例不涉及多个区域。

作为 root 用户,您可以键入以下命令。

# beadm create BE2

本示例中的原始引导环境是 BE1,其根数据集位于 rpool/ROOT/BE1 中且包含另一个数据集 var

# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     42.5G  24.4G  4.65M  /rpool
rpool/ROOT                25.6G  24.4G    31K  legacy
rpool/ROOT/BE1            8.91M  24.4G  4.17G  /
rpool/ROOT/BE1/var        3.96M  24.4G   276M  /var

克隆 BE1 后,新的克隆 BE2 包含全部从 BE1 克隆而来的根数据集和其他嵌套数据集。因为 BE1 在根数据集下包含 /var 文件系统,所以也将克隆 /var

# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
rpool                     42.5G  24.4G  4.65M  /rpool
rpool/ROOT                25.6G  24.4G    31K  legacy
rpool/ROOT/BE1            8.91M  24.4G  4.17G  /
rpool/ROOT/BE1/var        3.96M  24.4G   276M  /var
rpool/ROOT/BE2            8.91M  24.4G  4.17G  /
rpool/ROOT/BE2/var        3.96M  24.4G   276M  /var

但是,如果根数据集之外有共享文件系统,则该共享文件系统不会被克隆。如下一个示例所示,原始引导环境和克隆将“共享”原始共享文件系统。

示例 3-3  使用现有共享数据集创建新引导环境

本示例说明在拥有现有共享数据集时如何创建新的引导环境。在本示例中,原始引导环境是 BE1,共享数据集是 rpool/exportrpool/export/home。本示例不涉及多个区域。

作为 root 用户,您可以键入以下命令来克隆 BE1 并将其命名为 BE2:

# beadm create BE2

克隆引导环境时,不会克隆共享数据集 tanktank/export。共享数据集位于 rpool/ROOT/BeName 数据集之外,并在其原始位置由克隆的引导环境 BE2 引用。

原始引导环境 BE1 和数据集如下所示:

# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    42.5G  24.4G  4.65M  /rpool
rpool/ROOT               25.6G  24.4G    31K  legacy
rpool/ROOT/BE1           8.91M  24.4G  4.17G  /
rpool/ROOT/BE1/var       3.96M  24.4G   276M  /var
tank                      450K   457G    18K  /tank
tank/home                 315K   457G    21K  /tank/home

根数据集位于 rpool/ROOT/BE1 中,/var 数据集位于根数据集下。根数据集和 /var 都将被克隆。

克隆的引导环境 BE2 具有新的根数据集和新的 /var 数据集,但原始共享数据集 tanktank/home 不会更改。

# zfs list
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    42.5G  24.4G  4.65M  /rpool
rpool/ROOT               25.6G  24.4G    31K  legacy
rpool/ROOT/BE1           8.91M  24.4G  4.17G  /
rpool/ROOT/BE1/var       3.96M  24.4G   276M  /var
rpool/ROOT/BE2           8.91M  24.4G  4.17G  /
rpool/ROOT/BE2/var       3.96M  24.4G   276M  /var
tank                      450K   457G    18K  /tank
tank/home                 315K   457G    21K  /tank/home