? 数据库备份与还原
备份数据库时:
% 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 就可以找到自己建机器的地方了,找到了原因所在:
这条语句说明:CPU的HZ数不够了。其中0.85对应cloudstack中的全局变量
当cloudstack某个Zone下CPU达到或者接近85%的时候,该zone下就建不了机器,如图:
解决方案:
(1)将上述全局变量该大,但注意最好不要太大,建议改大为0.95,超过1是万万不行的;
(2)在改zone下添加host机器即可。
? 新建网络不能建立主机
解决:
遇到此类问题,主要是资源的问题,主要要往两个方向想:一、该区域下面的vlan是否还存在没有使用的;二、该区域下面的public Ip是否还有;三、该区域下面的管理Ip是否还存在;四、这个就要涉及到第一个问题,要去看日志,查看具体是哪里的资源不够
经过查找:该区域下出现的问题是第一个,如图:
错误一的原因:当建完网络之后,看似成功了,但是在该网络下面建机器就会失败,建机器的时候,该网络会自动获取一个vlan号,但是该区域已经没有了,故出现错误
错误一的解决方案:
添加vlan号,过程如下图所示:
选择来宾配置:
修改内容即可。
错误二的原因:
申请网络之后,网络需要一个源NAT IP,这个Ip就是从public Ip中拿的,如果没有Public IP,网络就不会被成功的建成功
错误二的解决方案:
添加Public Ip
错误三的原因:
与错误二的原因是类似的,网络建立成功之后,建机器,网络会自动启一个虚拟路由器,虚拟路就需要一个管理段的Ip
错误三解决方案:
添加管理段IP,通常情况下,使用管理IP的是:系统VM和虚拟路由器,这些VM都是在某种特定情况下自动起来的,所以这些IP必须定时去查看是否够(这些都可以从界面上直观的看出来)