<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">convirt2.5在虚拟机上安装笔记</span>
简介:ConVirt开源是业内领先的Xen/KVM开源管理产品, 使企业能够以集中的方式管理其虚拟环境。ConVirt开源支持企业通过一个交互式的Web用户界面进行虚拟机部署、性能诊断、负载均衡。ConVirt开源对用户完全开放、免费。
开源ConVirt的关键特性:
三层的标准架构
ConVirt开源采用了一个全新的三层标准架构,提供了强大的可伸缩性、安全性和系统集成能力,可以满足企业最苛刻的需求。
服务器池为基础的管理
为了充分利用虚拟化敏捷优势,您需要根据IT策略和资源限额统一管理服务器池。ConVirt开源通过划分服务器池(一个服务器池通常是一个集群)的方式对硬件资源进行重新组织, 支持用户以服务器池为单元进行虚拟机的监控、部署及配置,极大地简化服务器及虚拟机的管理。
模板为前提的配置
ConVirt开源基于模板配置服务器, 标准化您的虚拟环境。在短短几分钟内,通过分配CPU和内存,定义网络参数/指定共享存储/创建新的专属模板, 或干脆使用第三方虚拟设备,只需一个点击便可轻松创建到新的或现有的服务器。
监控和配置管理
ConVirt开源提供监控与配置管理功能,它使您可以快速地发现瓶颈、进行资源再分配并保证遵循企业规定。具体功能包括:24 x7监控虚拟机可用性和性能、追踪历史信息、收集详细的配置信息、确保基于模板的配置。
集中管理
ConVirt开源让您可以集中管理全部的虚拟机。
自动化
ConVirt开源支持您自动在线迁移与部署虚拟机,以满足您的业务目标。
存储监测与配置
ConVirt开源支持您关联共享存储NAS/SAN 到服务器池。关联成功后,该服务器池中新建的虚拟机将具有相同的存储配置。ConVirt开源自动统计服务器池中的存储使用信息,使您可以实时地监测资源消耗情况。
网络配置
ConVirt开源支持您自定义私有网络,自动化部署私有网络所需的配置,如DHCP配制。
安装:
1. 通过sphereclient 登录(192.168.100.30)服务端(root/tes.srv0)添加虚拟机
2. 右键文件>新建虚拟机,在配置中选择自定义创建好新的虚拟机环境
3. 启动虚拟机(例:test_jing),点击上方的光盘和扳手在一起的按钮,选择“连接到本地磁盘的iso镜像”,输入路径\\192.168.100.15\Tools\Linux,选择需要的系统-->打开
4. 按ctrl+alt+insert 组合键后进入系统的安装(例:centos 6.4 )
a) 选择 Install system with base video driver
b) Skip (不选择OK,测试时间太长)
c) 以下就遵照centos的安装步骤,在选择安装的使用环境时选择desktop,现在自定义,将TurboGears 、mysql的服务端和客户端选择上。--> 下一步安装系统
5. 配置网络使其能连接上外网(需要下载软件)
a) 192.168.100.6为该虚拟机添加ip(例:192.168.108.83)
b) 设置虚拟机为ip获取方式为dhcp
6. ConVirt 2.0 Setup for Fedora/RHEL/CentOS(重点开始)
a) 切换到root用户
b) 设置 ConVirt 的源
For rhel 6.x
#cd/etc/yum.repos.d; #wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo
c) 安装socat
#yum install socat
d) 要安装cms(ConVirt management server),最好切换到普通用户 convirt,切换到用户主目录
$cd ~;
e) 如果有代理服务器可以配置代理服务器,没有的话就跳过这一步exporthttp_proxy="http://company-proxy-server:80"
注意:代理端口根据实际情况而定
f) 从Convirt网站下载所需要的包
g) 在主目录中解压,你将会在主目录中看到包含创建TurboGerars2环境和Cms 的脚本的目录。$wget --no-cache http://www.convirture.com/downloads/convirt/2.5/convirt-install-2.5.tar.gz; $wget --no-cache http://www.convirture.com/downloads/convirt/2.5/convirt-2.5.tar.gz; $wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.5/convirture-tools-2.5.tar.gz
h) 以root用户或者sudo 安装依赖$tar -xzf convirt-install-2.5.tar.gz
$cd ~/convirt-install/install/cms/scripts/; $sudo ./install_dependencies
会提示输入convirt的密码,输入”convirt”后可能会提示用户不在sudo组中。将convirt添加到管理员组中。切到root用户
#chmod u+w /etc/sudoers 开启写权限 #vim /etc/sudoers
找到root位置 在下一行添加命令convirt ALL=(ALL) ALL
#chmod u-w /etc/sudoers 关闭写权限 $ sudo ./install_dependencies
Centos6下自动安装的是mysql,centos7下自动安装的是mariadb数据库,需要替换掉,看 ”Centos7 下安装 mysql ”文档
执行到后面会启动mysqld服务,需要用户密码,因为预先安装的mysql,没有设置root密码,直接按enter键。设置root密码,重复两次(例密码:root)。
然后系统询问是否删除匿名用户(Y/N),“Y“!
不允许root远程连接(Y/N),”Y”.
删除预置的test数据库(Y/N),”Y”.
马上重新载入特权表(Y/N),”Y”.
i) 设置 innodb 缓存和内存池
切换权限为root
修改/etc/my.cnf文件
#vim /etc/my.cnf
[mysqld]下添加下面两行innodb_buffer_pool_size=1G
innodb_additional_mem_pool_size=20M
j) 重启mysql服务
$sudo /etc/init.d/mysqld restart
7. 安装ConVirt ,以非root用户登录
a) 如果有需要,再次设置代理服务器。否则直接跳过
export http_proxy="http://company-proxy-server:80"
b) 默认的cms 会安装在主目录下的~/convirt ,可以通过修改配置文件更改安装的位置.
$cd ~/convirt-install/install/cms/scripts $vim install_config
将CONVIRT-BASE=~改为CONVIRT-BASE= ~/cms重新载入install_config配置文件
~$source ~/convirt-install/install/cms/scripts/install_config
c) 解压 cms包到刚才设置的目录创建$mkdir ~/cms目录
$tar -xzf convirt-2.5.tar.gz -C $CONVIRT_BASE
d) 设置 TurboGears (python的轻量级框架)~/convirt-install/install/cms/scripts/setup_tg2
e) 设置 ConVirt修改~/cms/convirt/src/convirt/web/convirt/development.ini中的sqlalchemy.url选项内容来映射mys数据库的用户名和密码。
$vim ~/cms/convirt/src/convirt/web/convirt/development.ini
“/sqlalchemy.url”命令查找其位置#sqlalchemy.url=postgres://username:password@hostname:port/databasename?charset=utf8
sqlalchemy.url=mysql://root:root@localhost:3306/convirt?charset=utf8
注:后台收集的cpu、内存等信息都会保存到数据库中,默认为365天,数据量非常大,造成后期mysql查询很慢,磁盘IO很高,如果机器性能不好,应该修改下面的参数,来减少数据保存的时间:
1. purge_hr_data = 60
2. purge_day_data = 30
3. purge_week_data = 30
4. purge_month_data =30
5. purge_raw_data = 30
6. task_results_purge_interval=30
7. TaskPaneLimit=7
8. task_panel_row_limit=200
9. notifications_row_limit=200
刚才设置的mysql密码为root。
然后执行$~/convirt-install/install/cms/scripts/setup_convirt
会要求输入passPhrase。
Enterpassphrase(empty for no passphrase):记住密语以后会用到(例:testOS)
Entersame passphrase again: 记住密语以后会用到(例:testOS)
在cms启动时也会用到,通过密语来连接cms和managed server
PS:
如果在这里出现 convirt-ctl setup error 同意思的字样,可能得删除数据库中的convirt数据库,然后重新执行
~/convirt-install/install/cms/scripts/setup_convirt
有时候mysql数据库是用root用户启动的,那么cms也必须用root用户启动
8. 使CMS设置生效
a) 启动cms服务
$~/cms/convirt/convirt-ctl start
将命令设置为:$alias cv_start=”/home/convirt/cms/convirt/convirt-ctlstart” $alias cv_stop=”/home/convirt/cms/convirt/convirt-ctlstop”
服务名称为:paster 代理服务:ssh-agent可以通过ps -e | grep paster 查看服务是否开启
b) 如果开启着防火墙,配置访问策略(root权限)
#iptables -I INPUT -p tcp --dport 8081 -j ACCEPT
c) 验证是否运行成功不成功就重启下cms服务和防火墙,返回a).b)
如果多次启动仍然不成功,切换到root用户再次重试
查看ip:#ifconfig eth0 得ip(192.168.108.83)
在另一台机器上浏览器中输入:http://192.168.108.83:8081
这样就是成功了。
d) 关闭服务
$~/cms/convirt/convirt-ctl stop
9. 准备好Managed Servers
a) 安装虚拟化平台KVM
安装另外的被管理的服务端,即manager server
PS:在选择系统安装环境时,默认选择是最小安装,通常是安装带有桌面版的,但在这里需要选择“Virtual Host”安装选项。安装完成没有图形界面,只有命令行。
下面红字是在同一台机器上练习kvm,失败
对于RHEL6和centos6.X版本的改动如下:
Centos中默认没有安装KVM。
安装#yum -y groupinstall 'Virtualization' 'Virtualization Client' 'VirtualizationPlatform' 'Virtualization Tools'
查看模块:lsmod | grep kvm
b) 修改网络配置:
The/etc/sysconfig/network-scripts/ifcfg-eth0 content looks as follows on defaultinstallation.
DEVICE="eth0"
HWADDR=specifc mac address
NM_CONTROLLED="yes"
ONBOOT="no"
ForDHCP, configure the interface as follows.
DEVICE="eth0"
HWADDR=specifc mac address
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="dhcp"
Restart the network after configuration.
/etc/init.d/network restart
ForStatic ip, configure it as follows
DEVICE="eth0"
HWADDR=specifc mac address
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR=ip address here.
NETMASK=netmask here.
Change the /etc/sysconfig/network to have the GATEWAY.
NETWORKING=yes
HOSTNAME=www1.nixcraft.in
GATEWAY=gateway address here.
Change /etc/resolve.conf
nameserver Specify ip address of dns server/usually same as gateway.
For example configuration, see Method #3
http://www.cyberciti.biz/faq/rhel-centos-fedoracore-linux-network-card-configuration/Restart the network after configuration.
/etc/init.d/network restart
配置文件中的mac地址必须要和ifconfig查看的对应接口的地址一样,否则会报错。测试能连接上网络之后操作下一步。
c) 检查系统cpu是否支持KVM虚拟化
在Linux环境下,在终端输入#egrep -c ‘(vmx|svm)’ /proc/cpuinfo
0 表示不支持,1 表示支持。
d) 加载kvm模块
#modprobe kvm
#modprobe kvm_amd
#modprobe kvm_intel
硬件不支持虚拟化操作
10. 运行 convirt-tool
a) cms 账户登录
下载工具包:convirture-tools-2.5.tar.gz 前面已经下载
b) 将convirture-tools-2.5.tar.gz复制到 managed server:
$scp convirture-tools-2.5.tar.gz root@managed-server:/root
c) $使用cms账户(convirt)远程登录到managed server 作为root用户。
$ssh root@ managed-server
root/123456
d) 解压:convirture-tools-2.5.tar.gz
tar -xzf convirture-tools-2.5.tar.gz
e) 切换到convirt-tool所在目录,使用该命令检查或配置Managed Server,登录身份必须为root
#cd /root/convirture-tools/install/managed_server/script
查看帮助信息
#./convirt-tool -h
使平台生效:
#./convirt-tool --detect_only setup (detect 前有两个”-”)
原因是该软件现在正常情况是不支持Centos6之上版本的。网上也没有这方面的资料,偷个懒,破坏下规则,修改脚本文件
--> 结果就是:web上登录进去时显示”internal server error”.
--> 所以不建议这样做
修改如下图:
修改/root/convirture-tools/install/managed_server/scripts/convirt-tool
添加上两个条件
添加依赖包
#./convirt-tool install_dependencies
下一步需要网络配置为一个接口桥接,否则远程访问登录就会断掉。
配置文件如下:
#cd/etc/sysconfig/network-script/
#vim ifcfg-em1
#ifcfg-br1
修改完后如果不能联网,重启系统试试
启动工具
#~/convirture-tools/install/managed_server/script/convirt-tool setup
重启系统
如果这时候网络断掉了,基本上就直接在服务器面前操作了,参照上面的配置图将网桥配置上。
通过测试ssh能够远程访问后就成功了。
11. 使用ConVirt管理服务器
a) 启动cms管理程序
/home/convirt/cms/convirt/convirt-ctlstart
b) 终端通过浏览器访问:http://ip-address:8081
登录:(默认为admin/admin)
c) 选择想要添加新的被管理服务端的服务池,比如:QA Pool
d) 右击从菜单上选择”Add Server”
e) 选择虚拟化的平台
f) 提供打算将要管理的被管理服务端(managed server)的IP地址或者主机名,也可以提供ssh证书或者在高级选项中点击”Use Keys”(需要配置ssh免密码登录)
g) 点击OK添加。
新添加的managed server 将会显示在服务池中,现在就可以创建和管理这台服务器上的虚拟机了。
详细参考文档地址:http://www.convirture.com/wiki/index.php?title=Convirt2_doc
12. 为了更好的操作,现在配置VNC
a) 为了在浏览器上显示图形界面的对虚拟机的控制,还需要做一些额外的步骤。
前提:浏览器安装了java插件,需要运行VNC applet
Convirt允许执行某个主机作为VNC守护,默认为CMS机器。
登录CMS主机并且开启CMS( ./convirt-ctl start)。
作为CMS设置的一部分,~/.ssh/cms_id_rsa and cms_id_rsa.pub files已经产生。
现在,从cms主机,尝试登录managed server 使用 设定的key,输入在安装cms时使用的密语(passphrase)。
eval ‘ssh-agent –s’;
ssh-add ~/.ssh/cms_id_rsa;
如果出现Could not open a connection to your authentication agent
执行 ssh-agent bash 后再次执行ssh-add ~/.ssh/cms_id_rsa;
b) 现在就可以登录任一台那些key已经设置好的managed server
ssh root@managed-server
ps:大多数情况下,当你输入凭证,同时在添加managed server需要检查“use Keys”时,convirt会自动给managed server 添加一个cms_id_rsa 到审定的主机。
如果因为某些原因,这样行不通,就需要复制cms_id_rsa到每个managed server 并且再把这个文件克隆一份并命名为: authorized_keys
scp ~/.ssh/cms_id_rsa.pub root@managed-server:/root/.ssh/vnc_proxy_id_rsa.pub
ssh root@managed-server
cat ~/.ssh/vnc_proxy_id_rsa.pub >> ~/.ssh/authorized_keys
c) 更改cms上的防火墙,使其允许端口(6900-6999)通过,这些端口用作convirt允许VNC applet 获取到虚拟机的控制权,以root身份登录cms,并执行命令
iptables -I INPUT -m state --state NEW -p tcp --dport 6900:6999 -j ACCEPT
13. VNC的详细配置用于convirt
术语:
CMSserver : 运行CMS 服务的物理主机
ManagedServer:运行虚拟平台并运行一个或多个虚拟机的服务。
VNCProxy Host:默认设置在CMS server上。
Vm-vnc-port:虚拟机需要使用的VNC端口
a) 详细配置:
浏览器上VNC的连接路径:
Browser/Applet---tcp/ip--> CMS Server:socat listen:6900-6999 --ssh--> ManagedServer:socat --> Managed Server:vm-vnc-port
(1)为了获取可视控制的请求,cms首先启动socat来监听6900:6999间可用端口
(2)浏览器连接的端口由CMS服务指定
(3)Socat接收Applet的连接请求,执行ssh连接到managed Server 使用sshkeys,并启动另一个socat进程。
(4)Managed server上的scoatt,为了连接vm-vnc-port会使用127.0.0.1:vm-vnc-port。
(5)下面是设置使用的命令
socat-d -d -d -d TCP-LISTEN:6900 EXEC:'/usr/bin/ssh root@srv-001 socat -TCP\:127.0.0.1\:5902' > /tmp/6900_5902_qKhAFc.log 2>&1 &
6900是从cms上选择的端口,srv-001是被管理的服务器,5902是vm-vnc-port
现在可以再cms上尝试上一命令,并开启一个vnc客户端,标记为vncviewer cms_server :6900
解决cms免密码无法登录到managed server 中
获取cms id
$ssh-keygen-t rsa -f ~/.ssh/cms_id_rsa $chmod0600 ~/.ssh/cms_id_rsa*
开启 ssh 代理和载入 key$eval `ssh-agent -s` $ssh-add~/.ssh/cms_id_rsa
登录 managed server$ ssh root@managed-server
仍然无法免密码登录的解决方法$scp ~/.ssh/cms_id_rsa.pub root@managed-server: /root/.ssh/ vnc_proxy_id_rsa.pub $ssh root@managed-server (You would be prompted for password.) $cat ~/.ssh/vnc_proxy_id_rsa.pub >>~/.ssh/authorized_keys $iptables -I INPUT -m state --state NEW -ptcp --dport 6900:6999 -j ACCEPT
再不行就关闭防火墙,重启电脑如果出现HostKeys object has no attribute has_key
#vim /home/convirt/cms/convirt/src/convirt/core/utils/phelper.py
修改内容:将has_key 替换为 get