跳转到: 导航, 搜索

Networking-zvm

概述

此插件用于支持 z/VM 上的 Quantum,并设计为与 OpenVSwitch 插件兼容。对于初始版本,仅提供 Quantum z/VM agent 与 Quantum Openvswitch 插件一起工作。

代码链接

(您可以在那里找到最新的代码审查链接)

  • Nova z/VM 插件

https://blueprints.launchpad.net/nova/+spec/zvm-plugin

  • Quantum z/VM 插件

https://blueprints.launchpad.net/quantum/+spec/quantum-zvm-plugin

z/VM 和 z/VM 网络

z/VM 是一种基于 64 位 z/Architecture 的虚拟机监控程序,现在具有多系统虚拟化和虚拟服务器移动性。z/VM 提供广泛的网络和连接选项,并符合许多行业标准。有关 z/VM 网络概念和参考,请参阅 http://www.vm.ibm.com/networking/

Quantum z/VM 插件的初始版本提供以下网络选项。z/VM 虚拟交换机 (vswitch) 用于在 OpenStack 环境中提供网络支持。

  • 扁平网络

在这种情况下,网络由单个未分区空间组成。

  • VLAN

基于 z/VM VSwitch 支持,支持基于用户的 VLAN。每个用户(客户操作系统)可以分配一个或多个 VLAN ID。

组件

  • Quantum z/VM Agent

Quantum z/VM agent 负责配置 z/VM 网络,并将 VM 虚拟网络适配器 (NIC) 连接到 Quantum 管理的所需 vswitch。每个 VM 可以有多个 NIC 连接到不同的网络。

  • Quantum 插件

Quantum z/VM agent 设计为与 OpenVSwitch 插件兼容,用于 VLAN / 扁平网络。

  • Nova Compute Quantum Vif 插件

Quantum Vif 插件本身是 Nova 项目的一部分,可以在配置文件中选择。

架构

Quantum z/VM 插件/agent 将与 xCAT REST api 通信以控制/配置 z/VM。 此图片 显示了 xCAT 和 zVM 的架构

xCAT 可用于管理跨多个 z/VM 分区扩展的虚拟服务器。xCAT 管理节点 (MN) 在任何 Linux 虚拟服务器上运行。它使用在特权 Linux 虚拟服务器上运行的 System z 硬件控制点 (zHCP) 管理每个 z/VM 分区。zHCP 接口与 z/VM 系统管理 API (SMAPI)、目录管理器 (DirMaint) 和控制程序层 (CP) 交互以管理 z/VM 分区。它利用 C socket 接口与 SMAPI 层通信,并利用 VMCP Linux 模块与 CP 层通信。

为了支持 z/VM 虚拟网络,Quantum z/VM 插件/agent 应该能够支持以下功能

  1. 使用 xCAT rest api 获取 z/VM 配置信息或更新 z/VM 配置
  2. 获取在 z/VM 上定义的 z/VM VSWITCH 信息。
  3. MAC 地址分配并将其与用户目录中的 userid 捆绑。
  4. 配置 z/VM VSWITCH。配置 VSWITCH 以授予用户权限,或配置基于用户的 VLAN 标签,或配置基于端口的 VLAN 标签。
  5. 支持 VLAN,能够设置基于用户的 VLAN 标签或基于端口的 VLAN
  6. 支持 DHCP。
  7. 能够更新用户目录条目以添加更多 NIC 用于用户 id。
  8. Quantum z/VM agent 应该能够与 Quantum OpenVswitch 插件一起工作。

先决条件

  1. 一个 OpenStack nova-compute 服务节点将管理一个且仅一个 xCAT MN 节点。
  2. 每个 zVM 系统(驻留在不同的 LPAR 或 CEC 中)都有一个 nova-compute 服务节点
  3. 每个 zVM 系统(驻留在不同的 LPAR 或 CEC 中)都有一个 quantum-zvm-agent 服务节点
  4. 如果用户需要 DHCP 支持,则 zVM 系统必须有一个与 Layer 2 vswitch 耦合的 quantum-dhcp-agent 服务节点
  5. 如果用户需要 VLAN 支持,xCAT MN 必须能够访问每个 zLinux 系统。zHCP 和 DHCP agent 可以访问同一 zVM 中的每个 zLinux 系统。
  6. 实例可以绑定 MAC 地址,必须定义 z/VM 用户前缀。
  7. zHCP 必须由 xCAT MN 管理。

代码结构

1. Quantum 插件包结构

  bin/quantum-zvm-agent - excutable zvm agent.
  quantum/quantum/plugins/zvm -  plugin code
  /agent - Agent code
  /common - common code, includeing xCAT REST api interface.
  rpc_callbacks.py - RPC handler for received messages
  agent_notify_api.py - Agent RPC notify methods


2. Nova 包结构是

  nova/nova/virt/zvm/networkop.py - nova side network support code

配置示例

默认情况下 /etc/nova/nova.conf ,应该包含以下项目

  quantum_url = your_quantum_address_and_port
  quantum_admin_tenant_name = your_tenant_name
  quantum_auth_strategy = keystone or your_auth_strategy
  quantum_admin_auth_url = your_auth_url
  quantum_admin_password = your_password
  quantum_admin_username = your_username
  network_api_class = nova.network.quantumv2.api.API
  zvm_default_nic_vdev = default_nic_address

这是一个包含数据的示例

  quantum_url = http://192.168.0.13:9696
  quantum_admin_tenant_name = service
  quantum_auth_strategy = keystone
  quantum_admin_auth_url = http://192.168.0.13:35357/v2.0
  quantum_admin_password = mypass
  quantum_admin_username = quantum
  network_api_class = nova.network.quantumv2.api.API
  zvm_default_nic_vdev = 2000

Quantum z/VM 配置文件 默认情况下,/etc/quantum/plugins/zvm/zvm_quantum_plugin.ini,应该包含以下项目

  [DATABASE]
  sql_connection = mysql://root:yourpass@localhost/ovs_quantum?charset=utf8
  reconnect_interval = 2
  [AGENT]
  polling_interval = interval_seconds
  zvm_xcat_username=your_username
  zvm_xcat_password=your_passworkd
  zvm_xcat_server=your_server_address
  root_helper = sudo /usr/local/bin/quantum-rootwrap /etc/quantum/rootwrap.conf
  vswitch_mappings=vswitch_vlan_mapping
  xcat_zhcp_nodename=xcat_zhcp_nodename

这是一个包含数据的示例

  [DATABASE]
  sql_connection = mysql://root:yourpass@localhost/ovs_quantum?charset=utf8
  reconnect_interval = 2
  [AGENT]
  polling_interval = 2
  zvm_xcat_username=root
  zvm_xcat_password=yourpass
  zvm_xcat_server=192.168.0.13
  root_helper = sudo /usr/local/bin/quantum-rootwrap /etc/quantum/rootwrap.conf
  vswitch_mappings=vsw1:1000:2000
  xcat_zhcp_nodename=zhcp1

参考文献

  1. z/VM
  2. xCAT on z/VM