克隆引导环境的示例
以下示例介绍了如何克隆引导环境以及该克隆过程如何因区域和数据集结构的不同而有所不同。第一个示例说明了在包含全局和非全局区域的系统中克隆如何执行。第二个示例显示与克隆相关的数据集具体信息。第三个示例显示克隆系统时共享数据集发生的情况。
注 -有关区域和数据集的信息,请参见以下章节:示例 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/export 和 rpool/export/home。本示例不涉及多个区域。
作为 root 用户,您可以键入以下命令来克隆 BE1 并将其命名为 BE2:# beadm create BE2
克隆引导环境时,不会克隆共享数据集 tank 和 tank/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 数据集,但原始共享数据集 tank 和 tank/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