做了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. Android 中的广播(Broadcast)

    Android 广播(broadcast) 饮水思源 本文章内容学习和总结自 郭霖大神:<Android第一行代码> Overview 就像我们的学校里的喇叭一样,是用来通知的.而Andr ...

  2. hdu1312 Red and Black

    I - Red and Black Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  3. bzoj5102 [POI2018]Prawnicy 线段树

    $bzoj$跑的太慢了...... 我们考虑用线段树来解决这个问题 考虑扫描线 当扫到左端点$i$时,我们把线段$i$加入线段树 同时,对于每个左端点$i$,我们在线段树上二分出最远的$r$满足$r$ ...

  4. java 反编译 android 反编译

    1. jad http://varaneckas.com/jad/jad158e.linux.intel.zip  下载jad, 给jad运行权限 ,运行 chmod a+x ./jad ./jad ...

  5. PHP代码为什么不能直接保存HTML文件——>PHP生成静态页面教程

    1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件 ...

  6. 【洛谷】2144:[FJOI2007]轮状病毒【高精度】【数学推导??(找规律)】

    P2144 [FJOI2007]轮状病毒 题目描述 轮状病毒有很多变种.许多轮状病毒都是由一个轮状基产生.一个n轮状基由圆环上n个不同的基原子和圆心的一个核原子构成.2个原子之间的边表示这2个原子之间 ...

  7. Remove-Invalid-Parentheses-题解

    题意 Remove the minimum number of invalid parentheses in order to make the input string valid. Return ...

  8. CentOS7.0安装Nginx-1.12.0

    一.安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++.gcc.openssl-devel.pcre-devel和zlib ...

  9. Codecademy python

    #1 print "Welcome to Python!" #2 my_variable = #3 # Set the variables to the values listed ...

  10. Codeforces Round #287 (Div. 2) A. Amr and Music 水题

    A. Amr and Music time limit per test 1 second memory limit per test 256 megabytes input standard inp ...