1.      前期准备
本次安装环境为:
ceph-master(集群命令分发管控)                CentOs7.2                    192.168.1.70
ceph-osd1(提供磁盘服务集群)                  CentOs7.2                    192.168.1.71
ceph-osd2(提供磁盘服务集群)                  CentOs7.2                    192.168.1.72
kvm165(监控)                                                 CentOs7.2                    192.168.1.165        ##后面测试监控也可以安装在任意osd节点上
 
ceph是通ssh下发指令。首先配置管理节点可以无密码访问存储节点
配置HostName,使得通过名称可以互访
[root@ceph-master ~]# echo"192.168.1.71 ceph-osd1">> /etc/hosts
[root@ceph-master ~]#echo "192.168.1.72 ceph-osd2">> /etc/hosts
生成公钥
ssh-keygen -t rsa
[root@ceph-master .ssh]# scp~/.ssh/id_rsa.pub root@ceph-osd2:/root/.ssh/authorized_keys
[root@ceph-master .ssh]# scp~/.ssh/id_rsa.pub root@ceph-osd1:/root/.ssh/authorized_keys  
SSH登录测试是否已经免密码登录。
关闭防火墙及安全选项
sudo systemctl stop firewall.service
sudo setenforce 0

                                                                                                                            

2.      软件安装

#本次安装参考http://docs.ceph.org.cn/start/quick-start-preflight/#ceph  ceph官方安装文档


 

sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
 
 
 
国内的URL链接无效,必须使用欧洲源安装
 
编辑安装源:
 
sudo vim /etc/yum.repos.d/ceph.repo
 
[ceph-noarch]
name=Ceph noarch packages
#baseurl=http://eu.ceph.com/rpm-firefly/e17/noarch#firefly表示软件版本,e17表示CentOs7,noarch表示任何CPU都可运行
baseurl=http://eu.ceph.com/rpm-firefly/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://eu.ceph.com/keys/release.asc
安装ceph部署工具:用于下发ceph配置文件,执行ceph命令。
 
sudo yum update && sudo yum install ceph-deploy
 
 
 
所有节点安装时间同步服务避免时钟漂移故障。
 
sudo yum install ntp ntpdate ntp-doc
 
 
 
3.      配置节点
[root@ceph-master /]# mkdir /cephconf                                   //ceph-deploy部署工具会在该目录下生成配置文件用于发放至子节点
[root@ceph-master /]# cd /cephconf
[root@ceph-master cephconf]# ceph-deploynew ceph-osd1 存储节点1为监控节点            //使用new命令表示该节点为监控节点,根据ceph的算法。监控节点必须为奇数
echo "osd pool default size = 2">>ceph.conf             
c
ceph-deploy installceph-master ceph-osd1 ceph-osd2
安装代理过程中可能会报错:yum-y install epel-release 不能执行,该错误是因为网络不通。对不能安装成功的节点执行命令重试几次就可以了。
ceph-deploy mon create-initial
###############本次使用文件方式创建的提供点,表示/var/local/osd*.这个文件为ceph集群提供存储资源服务#################
格式化并分区sdb=>将sdb1挂载至/var/local/osd*
其实也可以直接对磁盘挂载,磁盘挂载的原理也是将磁盘分区后创建文件系统挂载。但在本环境由于未知错误,直接使用磁盘方式
无法激活成功。
###################################################################################################################
创建存储节点
 
ceph-deploy osd prepare ceph-osd1:/var/local/osd0 ceph-osd2:/var/local/osd1         //准备磁盘。
 
ceph-deploy osd activate ceph-osd1:/var/local/osd0 ceph-osd2:/var/local/osd1        //激活磁盘。
 
ceph-deploy admin ceph-master ceph-osd1
 
#####################################################################################################################
故障排除:提示无法连接到集群。该问题的出现可能是ceph.conf文件未正确配置以及密钥文件不正确导致。
(Errorconnecting to cluster: PermissionError)
From monitor node  scp /etc/ceph/ceph.client.admin.keyring node1:/etc/ceph                                     //将监控节点的密钥拷贝到osd节点
From monitor node scp/var/lib/ceph/bootstrap-osd/ceph.keyring node1:/var/lib/ceph/bootstrap-osd        //将监控节点的密钥拷贝到osd节点
同步配置
[root@ceph-master cephconf]#ceph-deploy --overwrite-confadmin ceph-master ceph-osd1 ceph-osd2
####################################################################################################################
健康检查,显示以下信息代表配置正确,可以提供文件服务
[root@ceph-master helloworld]# ceph -s
   cluster 025bb684-2292-4bc1-af0e-8d7369d59068
     health HEALTH_OK
    monmap e1: 1 mons at {kvm165=192.168.1.165:6789/0}
           election epoch 2, quorum 0 kvm165
    osdmap e17: 5 osds: 3 up, 3 in
     pgmap v30: 64 pgs, 1 pools, 0 bytes data, 0 objects
           20593 MB used, 5615 GB / 5635 GB avail
                  64 active+clean
 
##############################################################################################################
安装Web管理工具calamari
安装git
Yum install git
Mkdir /keng && cd /keng
 
下载源码
 
 
[root@ceph-master keng]#git clone https://github.com/ceph/Diamond
 
安装依赖(CentOS7.2 GNOME 环境下缺少的)
 
[root@ceph-master calamari]# yum install selinux-policy-doc
 
[root@ceph-master keng]# yum install selinux-policy-devel
 
[root@ceph-master keng]# yum install httpd
 
[root@ceph-master keng]# yum install postgresql-devel
 
####Centos7默认没有安装python-gevent库或者python-gevent版本>=1.1  会无法构建RPM包。
 
###############解决方法
 
yum -y install epel-release
 
yum -y install python-pip
 
yum clean all
 
pip install gevent==1.0################################## 
生成rpm包
 
[root@ceph-master calamari]# ./buildrpm.sh  ##生成rpm包,生成后包位于RPMBUILD下
 
[root@localhost calamari]# yum localinstall rpmbuild/RPMS/x86_64/calamari-server-1.3.3-4_gb6c5652.el7.centos.x86_64.rpm
 
 
 
构建calamari-client: ####官方开发版无法打包,原因是无法下载html资源文件。,这里使用已经打包好的。
 
tar xf calamari-clients-20150430.tar.gz 
cd calamari-clients/ 
cp -r login/dist /opt/calamari/webapp/content/login 
cp -r manage/dist /opt/calamari/webapp/content/manage 
cp -r dashboard/dist/opt/calamari/webapp/content/dashboard 
 
cp -r admin/dist /opt/calamari/webapp/content/admin
 
 
 
初始化calamari
 
calamari-ctl initialize
 
输入账号root
 
密码root
 
################至此,已经可以访问ceph-server WEB界面。但还没有集群信息。
 
ceph-server安装完成后。默认启动了salt服务,用作于子节点连接
 
######配置salt#######
 
[root@ceph-master /]# vi /etc/salt/minion.d/calamari.conf
 
master:{ip}
 
#######################
 
构建Diamond包
 
cd Diamond
 
git checkout origin/calamari
 
make rpm      //在dist目录下生成diamond-3.4.67-0.noarch.rpm 包
 
所有节点安装:
 
diamond-3.4.67-0.noarch.rpm
 
yum localinstall diamond-3.4.67-0.noarch.rpm