Sahara中的数据模型,Sahara数据模型


声明:

本博客欢迎转载,但请保留原作者信息,并请注明出处!

作者:郭德清

团队:华为杭州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


相关内容