** 本文由个人原创出品,51cto博客首发,转载请注明出处。**

本文档介绍Ceph存储手动部署过程,此处介绍Ceph无认证方式部署,适用于内部环境部署和使用Ceph。

一.部署环境介绍

1.硬件环境:

ceph01: 10.10.10.11 ceph02: 10.10.10.12 ceph03: 10.10.10.13

2.软件环境

操作系统: CentOS7.6 Ceph存储:jewel (10.2.10)

二.基础环境准备

1.安装CentOS7.6操作系统

2.配置操作系统名称、网络、hosts文件、关闭Selinux、关闭防火墙

三.安装Ceph

1.安装Ceph源

# yum install centos-release-ceph-jewel

2.安装Ceph

# yum install ceph

四.初始化Ceph第一个MON节点

1.生成ceph集群fsid

# uuidgen

2.编辑ceph配置文件,文件位置和内容如下:

# vim /etc/ceph/ceph.conf

[global]

auth cluster required = none auth service required = none auth client required = none

fsid = a2efc66d-fd3f-464f-8098-c43d63b6f989

log file = /var/log/ceph/$name.log pid file = /var/run/ceph/$name.pid

osd pool default size = 3 osd pool default min size = 2 osd pool default pg num = 128 osd pool default pgp num = 128

# public network = 10.10.20.0/24 # cluster network = 10.10.30.0/24

mon osd full ratio = .85 mon osd nearfull ratio = .70

[mon] mon data = /ceph/mondata/mon$host

[mon.ceph01] host = ceph01 mon addr = 10.10.10.11:5000

[osd] osd data = /data/osd$id osd journal = /ceph/journal/osd$id/journal osd journal size = 10240 osd mkfs type = xfs osd mkfs options xfs = -f osd mount options xfs = rw,noatime

注明: (1)fsid需要替换为你在第一步生成的id (2)ceph存储默认mon服务端口为6789,此处修改为5000 (3)mon和osd相关数据存储目录也做了修改,需注意

3.生成monitor map:

# monmaptool --create --add ceph01 10.10.10.11:5000 --fsid a2efc66d-fd3f-464f-8098-c43d63b6f989 /tmp/monmap

4.创建mon数据存储目录:

# mkdir -p /ceph/mondata

5.生成第一个monitor守护进程相关文件:

# ceph-mon --mkfs -i ceph01 --monmap /tmp/monmap

6.修改ceph目录属主为ceph

# chown -R ceph.ceph /ceph

7.启动ceph存储mon守护进程,并添加开机自启动:

# systemctl start ceph-mon@ceph01 # systemctl enable ceph-mon@ceph01

五.添加Ceph Mon节点

1.修改Ceph配置文件,添加新的Mon节点信息,并同步该配置文件到Ceph集群其他节点上

# vim /etc/ceph/ceph.conf 添加如下内容:

[mon.ceph02] host = ceph02 mon addr = 10.10.10.12:5000

2.获取ceph集群monmap:

# ceph mon getmap -o /tmp/monmap

3.创建mon数据存储目录:

# mkdir -p /ceph/mondata

4.生成第二个monitor守护进程相关文件:

# ceph-mon --mkfs -i ceph02 --monmap /tmp/monmap

5.添加新的Mon节点到集群中

# ceph mon add ceph02 10.10.10.12:5000

6.修改ceph目录属主为ceph

# chown -R ceph.ceph /ceph

7.启动ceph存储mon守护进程,并添加开机自启动:

# systemctl start ceph-mon@ceph02 # systemctl enable ceph-mon@ceph02

六.添加Ceph OSD节点

OSD节点用于存储Ceph集群数据,建议每块硬盘启用一个OSD服务,同时每个OSD服务包括journal数据和对象数据,此处将这两种数据放在了同一块硬盘的不同分区上。

1.生成OSD ID

# ceph osd create

注明:正常情况下,第一个osd服务的ID应该为0,下面以添加osd0为例介绍。

2.编辑ceph配置文件,添加新的Osd节点信息,并同步该配置文件到Ceph集群其他节点上

[osd.0] host = ceph01 devs = /dev/sdb1

注明:此处sdb1为journal数据存储分区

3.创建osd数据存储相关目录:

# mkdir -p /var/lib/ceph/osd/ceph-0 # mkdir -p /ceph/journal/osd0 # mkdir -p /data/osd0

4.格式化用于osd存储的磁盘分区

# mkfs.xfs -f /dev/sdb1 # mkfs.xfs -f /dev/sdb2

注明:sdb1为journal数据存储分区,sdb2为对象数据存储分区

5.挂载用于osd存储的磁盘分区,并添加开机自动挂载

# mount /dev/sdb1 /ceph/journal/osd0 # mount /dev/sdb2 /data/osd0 # echo '/dev/sdb1 /ceph/journal/osd0 xfs defaults 0 0' >> /etc/fstab # echo '/dev/sdb2 /data/osd0 xfs defaults 0 0' >> /etc/fstab

6.生成osd服务相关文件

# ceph-osd -i 0 --mkfs --mkkey # ceph auth add osd.0 osd 'allow *' mon 'allow rwx' -i /data/osd0/keyring

7.添加osd到ceph集群中

# ceph osd crush add osd.0 1.0 root=default

注明:1.0为该osd服务在ceph存储中存储数据的权重,磁盘空间越大,相应的权重也应该越高,该值需根据实际磁盘容量调整。

8.修改ceph目录属主为ceph

# chown -R ceph.ceph /ceph # chown -R ceph.ceph /data

9.启动ceph存储osd守护进程,并添加开机自启动:

# systemctl enable ceph-osd@0 # systemctl start ceph-osd@0

10.重复以上步骤,添加更多的osd存储节点。

11.查看Ceph存储状态 # ceph -s

本人负责成都征天科技有限公司云计算相关产品的研发,征天科技致力于为企业和个人提供专业的云计算IaaS和PaaS层产品和服务,官网地址:www.tjiyun.com 欢迎访问。如您有任何疑问,欢迎与我们联系,微信号 ztkj_tjiyun