使用服务

使用服务器是CloudStack一个可选项,分别安装产品的一部分,提供了聚合使用记录您可以使用它来创建计费集成产品。使用服务器通过使用数据从事件日志和创建汇总使用记录,您可以访问使用listUsageRecords API调用。

使用记录显示数量的资源,比如虚拟机运行时间或模板存储空间,以被客人消耗为例。

使用服务器运行至少每天一次。它可以被配置为每天多次运行。

配置使用服务器

配置使用服务器

  1. 确定使用服务器已经被安装。它要求安装额外的CloudStack软件步骤。参见高级安装手册中的使用服务器(可选)。

  2. 作为管理员登录到CloudStack用户界面。

  3. 单击全局设置

  4. 在搜索栏输入 usage。找到no需要改变的配置参数。下表是这些参数的详细描述。

  5. 在操作栏点击编辑图标。

  6. 输入数值点击保存图标。

  7. 重新启动管理服务器(通常在改变了全局配置之后都要进行这步)并重启使用服务器。

    # service cloudstack-management restart
    # service cloudstack-usage restart
    

下表列出了全局配置中控制使用服务器的配置项。

参数名描述

enable.usage.server是否开启使用服务器。

usage.aggregation.timezone

记录使用信息所用的时区。如果使用记录和日程工作执行在不同的时区时进行设置。例如,进行下列设置,使用任务运行在PST 00:15和24小时内产生的从00:00:00GMT到23:59:59GMT的使用记录:

usage.stats.job.exec.time = 00:15
usage.execution.timezone = PST
usage.aggregation.timezone = GMT

时间域的有效值已经被具体化到 Appendix A, *Time Zones* 中

默认:GMT

usage.execution.timezone

域时间项usage.stats.job.exec.time。时间域的有效值被具体化在`Appendix A, Time Zones <http://docs.cloudstack.apache.org/en/latest/dev.html?highlight=time%20zones#time-zones>`_

默认时区是管理服务器的时区。

usage.sanity.check.interval

完整性检查时间间隔。设置此值来定期在生成用户账单之前检查出错误的数据。比如,他能检查虚拟机被销毁之后的使用记录和模板,卷等的类似记录。还会检查超过聚合时间的使用时间。如果发生了错误就会发送ALERT_TYPE_USAGE_SANITY_RESULT = 21 警告。

usage.stats.job.aggregation.range

使用服务器执行任务时间间隔(分钟为单位)。比如,如果你将此值设为1440,使用服务器将每天执行一次。如果你将此值设为600,则会10小时执行一次。一般情况下使用服务器执行任务时会继续在上次的使用统计基础上处理所有事件。

当值为1440(一天一次)时有点特殊。该情况下,用量服务器并不需要处理上次运行之后的所有事件。&PRODUCT;假定您要一天一次处理昨天的,完成每日记录。例如,如果今天是10月7号,会假定您要处理6号的记录,从0点到24点。CloudStack假定的0点到24点采用的时区为 usage.execution.timezone的值。

默认:1440

usage.stats.job.exec.time

使用服务器处理任务的启动时间。采用24小时格式 (HH:MM),时区为服务器的时区,应该为GMT。比如要在GMT时区10:30 启动用量任务,请输入“10:30”

如果同时设置了usage.stats.job.aggregation.range参数,并且该参数值不是1440,这个值将被添加到usage.stats.job.exec.time到时再次运行使用服务器任务。重复此过程,直到24小时已经过去,第二天到达 usage.stats.job.exec.time处理任务开始。

默认:00:15。

比如,假设你服务器时区是GMT,你的用户主要在美国东海岸,而你有打算在当地时间(EST)每天凌晨两点执行使用记录统计。选择这些选项:

  • enable.usage.server = true
  • usage.execution.timezone = America/New_York
  • usage.stats.job.exec.time = 07:00。这将会在东部时间2:00执行使用任务。注意考虑进出白昼保存时间在将时间迁移大U.S.东海岸。

  • usage.stats.job.aggregation.range = 1440

在这种配置下,使用任务 会在东部时间每天2 AM执行,同时会如定义的一样以东部时间(美国纽约时间)统计前一天的“午夜到午夜使用记录。”

注解

由于在usage.stats.job.aggregation.range中使用特殊值1440,用量服务器将忽略午夜到凌晨2:00之间的数据。这些数据将会包含在第二天的统计中。

设置使用限制

CloudStack提供多个管理员控制点以便控制用户资源使用。其中一些限制是全局配置参数。其他一些应用在root域,并且会覆盖每个账号的基本配置

全局配置限制

在一个域中,客户虚拟网络默认有24位CIDR.它限制了客户网络运行上线是254个实例。它可以根据需求调节,但必须在域中实例创建之前。例如,10.1.1.0/22 将提供 ~1000 地址。

下表列出了设置全局配置的限制:

参数名称

定义

max.account.public.ips

账户可拥有的公用IP地址个数

max.account.snapshots

快照的数量存在于一个记述中

max.account.templates

模板的数量可能存于一个记述中

max.account.user.vms

虚拟机实例的数量也可能存在于一个记述中

max.account.volumes

磁盘卷的数量也可能存于一个记述中

max.template.iso.size

下载的模板或ISO最大的单位是GB

max.volume.size.gb

卷的最大单位是GB

网络调节比率

默认的传输速率是允许用户按照Mb每秒(支持XenServer)

snapshot.max.hourly

最大的可再现时时性快照可以保存在卷中。如果数量的限制达到,早期的来自开始阶段的快照就会被删除以使新的快照可以被存储。这种限制方法不支持手工快照。若设为0,可再现性时时快照将没有保存。

snapshot.max.daily

最大的可再现时时性快照可以保存在卷中。如果数量的限制达到,早期的来自开始阶段的快照就会被删除以使新的快照可以被存储。这种限制方法不支持手工快照。若设为0,可再现性时时快照将没有保存。

snapshot.max.weekly

最大的可再现时时性快照可以保存在卷中。如果数量的限制达到,早期的来自开始阶段的快照就会被删除以使新的快照可以被存储。这种限制方法不支持手工快照。若设为0,可再现性时时快照将没有保存。

snapshot.max.monthly

最大的可再现时时性快照可以保存在卷中。如果数量的限制达到,早期的来自开始阶段的快照就会被删除以使新的快照可以被存储。这种限制方法不支持手工快照。若设为0,可再现性时时快照将没有保存。

使用CloudStack中的用户界面中的全局配置界面可以修改全局配置参数。

限制资源使用

CloudStack允许根据资源类型控制资源使用,例如CPU,RAM,主存储,辅助存储。一个新的资源类型集已经被添加到了已经存在的支持新通俗模型的资源池-基于需要使用,例如大型VM或者小型VM.新的资源类型被广泛分类在如CPU,RAM,主存储和辅助存储中。超级管理员能够利用下列资源的使用限制,例如域,项目或者账户。

  • CPUs
  • Memory (RAM)
  • 主存储(卷)

  • 辅助存储(快照,模板,ISOs)

为了控制该特征的行为,以下配置参数已经添加:

参数名称

描述

max.account.cpus

最大的可以被账户使用的CPU核心个数。默认是40.

max.account.ram (MB)

最大的可以被账户使用的RMA容量。默认值是40960。

max.account.primary.storage (GB)

最大的可以被账户使用的主存储个数。默认是200。

max.account.secondary.storage (GB)

最大的可被账户使用的辅助存储空间。默认是400。

max.project.cpus

最大的可以被账户使用的CPU核心个数。默认是40.

max.project.ram (MB)

最大的可以被账户使用的RMA容量。默认值是40960。

max.project.primary.storage (GB)

最大的可以被账户使用的主存储个数。默认是200。

max.project.secondary.storage (GB)

最大的可被账户使用的辅助存储空间。默认是400。

用户许可

超级管理员,域管理员和用户能够列出资源。确保合适的属性日至保存在 vmops.log``api.log``文件中。

  • 超级管理员将有列出和升级资源限制的特权。

  • 域管理员仅允许列出和改变在其拥有的域或者子域的子域和账户的资源限制。

  • 终端用户拥有改变列出资源限制的特权。使用listResourceLimits API.。

限制使用注意事项:

  • 主存储或者辅助存储空间参考启动的容器大小而不是物理容量,实际使用的物理空间要小于提供的空间。

  • 如果管理员为账户减少资源限制,并设置少于目前设定的资源数,已经存在的VM/模板/卷也不会破坏。限制仅在账户中的用户试图使用这些资源执行新的操作时表现出来。例如,在一个VM中倘若存在下列行为:

    • 迁移虚拟机:在账户中的用户试图迁移一个正在运行的VM到任何不面临限制问题的主机。

    • 恢复虚拟机:破坏的VM不能被修复。

  • 对于更多资源类型,如果一个域存在限制X,这个域的子域或者账户也能也有它们自身的限制。尽管如此,一个子域允许分配的资源总和或者域中账户在任何时间点都不能执行X限制。

    例如,当一个域有CPU的限制数量为40,其子域D1和账户A1可以有每个30的限制,但是任何时候分配给D1和A1的资源都不能超过限制40.

  • 如果一些操作需要通过两个或更多的资源限制核查,最少的两个限制将被执行,例如:如果一个账户有10个限制VM和20个限制CPU,用户在账户中申请每4个CPU5个VM。用户可以部署5个或更多的VM,因为VM的限制个数是10。尽管如此,用户不能部署任何实例,因为CPU的限制已经用尽。

在一个域中限制资源使用

CloudStack允许在一个域基础上配置限制。使用域限制的地点是所有的用户都有其账户的的限制。它们有额外的限制,例如群组,不能执行设置在它们域上的资源限制。域限制聚集了任何域中使用的账户和任何账户的所有域的子域。限制设定在根域层次应用于所有域的账户和子域使用的资源综合都低于根域的限制。

设定一个域限制:

  1. 登录到CloudStack的界面

  2. 在导航栏左侧树中,单击域。

  3. 选择你想修改的域。当前域限制将被显示出来。

    值为-1表明此处没有任何限制。

  4. 单击编辑按钮 edits the settings.

  5. 编辑下列每一条要求:

    • 参数名称

    • 描述

    • 实例限制:

      可以被用在域中的实例的个数

    • 公共IP限制

      可以被用在域中的公共IP地址的个数。

    • 卷限制

      可以被创建在雨中的磁盘卷的个数

    • 快照限制

      可以被创建在域中的快照个数

    • 模板限制

      可以在域中注册的模板数量

    • VPC限制

      可以被创建在域中的VPC的个数

    • CPU限制

      可以在域中使用的CPU核心数。

    • 内存限制(MB)

      可以在域中使用的RAM数量。

    • 主存储限制(GB)

      在域中可以使用的主存储空间大小。

    • 辅助存储限制(GB)

      在域中可使用的辅助存储空间大小。

  6. 点击应用

默认账户资源限制

你可以限制账户使用的资源。默认限制通过全局配置参数设置,它们影响在云中的所有账户。其相关参数开始于max.account,例如:max.account.snapshots。

对于覆盖一个默认限制的特殊账户,设置per-account资源限制。

  1. 登录到CloudStack的界面

  2. 在导航树左侧,单击账户。

  3. 选择你想修改的账户。当前限制将显示出来。

    值为-1表明此处没有任何限制。

  4. 单击编辑按钮。edits the settings.

  5. 编辑下列每一条要求:

    • 参数名称

    • 描述

    • 实例限制:

      在一个账户中可以适用的实例个数。

      默认是20个。

    • 公共IP限制

      在账户中可以使用的公共IP地址个数。

      默认是20个。

    • 卷限制

      在账户中可以创建的磁盘卷个数。

      默认是20个。

    • 快照限制

      在账户中可以创建的快照数量。

      默认是20个。

    • 模板限制

      在账户中可以注册的模板数量。

      默认是20个。

    • VPC限制

      在账户中可以创建的VPC数量。

      默认是20个。

    • CPU限制

      在账户中可以使用的CPU内核的个数。

      默认是40。

    • 内存限制(MB)

      在账户中可以使用的RAM数量。

      默认值是40960。

    • 主存储限制(GB)

      在账户中可以使用的主存储空间。

      默认是200。

    • 辅助存储限制(GB)

      在账户中可以使用的辅助存储空间。

      默认是400。

  6. 点击应用

使用记录格式

虚拟机使用记录格式

对运行或者已分配虚拟机使用,下列字段存在于使用记录中:

  • account–账户的名字

  • accountid–账户的ID

  • domainid –在此账户存在的域的 ID

  • zoneid – 使用资源域的ID号

  • description – 字符描述,用于追查使用量的记录

  • usage – 代表使用量的文字,包括使用量的单位(如 ‘Hrs’代表虚机运行时间)

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • virtualMachineId – 虚拟服务器的ID号

  • name - 虚机名称

  • offeringid - 计算方案的ID

  • templateid – 模版或父模版的ID。当模版是从磁盘卷创建时,此处会使用父模版的ID。

  • usageid – 虚拟机

  • type - 虚拟化平台

  • startdate, enddate –一定时间内的使用量总和; 参见 使用量记录中的日期

网络用量记录格式

网络用量(发送/接收字节数)记录中存在以下字段:

  • account–账户的名字

  • accountid–账户的ID

  • domainid –在此账户存在的域的 ID

  • zoneid – 使用资源域的ID号

  • description – 字符描述,用于追查使用量的记录

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid - 设备ID(虚拟路由器ID或外部设备ID)

  • type - 设备类型(虚拟路由器、外部负载均衡等)

  • startdate, enddate –一定时间内的使用量总和; 参见 使用量记录中的日期

IP地址使用记录格式

对于IP地址使用下列字段存在于使用记录中。

  • account - 账户的名称

  • accountid-账户的ID

  • domainid-本账户具有的鱼的ID

  • zoneid-已经使用的域ID

  • description – 字符描述追查用量记录

  • usage – 代表使用量的字符串,包括使用量的单位

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid-IP地址ID

  • startdate, enddate – 一定时间范围内的用量总和; 参见 用量记录中的日期

  • issourcenat - IP地址的NAT资源是否有效

  • iselastic - 如果IP地址是弹性的为True

磁盘用量记录格式

对于磁盘,用量记录存在下列字段。

  • account–账户的名字

  • accountid–账户的ID

  • domainid –在此账户存在的域的 ID

  • zoneid – 使用资源域的ID号

  • description – 字符描述,用于追查使用量的记录

  • usage – 代表使用量的文字,包括使用量的单位 (如 ‘Hrs’是小时)

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid - 磁盘ID

  • offeringid - 磁盘方案的ID

  • type - 虚拟化平台

  • templateid - 根模版ID

  • size - 分配的存储大小

  • startdate, enddate –一定时间内的使用量总和; 参见 使用量记录中的日期

模版、ISO和快照用量记录格式

  • account–账户的名字

  • accountid–账户的ID

  • domainid –在此账户存在的域的 ID

  • zoneid – 使用资源域的ID号

  • description – 字符描述,用于追查使用量的记录

  • usage – 代表使用量的文字,包括使用量的单位 (如 ‘Hrs’是小时)

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid - 模版、ISO或快照的ID

  • offeringid - 磁盘方案的ID

  • templateid – 仅模版(用量类型为7)时包括。源模版ID。

  • size - 模版、ISO或快照的大小

  • startdate, enddate –一定时间内的使用量总和; 参见 使用量记录中的日期

负载均衡策略或端口导向规则用量记录格式

  • account - 账户的名称

  • accountid-账户的ID

  • domainid-本账户具有的鱼的ID

  • zoneid-已经使用的域ID

  • description – 字符描述追查用量记录

  • usage – 代表使用量的字符串,包括使用量的单位 (如 ‘Hrs’是小时)

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid -负载均衡或端口导向规则ID

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • startdate, enddate – 一定时间范围内的用量总和; 参见 用量记录中的日期

网络服务方案用量记录格式

  • account–账户的名字

  • accountid–账户的ID

  • domainid –在此账户存在的域的 ID

  • zoneid – 使用资源域的ID号

  • description – 字符描述,用于追查使用量的记录

  • usage – 代表使用量的文字,包括使用量的单位 (如 ‘Hrs’是小时)

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid – 网络服务方案的ID

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • offeringid – 网络服务方案的ID

  • virtualMachineId – 虚拟服务器的ID号

  • virtualMachineId – 虚拟服务器的ID号

  • startdate, enddate –一定时间内的使用量总和; 参见 使用量记录中的日期

VPN用户用量记录格式

  • account–账户的名字

  • accountid–账户的ID

  • domainid –在此账户存在的域的 ID

  • zoneid – 使用资源域的ID号

  • description – 字符描述,用于追查使用量的记录

  • usage – 代表使用量的文字,包括使用量的单位 (如 ‘Hrs’是小时)

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • rawusage – 代表以小时为单位实时使用量的数字

  • usageid - VPN用户ID

  • usagetype – 代表使用量类型的数字 (参见使用量类型)

  • startdate, enddate –一定时间内的使用量总和; 参见 使用量记录中的日期

用量类型

下表显示了所有的用量类型。

类型ID

类型名称

描述

1 RUNNING_VM

追踪VM每个用量记录时期所有运行时间总和。如果VM在用量时期升级,你将会获得新升级后的VM单独的用量记录。

2 ALLOCATED_VM

追踪VM从创建到销毁的所有时间总和。这个用量类型也是在终止例如 Windows-based模板这样的具体模板用量上是有用的。

3 IP_ADDRESS

追踪拥有公共IP地址的账户

4 NETWORK_BYTES_SENT

追踪一个账户发送所有VM的比特的总时间。Cloud.com不仅追踪当前网络传输时的每个VM。

5 NETWORK_BYTES_RECEIVED

追踪一个账户接受所有VM的比特的总时间。Cloud.com不仅追踪当前网络传输时的每个VM。

6 VOLUME

追踪磁盘从创建到销毁的总时间。

7 TEMPLATE

追踪模板(包含从快照中创建的或是已经上传到云的)从创建到销毁的总时间。模板的大小也被返回。

8 ISO

追踪ISO在云中从上传到移除的总时间。ISO的大小也被返回。

9 SNAPSHOT

追踪快照从创建到销毁的总时间。

11 LOAD_BALANCER_POLICY

追踪负载均衡策略从创建到移除的总时间。Cloud.com不追踪VM是否已经分配到了的策略。

12 PORT_FORWARDING_RULE

追踪端口导向规则从创建到移除的时间。

13 NETWORK_OFFERING

从网络方案分配到VM到移除的时间。

14 VPN_USERS

计时从VPN用户创建时开始,移除时结束。

listUsageRecords指令的反应示例:

所有CloudStack API请求都是以HTTP GET/POST形式提交, 同时附上相关的命令和参数. 无论是HTTP或HTTPS, 一个请求都有以下内容组成:

<listusagerecordsresponse>
   <count>1816</count>
   <usagerecord>
      <account>user5</account>
      <accountid>10004</accountid>
      <domainid>1</domainid>
      <zoneid>1</zoneid>
      <description>i-3-4-WC running time (ServiceOffering: 1) (Template: 3)</description>
      <usage>2.95288 Hrs</usage>
      <usagetype>1</usagetype>
      <rawusage>2.95288</rawusage>
      <virtualmachineid>4</virtualmachineid>
      <name>i-3-4-WC</name>
      <offeringid>1</offeringid>
      <templateid>3</templateid>
      <usageid>245554</usageid>
      <type>XenServer</type>
      <startdate>2009-09-15T00:00:00-0700</startdate>
      <enddate>2009-09-18T16:14:26-0700</enddate>
   </usagerecord>

   … (1,815 more usage records)
</listusagerecordsresponse>

在使用记录中的数据

用量记录包含了开始日期和结束日期。这些日期定义了原始用量数字的统计时间阶段。如果每天统计被使用,开始日期是问题出现的的当天午夜,结束日期是问题(关于异常,参见本内容)出现的当天23:59:59。虚拟机可以被部署到当天正午,在次日6pm,然后在11pm重启。在用量统计的当天,将有7小时运行VM用量(用量类型1)和12个小时分配VM用量(用量类型2)。如果同一个VM完全运行到下一天,将会有24小时的运行VM用量(类型1)和已分配用量(类型2)。

注意:开始日期不是虚拟机启动时间,结束日期不是虚拟机停止时间。开始日期和结束日期在用量统计的给定范围内。

对于网络用量,开始日期和结束日期定义为一定数量的比特传输统计的时间范围。如果用户一天内下载10MB并上传1M,将会有两个记录,一个显示10MB接受和一个显示1MB发送。

当每日统计使用时,只有一种情况开始日期和结束日期不响应午夜到11:59:59。它仅发生在网络用量记录。当用量记录服务器有超过一天的未处理数据时,旧数据将被包含在统计区间内。用量记录中的开始日期将显示最早的事件的日期和时间。对于其它类型的用量,例如IP地址和VM,旧的未处理数据是不包含在每日统计中的。