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-doc3. 配置节点
[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 //为各个节点安装CEPH
安装代理过程中可能会报错:yum-y install epel-release 不能执行,该错误是因为网络不通。对不能安装成功的节点执行命令重试几次就可以了。
ceph-deploy mon create-initial //初始化监控节点。初始化执行后会生成加入监控节点的密钥。该密钥将会分发至osd节点中。
###############本次使用文件方式创建的提供点,表示/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-osd2 kvm165 //将配置文件拷贝至各个节点#####################################################################################################################
故障排除:提示无法连接到集群。该问题的出现可能是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 //overwrite参数表示覆盖当前配置
####################################################################################################################
健康检查,显示以下信息代表配置正确,可以提供文件服务
[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/calamari.git
[root@ceph-master keng]#git clone https://github.com/ceph/calamari-clients.git
[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-releaseyum -y install python-pipyum clean allpip 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初始化calamaricalamari-ctl initialize输入账号root密码root################至此,已经可以访问ceph-server WEB界面。但还没有集群信息。ceph-server安装完成后。默认启动了salt服务,用作于子节点连接######配置salt#######[root@ceph-master /]# vi /etc/salt/minion.d/calamari.confmaster:{ip}#######################构建Diamond包cd Diamondgit checkout origin/calamarimake rpm //在dist目录下生成diamond-3.4.67-0.noarch.rpm 包所有节点安装:diamond-3.4.67-0.noarch.rpmyum localinstall diamond-3.4.67-0.noarch.rpm########################此处安装完成后无法启动diamond服务,暂不清楚原因####################
新闻热点
疑难解答