连载:基于IBM PowerVC建企业云平台(3)-搜狐滚动
【IT168技术】虚拟化作为云计算的基础,是目前一个重要的趋势。通过虚拟化可以提高 IT 资源和应用程序的效率和可用性。PowerVC 作为IBM新一代 Power Systems? 的企业虚拟化解决管理方案,能够提供Power Systems? 环境中的虚拟资源的管理。主机和镜像作为Powe VC环境中重要的组成部分,在部署虚拟机中是不可或缺的参数。PowerVC API在Openstack提供的主机和镜像管理API的基础进行了扩展,方便用户管理主机和镜像资源。 关于本系列:本系列基于PowerVC 最新版本PowerVC Standard Edition 1.2.1 (管理PowerVM?) 讲解如何实现虚拟化环境的自动化管理,对于开发人员,系统管理员,系统测试人员和运维人员有所帮助。点击了解《连载:基于IBM PowerVC建企业云平台(1)》 点击了解《连载:基于IBM PowerVC建企业云平台(2)》 本系列涉及以下生命周期: 基于IBM PowerVC 构建企业云平台概览(Overview) 基于PowerVC API的虚拟服务器生命周期管理 基于PowerVC API的主机和镜像管理 基于PowerVC API的存储管理 基于PowerVC API的网络管理 基于PowerVC构建企业云平台经验总结 本文是系列文章的第三部分:基于PowerVC API的主机和镜像管理,主要包括以下内容: 获取身份验证 注册主机 列出主机 更新主机 删除主机 主机操作 创建镜像 列出所有镜像 列出指定镜像信息 更新指定镜像信息 删除镜像 本文总结 1. 获取身份认证 在企业云计算平台,主机是非常重要的部分。而在访问主机之前,则必须考虑对主机系统的安全访问问题。在基于Power VC的云计算平台中,对主机的访问是通过Power VC API进行的。而根据Power VC API的设计,在使用Power VC API 之前,首先需要获取到一个被授权的TokenID, 然后才可以使用Power VC API。这个Token ID是一个具有有效期的数字认证,一旦这个Token ID失效,需要再次获取这个Token ID。 注意:这些示例中URL全部以https://myserver:port开头。您应当用Power VC所在系统的主机或者IP地址替换myserver,并且用安装Power VC时的端口号替换port,HTTPS的默认端口号是443,如果是HTTP的话默认端口号是80。在REQUESTBODY中,用你访问PowerVC 环境的用户名和密码替代password和name。 当执行完成获取身份认证API之后,就会获取到一个Response Header 和 Response Body。在Response Header中可以看到X-Subject-Token,这个值就是我们需要的Token ID。同时在Response Body中会获取到一个tenant ID。Token ID和tenant ID就是我们下文访问任何Power VC API所必须的两个参数。Token ID被添加在Request Header中代表了你的权限ID,tenant ID被使用在API URL中代表了访问者的身份信息。 获取Token ID API 示例: URL | https://myserver:port/powervc/openstack/admin/v3/auth/tokens | REQUEST METHOD | POST | REQUEST HEADERS | Content-Type:application/json
Vary:X-Auth-Token, X-Subject-Token
Accept:application/json(默认为XML) | REQUEST BODY | "auth":
"scope":
"project":
"domain":
"name": "Default"
,
"name": "ibm-default"
,
"identity":
"password":
"user":
"domain":
"name": "Default"
,
"password": "passw0rd",
"name": “name"
,
"methods": [
"password" | RESPONSE HEADERS | X-Auth-Token: token_id | RESPONSE BODY | "token":
"methods": [
"password"
],
"roles": [
"id": "",
"name": “”
],
"expires_at": "2014-07-15T20:34:09.448453Z",
"project":
"domain":
"id": "default",
"name": "Default"
,
"id": “token_id",
"name": "ibm-default"
,
"catalog": [....这里省略其他内容.......] | 2. 注册主机 主机指的是物理服务器,是企业云计算平台中的重要资源。在基于PowerVC的云计算环境中,主机主要是负责计算资源。在后续的系列文章中会介绍到存储资源和网络资源。 在基于PowerVC的云计算平台中,一个非常重要的步骤是注册主机服务器。在获取身份验证后,也就是说获得了访问权限,然后就可以对云计算平台进行有关操作。当注册主机完成后,云计算平台环境中才有可以使用的计算资源。可以使用 Nova 注册 API 来注册计算主机。注册一台计算主机,至少需要下列基本信息: 1) 主机名。从 ibm-hmcs/hosts API 返回的主机的内部名称 2) HMC UUID。要用于管理主机的 HMC 的 UUID 列表(目前仅支持 1 个) 3) 主机类型:powervm(目前版本支持) 4) 此主机的显示名。如果未提供主机名,那么缺省设置为 HMC 上的名称。 2.1 获取HMC和被管理主机信息 在基于PowerVC的云计算平台中,硬件管理控制台HMC是非常重要的组成部分。长期以来,HMC是Power System的管理控制台。PowerVC的推出,对于PowerVM的管理,还需要依赖于HMC。在注册主机之前,Power System首先必须被HMC管理。然后,可以通过有关PowerVC API访问HMC,从而获得HMC和被管理主机的有关信息。 获取HMC和被管理主机信息示例: URL | https://myserver:port/powervc/openstack/compute/v2/tenant_id/ibm-hmcs/detail | | GET | | Content-Type: application/json,
Accept:application/json | | | | | | "hmcs": [
"managed_hosts": [
"8205E6D_XXXXXXX",
"8246L2D_BBBBBBB"
],
"access_ip": "XXX.XXX.XXX.XXX",
"user_id": "AAAAAA",
"health_status":
"health_value": "OK",
"id": "903796b6-ec26-3352-ab01-3f1002deb0d2",
"value_reason": ,
"updated_at": "2014-09-15T10:02:14.147190"
,
"hmc_uuid": "903796b6-ec26-3352-ab01-3f1002deb0d2",
"hmc_display_name": "pvc01hmc",
"registered_at": "2014-05-28T17:26:50.184375" | 2.2 注册计算主机 当得到需要注册的主机的名称、HMC 唯一识别代码UUID、主机虚拟化超级管理程序类型和需要显示的主机名称以后,就可以在企业云计算平台中注册主机。 注册计算主机示例: URL | https://myserver:port/powervc/openstack/compute/v2/tenant_id/os-hosts | | POST | | | | "host":
"registration":
"host_name": "8246L2D_BBBBBBB",
"hmc_uuids": ["903796b6-ec26-3352-ab01-3f1002deb0d2"],
"host_type": "powervm",
"host_display_name": "My Host 1", | | | | | 3. 列出主机 3.1 列出所有主机 在实际部署虚拟机(VM)之前,我们需要知道在企业云计算平台中有哪些可以使用的主机资源。在创建虚拟机(VM)的时候,可以依据一定的部署原则和算法,指定虚拟机部署在我们希望的物理服务器上。通过这样的指定,可以平衡和优化整个云计算平台中主机资源的使用情况。 列出所有Host的 API示例: URL | | | GET | | | | | | "hosts": [
"zone": "nova",
"host_name": "8205E6D_XXXXXXX",
"service": "compute"
,
"zone": "nova",
"host_name": "8246L2D_BBBBBBB",
"service": "compute"
,
....这里省略其他内容.... | | | 3.2 列出特定主机详细信息 对于特定的某个主机,我们需要知道它的具体信息,例如CPU总处理能力,以及已经使用了的CPU处理能力;还有内存总量,已经使用了的内存容量。 列出特定主机详细信息API示例: URL | /host_name | | GET | | | | | | | | "host": [
"resource":
"project": "(total)",
"memory_mb": 262144,
"host": "8205E6D_XXXXXXX",
"cpu": 16,
"disk_gb": 2147483647
,
"resource":
"project": "(used_now)",
"memory_mb": 1024,
"host": "8205E6D_XXXXXXX",
"cpu": 1,
"disk_gb": 100
,
"resource":
"project": "(used_max)",
"memory_mb": 1024,
"host": "8205E6D_XXXXXXX",
"cpu": 1,
"disk_gb": 100
,
"resource":
"project": "b9931f8772f04e20a541e701933549b4",
"memory_mb": 1024,
"host": "8205E6D_XXXXXXX",
"cpu": 1,
"disk_gb": 100
,
"registration":
"host_display_name": "Power740-01",
"host_type": "powervm",
"hmc_uuids": [
"903796b6-ec26-3352-ab01-3f1002deb0d2"
],
"registered_at": "2014-05-30T11:20:28Z",
"host_name": "8205E6D_XXXXXXX",
"access_state": "ok" | 3.3列出主机与存储之间的关联 用PowerVC API注册的主机通常会与存储组件进行关联。存储是云计算平台的另一个重要组成部分,这里只简述主机和存储之间的关系,后续文章会详细描述关于存储部分的具体内容。在部署虚拟机(VM)的时候,需要知道主机与存储之间的关联关系,只有相互关联的主机和存储才能进行虚拟机的部署。对于Power System系统来说,主要需要知道与主机系统相关联的虚拟输入输出(VIO)存储系统有关信息。 列出可用的存储API示例: URL | https://myserver:port/powervc/openstack/compute/v2/tenant_id/host-storage-topologies | | GET | | Content-Type: application/json,Accept:application/json | | | | | | "host_list": ["vios_list": ["name": "PVCVIOS02","storage_ready": true,"lpar_id": 2,"total_fcport_count": 2,"id": "8205E6D_XXXXXXX##2","port_ready_count": 2,"state": "running","fcport_list": ["status": "OK","fabric": "A","vio_server": "PVCVIOS02","available_connections": 63,"enabled": true,"adapter_id": "U78AA.001.WZSKGNW-P1-C3","wwpn": "10000090FA53A970","id": "1aU78AA.001.WZSKGNW-P1-C3-T1","name": "fcs0","status": "OK","fabric": "A","vio_server": "PVCVIOS02","available_connections": 64,"enabled": true,"adapter_id": "U78AA.001.WZSKGNW-P1-C3","wwpn": "10000090FA53A971","id": "1aU78AA.001.WZSKGNW-P1-C3-T2","name": "fcs1"],"rmc_state": "active","name": "PVCVIOS01","storage_ready": true,"lpar_id": 1,"total_fcport_count": 2,"id": "8205E6D_XXXXXXX##1","port_ready_count": 2,"state": "running","fcport_list": ["status": "OK","fabric": "A","vio_server": "PVCVIOS01","available_connections": 63,"enabled": true,"adapter_id": "U78AA.001.WZSKGNW-P1-C2","wwpn": "10000090FA53ABE1","id": "1aU78AA.001.WZSKGNW-P1-C2-T2","name": "fcs1","status": "OK","fabric": "A","vio_server": "PVCVIOS01","available_connections": 64,"enabled": true,"adapter_id": "U78AA.001.WZSKGNW-P1-C2","wwpn": "10000090FA53ABE0","id": "1aU78AA.001.WZSKGNW-P1-C2-T1","name": "fcs0"],"rmc_state": "active"],"port_ready_count": 4,"hmc_uuid": "903796b6-ec26-3352-ab01-3f1002deb0d2","name": "8205E6D_XXXXXXX","vios_ready_count": 2,"vios_list": ["name": "PL01VIOS01","storage_ready": true,"lpar_id": 1,"total_fcport_count": 2,"id": "8246L2D_BBBBBBB##1","port_ready_count": 2,"state": "running","fcport_list": ["status": "OK","fabric": "A","vio_server": "PL01VIOS01","available_connections": 64,"enabled": true,"adapter_id": "U78AB.001.WZSK7F3-P1-C2","wwpn": "10000090FA520109","id": "1aU78AB.001.WZSK7F3-P1-C2-T2","name": "fcs1","status": "OK","fabric": "A","vio_server": "PL01VIOS01","available_connections": 63,"enabled": true,"adapter_id": "U78AB.001.WZSK7F3-P1-C2","wwpn": "10000090FA520108","id": "1aU78AB.001.WZSK7F3-P1-C2-T1","name": "fcs0"],"rmc_state": "active"],"port_ready_count": 2,"hmc_uuid": "903796b6-ec26-3352-ab01-3f1002deb0d2","name": "8246L2D_BBBBBBB","vios_ready_count": 1 |
作者:俞超 王益斌 冯忠旗 |