声明:
本博客欢迎转载,但请保留原作者信息,并请注明出处!
作者:郭德清
团队:华为杭州OpenStack团队
本文主要是介绍下Sahara中一些常见的数据模型。
1、Config
用于描述配置信息的实体对象。
属性 |
类型 |
描述 |
name |
string |
配置的名称。 |
description |
string |
配置的描述。 |
config_type |
enum |
配置的类型,包括:string、integer、boolean、enum。 |
config_values |
list |
当配置是枚举(enum)类型的时候,用于保存可能的值。 |
default_value |
string |
配置的默认值。 |
applicable_target |
string |
这个值可以是类似get_node_processes返回的某个service的值,也可以是general。 |
scope |
enum |
值可以是node或者cluster |
is_optional |
bool |
如果改值设置为false,而且default_value为空,那么用户必须传入这个配置。 |
priority |
int |
值可以是1、2。UI显示的时候用的,1表示显示,2表示用户需要点击一个按钮才能看到。 |
2、Instance
集群中的某个虚拟机。
属性 |
类型 |
描述 |
instance_id |
string |
虚拟机ID。 |
instance_name |
string |
虚拟机名称。 |
internal_ip |
string |
虚拟机之间通信的IP。 |
management_ip |
string |
从外部网络能够访问虚拟机的IP。 |
volumes |
list |
虚拟机挂载的卷。 |
nova_info |
object |
nova的虚拟机对象。 |
username |
string |
Sahara用于远程访问虚拟机的用户名。 |
hostname |
string |
和instance_name的名字一样。 |
fqdn |
string |
全称域名。self.instance_name + ‘.‘ + CONF.node_domain |
remote |
helpers |
执行远程操作的帮助对象。 |
3、Node Group
虚拟机组。
属性 |
类型 |
描述 |
name |
string |
集群Node Group的名字。 |
flavor_id |
string |
创建虚拟机用的套餐。 |
image_id |
string |
创建虚拟机用的镜像。 |
node_processes |
list |
每个节点上跑的进程,如namenode、datanode等。 |
node_configs |
dict |
节点配置,如:"HDFS": {"DataNode Heap Size": 1024} |
volumes_per_node |
int |
每个节点挂载卷的个数。 |
volume_size |
int |
卷的大小。 |
volume_mount_prefix |
string |
卷的挂载路径。 |
floating_ip_pool |
string |
浮动IP池名字。这个Node Group的每个虚拟机都会有分配一个这个浮动IP池的IP。 |
count |
int |
这个Node Group的虚拟机数量。 |
username |
string |
Sahara远程连接虚拟机的用户名。 |
configuration |
dict |
节点配置和集群配置的合并。 |
storage_paths |
list |
数据存储路径,没有挂载卷的时候,是在/mnt目录下。如果有挂载了2个卷,volume_mount_prefix是/volume/disk,那么这个值就是[‘/volume/disk1’,’/volume/disk2’] |
4、Cluster
包括所有集群相关的信息,用户集群的创建和扩容。
属性 |
类型 |
描述 |
name |
string |
集群名字。 |
tenant_id |
string |
集群对应的租户ID。 |
plugin_name |
string |
插件名称。 |
hadoop_version |
string |
虚拟机上跑的Hadoop的版本。 |
default_image_id |
string |
用户创建虚拟机默认的镜像。 |
node_groups |
list |
node group列表。 |
cluster_configs |
dict |
集群的配置,比如:"HDFS": {"dfs.replication": 3} |
cluster_template_id |
string |
集群的模板ID。 |
user_keypair_id |
string |
虚拟机的keypair,用于用户登录虚拟机。 |
neutron_management_network |
string |
网络ID。如果use_neutron设置成True,那么虚拟机会分配一个这个网络的IP。 |
anti_affinity |
list |
不同的主机上跑的进程。 |
description |
string |
集群描述。 |
info |
dict |
额外的信息。 |
5、数据库中的表
有兴趣的话,可以登录数据库,查看相应的表结构:
【参考资料】
https://sahara.readthedocs.org/en/stable-juno/devref/plugin.spi.html#object-model
原文地址:http://blog.csdn.net/canxinghen/article/details/42007809