热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

cloudstack基础知识

cloudstack基础知识http:cloudstack-administration-zh-cn.readthedocs.iozh_C

cloudstack基础知识

cloudstack中文站点

使用服务器日志

为了方便诊断系统,CloudStack 管理服务器在目录/var/log/cloud/management/下记录了所有网站、中间层和数据库的活动。CloudStack 会记录各种出错信息。我们推荐使用下述命令从管理服务器日志中寻找有问题的输出日志:
注解
当复制和粘贴命令时,请确保没有多余的换行符,因为一些文档查看器可能会在复制时加上换行符。
grep -i -E ‘exception|unable|fail|invalid|leak|warn|error‘ /var/log/cloudstack/management/management-server.log
CloudStack处理请求时会生成一个任务ID。如果您发现了日志中的某个错误,然后想调试该问题,您可以在管理服务器日志中grep这个任务ID。例如,假设您发现了以下的ERROR信息:

2010-10-04 13:49:32,595 ERROR [cloud.vm.UserVmManagerImpl] (Job-Executor-11:job-1076) Unable to find any host for [User|i-8-42-VM-untagged]
注意到任务ID是1076。你可以追踪返回事件的相近任务1076按照以下grep:

grep "job-1076)" management-server.log
CloudStack代理服务器在 /var/log/cloudstack/agent/记录了它的活动。

恢复丢失的虚拟路由器

症状
虚拟路由器是运行着的,但主机失去连接。虚拟路由器不再按期望工作。

原因
虚拟路由器丢失或宕机。

解决方案
如果您确定虚拟路由器宕机了,或不再正常工作,请销毁它。您必须再建一个新的,此时备份路由器应保持运行(假定在使用冗余路由器配置的情况下)。

强制停止虚拟路由器。请使用带参数forced=true的stopRouter API执行该步。
在销毁虚拟路由器之前,请确保备份路由器正常运行。否则用户的网络连接将中断。
使用destroyRouter API销毁该虚拟路由器。
使用restartNetwork API(参数cleanup=false)重建丢失的虚拟路由器。关于冗余虚拟路由器的配置,请参考创建新的网络方案。

关于更多的API语法信息,参见API参考http://cloudstack.apache.org/docs/api/

配置虚拟路由

你可以设置以下内容:

IP地址范围
支持的网络服务
由虚拟路由为网络服务提供的默认域名
网关IP地址
CloudStack多久从虚拟路由器获取一次网络使用数据。如果你想搜集虚拟路由器的流量计量数据,设置全局变量router.stats.interval。如果你不使用虚拟路由器收集网络使用数据,设置该值为0

在VM重启时重设VM的root盘

你可以指定你想要放弃的root磁盘和创建一个新的,并且无论何时在VM重启时都使用新的。每次启动时都是一个全新的VM并且桌面不需要保存它的状态,出于安全环境考虑这非常有用。VM的IP地址在这个操作期间不会改变。

要启用在VM重启时重置root磁盘:
当创建一个新的服务方案时,设置isVolatile这个参数为True。从这个服务方案创建的VMs一旦重启,它们的磁盘就会重置。请参阅 “创建新的计算方案”。

存储方案是可以通过修改数据库改变的

MariaDB [cloud]> select * from disk_offering\G;
*************************** 1. row ***************************
               id: 1
        domain_id: NULL
             name: Small Instance
             uuid: 46b92083-ff84-4825-ad07-0d2bcde4da4c
     display_text: Small Instance
        disk_size: 0
             type: Service
             tags: NULL
      recreatable: 0
use_local_storage: 0
      unique_name: Cloud.Com-Small Instance
       system_use: 0
       customized: 1
          removed: NULL
          created: 2018-03-08 12:22:39
         sort_key: 0
 display_offering: 1
  customized_iops: NULL
         min_iops: NULL
         max_iops: NULL
  bytes_read_rate: NULL
 bytes_write_rate: NULL
   iops_read_rate: NULL
  iops_write_rate: NULL
            state: Active
    hv_ss_reserve: NULL
       cache_mode: NULL
provisioning_type: thin

推荐使用cpu超配,不支持内存超配

使用超配可以实现cpu资源争抢功能

模板相当于虚拟机的重用配置

模板中,主机名管理

默认情况下CentOS在启动的时候配置主机名。但是,Ubuntu却没有此功能,对于Ubuntu,安装时使用下面步骤。

Ubuntu

The hostname of a Templated VM is set by a custom script in /etc/dhcp/dhclient-exit-hooks.d, this script first checks if the current hostname is localhost, if true, it will get the host-name, domain-name and fixed-ip from the DHCP lease file and use those values to set the hostname and append the /etc/hosts file for local hostname resolution. Once this script, or a user has changed the hostname from localhost, it will no longer adjust system files regardless of its new hostname. The script also recreates openssh-server keys, which should have been deleted before templating (shown below). Save the following script to /etc/dhcp/dhclient-exit-hooks.d/sethostname, and adjust the permissions.

#!/bin/sh
# dhclient change hostname script for Ubuntu
oldhostname=$(hostname -s)
if [ $oldhostname = ‘localhost‘ ]
then
    sleep 10 # Wait for configuration to be written to disk
    hostname=$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ‘ /host-name/ { host = $3 }  END { printf host } ‘ | sed     ‘s/[";]//g‘ )
    fqdn="$hostname.$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ‘ /domain-name/ { domain = $3 }  END { printf     domain } ‘ | sed ‘s/[";]//g‘)"
    ip=$(cat /var/lib/dhcp/dhclient.eth0.leases  |  awk ‘ /fixed-address/ { lease = $2 }  END { printf lease } ‘ | sed     ‘s/[";]//g‘)
    echo "cloudstack-hostname: Hostname _localhost_ detected. Changing hostname and adding hosts."
    printf " Hostname: $hostname\n FQDN: $fqdn\n IP: $ip"
    # Update /etc/hosts
    awk -v i="$ip" -v f="$fqdn" -v h="$hostname" "/^127/{x=1} !/^127/ && x { x=0; print i,f,h; } { print $0; }" /etc/hosts > /etc/hosts.dhcp.tmp
    mv /etc/hosts /etc/hosts.dhcp.bak
    mv /etc/hosts.dhcp.tmp /etc/hosts
    # Rename Host
    echo $hostname > /etc/hostname
    hostname -b -F /etc/hostname
    echo $hostname > /proc/sys/kernel/hostname
    # Recreate SSH2
    export DEBIAN_FROnTEND=noninteractive
    dpkg-reconfigure openssh-server
fi
### End of Script ###

chmod 774  /etc/dhcp/dhclient-exit-hooks.d/sethostname

警告
当你准备好做你的主模板的时候请运行下列步骤。如果主模板在这些步骤期间重启了,那么你要重新运行所有的步骤。在这个过程的最后,主模板应该关机并且将其创建为模板,然后再部署。

模板中,密码管理
Linux系统安装
使用一下步骤开始Linux系统的安装:

下载cloud-set-guest-password脚本文件:

https://download.cloudstack.org/templates/4.2/bindir/cloud-set-guest-password.in
Rename the file:

mv cloud-set-guest-password.in cloud-set-guest-password
拷贝本文件到 /etc/init.d 。

在某些linux发行版拷贝此文件到 /etc/rc.d/init.d。

执行以下命令使脚本可执行:

chmod +x /etc/init.d/cloud-set-guest-password
根据不同的Linux发行版,选择适当的步骤继续。

在Fedora,CentOS/RHEL和Debian上运行:

chkconfig --add cloud-set-guest-password

VM快照的限制

如果一个VM存储了一些快照,你就不能给他附加新卷或删除存在的卷。如果你更改了VM的卷,他将不能通过之前卷结构下所做快照来进行恢复。如果你想给这样一个VM附加卷,请先删除快照。
如果你更改了VM的服务方案,那么包含了数据卷和内存的VM快照就不能保留了,任何已有的此类型的VM快照都将被丢弃。
你不能同时对VM在做卷快照和VM快照。
你只能使用CloudStack来创建其管理的主机上的VM快照。你在hypervisor上直接创建的任何快照都不能被CloudStack识别。

配置VM快照

vmsnapshots.max

云中虚拟机能够保存快照的最大数。 (number of VMs) * vmsnapshots.max是云中VM快照的总共可能数量。如果任何一个VM的快照数达到了最大值,那么快照删除任务会把最老的快照删掉。

vmsnapshot.create.wait

在提示失败和发生错误之前快照工作为了成功的做快照而等待的秒数。

配置动态CPU和RAM伸缩

要配置此功能,请使用下面的全局配置变量:

enable.dynamic.scale.vm:设置为True以启用此功能。默认情况下,此功能是被关闭的。
scale.retry:伸缩操作的重试次数。默认为2。
如果动态伸缩CPU和RAM
要修改虚拟机的CPU和/或RAM,你必须更改VM的计算方案为你想要的。你可以按照上文中所述的同样的步骤 “Changing the Service Offering for a VM”,但是要跳过停止虚拟机的步骤。当然,你可能必须先创建一个新的计算方案。

当你提交一个动态伸缩的请求的时候,当前主机可能会扩展资源。如果主机没有足够的资源,VM会被在线迁移至同一群集中的其他主机。如果群集中没有能满足CPU和RAM条件的主机,那么扩展操作会失败。不用担心,VM会往常一样继续运行。

修改系统 VM 的默系统方案

你可认为的修改一个特殊系统 VM 的系统方案。此外,作为一个 CloudStack 管理员,你也可以改变系统 VM 使用的默认系统方案。

创建一个新的系统方案

获取更多信息,查看 创建一个新的系统服务方案

备份数据库:

mysqldump -u root -p cloud | bzip2 > cloud_backup.sql.bz2
打开一个 MySQL 提示:

mysql -u cloud -p cloud
在 cloud 数据库运行以下查询。

在磁盘 _offering 表,验证原始默认方案和你想默认使用的新方案。

记录新方案的 ID

select id,name,unique_name,type from disk_offering;
对于原始默认方案,设置 _name 唯一值为 NULL

# update disk_offering set unique_name = NULL where id = 10;
确保你使用正确的 ID 值

对于你想使用默认值的新方案,参照以下进行唯一 _name 值设置:

对于默认控制台代理虚拟机 ( CPVM )方案, 设置唯一 _name 为 ‘ Cloud.com-ConsoleProxy ‘。对于默认辅助存储虚拟机 ( SSVM ) 方案, 设置唯一 _name 为 ‘ Cloud.com-SecondaryStorage ‘。例如:

update disk_offering set unique_name = ‘Cloud.com-ConsoleProxy‘ where id = 16;
重启 CloudStack 管理器服务器。因为默认方案启动时被加载到内存,要求重启。

service cloudstack-management restart
销毁存在的 CPVM 或 SSVM 方案,并等待它们重建。 通过新的系统方案配置新的 CPVM 或 SSVM

cloudstack基础知识


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
author-avatar
互粉-结局_596
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有