主要是随手记录了 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 ceph-radosgw@rgw.172.168.0.2 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/ 部署,该文档较为详细。大家可以参考。