做了N久的CloudStack二次开发,最近越来越多的人开始使用CloudStack。

通常会遇到添加模板和iso不成功的问题。

表现为注册了template/iso之后,"已就绪" "状态" "大小" 等选项都为空,或者提示no route to host等现象

CloudStack是通过SSVM进行template/iso上传和下载,所以基本可以判定为SSVM网络有问题

这样就可以做以下检查:

1、内建模板不存在("已就绪" "状态" "大小" 等选项都为空多发生在这种情况):

CS默认有2种模板,系统虚拟机模板[SystemVM Template (XenServer)]和内建模板[CentOS 5.6(64-bit) no GUI (XenServer)]

在ssvm正常启动之后,会连接management-server 的8250端口,成功连接后,UI上就可以看到以上两个模板。

如果此时没有内建模板的信息,则说明ssvm没能正常连接management-server。

这种情况多会发生在全局配置错误。相关项为:management.network.cidr,host,secstorage.allowed.internal.cidr

<1> 如果management-server存在多个网卡,默认cloudstack会选择route中为default的那个网卡设置management.network.cidr和host,如果该项并非用来连接host和ssvm private ip的网络,则需要修改为正确网络,ssvm启动后,会根据这两个值来配置路由表,如果错误则无法连接到management-server。

解决方案:这种情况需要修改全局配置后,重启management-server,然后破坏掉ssvm,等待系统重建

<2>secstorage.allowed.internal.cidr 设置为0.0.0.0/0

经常会发生在网络情况比较单一的环境,比如基本模式或者高级模式但是public ip和private ip在同一网段中,会导致SSVM路由表错误,正常SSVM路由default 网卡为eth2,即public,此时会变为eth1,即private,由于其防火墙限制,导致无法上传或下载模板

解决方案:这种情况需要修改全局配置,将secstorage.allowed.internal.cidr设为正确值,如果有多个cidr可以用逗号分隔,重启management-server,然后重启ssvm

2、内建模板已存在

内建模板已经显示在UI上,说明SSVM已经成功连接到management-server。

至于内建模板,我这里下载基本上不会成功,原因大体就是因为网速太慢,半天下一点,断了重新下。可以尝试在db中修改url从本地下载。

<1> no route to host

这种情况多发生在SSVM的public和private在同一网段的情况下,很多人的测试环境受实际因素影响,并不能隔离public和private,而是都使用同一网段。并且上传template/iso所用的http server也在同一网段。

CS默认会通过public ip进行下载,如果http server和 private ip处于同一网段的时候,则会尝试使用private ip进行下载。由于很多新人刚刚使用CS的时候,并不知道还有secstorage.allowed.internal.cidr 这样的全局配置,所以并未进行相关设置,这样就会导致private ip被防火墙阻拦而无法进行下载

解决方案:将private ip所在网段的cidr写入secstorage.allowed.internal.cidr ,并重启ms,重启SSVM

<2> 有人发现有此选项,但为求省事,设置secstorage.allowed.internal.cidr 为0.0.0.0/0

此项设置并不符合CS的设计,不过大部分环境中可以正常使用,所以也少有人会注意到全局设置中的不能设置为0.0.0.0的提示。

如1.2中所描述的环境,则很有可能会出现路由表错误而无法正常使用的问题。

<3> 下载一半后中断,无法继续下载。

此种情况见过多次,但是自己的环境中并未重现。

跟踪代码发现下载流的size不能满足默认大小,可以试着尝试修改SSVM的service_offering,增加SSVM的内存。这个仅为猜测,有待将来重现后再进行跟踪调试

CloudStack无法添加模板和iso的更多相关文章

  1. 微信服务号模板消息接口新增"设置行业"和"添加模板"及细节优化

    微信服务号模板消息可以向用户发送重要的服务通知,如信用卡刷卡通知,商品购买成功通知等.昨日,微信团队发布公告称模板消息新增“设置行业”和“添加模板”接口及细节优化,详细变动如下 模板消息[业务通知]自 ...

  2. sublime插件FileHeader使用,自动的添加模板

    sublime插件FileHeader能够自动的监测创建新文件动作,自动的添加模板 下载地址:https://github.com/shiyanhui/FileHeader FileHeader能够自 ...

  3. 如何在ChemDraw 15.1 Pro中添加模板

    ChemDraw化学绘图工具为了方便用户的使用,特地开发了众多的各种类型模板.用户在绘制一些简单或复杂的化学结构式时,可以直接从ChemDraw模板库里直接调用使用,虽然ChemDraw模板非常的丰富 ...

  4. Zabbix 4.0 API 实践,主机/主机群组 批量添加模板和删除模板

    场景 我们日常在管理Zabbix 的时候,经常会需要批量添加模板和批量删除模板,Zabbix页面是提供的批量链接的功能,但是它链接的也只是当前页的主机,我们想扩展这个功能,在链接的时候,可以批量链接整 ...

  5. PHPCMS V9添加模板自定义全局变量

    在我们使用PHPCMS V9的制作网站模板的时候,使用全局模板变量能轻松调用,使用起来非常方便,而且可以统一修改,方便维护. 下面就来讲一下在PHPCMS V9中如何添加自定义全局变量. 修改网站sy ...

  6. [ecmall]Ecmall 后台添加模板编辑区

    例如,想把品牌/index.php?app=brand页面做成可编辑的. 首先,找到后台admin\includes\menu.inc.php第61行 'template' => array( ...

  7. 3.2. 添加模板版本(Core Data 应用程序实践指南)

    为了不像3.1那样崩溃,修改模型之前先创建新的模型版本.添加之后,会生成一个新的xcdatamodel文件,并且跟原来的内容完全一样,这有意思了,但是不要删除原来旧版的模型.旧的模型有助于把原来持久化 ...

  8. MyEclipse添加模板注释

    只有两个步骤: 1.设置模板 Windows—Preference—Java—Code Style—Code Templates 图中, Configure generated code and co ...

  9. idea中添加模板。

    1:点击File>settings>live template 2: 在 Editor界面下,点击右上角 + 好, 如果想添加一个新类型的语言,点击templateGroup  输入组名. ...

随机推荐

  1. 解决Ubuntu 16.04下提示boot分区空间不足的办法

    原文地址: http://www.jb51.net/article/106976.htm https://www.linuxidc.com/Linux/2015-09/123227.htm 因为lin ...

  2. Django-高级特性

    分页 1.固定显示分页数目 2.点击相应分页取出对应数据 具体实现: from django.utils.safestring import mark_safe class Pagination(ob ...

  3. 验证码60s倒计时前端效果

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. android 消息机制,handler机制,messageQueue,looper

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha handler  就是 处理器 .  用来处理消息, 发送消息. handler   就 ...

  5. 【数论】Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!] C. Finite or not?

    题意:给你一个分数,问你在b进制下能否化成有限小数. 条件:p/q假如已是既约分数,那么如果q的质因数分解集合是b的子集,就可以化成有限小数,否则不能. 参见代码:反复从q中除去b和q的公因子部分,并 ...

  6. bzoj 3997 Dilworth定理

    看到这道题感觉像是网络流,如果没有权值,可以用DAG最小路径覆盖,有权值,感觉可以求一个上下界最小可行流,但内存卡了....时间估计也悬. 正解要用到一些数学知识,这里梳理一下: 定义: 偏序关系: ...

  7. MySQL从库com_insert无变化的原因

    大家都知道com_insert等com_xxx参数可以用来监控数据库实例的访问量,也就是我们常说的QPS.并且基于MySQL的复制原理,所有主库执行的操作都会在从库重放一遍保证数据一致,那么主库的co ...

  8. python+Django+apache的配置

    下载安装xampp套件 下载mod_python-3.3.1.win32-py2.5-Apache2.2.exe 下载python-2.5.4.msi 下载Django 下载MySQL-python- ...

  9. HDU 2089 不要62(数位DP&#183;记忆化搜索)

    题意  中文 最基础的数位DP  这题好像也能够直接暴力来做   令dp[i][j]表示以 j 开头的 i 位数有多少个满足条件 那么非常easy有状态转移方程 dp[i][j] = sum{ dp[ ...

  10. Node.js是一个事件驱动I/O服务端JavaScript环境

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎.目的是为了提供撰写可扩充网络程序,如Web服务.第一个版本由Ryan Dahl于2009年发布,后来,Jo ...