Centos 7.2(1511) 部署ceph jewel

Centos 7.2(1511) 部署ceph jewel

本文主要介绍如何在最新的Centos7中搭建ceph jewel

  • ceph简介
  • 安装准备
  • 安装部署
  • 注意的问题

Ceph简介

无论你想提供 Ceph对象存储和/或Ceph块设备服务至云平台 ,部署Ceph文件系统或者为了其他目的而使用Ceph,所有的 Ceph存储集群部署都是从设置每个Ceph节点,你的网络和Ceph存储集群开始的。一个Ceph存储集群要求至少有一个Ceph监视器和两个Ceph OSD守护进程。当运行Ceph文件系统客户端时,必须要有Ceph元数据服务器。

INTRO TO CEPH(介绍Ceph)

   OSDs: Ceph的OSD守护进程(OSD)存储数据,处理数据复制,恢复,回填,重新调整,并通过检查其它Ceph OSD守护程序作为一个心跳 向Ceph的监视器报告一些检测信息。Ceph的存储集群需要至少2个OSD守护进程来保持一个 active + clean状态.(Ceph默认制作2个备份,但你可以调整它)

   Monitors:Ceph的监控保持集群状态映射,包括OSD(守护进程)映射,分组(PG)映射,和CRUSH映射。 Ceph 保持一个在Ceph监视器, Ceph OSD 守护进程和 PG的每个状态改变的历史(称之为“epoch”).

   MDS: MDS是Ceph的元数据服务器,代表存储元数据的Ceph文件系统(即Ceph的块设备和Ceph的对象存储不使用MDS)。Ceph的元数据服务器使用POSIX文件系统,用户可以执行基本命令如 ls, find,等,并且不需要在Ceph的存储集群上造成巨大的负载.

 Ceph把客户端的数据以对象的形式存储到了存储池里。利用CRUSH算法,Ceph可以计算出安置组所包含的对象,并能进一步计算出Ceph OSD集合所存储的安置组。CRUSH算法能够使Ceph存储集群拥有动态改变大小、再平衡和数据恢复的能力。

——[开源社区- Ceph中文文档 ]

安装准备(所有节点都要做)

1. 实验架构图

实验架构

这里我们选用三台服务器:
10.209.192.70 CDM1A03-209192070 //对应node1 mon1 osd.1 以本机器为admin进行部署
10.209.192.68 CDM1A03-209192068 //对应node1 mon1 osd.0
10.209.192.71 CDM1A03-209192071 //对应node1 mon1 osd.2
以上服务器信息也需要写入每台服务的/etc/hosts中,且hostname一致
否则在后面安装mon时会遇到admin_socket: exception getting command descriptions: [Errno 2] No such file or director

2. 安装epel和yum-plugin-priorities

安装EPEL这里就不多说了,直接参考[EPEL]

//安装epel后安装yum-plugin-priorities
$sudo yum install yum-plugin-priorities

由于使用EPEL安装的包不多,所以网速还可以忍受

3. 新建ceph用户并授权,切换为ceph用户
//新建ceph用户
$sudo useradd -d /home/ceph -m ceph
$sudo passwd ceph
//授予无密码sudo权限
$echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
$sudo chmod 0440 /etc/sudoers.d/{username}
//切换为ceph用户并生成rsa公钥
$sudo su -
$su - ceph
$ssh-keygen 
然后使用ssh-copy-id实现三台机器之间免密码登陆
4. 安装ntp openssh
$sudo yum install ntp ntpdate ntp-doc -y
$sudo yum install openssh-server -y
5. 关闭防火墙和selinux,更新系统

由于本次实验为内网服务器,外网无法访问,所以这里选择直接关闭防火墙和selinux
注意centos7自带的是firewalld防火墙

$sudo systemctl stop firewalld
$sudo systemctl disable firewalld
$sudo vim /etc/selinux/config
//修改以下内容
 SELINUX=disabled
 //更新系统并重启
 $sudo yum update -y
 $sudo reboot

6. 创建ceph jewel源

这里使用国内阿里云的ceph源,速度比较快
注意这里必须使用ceph.repo为源的文件名,否则ceph-deploy全新建以ceph.repo命名的官方源文件(速度太呵呵)

$ cat /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

以上安装准备需要在所有节点上进行操作,建议使用ansible或者salt进行统一操作

安装部署

本实验使用10.209.192.70 CDM1A03-209192070为控制节点进行部署

1.安装准备
//新文件夹ceph-cluster
$cd ~
$mkdir ceph-cluster
$cd ceph-cluster
//安装ceph-deploy
$sudo yum update && sudo yum install ceph-deploy
$ceph-deploy purge CDM1A03-209192070 CDM1A03-209192068 CDM1A03-209192071
$ceph-deploy purgedata CDM1A03-209192070 CDM1A03-209192068 CDM1A03-209192071
$ceph-deploy forgetkeys
2. 安装ceph
//创建cluster,生成配置文件
$ceph-deploy new CDM1A03-209192070 CDM1A03-209192068 CDM1A03-209192071
//修改ceph.conf
[global]
fsid = 82b7dc0a-6b08-4f92-bd68-32c0a1242543
mon_initial_members = CDM1A03-209192070, CDM1A03-209192071, CDM1A03-209192068
mon_host = 10.209.192.70,10.209.192.71,10.209.192.68
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
osd journal size = 1024 
rbd default features = 1

[osd]
osd max object name len = 256               //这里必须写,否则在创建mon会出错
osd max object namespace len = 64        //同上
rbd default features = 1

//继续安装
$ceph-deploy install  CDM1A03-209192070, CDM1A03-209192071, CDM1A03-209192068
$ceph-deploy mon create-initial
3.新建osd
//分别在三台机器中新建三个osd目录
$mkdir /var/local/osd0  osd1  osd2      
$chown ceph:ceph /var/local/osd0  osd1  osd2
//回到部署节点,新建OSD
$ceph-deploy osd prepare  CDM1A03-209192068:/var/local/osd0  CDM1A03-209192070:/var/local/osd1 CDM1A03-209192071:/var/local/osd2
$ceph-deploy osd activate  CDM1A03-209192068:/var/local/osd0  CDM1A03-209192070:/var/local/osd1 CDM1A03-209192071:/var/local/osd2
//分发配置和秘钥
$ceph-deploy admin CDM1A03-209192070, CDM1A03-209192071, CDM1A03-209192068
$sudo chmod +r /etc/ceph/ceph.client.admin.keyring   //在所有节点上执行
4.查看状态
$ ceph -s
    cluster 82b7dc0a-6b08-4f92-bd68-32c0a1242543
     health HEALTH_OK
     monmap e1: 3 mons at {CDM1A03-209192068=10.209.192.68:6789/0,CDM1A03-209192070=10.209.192.70:6789/0,CDM1A03-209192071=10.209.192.71:6789/0}
            election epoch 6, quorum 0,1,2 CDM1A03-209192068,CDM1A03-209192070,CDM1A03-209192071
     osdmap e18: 3 osds: 3 up, 3 in
            flags sortbitwise
      pgmap v43012: 64 pgs, 1 pools, 0 bytes data, 0 objects
            13686 MB used, 7515 GB / 7931 GB avail
                  64 active+clean

注意的问题

1. install太慢

更换国内阿里云的ceph源

2. 新建osd失败

注意把新建的目录改为ceph用户

3.ceph-deploy mon create-initial 遇到错误
admin_socket: exception getting command descriptions: [Errno 2] No such file or director
要在配置文件中加入以下内容:
[osd]
osd max object name len = 256               //这里必须写,否则在创建mon会出错
osd max object namespace len = 64        //同上
rbd default features = 1
4.安装jewel版本出错后准备降级安装hammer会遇到key for admin.key已经存在

应该是purge不完全的bug,还没有解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值