ceph 部署

主要是随手记录了 ceph 集群部署过程,以及S3 bucket 如何生成和使用

一,基础信息

ceph  version 10.2.10

 ceph-deploy 2.0.1 

节点:

192.168.0.2

192.168.0.3

192.168.0.4

192.168.0.5

192.168.0.6

二,部署流程

1,添加 ceph源

2,创建临时目录,用于保存ceph配置和证书,之后创建和部署操作都需要在这个目录下执行

 mkdir /data/store/ceph/

 ln -snf /data/store/ceph/ /var/lib/ceph  ## ceph默认存储和临时目录都在这里,为了避免之后修改配置创建目录,直接软连接到这里即可

创建普通用户,并打通ssh,方便 ceph-deploy执行安装部署命令

3,admin 节点执行新建集群命令

ceph-deploy new  [MON] [MON]

开始部署新集群,并写好配置文件和密钥环。它会尝试把管理节点上的 SSH 密钥复制到监视器节点以获得无密码访问权限,验证主机 IP ,新建一或多个监视器节点以组成监视器法定人数,生成新 Ceph 集群所需的配置文件、监视器密钥环和日志文件。然后把新建的集群 fsid 、主机名和初始监视器成员的 IP 地址组装成 Ceph 配置文件。

就是把基础的配置和key生成出来,然后方便之后同步到各个节点,此处需要修改部分配置;其他配置参考官方文档进行修改

osd pool default size = 2  ## 副本数修改 默认为3

public network = {ip-address}/{netmask}  ## 多个网卡需要设置通讯的网段

4,admin 节点执行 install 命令,将ceph 安装到各个节点,并同步配置。源是内部源,大家可以使用公共源

ceph-deploy install --repo-url="http://172.18.118.181/ceph/rpm-jewel/el7/$basearch" --no-adjust-repos  192.168.0.2   192.168.0.3 192.168.0.4 192.168.0.5  192.168.0.6

ceph-deploy --overwrite-conf  config   push   192.168.0.2   192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6

这里指定源的url地址,并跳过认证,具体参数参考官方;

5,初始化 mon 

ceph-deploy mon create-initial

(我使用这个命令初始化失败,找不到 admin_socket 文件,我怀疑是因为某个服务没有启动,所有没有生成socket文件,尝试多次失败,采用手动初始化)

  5.1, 手动初始化方法参考官网 

http://docs.ceph.org.cn/install/manual-deployment/#id2

     我已经使用ceph-deploy 生成配置了,所以此处直接忽略配置这一步,直接到初始化和启动;


5.2,生成client.admin密钥环,管理员密钥环

sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'

5.3,把 client.admin 密钥加入 ceph.mon.keyring

sudo ceph-authtool ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

5.4,用规划好的主机名、对应 IP 地址、和 FSID 生成一个监视器图,并保存为 /tmp/monmap 。

这一步我并没有操作,应该是之前执行 ceph-deploy new 已经帮我做好了

monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap

5.5,在mon节点创建数据目录,并初始化数据

mkdir /var/lib/ceph/mon/ceph-managed-066-030/   ## 创建本地磁盘目录

ceph-mon --mkfs -i managed-066-030  --monmap /tmp/monmap --keyring ceph.mon.keyring  ##初始化数据

5.6,建一个空文件 done ,表示监视器已创建、可以启动了

touch /var/lib/ceph/mon/ceph-managed-066-030/done

5.7,启动mon

下面是我执行的命令

ceph-mon --id managed-066-030

官方提供的启动方式如下;(我没启起来)

mon.node1 node1 指节点的主机名

/etc/init.d/ceph start mon.node1

至此 mon 部署成功;

5.8 mon 扩容操作

ceph-deploy mon add  192.168.0.3

登陆 192.168.0.3

ceph-mon --id managed-066-031

ceph -s 查看状态

三,部署osd

osd 部署相对简单。 

1,创建 osd 数据存储目录 并赋权,默认 ceph 用户

mkdir /data/store/ceph/osd

chown ceph:ceph /data/store/ceph/osd

2,从mon 拉去密钥用于验证(需使用普通用户,即ssh打通的用户执行)

yum install ceph-deploy -y

cd /data/store/ceph

ceph-deploy gatherkeys 192.168.0.2

3,初始化存储目录

ceph-disk prepare --cluster ceph --cluster-uuid 00cb62e9-622a-4ae6-8ce0-cc0debd26377   --fs-type   xfs  /data/store/ceph/osd

4,激活osd ,即 启动过osd(这里用到了mon生成的osd证书)

sudo ceph-disk activate  /data/store/ceph/osd  --activate-key ceph.bootstrap-osd.keyring

ceph-disk activate  /data/store/ceph/osd

5,把其他几个点也一并部署完成

四,创建 mds 元数据服务

     这个比较简单

ceph-deploy mds create  192.168.0.3

ceph-deploy mds create  192.168.0.4

五,创建网关,用于支持S3接口

ceph-deploy rgw create 192.168.0.2

网关部分配置需要修改

bucket 的分片配置,所以改完之后需要同步配置并重启

详细配置官网如下:http://docs.ceph.org.cn/install/install-ceph-gateway/

重启网关命令

service  [email protected] start

扩容网关

ceph-deploy rgw create 192.168.0.3

六,S3 用户创建

sudo radosgw-admin user create --uid="testuser" --display-name="First User"

   要保存命令结果输出,里面包含了key

这样就完成了 s3 用户认证的创建。

验证访问:

如下提供了 S3 验证访问测试,用于创建 bucket 

import boto

import boto.s3.connection

access_key = 'I0PJDPCIYZ665MW88W9R'

secret_key = 'dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA'

conn = boto.connect_s3(

        aws_access_key_id = access_key,

        aws_secret_access_key = secret_key,

        host = '{hostname}', port = {port},

        is_secure=False, calling_format = boto.s3.connection.OrdinaryCallingFormat(),

        )

bucket = conn.create_bucket('my-new-bucket')

    for bucket in conn.get_all_buckets():

            print "{name}".format(

                    name = bucket.name,

                    created = bucket.creation_date,

 )

s3cmd  代理 python

s3cmd 配置

host_base = 192.168.0.2:7480

host_bucket = 192.168.0.2:7480/%(bucket)

use_https = False

secret_key = QrBi0eftG9BcaZEJW40K6UJMqRc2E80fVZ1yiis6

access_key = E7NSW13CNAKBIXJB2WCG

生成配置文件方法

s3cmd --configure --access_key="E7NSW13CNAKBIXJB2WCG" --secret_key="QrBi0eftG9BcaZEJW40K6UJMqRc2E80fVZ1yiis6"

查看配置是否生效

ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show

注意:

s3 的网关最好多创建几个,用于负载均衡,避免单节点故障,mon 节点也是一样。及时集群部署完成之后,也可以进行扩容,扩容操作同部署相同。

本文根据 文档http://docs.ceph.org.cn/install/install-ceph-gateway/ 部署,该文档较为详细。大家可以参考。

你可能感兴趣的:(ceph 部署)