ceph手动部署

原文链接:http://www.jianshu.com/p/ea126909457e

#############

一. 配置文件

#############

  1. 第一步需要生成一个uuid,命令uuidgen
uuidgen 
4299abf0-4901-497a-9bb5-59325a1e757f
  1. 配置config文件
cat /etc/ceph/ceph.conf 


fsid = 4299abf0-4901-497a-9bb5-59325a1e757f
mon_initial_members = node1
mon_host = 192.168.157.132
public_network = 192.168.157.1/24

auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1024
filestore xattr use omap = true
osd pool default size = 2
osd pool default min size = 1
osd pool default pg num = 333
osd pool default pgp num = 333
osd crush chooseleaf type = 1

######################

二. 创建一个mon监视器

######################

为此集群创建密钥环、并生成监视器密钥

ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

生成管理员密钥环,生成 client.admin 用户创建管理集群的密钥并赋予访问权限

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

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

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

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

monmaptool --create --add node1 192.168.157.132 --fsid 4299abf0-4901-497a-9bb5-59325a1e757f  /etc/ceph/monmap

在监视器主机上分别创建数据目录。

mkdir -p /var/lib/ceph/mon/ceph-node1

chown -R ceph.ceph /var/lib/ceph/mon/ceph-node1

初始化Monitor的文件系统

ceph-mon --mkfs -i node1 --monmap /etc/ceph/monmap --keyring /etc/ceph/ceph.mon.keyring

检查Ceph 配置文件

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

touch /var/lib/ceph/mon/ceph-node1/done

启动Monitor:

ceph-mon --id node1
ssh node1
sudo ceph-disk prepare --cluster ceph --cluster-uuid a7f64266-0894-4f1e-a635-d0aeaca0e993 --fs-type ext4 /dev/hdd1

#############

三. 添加 OSD

#############

简单版ceph-disk:

ceph-disk prepare /dev/sdb

ceph-disk activate --mark-init systemd --mount /dev/sdb

详细:

uuidgen
4c0a02e2-e577-4778-b775-8b636926bb2d

创建OSD

ceph osd create 4c0a02e2-e577-4778-b775-8b636926bb2d

创建OSD目录

mkdir -p /var/lib/ceph/osd/ceph-0

改权限

chown ceph.ceph /var/lib/ceph/osd/ceph-1

格式化OSD磁盘

mkfs -t xfs /dev/vdb

挂载OSD磁盘

mount /dev/vdb /var/lib/ceph/osd/ceph-0/

初始化OSD

ceph-osd -i 0 --mkfs --mkkey --osd-uuid 4c0a02e2-e577-4778-b775-8b636926bb2d

如果报错: WARNING: max attr value size (1024) is smaller than osd_max_object_name_len (2048). Your backend filesystem appears to not support attrs large enough to handle the configured max rados name size. You may get unexpected ENAMETOOLONG errors on rados operations or buggy behavior
在ceph.conf加:

osd max object name len = 256 
osd max object namespace len = 64

注册OSD keyring

ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring

把此节点加入 CRUSH 图。

ceph osd crush add-bucket node1 host

把此 Ceph 节点放入 default 根下。

ceph osd crush move node1 root=default

把此 OSD 加入 CRUSH 图之后,它就能接收数据了。你也可以反编译 CRUSH 图、把此 OSD 加入设备列表、对应主机作为桶加入(如果它还不在 CRUSH 图里)、然后此设备作为主机的一个条目、分配权重、重新编译、注入集群

ceph osd crush add osd.0 1.0 host=node1

要让守护进程开机自启,必须创建一个空文件

sudo touch /var/lib/ceph/osd/ceph-0/sysvinit

启动osd

ceph-osd --id 0

##################

四 部署radosgw rgw

##################
3、创建keyring

ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring

4、修改文件权限

chown ceph:ceph /etc/ceph/ceph.client.radosgw.keyring

5、生成ceph-radosgw服务对应的用户和key

ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.rgw.node1 --gen-key

6、为用户添加访问权限

ceph-authtool -n client.rgw.node1 --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.client.radosgw.keyring

7、导入keyring到集群中

ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.rgw.node1 -i /etc/ceph/ceph.client.radosgw.keyring

8、配置ceph.conf

[client.rgw.node1]

host=node1

keyring=/etc/ceph/ceph.client.radosgw.keyring

log file=/var/log/radosgw/client.radosgw.gateway.log

rgw_s3_auth_use_keystone = False

rgw print continue = False

#rgw_frontends = civetweb port=8080

debug rgw = 0

9、创建日志目录并修改权限

mkdir -p /var/log/radosgw

chown ceph:ceph /var/log/radosgw

10、启动rgw

systemctl start ceph-radosgw@rgw.node1
或者:
radosgw -c /etc/ceph/ceph.conf -n client.rgw.node1
# 这里-n后面是配置文件ceph.conf里的[client.rgw.node1]

11、查看端口监听状态

[root@node1 ~]# netstat -antpu | grep 8080

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      13660/radosgw

12、设置rgw开机自动启动

[root@node1 ~]# systemctl enable ceph-radosgw@rgw.node1

Created symlink from /etc/systemd/system/ceph-radosgw.target.wants/ceph-radosgw@rgw.node1.service to /usr/lib/systemd/system/ceph-radosgw@.service.

13、查看7480的数据

curl http://127.0.0.1:7480
<?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>
展开阅读全文

没有更多推荐了,返回首页