跳过导航链接
退出打印视图
| Oracle VM Server for SPARC 2.0 管理指南

搜索范围:

- 本文档
- 整个文档库

### 将 ZFS 用于虚拟磁盘

本节介绍如何使用 Zettabyte 文件系统 (Zettabyte File System, ZFS) 存储已导出到来宾域的虚拟磁盘后端。ZFS 可提供一种简捷、有效的解决方案来创建和管理虚拟磁盘后端。下面是通过 ZFS 能够执行的操作：

- 将磁盘映像存储在 ZFS 卷或 ZFS 文件中

- 使用快照备份磁盘映像

- 使用克隆复制磁盘映像和置备更多的域

有关使用 ZFS 的更多信息，请参见《Oracle Solaris ZFS 管理指南》。

在下面的介绍和示例中，主域还是存储磁盘映像的服务域。

#### 在服务域中配置 ZFS 池

要存储磁盘映像，首先应在服务域中创建一个 ZFS 存储池。例如，以下命令在 `primary` 域中创建了一个包含磁盘 `c1t50d0` 的 ZFS 存储池 `ldmpool`。

    primary# zpool create ldmpool c1t50d0

#### 使用 ZFS 存储磁盘映像

以下命令为来宾域 `ldg1` 创建了一个磁盘映像。已为此来宾域创建了 ZFS 文件系统，从而此来宾域的所有磁盘映像都将存储在该文件系统上。

    primary# zfs create ldmpool/ldg1

磁盘映像可以存储在 ZFS 卷或 ZFS 文件中。使用 `zfs create -V` 命令可快速创建 ZFS 卷，无论其大小为何。另一方面，必须使用 `mkfile` 命令创建 ZFS 文件。使用此命令完成此过程可能需要一些时间，尤其是创建的文件非常大时（通常是在创建磁盘映像时）。

ZFS 卷和 ZFS 文件都可以利用 ZFS 的功能（例如，快照和克隆功能），但 ZFS 卷是一个伪设备，而 ZFS 文件是一个常规文件。

如果将磁盘映像用作安装有 OS 的虚拟磁盘，则该磁盘映像的大小必须足以满足 OS 安装的要求。此大小取决于 OS 的版本以及所执行的安装类型。如果安装 Oracle Solaris OS，则使用的磁盘大小可以为 20 GB，它足以满足任意版本的 Oracle Solaris OS 的任意安装类型的需求。

##### 使用 ZFS 存储磁盘映像的示例

下列示例可执行下列操作：

1. 在 ZFS 卷或文件上创建 20 GB 的映像。

2. 将 ZFS 卷或文件作为虚拟磁盘导出。导出 ZFS 卷或文件时使用的语法相同，但指向后端的路径不同。

3. 将导出的 ZFS 卷或文件指定给来宾域。

启动来宾域后，ZFS 卷或文件将显示为可安装 Oracle Solaris OS 的虚拟磁盘。

# 使用 ZFS 卷创建磁盘映像

- 例如，在 ZFS 卷上创建 20 GB 的磁盘映像。

      primary# zfs create -V 20gb ldmpool/ldg1/disk0

# 使用 ZFS 文件创建磁盘映像

- 例如，在 ZFS 卷上创建 20 GB 的磁盘映像。

      primary# zfs create ldmpool/ldg1/disk0
      primary# mkfile 20g /ldmpool/ldg1/disk0/file

# 导出 ZFS 卷

- 将 ZFS 卷作为虚拟磁盘导出。

      primary# ldm add-vdsdev /dev/zvol/dsk/ldmpool/ldg1/disk0 ldg1_disk0@primary-vds0

# 导出 ZFS 文件

- 将 ZFS 文件作为虚拟磁盘导出。

      primary# ldm add-vdsdev /ldmpool/ldg1/disk0/file ldg1_disk0@primary-vds0

# 将 ZFS 卷或文件指定给来宾域

- 将 ZFS 卷或文件指定给来宾域（在以下示例中，来宾域为 `ldg1`）。

      primary# ldm add-vdisk disk0 ldg1_disk0@primary-vds0 ldg1

#### 创建磁盘映像的快照

当磁盘映像存储在 ZFS 卷或 ZFS 文件上时，可通过使用 ZFS 快照命令创建该磁盘映像的快照。

创建磁盘映像的快照之前，请确保该磁盘在来宾域中当前未处于使用状态中，以确保当前存储在磁盘映像上的数据保持一致性。有几种方法可确保磁盘在来宾域中未处于使用状态。您可以执行以下操作之一：

- 停止并取消绑定来宾域。这是一种最安全的解决方案，也是在创建用作来宾域引导磁盘的磁盘映像的快照时，唯一可用的解决方案。

- 或者，您可以卸载要为其创建快照的磁盘的所有在来宾域处于使用状态的分片，从而确保来宾域中无任何分片处于使用状态。

在本示例中，由于 ZFS 布局，不管磁盘映像是存储在 ZFS 卷上还是 ZFS 文件上，创建磁盘映像的快照时所使用的命令都相同。

# 创建磁盘映像的快照

- 例如，创建已为 `ldg1` 域创建的磁盘映像的快照。

      primary# zfs snapshot ldmpool/ldg1/disk0@version_1

#### 使用克隆置备新域

创建完磁盘映像的快照后，可以通过使用 ZFS 克隆命令复制该磁盘映像。随后，克隆的映像会指定给另一个域。通过克隆引导磁盘映像可以为新的来宾域快速创建引导磁盘，而无需执行整个 Oracle Solaris OS 安装过程。

例如，如果已创建的 `disk0` 是域 `ldg1` 的引导磁盘，请执行以下操作克隆该磁盘，以为域 `ldg2` 创建引导磁盘。

    primary# zfs create ldmpool/ldg2
    primary# zfs clone ldmpool/ldg1/disk0@version_1 ldmpool/ldg2/disk0

随后，`ldompool/ldg2/disk0` 可作为虚拟磁盘导出并指定给新的 `ldg2` 域。域 `ldg2` 可从该虚拟磁盘直接引导，而无需执行 OS 整个安装过程。

##### 克隆引导磁盘映像

克隆引导磁盘映像后，新的映像与原始引导磁盘完全相同，它包含在克隆映像之前存储在引导磁盘上的所有信息（如主机名、IP 地址、已装入的文件系统表或任意系统配置或可调参数）。

因为原始引导磁盘映像上已装入文件系统表与已克隆的磁盘映像上的已装入文件系统表相同，所以，将已克隆的磁盘映像指定给新域的的顺序必须与原始域上的相同。例如，如果引导磁盘映像已指定为原始域的第一个磁盘，则已克隆的磁盘映像也必须指定为新域的第一个磁盘。否则，无法引导新域。

如果原始域是使用静态 IP 地址配置的，则使用克隆映像的新域必须以相同的 IP 地址开始。在这种情况下，您可以通过使用 `sys-unconfig`(1M) 命令更改新域的网络配置。要避免此问题，您还可以创建未配置系统的磁盘映像的快照。

如果原始域是使用动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 配置的，则使用克隆映像的新域也应使用 DHCP。在这种情况下，您无需更改新域的网络配置，因为该域在其引导时可自动接收 IP 地址及其网络配置。

注 - 域的主机 ID 没有存储在引导磁盘上，但在创建域时将由 Logical Domains Manager 指定。因此，在克隆磁盘映像时，新域不会保留原始域的主机 ID。

# 创建未配置系统的磁盘映像的快照

1. 绑定和启动原始域。
2. 执行 `sys-unconfig` 命令。
3. 执行完 `sys-unconfig` 命令后，该域将停止。
4. 停止和取消绑定域；请勿重新引导该域。
5. 创建域引导磁盘映像的快照。

   例如：

       primary# zfs snapshot ldmpool/ldg1/disk0@unconfigured

   此时，已创建了未配置系统的引导磁盘映像的快照。

6. 克隆此映像，以创建首次引导时要求对系统进行配置的新域。

版权所有 © 2007, 2010, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |