CEPH篇 CEPH部署(在线和离线 Centos 7)

引入

  这篇只记录部署,如果需要概念理解,则前往其他篇章查看。暂时不包含MDS的部署,因为不准备使用文件系统,所以不需要元数据服务器

  在线部署和离线部署差别只在包的下载,如果在线部署过了,那么资源包可以放入U盘,下次就可以离线部署。

正文

部署准备

关闭防火墙和selinux

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修改主机名

各个机器下分别执行如下命令

hostnamectl set-hostname  host145
hostnamectl set-hostname  host146
hostnamectl set-hostname  host147

修改后在每台机器上修改/etc/hosts文件

10.1.12.145  host145
10.1.12.146  host146
10.1.12.147  host147

配置SSH互信

选择一台部署主机,这边选择host146,在root用户下开启SSH互信操作

在部署节点上, 使用这个命令ssh-keygen   一路回车 ,生成公钥。
然后通过命令ssh-copy-id -i  ~/.ssh/id_rsa.pub {hostname} 把公钥复制到部署需要设计的主机上。
Ssh  hostname测试是否成功。

配置yum(分为在线和离线)

在线
#链接阿里云的配置
rm -rf /etc/yum.repo.d/ *.repo

#CentOS 7 源设置   
 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#epel 仓库源
wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo

编辑 Ceph.repo源:

[ceph-nautilus] 
name=ceph-nautilus
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0

[ceph-nautilus-noarch]
name=ceph-nautilus-noarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0 
#生成缓存
 yum  clean all, yum makecache
#生成包
yum install ceph-14.2.2-0.el7   ceph-deploy
离线
#安装 createrepo  rpm包
yum install httpd 
#开启httpd服务:    
systemctl start httpd
#复制所有的ceph和第三方的rpm包到(包已经提前准备好,如果没有包则使用在线部署)
10.1.12.146: /var/www/html/ceph/
#执行命令  
createrepo /var/www/html/ceph/  


#在需要安装的客户端配置 repo 文件 
/etc/yum.repos.d/ceph.repo 
[ceph_local]
name=ceph
baseurl=http://10.1.12.146/ceph/ 
gpgcheck=0


#将此ceph.repo  复制到每个主机  /etc/yum.repo.d/目录中。
scp ceph.repo  root@host145:/etc/yum.repos.d/
scp ceph.repo  root@host147:/etc/yum.repos.d/

NTP安装

#安装
yum install ntp
#执行 最好在局域网内,建立自己的时间同步源。其中ntpdate 是客户端命令, 连接时间同步服务器,修改自己的时间。 一定要同步时间,
ntpdate -s time-b.nist.gov  

修改配置文件

#修改 /etc/ntp.conf文件
#注释下面4行
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

服务器节点修改如下

server 127.127.1.0
fudge  127.127.1.0 stratum 10

验证下

ntpq –p –-查看ceph-admin的ntp服务器是否为自身
remote           refid      st t when poll reach   delay  offset  jitter
==========================================================================
*LOCAL(0)        .LOCL.          10 l  28   64  377   0.000    0.000   0.000
这样的输出证明已经配置成功了。

配置其他节点

#其他服务器都连接admin节点,其中段: server 210.72.145.44   iburst
Server 10.1.12.146 -----------–为ceph-admin的IP
fudge  127.127.1.0 stratum 11

重启后检查

systemctl restart ntpd 
systemctl enable ntpd 
#查看是否为ceph-admin
ntpq –p  
#结果如下
remote           refid      st t when poll reach   delay  offset  jitter
===========================================================================
*ceph-admin      LOCAL(0)        11 u  13   64    1   1.236   -0.700   0.000
Remote :*ceph-admin
Refid  :LOCAL(0)
如果是其他的,如:refid:init就为配置不成功,按此步骤在其他节点进行配置。

部署CEPH

部署ceph和ceph-deploy  

在所有上都安装ceph,主节点上额外安装ceph-deploy

#每个主机安装 ceph
yum install ceph 
#Admin节点安装
yum install ceph-deploy

部署监控节点(mon)

添加节点

#在管理节点上
cd /root/ceph
ceph-deploy new host146  host145  host147
  

#修改这个文件,添加:  overwrite_conf = true
 vim  / root/.cephdeploy.conf 

部署mon

mkdir  -p /etc/ceph/  
mkdir /var/lib/ceph 
#ceph用户是ceph的默认用户,不要去新建哦
chown  ceph:ceph -R /var/lib/ceph

#(必须当前目录有ceph.mon.keyring)
ceph-deploy  --overwrite-conf  mon create-initial

重启命令

#host是主机
systemctl   restart/start/stop  ceph-mon@host

部署mgr

ceph-deploy mgr create  host146

ps -ef | grep ceph    查找host
#重启   
systemctl   restart/start/stop  ceph-mgr@host

部署OSD

先要有挂载磁盘,用系统盘也可以,但是并不安全,这里有两个方案

  1.找几台新机器,OSD挂载的目录反正随便定,新机器上的数据都无所谓

  2.额外挂载磁盘,可以对挂载磁盘做虚拟化,LVM,可以部署更多OSD

可以执行lsblk命令查看,如果磁盘已经被挂载,则会报错哦

#新版本ceph默认是 bluetore .使用如下命令
ceph-deploy --overwrite-conf   osd create  --data /dev/vdb   $HOSTNAME

#查看 集群硬盘树编号。(部署节点) 需要拷贝配置文件(ceph.conf)到/etc/ceph/!!!否则会连接不到集群
ceph osd tree 
#重启  
systemctl   restart/start/stop  ceph-osd@0, 1, 2,3, 

部署RGW

#单机的只需要在一台服务器上安装, 如果负载均衡,可以安装3台服务器。S
现在安装在146
 yum  install  ceph-radosgw  
#或者  
ceph-deploy install  --rgw   wn

启动

ceph-deploy   --overwrite  rgw create  host173(主机名) 
#查看启动端口为7480

#检查服务是否启动    
ps aux|grep radosgw

#重启   这个id可以通过查看rados进程,查看名称得到,例如rgw.host146
systemctl   restart/start/stop  ceph-radosgw@id 

桶分片

# 如果每个桶中对象数量较少,比如小于10000, 可以不操作此步骤,  大于10万对象,一定要设置下面的参数。
#如果设计方案中,一个桶中存储对象数量大于几千万,需要关闭动态分片, 同时设置最大分片数量。
#在  radosgw 进程所在的服务器。
vi  /etc/ceph.conf  
#桶动态分片默认开启
rgw_dynamic_resharding = false  
#桶中最大分片的数量           ,
rgw_override_bucket_index_max_shards=16   
#重启服务。(rgw)

建立账号(S3)

# system参数是为了使用dashboard,该账号可以再页面上看到数据
radosgw-admin user create --uid testid --display-name 'M. Tester'  --system 
#记住这两个东西
"access_key": 
 "secret_key":
#部署失败返回错误的处理方法:
#只有建立 bucket ,  上传一个对象后, 才能出现  default.rgw.buckets.data池, 然后调整pg num .
#这个时候,解决pg/osd 太少的警报。

#部署时候如果遇到 rgw 失败,现实的日志为:
# 0 ext_mime_map_init failed to open file=/etc/mime.types : (2) No such file or ##directory
#7f709e8c48c0 -1 ERROR: unable to initialize rgw tools
#这是因为没有  /etc/mime.types 
#需要安装
yum install mailcap

#如果启动失败, 有时候需要将 /var/lib/ceph/radosgw   的用于  root 改成   ceph .
chown ceph:ceph –R  *

部署dashboard

yum install ceph-mgr-dashboard
ceph dashboard create-self-signed-cert  
#写上账号和密码
ceph dashboard set-login-credentials  admin admin

打开页面后长这样:

这时候你有可能(就是如此)在object gateway里面看不到bucket内容,需要再添加一个命令:

$ ceph dashboard set-rgw-api-access-key <access_key>
$ ceph dashboard set-rgw-api-secret-key <secret_key>

如果你忘记了你的账户,或者需要新建一个账户:

$ radosgw-admin user create --uid=<user_id> --display-name=<display_name> \
    --system

如果是忘了两个key

$ radosgw-admin user info --uid=<user_id>

这样就可以啦,完

 

posted @ 2020-01-03 16:19  但行好事-莫问前程  阅读(4513)  评论(0编辑  收藏  举报