第 2 章 快速入门实例

2.1. 使用 CLI 创建一个基本的虚拟化环境

本章提供了一个使用 CLI 把虚拟机加入到 Red Hat Virtualization 环境中的示例。这个示例需要具备以下先决条件:
  • 己被配置并连接到网络中的、作为 hypervisor 使用的 Red Hat Enterprise Linux 主机
  • 带有以下两个共享的、已经被配置并连接到网络中的 NFS 存储服务器:
    • /exports/data - 数据存储域
    • /exports/iso - ISO 存储域
  • 一个已经被配置并连接到网络中的 Red Hat Virtualization Manager
  • 在 Red Hat Virtualization Manager 或客户端系统上已经安装了 CLI
  • 包括了需要安装的虚拟机操作系统的 ISO 文件。在这个示例中我们使用 Red Hat Enterprise Linux Server 6 作为虚拟机的操作系统。

注意

Red Hat Virtualization Manager 会为每个资源生成全局唯一标识符(GUID)。这个示例中使用的标识符代码可能会与您在 Red Hat Virtualization 环境中使用的标识符代码不同。

过程 2.1. 快速入门示例

  1. 启动 CLI shell 并连接到 Red Hat Virtualization Manager。
    # ovirt-shell -c --url https://[rhevm-host]/api --username [user]@[domain] --ca-file certificate/authority/path/name
  2. 列出该环境中的所有数据中心。这个示例使用 Default 数据中心。
    [RHEVM shell (connected)]# list datacenters 
    
    id         : 5e3b55d8-c585-11e1-a7df-001a4a400e0d
    name       : Default
    description: The default Data Center
  3. 列出所有主机集群并记录下相关集群 ID 或集群名称,添加主机或创建虚拟机时需要此信息。这个示例使用 Default 集群来对 Red Hat Virtualization 环境中的资源进行分组。
    [RHEVM shell (connected)]# list clusters
    
    id         : 99408929-82cf-4dc7-a532-9d998063fa95
    name       : Default
    description: The default server cluster
  4. 列出所有 CPU 配置及并记录相关 CPU 配置 ID,创建虚拟机时需要此信息。这个示例使用 Default CPU 配置。
    [RHEVM shell (connected)]# list cpuprofiles 
    
    id         : 0000001a-001a-001a-001a-00000000035e
    name       : Default
    
  5. 使用 show-all 选项列出所有逻辑网络,查看该环境中的逻辑网络详情。Red Hat Virtualization Manager 创建名为 ovirtmgmt 的逻辑网络管理流量。这个示例使用 Default 数据中心的 ovirtmgmt 逻辑网络。
    [RHEVM shell (connected)]# list networks --show-all
    
    id            : 00000000-0000-0000-0000-000000000009
    name          : ovirtmgmt
    description   : Management Network
    data_center-id: 5e3b55d8-c585-11e1-a7df-001a4a400e0d
    mtu           : 0
    required      : True
    status-state  : operational
    stp           : False
    usages-usage  : VM
    
    请注意,data_center-id 的值与 Default 数据中心的 id 相匹配。
  6. 在虚拟化环境中添加 Red Hat Enterprise Linux 主机作为新的 hypervisor。该主机会自动激活。
    [RHEVM shell (connected)]# add host --name MyHost --address host.example.com --cluster-name Default --root_password p@55w0rd!
  7. 通过创建、附加并激活 NFS 共享来添加 NFS 共享作为数据存储域。NFS 数据存储域是附加到数据中心的导出 NFS 共享。它为虚拟机提供存储。使用该 NFS 服务器的实际确值替换 storage-addressstorage-path
    1. 创建数据存储域。
      [RHEVM shell (connected)]# add storagedomain --host-name MyHost --type data --storage-type nfs --storage_format v3 --storage-address x.x.x.x --storage-path /exports/data --name DataStorage
    2. 验证所创建存储域是否可用。创建过程可能需要几分中。 status-state 处于 unattached 状态后即可进行下一步操作。
      [RHEVM shell (connected)]# show storagedomain --name DataStorage
      id             : xxxx
      name           : DataStorage
      master         : False
      status-state   : unattached
      ...
      
    3. 将数据存储域附加到数据中心。该存储域会自动激活。
      [RHEVM shell (connected)] # add storagedomain --datacenter-identifier Default --name DataStorage

      注意

      如果该存储域未被激活,则可使用下面的命令手动将其激活:
      [RHEVM shell (connected)]# action storagedomain DataStorage --datacenter-identifier Default activate
      
  8. 通过创建、附加并激活 NFS 共享添加该 NFS 共享作为 ISO 存储域使用。NFS ISO 存储域是一个附加到数据中心的导出 NFS 共享。它为 DVD/CD-ROM ISO 以及虚拟软盘(VFD)镜像文件提供存储。使用 NFS 服务器的实际值替换 storage-addressstorage-path
    1. 创建 ISO 存储域。
      [RHEVM shell (connected)]# add storagedomain --host-name MyHost --type iso --storage-type nfs --storage_format v3 --storage-address x.x.x.x --storage-path /exports/iso --name ISOStorage
    2. 验证所创建存储域是否可用。创建过程可能需要几分钟。 status-state 处于 unattached 状态后即可进行下一步操作。
      [RHEVM shell (connected)]# show storagedomain --name ISOStorage
      id             : xxxx
      name           : ISOStorage
      master         : False
      status-state   : unattached
      ...
      
    3. 将 ISO 存储域附加到数据中心。该存储域会自动激活。
      [RHEVM shell (connected)] # add storagedomain --datacenter-identifier Default --name ISOStorage
  9. 创建新虚拟机。
    [RHEVM shell (connected)]# add vm --name MyVM --cluster-name Default --template-name Blank --memory 536870912 --os-boot boot.dev=hd --cpu_profile-id 0000001a-001a-001a-001a-00000000035e
  10. 使用 add nic 命令添加新网络接口。其中的 vm-identifier 选项将接口附加为 MyVM 的子资源;network-name 选项将其连接到 rhevm 网络。
    [RHEVM shell (connected)]# add nic --vm-identifier MyVM --name nic1 --network-name ovirtmgmt --bootable true
  11. 使用 add disk 命令来添加一个新虚拟硬盘。其中的 vm-identifier 选项把磁盘附加为 MyVM 的子资源。
    [RHEVM shell (connected)]# add disk --vm-identifier MyVM --provisioned_size 8589934592 --interface virtio --format cow --storage_domains-storage_domain storage_domain.name=DataStorage
  12. 在管理器中将该 ISO 镜像上传到 ISOStorage 域中以供虚拟机使用。Red Hat Virtualization Manager 提供了一个上传工具,以保证使用正确用户权限将 ISO 镜像上传到正确的目录中。
    # engine-iso-uploader --iso-domain=ISOStorage upload rhel-server-6.6-x86_64-dvd.iso
    Please provide the REST API password for the admin@internal oVirt Engine user (CTRL+D to abort):
  13. 在 CLI shell 中使用 list files 命令列出该存储域中的所有可用 ISO 文件。
    [RHEVM shell (connected)]# list files --storagedomain-identifier ISOStorage
  14. 为安装介质添加新的虚拟 CD-ROM 驱动器。vm-identifier 选项将 CD-ROM 附加为 MyVM 的子资源。
    [RHEVM shell (connected)]# add cdrom --vm-identifier MyVM --file-id rhel-server-6.6-x86_64-dvd.iso
  15. 启动该虚拟机。创建虚拟环境的过程已完成,虚拟机中包含了所有必须的功能组件。
    [RHEVM shell (connected)]# action vm MyVM start --vm-os-boot boot.dev=cdrom
    请注意以上命令中的 vm-os-boot 选项,它把系统初始引导的引导设备设为 cdrom。在安装完成后,虚拟机会重新启动,系统的引导设备被重新恢复为 hd
  16. 使用 list events 命令并附带 query 选项显示具体事件类型。虚拟机的 start 操作可在 events 集合中添加几个条目。
    [RHEVM shell (connected)]# list events --query "type=153"
    
    id         : 105
    description: MyVM was started by admin (Host: MyHost).
    其中的 "type=153" 查询代表了用户启动一个虚拟机的事件。
  17. 使用 show event 命令显示事件的完整信息。可使用这个命令根据 typenameid 显示事件。
    [RHEVM shell (connected)]# show event --id '60'
    
    id            : 60
    description   : New Tag foo was created by admin@internal.
    code          : 432
    correlation_id: 3e4d4350
    custom_id     : -1
    flood_rate    : 30
    origin        : oVirt
    severity      : normal
    time          : 2013-07-03 10:57:43.257000+03:00
    user-id       : fdfc627c-d875-11e0-90f0-83df133b58cc
  18. 使用 console 命令访问您的虚拟机。
    [RHEVM shell (connected)]# console MyVM

    重要

    请确认您的客户端系统上已经安装了和虚拟机的 display-type 相匹配的控制台程序。有效的协议包括 SPICE(默认协议)和 VNC