参考出处:http://ovirt-china.org/mediawiki/index.php/%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2Ceph_Calamari
alamari是inktank公司的一款ceph文件系统的监控管理工具。最近才开始开源,国内当前使用较少,另一款类似的工具是inkscope,没有研究过。
https://github.com/ceph/calamari1. 安装版本
ubuntu 12.04 precise 64位
ceph version 0.80.5
calamari应该是1.2版本(1.2版本和之前的版本在架构流程上有较大区别,安装过程也有差别)
2. calamari架构
3. 编译calamari安装包
git库上calamari不久前才开源,并且没有现成安装包,需要自己下载源代码编译,编译过程比较麻烦,主要在于过程中需要下载很多组建安装包,容易出现超时下载失败,主要解决办法是查找到对应版本的组件手动下载下来再安装,或者编译重试
git库上给出的编译环境是用vgrant工具来通过viirtualbox动态创建两个虚拟机环境进行编译(注意vagrant所在环境必须是物理机而不能是虚拟机,否则vagrant up起不来),其实不使用vagrant工具来虚拟环境编译应该也可以,没有试过。
当前Inktank Ceph Enterprise v1.2貌似直接有安装包,没试过
(1)编译calamari server
下载代码:
#git clone git@github.com:ceph/calamari.git
git clone git@github.com:ceph/Diamond.git --branch=calamari
如果安装了vagrant,则进入以下源代码的路径:
#cd calamari/vagrant/precise-build
#vagrant up
进入vagrant up启动的虚拟机环境:
#vagrant ssh
在虚拟机中的/git/目录下可以看到宿主机的calamari源代码目录:
#cd /git/calamari
#make dpkg
(2) 编译calamari client
下载代码:
#git clone git@github.com:ceph/calamari-clients.git
#cd calamari-clients/vagrant/precise-build
#vagrant up
在虚拟机中的/git/目录下可以看到宿主机的calamari源代码目录:
#cd /git/calamari-client/
#make dpkg
如果编译失败,可以通过
#vagrant ssh
#sudo salt-call state.highstate
都编译成功会在宿主机的源代码同级目录下有四个安装包
$ ls
Diamond # git clone of diamond
calamari # git clone of calamari (server)
calamari-clients # git clone of calamari-clients
calamari-clients-build-output.tar.gz # unpackaged build of calamari-clients
calamari-clients_1.2-38-gb571421_all.deb # package for installation on calamari server
calamari-server_1.2-129-g16a869a_all.deb # package for installation on calamari server
diamond_3.4.67_all.deb # diamond package for use on ceph servers
4. calamari web server端的安装和配置
需要安装salt这个配置管理工具:sudo add-apt-repository ppa:saltstack/salt
sudo apt-get update
sudo apt-get install salt-master
sudo apt-get install salt-minion
sudo apt-get install salt-syndic
安装calamari依赖的包:
sudo apt-get update && sudo apt-get install -y apache2 libapache2-mod-wsgi libcairo2 supervisor python-cairo libpq5 postgresql
sudo ln -s ../mods-available/version.load version.load #这个不执行会导致apache起不来
sudo /etc/init.d/apache2 reload
安装calamari server和client:
sudo dpkg -i calamari-server*.deb calamari-clients*.deb
sudo calamari-ctl initialize
apt-get install python-pip
sudo pip install django-tagging
安装过程失败可以在/var/log/calamari中查看相应日志,此时可以通过访问本机ip看看能够看到管理页面,web server没起来可以查看/var/log/apache2/中的错误日志
如果安装成功在最后会让用户手动输入web登录的用户名和密码。
5. ceph cluster 连接calamari server的配置
假定现在ceph的集群上已经部署ceph成功了,并且运行正常在每个ceph节点上需要安装salt-minion,可参照4
创建/etc/salt/minion.d/calamari.conf,内容为:
master: {fqdn}
fqdn为calamri server的全域名(由于我安装的都是为虚拟机,web server的host是tc3-VirtualBox,则在ceph的集群节点中写tc3-VirtualBox,同时在/etc/hosts中 添加一行web server 的ip和域名的 映射192.168.8.121 tc3-VirtualBox)
最后执行:
service salt-minion restart
此时对于web server端还有一些配置,在Calamari服务器上配置防火墙和saltstack认证防火墙(允许ceph服务器访问salt-master和carbon):
salt-master设置:# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4505 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4506 -j ACCEPT
carbon设置:
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2003 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2004 -j ACCEPT
saltstack认证:
当ceph节点上的salt-minion服务启动之后,会自动向salt-master请求认证。
在Calamari服务器上可以通过下面的命令查看salt-minion密钥的列表:
# salt-key -L
刚刚启动salt-minion服务的ceph节点会出现在Unaccepted Keys列表之后,要使得Calamari能够通过saltstack管理ceph服务器,需要对这些密钥进行认证:
# salt-key -A
再次执行salt-key -L则发现ceph节点名已经出现在Accepted Keys中
6. 登录
在浏览器中直接输入calamari的ip即可进入登录界面,输入第4步中配置的用户名和密码进入进入系统: