CentOS 6.8安装Ceph

机器规划

IP主机名角色
10.101.0.1ceph01mon admin mds
10.101.0.2ceph02ods
10.101.0.3ceph03ods
10.101.0.4ceph04ods
10.101.0.5clientclient(挂载点)

考虑到高可用性,生产集群应该至少有 3 个监视器。

在每台机添加hosts

10.101.0.1 ceph01
10.101.0.2 ceph02
10.101.0.3 ceph03
10.101.0.4 ceph04

关闭防火墙和SELINUX

每个节点上创建ceph用户并添加sudo权限

useradd ceph
echo "ceph ALL = (root) NOPASSWD:ALL" >/etc/sudoers.d/ceph
echo "Defaults:ceph |requiretty" >/etc/sudoers.d/ceph

在管理节点ceph01上生成ceph用户的ssh公钥并实现免密码登录其他主机

1.所有机器安装epel和ceph源

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

rpm -ivh https://download.ceph.com/rpm-hammer/el6/noarch/ceph-release-1-1.el6.noarch.rpm

2.在管理节点上安装ceph-deploy(ceph01节点)

yum install -y ceph-deploy

3.在ceph集群安装

部署过程中有错误可以查看日志/var/log/ceph/

3.1切换到ceph用户执行(ceph01节点)

mkdir /home/ceph/ceph-cluster
cd /home/ceph/ceph-cluster

生成集群配置文件
ceph-deploy new ceph01

#上面的命令会生成3个文件
ceph.conf    #集群配置文件,此配置可按需修改或不修改也行
ceph.log    #日志文件
ceph.mon.keyring #keyring文件,集群验证用

3.2安装ceph(ceph01节点)

ceph-deploy install ceph01 ceph02 ceph03 ceph04 --repo-url=https://download.ceph.com/rpm-hammer/el6/
#此命令将会按顺序在3台机上安装ceph

3.3创建并初始化监控节点(ceph01)

ceph-deploy mon create-initial
#执行此命令后会初始化mon节点,ceph.conf文件中声明了mon节点等信息

3.4添加数据节点(ceph02,ceph03,ceph04)

挂载好要使用的磁盘
mount /dev/sdb1 /data/osd0(另外两个节点类似,不过是osd1,osd2。名称可自定义)

3.5

在管理节点初始化磁盘(ceph01)

ceph-deploy disk zap ceph01:sdb ceph02:sdb ceph03:sdb

在管理节点准备OSD(ceph01)

ceph-deploy osd prepare ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2

3.6激活OSD(ceph01)

ceph-deploy osd activate ceph01:/data/osd0 ceph02:/data/osd1 ceph03:/data/osd2

3.7分发配置和密钥

使用ceph-deploy命令将配置文件和管理密钥复制到管理节点和你的Ceph节点。

ceph-deploy admin ceph01 ceph02 ceph03

3.8查看集群状态

sudo ceph health #集群健康状态,返回OK状态
sudo ceph -s #
sudo ceph status #集群状态

4.安装、挂载cephfs

4.1创建mds(ceph01节点)

ceph-deploy mds create ceph04 
#如果报如下错误
RuntimeError: config file /etc/ceph/ceph.conf exists with different content; use --overwrite-conf to overwrite
加上--overwrite-conf参数
ceph-deploy --overwrite-conf mds create ceph04

查看mds进程
netstat -tnlp | grep mds
tcp 0 0 172.16.100.5:6804 0.0.0.0:* LISTEN 12787/ceph-mds

4.2创建pool(ceph01节点)

查看pool
ceph osd lspools
新创建的ceph集群默认只有rdb一个pool。这时我们需要创建新的pool

创建两个存储池。MDS需要使用两个pool,一个pool用来存储数据,一个pool用来存储元数据。

ceph osd pool create fs_data 32  #这里的32指的是PG组
ceph osd pool create fs_metadata 32
查看pool
    rados lspools

4.3创建Cephfs(ceph01节点)

ceph fs new cephfs fs_metadata fs_data
#查看
    ceph fs ls
#查看MDS状态
ceph mds stat

4.4在client节点挂载cephfs(client节点)

Client挂载方式有两种:内核kernal方式和fuse方式。(内核挂载方式需要2.6.34及其以后的版本才支持)

使用fuse方式挂载(注意:此方式读写效率很低)

安装ceph-fuse
yum install -y ceph-fuse

复制配置文件
将ceph配置文件ceph.conf从管理节点copy到client节点
scp ceph@ceph01:/etc/ceph/ceph.conf /etc/ceph/

复制密钥
将ceph的ceph.client.admin.keyring从管理节点copy到client节点
scp ceph@ceph01:/etc/ceph/ceph.client.admin.keyring /etc/ceph/

查看ceph授权
ceph auth list

创建挂载目录
mkdir /cephfs

挂载到指定目录
将ceph挂载到/cephfs
ceph-fuse -m ceph01:6789 /cephfs(可以挂在多个mon节点保证高可用,ip:6789,ip:6789)

5.rbd块设备映射

使用rbd块设备方式挂载(读写效率高),但需要加载rbd内核模块,2.6.34之前的版本都没有该模块,要把系统内核升级到2.6.34或者更新。

创建一个pool

ceph osd pool create press 100

设置pool 的pgp_num

ceph osd pool set press pgp_num 100

查看创建的pool

ceph osd lspools

创建一个100G 名为 image 镜像

rbd create -p press --size 100000 image

查看镜像

rbd -p press info image

客户端块存储挂载:

rbd -p press map image
mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt/rbd

卸载map镜像

umount /mnt/rbd
rbd unmap /dev/rbd0

参考文档:

http://www.cnblogs.com/keithtt/p/6410288.html

http://blog.csdn.net/yhao2014/article/details/51394815

https://www.cnblogs.com/jicki/p/5844592.html