Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9256347
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: 云计算

2014-06-13 18:28:40

cloudstack常见问题解决

发表于:2013年10月23日  11:44转发0


?   数据库备份与还原

备份数据库时:

% mysqldump old_db >db.sql            #转储db数据库数据

1、查看数据库database

#mysql -u root -p123456

mysql>show databases;

 

可以备份上述数据库。

2、备份数据库

#mysqldump -u root -p123456 cloud > cloud.sql

如果报错:

 

则输入:

# mysqldump --single-transaction -u root -p123456 cloud > cloud.sql

即可成功备份


% mysqladmin create new_db            #新建一个空的数据库
% mysql new_db < db.sql               #把db数据库的数据加载到新的数据库中
% mysqladmin drop old_db              #删除旧的数据库

备份完成后把*.sql上传到svn:云平台产品/7.9基础服务平台/7.9.7运维/开发云环境数据库备份

?   登录web界面后,如果system vms 的状态总是starting不能running可以尝试启动虚拟机系统服务。

#service cgconfig restart  //cgconfig 是安全分组(Security Groups)的相关服务

#service libvirtd restart    //libvirtd为虚拟机服务

 

?   登录web界面后上传iso文件或系统模板时,上传状态会一直出现”connection refused”

进入管理界面,在上传模版之前,需要进行一项配置:

点击全局配置(Global Setting),查找:secstorage【非常重要】

 点击操作下面的编辑选项,将这个参数的值(value)设置为192.168.2.0/24, 表示允许跟192.168.2.0/24网段进行存储通讯(这个系统有时候会自行汉化,不过翻译得有点雷人,且不管),这一步必做,否则在下面上传模版的时候,查看上传状态会一直出现”connection refused”.

 

?   登录web界面后,不能创建虚拟机

查看管理日志 vi /var/log/cloud/management/management-server.log 找到错误日志记录,

如果没有错误日志记录,一般就是超出程序内设定threshold阈值,需要添加资源或提高threshold阈值(0~1),在全局配置“global settings”中查找 "threshold" 修改。

 

?   登录系统虚拟机 (System vm)方法

对建立在XenServer或KVM上的虚拟机,可使用下面的命令通过ssh连接访问:

#ssh -i /root/.ssh/id_rsa.cloud -p 3922 root@169.254.x.x

其中各项参数表示如下:

/root/.ssh/id_rsa.cloud – SSH登录所使用的公共密钥
3922 – SSH登录所使用的端口
169.254.x.x – 系统虚拟机的本地IP

 

 

?   cloud-management服务不能启动

经常遇到这个问题的两种原因是:

1. mysql db服务没有运行

2. CloudStack管理服务启动时做integritycheck失败, DB里记录的CloudStack版本与运行的不一致.

 

尝试初始化cloud-management

shell>cloud-setup-management

 

?   如果primary和secondary放在系统硬盘,容易导致系统盘空间不足而影响系统运行。

可以通过如下方法修改放到其他硬盘。

1)、service cloud-management stop

2)、修改primary 文件夹存放硬盘:先mv primary 下所有文件到

另外的目录,然后mount newdisk primary,然后再将文件mv 到

primary。这样就不会占用系统盘的硬盘。(secondary 目录同)

3)、service cloud-management start

 

?   如何删除主存储或二级存储

先进入维护模式,才能删除主存储和二级存储,不能直接删除

 

?   CloudStack环境如何推到重来

在研发基于CloudStack之上的应用时,经常遇到要重新安装CloudStack,如果全部重装的话,太慢,所以找到了一个简单办法,只需要删除存储SR并重新部署CloudStack数据库即可。

1)、停止CloudStack服务。service cloud-management stop.

2)、到mysql里查询select uuid from storage_pool, 重新安装或者是删除对应的相关SR。没有其他uuid可以直接删除/mnt/e/secondary和/mnt/e/primary目录。

3)、杀掉node上的vmss,killall -9 qemu-kvm。

4)、清除node上的nfs映射:umount /mnt/fa3808d4-0bed-3cab-bfe3-199b67b8034a/ -l;

                          rm /mnt/* -fr;

5)、停止各个node上的cloudstack进程,卸载manager。

6)、在各个node上删除/etc/libvirt/storage/*和/etc/libvirt/qemu/*。重启service libvirtd restart

7)、删除CloudStack数据库,drop database cloud; drop database cloud_usage;

或者卸载数据库 mysql:

[root@management CloudStack-3.0.5-1-rhel6.2]# yum  remove  mysql-server

[root@management lib]# rm -rf  /var/lib/mysql/      

8)安装manager。./install   à   M

9)安装数据库。  ./install   à   D

#mysql  -uroot 

mysql > set PASSWORD= PASSWORD('123456');  

10)、重新部署CS数据库。cloud-setup-databases cloud:123456@localhost --deploy-as=root:123456 -e  file  -m 123456  -k 123456

11)、安装系统模版(不同的hypervisor请安装不同的系统模版)

KVM:/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/e/secondary -u -h kvm  -F

 

XEN:/usr/lib64/cloud/agent/scripts/storage/secondary/cloud-install-sys-tmplt -m   /opt  -f  /root/acton-systemvm-02062012.vhd.bz2 -h  xenserver  -F

 

12)、启动service cloud-management start

?   怎么增加新管理节点

安装完成第一个管理服务器

完成第二步骤的系统配置,配置主机名、NTP、IP、SELinux.

安装管理服务器。

#./install.sh 选择‘M’

启用NFS

 

第二管理节点的nfs存储应该怎么配置

#service rpcbind restart

#service nfs restart

#chkconfig nfs on

#chkconfig rpcbind on

连接数据库
# cloud-setup-databases cloud:password@10.0.96.2

直接连接,不需要创建。数据库用户名与IP地下,同上节的数据库安装地址。

 

启动管理服务器

#cloud-setup-management

 

?   agent服务启动异常 (kvm平台)

启动cloudstack agent #service cloud-agent start

启动服务报错日志:2012-12-28 13:19:05,353 ERROR [cloud.agent.AgentShell] (main:null) Unable to start agent: NO HVM support on this machine, please make sure: 1. VT/SVM is supported by your CPU, or is enabled in BIOS. 2. kvm modules are loaded (kvm, kvm_amd|kvm_intel)

 

解决:不支持虚拟化,或者是BIOS中没有开启

 

?   SSVM重装后启动不起来

要在node结点上umount secondary的映射,然后删除对应uuid(select uuid from storage_pool;)的文件夹,删除数据库中数据。重建数据库。SELINUX是否关闭。Ssvm有没有安装。Libvirt有没有配置。

?   Vm-console启动不起来,node日志报Unable to read from monitor: Connection reset by peer

这个错误主要是虚拟机的域在这个node已经存在,而且有冲突的内容。解决方法:

# virsh start Monitor

错误:开始域 Monitor 失败

错误:Unable to read from monitor: Connection reset by peer

 

# virsh  managedsave-remove Monitor

Removed managedsave image for domain Monitor

# virsh start Monitor

域 Monitor 开始

这里的Monitor是我们的v-2-VM,这个名字在libvirt中叫做domain。

?   添加host失败。

日志报:

libvir: Storage error : Storage pool not found: no pool with matching uuid

2012-10-15 03:52:00,287{GMT} WARN  [utils.nio.Task] (Agent-Handler-1:) Caught the following exception but pushing on

java.lang.NullPointerException

        at com.cloud.agent.storage.LibvirtStorageAdaptor.createStoragePool(LibvirtStorageAdaptor.java:504)

        at com.cloud.agent.storage.KVMStoragePoolManager.createStoragePool(KVMStoragePoolManager.java:57)

        at com.cloud.agent.resource.computing.LibvirtComputingResource.initialize(LibvirtComputingResource.java:2978)

        at com.cloud.agent.Agent.sendStartup(Agent.java:316)

        at com.cloud.agent.Agent$ServerHandler.doTask(Agent.java:846)

        at com.cloud.utils.nio.Task.run(Task.java:79)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

        at java.lang.Thread.run(Thread.java:679)

This had me puzzled for a bit, as I had not needed to use virsh(1) much before this adventure, It seems the old storage pools were still present which was preventing their being re-created. I believe the error was akin to:

[clayb@cloud_machine ~]$ sudo virsh pool-create /tmp/test_pool.xml

error: Failed to create pool from /tmp/test_pool.xml

error: operation failed: Storage source conflict with pool: '031d9475-063d-30b5-b910-7ee710ff81b0'

Eventually, I did the following to good success:

Checked if virsh reported any storage pools in existence (since this host was not successfully added, it should not have had any) — virsh pool-list

Ensured all pools were destroyed with virsh pool-remove

Cleaned-up any residual files in /etc/libvirt/storage/

Cleaned-up my residual files in my machine’s local storage volume /var/lib/libvirt/images

添加主机失败,通常因为主机本身已经存在一部镜像,而和manager的信息不匹配所以主机加不进去。把原来主机上的镜像和镜像配置删除即可。

 

?  关于cloudstack中机器满了后的处理

首先登录到 192.168.XX.XX上,输入命令
#df  -h
查看该路径是否已满,进入该目录,输入命令
#du  -h  --max-depth
进入占用最大的目录:./volumes(大多数都是这个文件)
该目录下的.qcows目录可以删。

 

?  CPU资源满无法建立主机

(查看日志找出原因,仅提供方法)先ssh连上Manager 10.19.251.252,进到目录/var/log/cloud/management/下

#cd  /var/log/cloud/management/ 找到服务器的日志文件,打开

#vi  management-server.log

在日志中搜索自己发出请求的Ip,例如:/10.22.11.175,找到后,按照格式

         ===START===  10.22.11.175 -- GET  command=listCapabilities

搜索建机器的地方,===START===  10.22.11.175 -- GET  command=deploy 就可以找到自己建机器的地方了,找到了原因所在:

 


cloudstack常见问题解决


这条语句说明:CPU的HZ数不够了。其中0.85对应cloudstack中的全局变量

 


cloudstack常见问题解决


当cloudstack某个Zone下CPU达到或者接近85%的时候,该zone下就建不了机器,如图:

 


cloudstack常见问题解决


解决方案:

(1)将上述全局变量该大,但注意最好不要太大,建议改大为0.95,超过1是万万不行的;

(2)在改zone下添加host机器即可。

?  新建网络不能建立主机

解决:

         遇到此类问题,主要是资源的问题,主要要往两个方向想:一、该区域下面的vlan是否还存在没有使用的;二、该区域下面的public  Ip是否还有;三、该区域下面的管理Ip是否还存在;四、这个就要涉及到第一个问题,要去看日志,查看具体是哪里的资源不够

经过查找:该区域下出现的问题是第一个,如图:

 


cloudstack常见问题解决
错误一的原因:当建完网络之后,看似成功了,但是在该网络下面建机器就会失败,建机器的时候,该网络会自动获取一个vlan号,但是该区域已经没有了,故出现错误


错误一的解决方案:

添加vlan号,过程如下图所示:


cloudstack常见问题解决
cloudstack常见问题解决
cloudstack常见问题解决


选择来宾配置:


cloudstack常见问题解决
cloudstack常见问题解决
修改内容即可。


错误二的原因:

         申请网络之后,网络需要一个源NAT  IP,这个Ip就是从public Ip中拿的,如果没有Public  IP,网络就不会被成功的建成功

错误二的解决方案:

         添加Public Ip

错误三的原因:

         与错误二的原因是类似的,网络建立成功之后,建机器,网络会自动启一个虚拟路由器,虚拟路就需要一个管理段的Ip

错误三解决方案:

         添加管理段IP,通常情况下,使用管理IP的是:系统VM和虚拟路由器,这些VM都是在某种特定情况下自动起来的,所以这些IP必须定时去查看是否够(这些都可以从界面上直观的看出来)

阅读(3692) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~