Oracle® VM Server for SPARC 3.2 管理指南

退出打印视图

更新时间: 2015 年 5 月
 
 

通过卷管理器使用虚拟磁盘

可以将任何 ZFS、Solaris Volume Manager 或 Veritas 卷管理器 (Veritas Volume Manager, VxVM) 卷作为虚拟磁盘从服务域导出到来宾域。卷可以作为具有单个分片的磁盘导出(如果使用 ldm add-vdsdev 命令指定了 slice 选项)或作为完整磁盘导出。


注 - 本节的其余部分将以 Solaris Volume Manager 卷为例进行说明。但是,所讨论的内容也适用于 ZFS 卷和 VxVM 卷。

以下示例介绍如何将卷作为具有单个分片的磁盘导出。

来宾域中的虚拟磁盘(例如,/dev/dsk/c0d2s0)直接映射到相关联的卷(例如,/dev/md/dsk/d0),来宾域的虚拟磁盘上存储的数据直接存储到相关联的卷中,而没有额外的元数据。因此,存储在来宾域的虚拟磁盘上的数据也可以通过相关联的卷从服务域直接访问。

    示例

  • 如果将 Solaris Volume Manager 卷 d0primary 域导出到 domain1,则 domain1 的配置需要一些额外的步骤。

    primary# metainit d0 3 1 c2t70d0s6 1 c2t80d0s6 1 c2t90d0s6
    primary# ldm add-vdsdev options=slice /dev/md/dsk/d0 vol3@primary-vds0
    primary# ldm add-vdisk vdisk3 vol3@primary-vds0 domain1
  • 例如,绑定并启动 domain1 之后,导出的卷会显示为 /dev/dsk/c0d2s0,并且您可以使用它。

    domain1# newfs /dev/rdsk/c0d2s0
    domain1# mount /dev/dsk/c0d2s0 /mnt
    domain1# echo test-domain1 > /mnt/file
  • 停止并解除绑定 domain1 后,可通过 Solaris Volume Manager 卷 d0 从主域直接访问 domain1 的虚拟磁盘上存储的数据。

    primary# mount /dev/md/dsk/d0 /mnt
    primary# cat /mnt/file
    test-domain1

通过 Solaris Volume Manager 使用虚拟磁盘

当 RAID 或镜像 Solaris Volume Manager 卷由另一个域用作虚拟磁盘时,则在导出它时不得设置独占 (excl) 选项。否则,如果 Solaris Volume Manager 卷的某个组件出现故障,就无法启动使用 metareplace 命令或热备份恢复 Solaris Volume Manager 卷的过程。metastat 命令将卷视为正在进行重新同步,但并未进行重新同步。

例如,/dev/md/dsk/d0 是使用 excl 选项作为虚拟磁盘导出到另一个域的 RAID Solaris Volume Manager 卷,并且 d0 配置有一些热备份设备。如果 d0 的组件出现故障,则 Solaris Volume Manager 会将出现故障的组件替换为热备份,并重新同步 Solaris Volume Manager 卷。但是,重新同步并不会启动。卷会被报告为正在进行重新同步,但并没有进行重新同步。

primary# metastat d0
d0: RAID
    State: Resyncing
    Hot spare pool: hsp000
    Interlace: 32 blocks
    Size: 20097600 blocks (9.6 GB)
Original device:
    Size: 20100992 blocks (9.6 GB)
Device                                     Start Block  Dbase   State Reloc
c2t2d0s1                                           330  No       Okay  Yes
c4t12d0s1                                          330  No       Okay  Yes
/dev/dsk/c10t600C0FF0000000000015153295A4B100d0s1  330  No  Resyncing  Yes

这种情况下,必须停止并解除绑定将 Solaris Volume Manager 卷用作虚拟磁盘的域,才能完成重新同步。然后,可使用 metasync 命令重新同步 Solaris Volume Manager 卷。

# metasync d0

在安装了 VxVM 的情况下使用虚拟磁盘

如果在系统上安装了 VxVM,并在要作为虚拟磁盘导出的物理磁盘或分区上启用了 Veritas 动态多路径 (Dynamic Multipathing, DMP),则在导出该磁盘或分区时不能设置(非默认)excl 选项。否则,在绑定使用此类磁盘的域时,则会在 /var/adm/messages 中收到错误。

vd_setup_vd():  ldi_open_by_name(/dev/dsk/c4t12d0s2) = errno 16
vds_add_vd():  Failed to add vdisk ID 0

您可以通过查看 vxdisk list 输出中的多路径信息,检查是否已启用 Veritas DMP。例如:

# vxdisk list Disk_3
Device:    Disk_3
devicetag: Disk_3
type:      auto
info:      format=none
flags:     online ready private autoconfig invalid
pubpaths:  block=/dev/vx/dmp/Disk_3s2 char=/dev/vx/rdmp/Disk_3s2
guid:      -
udid:      SEAGATE%5FST336753LSUN36G%5FDISKS%5F3032333948303144304E0000
site:      -
Multipathing information:
numpaths:  1
c4t12d0s2  state=enabled

或者,如果您针对要在设置了 excl 选项的情况下作为虚拟磁盘导出的磁盘或分片启用了 Veritas DMP,则可以使用 vxdmpadm 命令禁用 DMP。例如:

# vxdmpadm -f disable path=/dev/dsk/c4t12d0s2