利用ceph-deploy完成ceph分布式存储的快速安装。

参考文档:http://docs.ceph.org.cn/start/


安装环境为Centos7,安装使用服务器三台,安装过程需要全程联网。


三台主机分别为ceph1、ceph2、ceph3


一、初始化环境


配置SSH无密码互通、时间同步、官方yum源等。


修改主机名(在个节点操作):

hostnamectl set-hostname ceph1


配置本地解析

vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.1    ceph1
192.168.1.2    ceph2
192.168.1.3    ceph3


创建本地密钥:

ssh-keygen

发送密钥给节点服务器(在三台执行):

ssh-copy-id ceph1
ssh-copy-id ceph2
ssh-copy-id ceph3


配置时间同步(主节点):

yum -y install chrony
vim /etc/chrony.conf 
# Allow NTP client access from local network.
allow 192.168.1.0/24
# Serve time even if not synchronized to a time source.
local stratum 10

配置时间同步(存储节点):

yum -y install chrony
vim /etc/chrony.conf
server 135.72.71.39 iburst


关闭selinux:

setenforce 0
vim /etc/selinux/config
SELINUX=permissive

关闭防火墙:

systemctl stop firewalld.service 
systemctl disable firewalld.service 
iptables -F


新建ceph用户(之后全部操作都在此用户下进行):

useradd ceph
echo '******' |passwd --stdin ceph

配置用户sudo权限

vim /etc/sudoers
ceph    ALL=(root)      NOPASSWD:ALL

重新发送ceph用户的ssh密钥:

su - ceph
ssh-copy-id ceph1
ssh-copy-id ceph2
ssh-copy-id ceph3


配置ceph程序yum源(本地源被我替换成了163的源)

vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

以上baseurl路径根据http://download.ceph.com/页面中实际值修改。


编辑连接文件(ceph用户执行):

vim /home/ceph/.ssh/config
Host ceph1
   Hostname ceph1
   User ceph
Host ceph2
   Hostname ceph2
   User ceph
Host ceph3
   Hostname ceph3
   User ceph
   
sodu chomd 600 /home/ceph/.ssh/config


准备一块无挂载的空磁盘(步骤略)


二、部署ceph程序

切换用户

su - ceph

创建文件夹:

cd 
mkdir my-cluster
cd my-cluster


安装ceph-deploy

sudo yum install ceph-deploy


创建集群:

sudo ceph-deploy new ceph1 ceph2 ceph3

安装ceph:

sudo ceph-deploy install ceph1 ceph2 ceph3

(此处可能出现报错,根据报错提示,相应节点安装程序即可解决。以上命令可反复执行,直至安装完成!)


初始配置mon,并收集所有密钥

sudo ceph-deploy --overwrite-conf  mon create-initial

[[email protected] my-cluster]$ ll
total 712
-rw-------. 1 root root    113 Jul 15 12:37 ceph.bootstrap-mds.keyring
-rw-------. 1 root root    113 Jul 15 12:37 ceph.bootstrap-mgr.keyring
-rw-------. 1 root root    113 Jul 15 12:37 ceph.bootstrap-osd.keyring
-rw-------. 1 root root    113 Jul 15 12:37 ceph.bootstrap-rgw.keyring


部署mgr:

sudo ceph-deploy mgr create ceph1 ceph2 ceph3


部署OSD(此步骤决定存储空间大小):

sudo ceph-deploy --overwrite-conf osd create --data /dev/sdb1 ceph1
sudo ceph-deploy --overwrite-conf osd create --data /dev/sdb1 ceph2
sudo ceph-deploy --overwrite-conf osd create --data /dev/sdb1 ceph3
sudo ceph osd tree


检查集群状态

[[email protected] my-cluster]$ sudo ceph -s
  cluster:
    id:     af5b857b-e874-4f19-939d-a261e689d0f1
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph1,ceph2,ceph3
    mgr: ceph1(active), standbys: ceph2, ceph3
    osd: 3 osds: 3 up, 3 in
    rgw: 1 daemon active
 
  data:
    pools:   4 pools, 32 pgs
    objects: 221  objects, 1.5 KiB
    usage:   3.0 GiB used, 2.8 TiB / 2.8 TiB avail
    pgs:     32 active+clean


部署RGW:

检查程序安装:yum install ceph-radosgw mailcap

sudo ceph-deploy install --rgw ceph1
sudo ceph-deploy --overwrite rgw create ceph1
ps aux|grep radosgw



建立账号:

以下命令输出内容保存

sudo radosgw-admin user create --uid testid --display-name 'M. Tester' --system


部署dashboard

sudo ceph mgr module enable dashboard
sudo ceph dashboard create-self-signed-cert

前台页面:

sudo ceph mgr services

创建前台账号

sudo ceph dashboard set-login-credentials {user} {passwd}

添加权限(以下两个数值参考前面保存的输出内容):

sudo ceph dashboard set-rgw-api-access-key {access-key}
sudo ceph dashboard set-rgw-api-secret-key {secret-key}



三、错误内容汇总

如果遇到错误,可使用如下命令恢复:

ceph-deploy purgedata ceph1 ceph2 ceph3
ceph-deploy forgetkeys

用以下命令可以完整清除(同时会删除ceph安装包)

ceph-deploy purge ceph1 ceph2 ceph3


错误一

[2021-07-15 11:37:51,304][ceph_deploy][ERROR ] RuntimeError: connecting to host: ceph2 resulted in errors: HostNotFound ceph2

节点名称错误,ping ceph2测试,若能通,则考虑/home/ceph/.ssh/config文件权限出错,或内容错误。权限需要改为600


错误二

[2021-07-15 11:48:11,766][ceph_deploy][ERROR ] RuntimeError: NoSectionError: No section: 'ceph'

反复执行


错误三

[2021-07-15 11:52:22,668][ceph_deploy][ERROR ] RuntimeError: Failed to execute command: yum install -y https://download.ceph.com/rp

m-mimic/el7/noarch/ceph-release-1-0.el7.noarch.rpm

下载到本地自行装包(https协议可能需要改为http):

wget http://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-0.el7.noarch.rpm
yum -y install ceph-release-1-0.el7.noarch.rpm

装包完成后仍有此报错就反复执行


错误四

[2021-07-15 11:58:54,404][ceph_deploy][ERROR ] RuntimeError: Failed to execute command: yum -y install epel-release

根据前方给定的节点,在相应服务器自行安装

yum -y install epel-release

装包完成后仍有此报错就反复执行


错误五

[2021-07-15 11:59:53,550][ceph_deploy][ERROR ] RuntimeError: Failed to execute command: rpm --import https://download.ceph.com/keys

/release.asc

反复执行


错误六

[2021-07-15 12:03:29,020][ceph_deploy][ERROR ] RuntimeError: Failed to execute command: yum -y install ceph ceph-radosgw

根据前方给定的节点,在相应服务器自行安装

 yum -y install ceph ceph-radosgw

装包完成后仍有此报错就反复执行


错误七

[2021-07-15 12:29:41,604][ceph3][WARNING] Existing lock /var/run/yum.pid: another copy is running as pid 9409.

......

[2021-07-15 12:30:06,081][ceph_deploy][ERROR ] KeyboardInterrupt

相应节点服务器删除 /var/run/yum.pid

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。