#############
一. 配置文件
#############
- 第一步需要生成一个uuid,命令uuidgen
uuidgen
4299abf0-4901-497a-9bb5-59325a1e757f
- 配置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 [email protected]
或者:
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 [email protected]
Created symlink from /etc/systemd/system/ceph-radosgw.target.wants/[email protected] to /usr/lib/systemd/system/[email protected].
13、查看7480的数据
curl http://127.0.0.1:7480
anonymous