自建云服务计费系统

news2025/1/12 16:14:09

        自从Laxcus分布式操作系统正式开源两个月以来,可能是它一站式云计算平台属性和超大规模计算能力,给用户带来极大的便利,下载量一直持续增加,最近网站后台总是有用户在问,在Laxcus分布式操作系统的社区版本基础上,编写一个计费系统,应该如何实现,分哪些步骤之类的问题。下面简单说一下这个问题,先说下计费编程的大概情况,下一篇咱们再详细说如何编写Laxcus云计费系统。
        标准的云服务计费系统,目前是属于Laxcus云计算版本的一项功能,Laxcus云计算版本对应云计算服务商,里面的功能大量是针对云计算的硬件环境而设计,这种硬件环境,一般用户的计算机集群或者服务器普遍不具备,所以社区版用户无法使用。但是社区版本也提供了通用性的云服务接口,用户使用这些接口,结合自己的云服务特点,也能够设计一套计费系统。更深一步,因为Laxcus分布式操作系统是开源的,如果开发者对Laxcus分布式系统系统有足够了解,还可以结合自己的硬件环境,直接修改源代码,来设计更复杂的计费系统。今天就用这些接口,来介绍一下如何开发一个简单的计费系统,更多的功能需求,可以在这个上面延伸。希望对使用Laxcus社区版本的用户,提供一个参考示例。


        首先让我们感性体验一下。启动Laxcus分布式操作系统的集群管理桌面,上面有一个“我的集群”的应用软件。这是一个动态显示Laxcus集群运行环境的应用,打开它,Laxcus集群里,每个节点的重要运行参数都会在上面显示,包括CPU、GPU的负载,内存、磁盘的用量,瞬时网络流量,已经消耗的全部网络流量,在线人数、Laxcus分布式应用软件的运行数量,都会定时刷新一一列举出来,刷新的时间也是由用户自己定义,系统默认的刷新间隔时间是20秒,最小的刷新间隔时间10秒。
        显示在窗口界面上的参数,是Laxcus集群每个节点的运行参数,在它的里面,其实隐藏了注册用户的运行记录,或者说,每个注册用户在Laxcus集群运行记录的汇总,就是Laxcus集群节点的运行参数,所以二者实际是一体两面,混合统一。
        如果把Laxcus集群的运行记录拆解,把每个用户的运行记录单独提取出来,交给计费系统来处理,就需要使用到一个分布式命令:“Check User Cost”。
        在图形界面或者命令行输入“Check User Cost”命令,它会有如下的显示。

        打开命令帮助窗口,Check User Cost命令有如下介绍:

        在Laxcus分布式操作系统里,所有的命令参数都采用短参数格式,即在参数前面加一个“-”符号,而不是两个。这和Linux系统有所区别。
        Check User Cost命令有以下几个参数:
        1.Sites,节点的类型。这是一个关键字,在Laxcus集群里,除了FRONT节点和WATCH节点,其它节点都是有效。节点类型是一个必选项,指定节点后,命令将去查询关联节点上的资源消耗记录,如果需要检索多个节点,节点关键字之间用“,”分开。
        2.Users,用户签名。它对应用户的登录名称,忽略大小写。这也是一个必选项,只有指定用户签名后,系统才能够知道要寻找哪些用户的记录,然后再去关联的节点上查找。
        3.Includes,指向被检索的命令,允许有多个命令被同时检索,多个命令之间用“,”分隔。这是一个可选项,如果不指定,系统将检索用户的所有命令。
        4.Excludes,就是在全部命令里,被排除的命令,多个被排除命令之间用“,”分隔。它也是可选项,同时与“Includes”是互斥的。就是说如果指定Includes时,就不能使用Excludes参数,反之亦然。
        5.Begin 检索的开始时间,时间格式是“年-月-日 时:分:秒”这是必选项。
        6.End 检索的结束时间,时间格式也Begin参数一样,也是必选项。End和Begin形成匹配。

        如果是编程,调用Check User Cost命令,需要使用DSDK软件包。DSDK软件包全名是Distributd Software Development Kit,是Laxcus分布式操作系统提供给用户,用来进行分布式编程的API。DSDK类似于Windows或者Linux提供的SDK从功能上来说差不多,区别在于,Laxcus提供的处理工作都是分布的,所以调用DSDK API指令后,这些指令会分散到不同的计算机节点上运行,而不象Windows、Linux上的指令,只在本地执行。这是它们的根本不同,但是在操作使用上,用户和开发者不会有这种感觉,就象完全在本地处理一样。
        Check User Cost命令的返回结果里,有大量参数需要在这里逐个说明一下,理解后,才好处理后面的编程工作。
        首先是用户名称,它与命令中的“Users”参数对应。 这个比较好理解,每个用户都有一个登录身份,用户名称就是它的ID,通过用户名,计费系统才能识别每一个用户在集群中执行的工作、产生的网络流量,计算消耗的时间。
        第二个是节点,它与命令中的“Sites”参数对应。Laxcus计算机集群有很多的节点,每个节点处理一项单一主要工作,比如Data节点主要处理大数据工作,Disk节点负责存储操作,Work节点执行分布式计算工作,Build节点处理数据和资源的重组工作,Call节点管理分布计算业务的调度处理。
        第三个是命令名称。在Laxcus集群中,命令相当于赋于业务一个可识别的工作身份,类似于用户名称,通过命令名称,可以快速识别用户执行的每一项操作,同时,根据命令名称,可以进行有针对性的计费工作。这也是Laxcus赋予计费的一项特权。
        第四个是迭代次数。迭代就是指命令在Laxcus集群中执行的工作次数,因为Laxcus集群上的计算工作不一定只局限于某一个节点,很多时候会分散到不同的节点上去执行,根据迭代次数,我们可以给计费系统增加多一个判断选项。
        第五个是服务号。服务号其实包括两个参数,根据图片上的显示,前面是分配给命令的ID,这个ID具有唯一性,在分布计算启动时,由运行环境动态生成。并且在随后的计算过程中,会分配给关联的子命令,这样命令和子命令之间,就形成一个联动的整体,完成一项巨复杂的分布式计算工作,并且能够在界面上显示出来,供用户查阅和识别。服务器的第二个参数是它的执行编号,编号顺序是从1开始,然后一直无限延伸下去,直到结束。越复杂的计算工作,执行编号会越大。为了方便开发者理解,这里显示的编号都很小,最大的编号是3,也就示意着只执行了3次分布计算工作。
        第六和第七是计算工作的开始和结束时间,它与命令中的Begin、End参数对应。这个非常好理解,两个时间都精确到毫秒级别,就不多解释了。
        第八个是运行时间,也就是结束时间减去开始时间的差值。通过运行时间,用户再结合自己的资源计费标准,就可以得到一个消费额度。这个工作将由开发者来完成。
        第九个是迭代时间。这个不太好理解,在这里需要多说明一下。在Laxcus分布式操作系统,所有的分布式计算工作都是由调度器来组织实施和管理。Laxcus调度器类似超算上普遍使用的SLURM,或者其它调度工具。Laxcus调度器每执行一次调度,会消耗一定的CPU、线程、时间。迭代时间,就是Laxcus调度器为每项分布计算工作调配资源消耗的时间总和,这个时间属于运行时间的一部分,但是它和运行时间又不太一样。实际上,计算工作时间,就是等于运行时间减去调度时间。
        第十和第十一项是网络IO在接收和发送数据产生和消耗的流量。这个计费系统需要又一项重要参数,根据它们,计费系统可以精确计算每一笔计算业务,得出相应的消耗额度。
        第十二项是优先级。在Laxcus分布式操作系统,计算业务可以定制不同的优先级,高优先级的计算业务,总是优先被执行。也就是说,一个计算环境中,高优先级的计算业务,被系统优先赋予计算资源,而低优先级的计算业务,总是在高优先级的计算业务结束后,才能获得资源使用权。目前Laxcus集群对用户计算业务,共分有四次优先权限,分别是:Max、Normal、Mini、None。默认情况下,所有计算业务都是None状态,即不设置优先级,这样系统会给所有用户,按照时间顺序平均分配计算资源。用户如果需要优先获得使用计算机资源的特权,那么可以联系系统管理员,这是由它负责管理的权限之一。
        如果用户没有太复杂的计费要求,通过以上计费参数,再结合DSDK提供的API接口,一个基本的计算系统就能生成的。
        根据一个开发者的经历,如果开发人员在熟悉Laxcus分布式操作系统和DSDK编程的情况下,设计开发一个基本的计费系统,也就是两三天的时间。
        下一篇我将详细介绍如何使用DSDK中的API,在Laxcus分布式操作系统上,设计一套简单的计费系统。今天的介绍就到这里,有兴趣的读者可以继续关注我的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地级市-空气流动系数数据-更新至2019(含10米风速、边界高度等)

1、数据来源:参考论文计算,详情请见指标说明 2、时间跨度:2000-2019年 3、区域范围:全国所有地级市 4、指标说明: 空气流动系数数据为环境经济学常用工具变量! 数据为复旦大学陈诗一和陈登科教授&…

vite+ts-4-ORM框架sequelize实现mysql操作

random recording 随心记录 What seems to us as bitter trials are often blessings in disguise. 看起来对我们痛苦的试炼,常常是伪装起来的好运。 使用ORM框架sequelize完成Mysql数据库操作 使用ts实现mysql配置/泛型重载 配置接口实现 创建src/config/DbConf…

【SQL Server + MySQL三】数据库设计【ER模型+UML模型+范式】 + 数据库安全性

极其感动!!!当时学数据库的时候,没白学!! 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固真的是语雀分享要花钱,要不一定把笔记给贴出来(;༎ຶД༎ຶ) ,除…

SFTP的基本定义、用途以及基本优势有哪些

文件传输协议允许用户通过Internet在远程系统之间传输数据。SFTP 就是这样一种协议,它为用户提供了一种安全的方式来发送和接收文件和文件夹,目前少数虚拟主机提供商会提供这项服务。本文将介绍SFTP的基本定义、用途和数据安全方面的优势。 SFTP(Secure …

[附源码]Python计算机毕业设计Django春晓学堂管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]计算机毕业设计springboot海南琼旅旅游网

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

基于SSM的医院医疗管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)

【毕业设计】23-基于单片机的自动避障机器人设计(原理图源代码仿真论文答辩PPT) 文章目录【毕业设计】23-基于单片机的自动避障机器人设计(原理图源代码仿真论文答辩PPT)任务书设计说明书摘要设计框架架构设计说明书及设计文件源码…

mysql基础知识篇(一)

1. 什么是内连接、外连接、交叉连接、笛卡尔积呢? 内连接(inner join):取得两张表中满足存在连接匹配关系的记录。 外连接(outer join):不只取得两张表中满足存在连接匹配关系的记录&#xff0…

httplib库的安装以及使用

目录 安装httplib库 认识httplib库 httplib请求类 httplib响应类 httplib中的Server类 httplib的client类 httplib库搭建简单的服务器 httplib库搭建简单的客户端 安装httplib库 1.进入github,搜索httplib库 2.下载库 3.下载完毕将库的压缩包传输到linux系统下 4…

软件测试概念

目录 基础概念 1、软件测试的概念 2、软件测试的目的 3、基本要求 4、测试的工作流程 5、开发模型 1、瀑布模型 2、增量模型 3、快速模型 4、螺旋开发模型 5、迭代开发模型 6、敏捷开发模型 6、测试模型 1、V模型 2、W模型 7、软件测试的分类 1、测试开发的阶…

css设置渐变边框色

如上图所示,需设置渐变边框色,左右边框颜色固定,上边框从左到右开始渐变,下边框从右到左开始渐变。 思考了很久,如果看作是一个div,则需要用到 border-image属性设置渐变色。也可以看作是两个div&#xff0…

PS不能完成命令,因为没有足够内存(RAM)

PS无疑是一款非常好用的图像编辑软件,对于电脑小白来说操作非常困难,比如提示“不能完成命令,因为没有足够内存(RAM)”要怎么办呢?下面就来看看小编为大家提供的解决办法吧。 一、解决没有足够内存RAM的问题…

c++特殊类

目录 1.实现一个只能在堆上创建对象的类(了解思想) 2.实现一个只能在栈上创建对象的类(同样思想最重要) 3.单例模式(有实际应用价值) 1.实现一个只能在堆上创建对象的类(了解思想)…

MOAT: ALTERNATING MOBILE CONVOLUTION AND ATTENTION BRINGS STRONG VISION MODELS

MOAT: ALTERNATING MOBILE CONVOLUTION AND ATTENTION BRINGS STRONG VISION MODELS一、引言二、实现细节(一)、MBConv block(二)、Transformer block(三)、Comparing MBConv and Transformer blocks(四)、MOAT block(五)、Macro-level network design三、实验部分(一)、ImageN…

传奇GOM引擎登录器配置教程

登录器教程大分类目录引导说明 (01): 解压配置器文件包后,打开KEY文件夹然后选择KEY (02): 战盟官方提供5种不同功能KEY,请打开KEY文件夹里面有载图说明功能,选择你需要…

[附源码]Python计算机毕业设计Django打印助手平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

PG::SunsetDecoy

nmap -Pn -p- -T4 --min-rate1000 192.168.133.85 nmap -Pn -p 22,80 -sCV 192.168.133.85 查看80端口的页面,是一个压缩包 下载压缩包后尝试打开,需要密码,所以直接尝试爆破 得到解压密码 manuel 在/etc/shadow中找到了可以利用的地方 …

终于成功把家里的灯光换掉了

这个周末做过最有意义的事情莫过于把家里的客厅和餐厅的两个黄色吊灯都换上白色灯光的了。为什么说最有意义,因为这件事我已经拖了一年多了,这个黄色的灯光我就一直觉得不舒服,想换掉,可是我不会换,也不知道灯要买什么…

内存取证——ABC包

1、获取数据包的镜像信息 2、获取主机名字 3、 列出文件中曾使用的进程信息 题目要求我们去查看管理员的信息 使用命令查找列出有关管理员的信息继续操作(这里发现管理员注册表) 这个文件里存放着管理员的一些基本信息 已发现此的虚拟地址 打开查看 4、获取管理员用户密码