ZStack--标签系统

ZStack——自动化测试系统1:集成测试 测试,对于一个IaaS软件的可靠性、成熟度和可维护性而言,是一个重要的因素.测试在ZStack中是全自动的。这个自动化测试系统包括了三个部分:集成测试,系统测试,基于模块的测试。其中集成测试构建于Junit之上,使用了模拟器。通过这个集成测试系统提供的各种各样的功能,开发人员可以快速的写出测试用例,用于验证一个新特性或者一个缺陷修复。 概述 这个关键因素,在构建一个可靠的、成熟的和可维护的软件产品... 阅读详情

ZStack中的标签不仅帮助用户聚集资源,也帮助控制软件行为。ZStack有一套完整的规范,用以定义标签的类别、形式和用法。除了用户外,插件也可以创建自己的标签,以记录元数据和拓展现有的资源属性;通过这些手段,标签可以帮助插件引入新的特性,而不改变ZStack的数据库结构,消除了在软件升级对数据库迁移的需求。

动机

随着云中资源的不断增长,用户可能会想要有一种方式,使用人类可读的标签,去分组相似的资源。举个例子,所有Web服务器的虚拟机都可以有一个标签’web-tier-vm’,这样可以从UI和CLI把它们作为一个组来获取。对于IaaS本身,预先定义的业务逻辑也许从来都不能满足用户的需求。以创建虚拟机为例,默认的选择目标主机的算法是,从主机池中随机选择一个,但用户可能需要各种各样的算法来满足它们的使用情景。比如说选择内存超过8G的主机,选择拥有SR-IOV硬件的主机,或选择一个有当前用户的运行中虚拟机的主机。IaaS软件几乎不能为所有无止境的、不可预知的需求提供单独的API,必须有一种机制允许基础API(如APICreateVmInstanceMsg)携带额外信息。

根据各自的业务逻辑,插件可以选择是否创建数据库表。比如,Open vSwitch L2 Network插件,由于需要创建一种新的类型的资源,可能需要添加一张新表;然而,一个允许主机保留内存的插件可能不需要添加一张新表,而仅需在主机上附加一点数据。如果IaaS软件没有为插件提供一种附加数据,它们将开始创造新的、琐碎的模式或添加现有模式的列从而修改现有的模式,导致软件升级时数据库迁移的难处理的情况。

最后,对于建立在ZStack上的第三方软件,允许它们将信息存储到ZStack的数据库可以避免数据完整性问题,并使得它们可以使用ZStack的全部查询API(详见“查询API”)。

问题

大多数IaaS软件都有着标签的概念。然而,它们并不是都为不同场景定义了一个详尽的标签规范。例如,一些IaaS使用标签是为了用户聚合资源,一些IaaS是为了内部业务逻辑。ZStack则为不同场景的标签的每一个层面都精心设计了标签规范。

标签系统

在ZStack中,标签本质上是携带了少量资源相关信息的字符串。一个标签通常由以下几个字段组成:

FIELD DESCRIPTION

uuid 标签的UUID

sourceUuid 标签所关联的资源的UUID

sourceType 标签所关联的资源的类型

Tag 一个包含了有意义信息的字符串

Type 标签类型:System 或者 User

在标签方面,ZStack和其他IaaS软件的本质区别是ZStack将标签分为两类:用户(User)和系统(System)。

1.用户标签

用户标签,顾名思义,是用户为资源分组而创建的标签。例如,通过标签’apache2-http’将安装了Apache2 HTTP服务器的虚拟机分组,这样用户就可以通过查询API获取这些虚拟机,使用标签’apache2-http’作为查询条件即可:

QueryVmInstance userTag=apache2-http

备注:详见“查询API”

这是最常见的标签使用方法,一个资源可以和多个标签相关联,并且被不同的逻辑组划分。

在这里插入图片描述

用户标签也可以通过和系统的标签一起使用来控制ZStack的行为。例如,如果一个用户标签SSD已经在主存储系统上创建好,那么一个系统标签可以指导ZStack在有用户标签SSD的主存储上去创建VM的根目录。在这种情况下,用户标签更像是用户输入的资源元数据。我们很快就会看到,插件也可以使用系统标签创建资源元数据。

2.系统标签

不像用户标签可以被用户在任意时间、以任意值创建,系统标签有固定的格式,并且是被ZStack的业务服务和插件提前定义好的,可以在以下场景被使用:

2.1元数据

插件可以使用系统标签来记录资源的元数据。例如,主机的数据库表中没有列去记录如hypervisor版本,hypervisor SDK版本这样的元数据;然而,衍生的主机插件,例如,KVM主机插件,可能需要这些元数据来确定当前虚拟机管理程序是否有某些特征;例如,是否能对KVM在线快照是由libvirt和QEMU版本决定的。在ZStack中,当连接到后端主机时,KVM主机插件将OS的版本,libvirt版本,QEMU的版本和qemu-img工具的版本作为系统标签保存。

QuerySystemTag fields=tag resourceUuid=d07066c4de02404a948772e131139eb4 { “inventories”: [ { “tag”: “capability:liveSnapshot” }, { “tag”: “qemu-img::version::2.0.0” }, { “tag”: “os::version::14.04” }, { “tag”: “libvirt::version::1.2.2” }, { “tag”: “os::release::trusty” }, { “tag”: “os::distribution::Ubuntu” } ], “success”: true}

2.2资源属性

插件也可以使用系统标签将新属性添加到资源中。例如,虚拟机的数据库模式中没有列来记录该使用什么IP分配算法,什么时候分配虚拟机网卡。这种额外的属性可以用系统标签实现。插件可以创建的系统标签的数量没有限制,附加的插件可以利用这点,并避免干扰数据库模式。

数据库表和系统标签:因为数据库表和系统标签都可以定义资源属性,有时会难以决定属性是应该为数据库模式中的一列,还是应该为一个单独的表中的系统标签。添加新列来修改一个现有的数据库模式,通常需要进行数据库迁移,这是IaaS软件升级的一个主要痛点。所以开发者可能更倾向使用系统标签来代表新属性。然而,滥用系统标签是一种错误的编程方式。按照ZStack的约定,只应该使用系统标签形式引入非固有的资源属性;系统的标签并不能拯救设计的很烂的数据库表。例如,如果VM的数据库表缺失集群UUID(虽然不会),即使需要进行数据库迁移也必须补充回来;但为了私人使用而被用户创建的插件引入的部门ID应该作为一个系统标签实现。这种权衡有时候并不容易,我们会严格控制任何数据库结构的变化。

2.3元编程

系统标签也可以标注资源以影响ZStack的执行流,它在某种程度上类似于Metaprogramming(https://en.wikipedia.org/wiki/Metaprogramming)。

例如,管理员可以在KVM主机上创建一个系统标签reservedMemory::1G,提示ZStack主机分配器从主机的可用内存保留1G内存;如果管理员改变心意,他可以通过删除标签来回收这1G内存。有很多类似的系统标签。

例如,在用户标签这一节中,我们提到了同时使用用户标签SSD和系统标签来为VM的根云盘指定主存储。系统标签叫primaryStorage::allocator::userTag::{tag}::required,如果一个虚拟机实例规格上有primaryStorage::allocator::userTag::SSD::required,从该虚拟机实例规格上创建的虚拟机根云盘的任务,将只被分配到拥有用户标签为SSD的主存储上。有许多称之为解释点interpreting points的代码,将在执行过程中寻找特定的系统标签,可以改变代码的默认行为。

2.4第三方软件集成

建立在ZStack上的第三方软件可以使用系统标签在ZStack的数据库中存储和资源关联的信息,这能有效避免第三方软件数据库和ZStack数据库的数据不一致性。

例如,一个私有软件可能需要记录虚拟机的部门ID来审计每个部门IT资源的使用情况,这个功能通常由一个私有的数据库完成,并迫使私有软件跟踪虚拟机的生命周期,因为它需要在数据库创建或销毁时,去更新自己的数据库。否则,数据将不会正确反映真实情况。

有了系统标签的帮助,私有软件可以使用系统标签,例如audit::departmentId::{id}将信息存储在ZStack的数据库,将管理部门ID生命周期的责任转移给ZStack。当一个虚拟机被销毁,它的部门ID(例如audit::departmentId::1)将在删除该虚拟机记录的数据库事务中被自动删除。此外,私有软件可以用它们的部门ID调用常规查询API检索虚拟机:

QueryVmInstance fields=uuid sysTag=audit::departmentId::1

注:在ZStack版本(0.6)中,我们还没开放允许定义任意系统标签的接口,所有的系统标签都是预先定义的。我们计划在下一个版本中开放这个接口,用户定义的系统标签可以在创建的时候添加一些系统允许的前缀,例如,3rd::。

和其他组件的关系

标签系统是ZStack核心组件之一;它不仅具有单独的API和服务,而且还和其他核心组件无缝集成。用户可以在资源创建时或在资源创建后创建标签。ZStack所有创造型的API支持两个固有参数:userTags和systemTags,通过它们传递的标签将随着资源一起创建。例如:

CreateVmInstance name=testTag systemTags=hostname::web-server-1 l3NetworkUuids=6572ce44c3f6422d8063b0fb262cbc62instanceOfferingUuid=04b5419ca3134885be90a48e372d3895 imageUuid=f1205825ec405cd3f2d259730d47d1d8

如果资源已经存在,用户可以使用标签API来创建或删除标签:

CreateUserTag resourceType=VmInstanceVO resourceUuid=613af3fe005914c1643a15c36fd578c6 tag=webDeleteTag uuid=596070a6276746edbf0f54ef721f654e

资源被删除时,与资源相关联的标签将被自动删除。

资源可以通过使用两个特殊的查询条件进行查询:__userTag__and__systemTag__标签:

QueryVmInstance userTag=web zoneUuid=04b5419ca3134885be90a48e372d3895QueryHost systemTag=capability:liveSnapshot

也有查询API专门用于分类:

QueryUserTag resourceUuid=0cd1ef8c9b9e0ba82e0cc9cc17226a26 tag~=web-server-%QuerySystemTag resourceUuid=50fcc61947f7494db69436ebbbefda34

总结

在这篇文章中,我们展示了ZStack的标签系统。通过这个系统,用户、插件和第三方软件可以通过各种各样的方式使用标签,而不用改变代码和数据库表结构。这是又一个基本点,激发了一种潜力,使得ZStack在快速进化为一个成熟的、完整的云计算解决方案的同时,又能保持核心架构强壮稳定。

【ZStack】自动化测试系统1——集成测试 测试,对于一个IaaS软件的可靠性、成熟度和可维护性而言,是一个重要的因素.测试在ZStack中是全自动的。这个自动化测试系统包括了三个部分:集成测试,系统测试,基于模块的测试。其中集成测试构建于Junit之上,使用了模拟器。通过这个集成测试系统提供的各种各样的功能,开发人员可以快速的写出测试用例,用于验证一个新特性或者一个缺陷修复。 概述 这个关键因素,在构建一个可靠的、成熟的和可维护的软件产品中,就是架构;这是我们自始自终相信的设计原则。ZStack已经付出了大量的努力,以设计这么一个架构:始终保持 阅读详情

相关推荐

zstack 完整版中文资料

德州仪器的Zstack的完整中文资料,可以跟英文资料对照学习

ByLabel标签打印系统有人用过吗,哪些打小票的软件比较方便?热敏打印机

看到这里脑子里有了思路:将要打印的内容进行排版->将排版好的数据转换成位图->将位图中的数据,根据需要转换成指令中要求的格式->交给打印机打印。打的时候我在软件中设置的刚刚好,一行字边上还空很多,结果打印机以为超过一行的内容了,居中变成了左对齐。就去找妹子要了Zebra的技术手册,一打开就吓尿了,尼玛1000+页的东西,我只是用一下打印机又不是去帮你们打印机开发驱动。斑马打印机,网上说的是中文要转换成图片,或者是把中文字体下载到打印机,有的可以插U盘?// 创建一个新的打印机对象。// 关闭打印机连接。

1040

标签条码打印软件 v5.13

标签打印软件适用于普通不干胶标签、条码机标签(物流标签)、价格标签、服装吊牌、报告单、证件、名片等排版设计与打印。软件操作简便、排版高效、定位准确、人性化的设计界面。作为一款优秀的行业标签条码设计打印软件(标签打印软件),己逐渐为行业所认可。 标签打印软件产品特性 1、可视化设计,精确定位,定位精度达到0.01mm。 2,标签元素支持多种变化:缩放、移动、旋转、对称投影。变化后,仍可精确定位到事先设定的精度网格。 3,支持所有元素的属性直接编辑。在此编辑元素的字体、字体颜色、前景色和背景色;线条的宽度、类型、颜色;设置元素的边框线等。使您的操作更加快捷。 4,标签的尺寸规格设计与元素的布局分离,使设计工作思路更加的清析和简洁。 5,支持元素的对齐方式,多个元素的对齐,锁定元素的位置。 6,丰富的标签元素支持:文本、文本链(文本的组合)、自动文本(通过规则定义使每一张标签按一定的规则变化)、直线、折线、框、圆、多边形、图片等元素。 7,提供超过20多种的条形码支持,并且各条形码可以自由变化,设置任意旋转角度。 8,支持Excell,Access文件的数据导入;支持连接MSSQL数据库;支持手工添加数据源,同时提供导入数据的修改保存。使你的工作更加的便捷。 9,支持将文件保存为多种常见图片格式,或是直接复制到其它应用程序中。 10,提供各式模板方便用户快速创建实例。 提供了1000多个标签素材供用户使用。 11,支持自动产生编码、文本、序列号规则。 12,支持数据的格式化化输出。如货币格式,指数格式等。 13,支持数据使用数据源直接控制打印数量。并支持按数据源记录选择情况打印。 14、支持数据源项直接拖放到标签中,简化了数据源的使用操作。 12、增加了批量绑定(修改)数据源功能。 13、支持数据源转移。

WMS系统条码打印管理:提升仓储效率的关键

WMS系统的条码打印管理不仅提升了仓储作业的效率和准确性,还为企业带来了长远的竞争优势。随着科技的不断进步,我们有理由相信,未来的仓储管理将更加智能化和高效化。因此,对于追求卓越的企业来说,投资于WMS系统条码打印管理无疑是一项明智之举。

飞迅软件的博客 785

BYLABEL标签打印系统V3.68

BYLABEL标签打印系统V3.68,BYLABEL标签打印系统V3.68BYLABEL标签打印系统V3.68

BYlabel软件如何实现共享打印

BYlabel软件如何实现共享打印1. 在准备共享打印的电脑A上安装打印机驱动,在驱动的“属性”-“端口”中指定该打印机所使用的端口;

linux标签打印机软件下载,bylabel软件下载

软件标签: 标签打印bylabel v3.66是新北洋开发的一款条码标签打印系统,可以实现文字、条码、图像 和图形等标签的设计及打印功能,使用菜单选项和工具栏轻松设计标签,做到所见即所得。BYLabel标签打印系统可进行多种数据库的连接,只要是系统支持的数据库形式,BYLabel都能支持并进行有效操作。BYLabel对于多文档连接数据库进行了方便操作的处理,即不同的文档可以对应统一数据库操作,但是...

weixin_33954874的博客 1362

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

ZStack 5分钟 | 浅谈核心架构设计特点

ZStack是下一代开源的云计算IaaS(基础架构即服务)软件。它主要面向未来的智能数据中心,通过提供灵活完善的APIs来管理包括计算、存储和网络在内的数据中心资源。用户可以利用ZStack快速构建自己的智能云数据中心,也可以在稳定的ZStack之上搭建灵活的云应用场景,例如VDI(虚...

chengtuandao1076的博客 742

DCDC--控制方式(Control Mode)

DCDC反馈控制方式

网始如芯个人博客 1万+

【IoT】压力式电子脉搏器设计

智能硬件

产品线负责人 1621

基于HarmonyOS ArkTS API 24响应式编程模型的核心机制之一,与 Vue.js 的 reactive 或 MobX 的 observable 在理念上相通

在 HarmonyOS NEXT 正式商用的背景下,ArkTS 作为鸿蒙生态的官方应用开发语言,正在从传统的命令式 UI 开发范式向声明式 UI 范式全面迁移。ArkUI 框架以组件化、声明式、状态驱动为核心特征,要求开发者以"描述 UI 应该是什么样"而非"一步步操作 UI 怎么变"的思维方式构建界面。本文以一个名为"智能账单"的三标签页记账应用为切入点,逐层拆解其数据模型设计、@Builder 组件复用策略、@State 状态管理机制、条件渲染导航模式,以及静态写死渲染与动态循环渲染之间的性能权衡,为

jin421352的博客 159

电商平台系统需求规格说明书(示例)

​​电商系统​​:指本文件所描述的集商品展示、销售、支付、物流跟踪、用户管理等功能于一体的综合性在线购物平台。​​API​​:应用程序编程接口(Application Programming Interface),用于实现系统各模块之间或与外部系统之间的数据交互和功能调用。

跟佟格湾一起学习计算机知识吧~ 1267

关于Zstack中配置文件讲一讲自己肤浅的认识

打开协议栈中Tools文件夹(这个文件夹包含不同的配置文件和应用于Z-Stack项目的可执行工具).可以看到共有5个链接控制文件(linker control files)。在这个Tools文件夹:f8w2530.xcl;f8wConfig.cfg;f8wCoord.cfg;f8wEndev.cfg;f8wRouter.cfg;f8wZCL.cfg 。   F8w2530.xc1    包含了cc

wearlee的博客 2019

深度学习100例-卷积神经网络(CNN)彩色图片分类 | 第2天

文章目录前期工作设置GPU导入数据标准化可视化构建CNN网络编译训练模型预测模型评估 前期工作 设置GPU 如果使用的是CPU可以忽略这步 import tensorflow as tf gpus = tf.config.list_physical_devices("GPU") if gpus: gpu0 = gpus[0] #如果有多个GPU,仅使用第0个GPU tf.config.experimental.set_memory_growth(gpu0, True) #设置GPU显存用量

“365天深度学习训练营”报名进行中~ 7856

基于Qt的工业组态软件开发:图形绘制与TCP通讯实现

在数据接收时,通过 readyRead 信号触发解析函数,校验数据包完整性后提取有效数据,并更新对应图形元素的状态,例如根据温度值改变矩形的填充色,实现设备状态可视化。测试阶段,我们将软件部署到Windows工控机,连接PLC设备进行通讯测试,结果表明图形元素响应及时,TCP数据传输稳定,满足工业现场的基本需求。综上所述,基于Qt的组态软件开发,核心在于利用 QGraphicsView 框架实现图形元素的灵活绘制与管理,结合 QTcpSocket 完成工业数据的可靠交互。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 273

ZStack--通用插件系统

当前IaaS软件更像云控制器软件,要成为一个完整的云解决方案还缺少很多特性(features)。作为一个正在发展中的技术,预测其完整解决方案的所有必备特性是非常困难的,所以一个IaaS软件不可能在一开始就完成它所有的特性。基于以上事实,一个IaaS软件的架构必须有能力,在添加新特性的同时保持核心结构稳定。ZStack的通用插件系统,使得特性可以像插件一样实现(在线程内或在线程外),这样不只能使ZS...

allforfreedom的博客 2472

励磁电感 Lm 选对了,LLC 才真“高效”:半桥 LLC 效率优化

你有没有遇到过这种 LLC:参数一套下来,ZVS 也有了,波形看着也“挺谐振”,但一上功率——,效率就是死活上不去。我说句直白的:LLC 的“高效”,很大一部分其实是在背后控场。Lm 选小了,励磁电流蹭蹭涨,谐振电流 RMS 变大,导通损耗、开关损耗、整流损耗一起上天;Lm 选太大,又可能把 ZVS 的门槛抬高,轻载掉 ZVS,EMI 也开始作妖。

weixin_43199439的博客 438

ZStack

ZStack-example

Huntinux 2006

《网络安全自学教程》- OSI七层模型分层及作用,数据封装与解封过程,数据传输过程。

OSI分哪七层,每层的作用是什么,解释数据在七层模型中是怎样传输的,封包和解封过程,数据包在每一层是怎么封装和解封的。

wangyuxiang946的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Zstack之文件结构梳理

TI的Zigbee解决方案Zstack提供了一整套基于TI的CC253X系列芯片的Zigbee解决方案。从TI官方wang

FireStarway的专栏 2749

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

四、Zstack云平台功能概述(ZCCT云计算认证)

四、Zstack云平台功能概述(ZCCT云计算认证) 一、首页 概览 包含如下项目: 产品与服务 区域 大屏展示 工单 告警信息 最近操作 个人中心 二、资源中心 1.云资源池 云主机 运行在物理机上的虚拟机实例,具有独立的IP地址,可以访问公共网络,运行应用服务。 云盘 为云主机提供虚拟磁盘功能 镜像 云主机或云盘使用的镜像模板文件,包括两种类型:系统镜像、云盘镜像。 系统云盘镜像支持ISO和Image类型,数据云盘镜像支持Image类型。 Image类型支持raw和qcow2两

hzcm1984的博客 4067

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: ZStack--级联框架
下一篇: ZStack--工作流引擎
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值