Ceph 单/多节点 安装小结 Power by CentOS 6.x

Ceph是一个分布式文件系统,在维持POSIX兼容性的同时加入了复制和容错功能。Ceph最大的特点是分布式的元数据服务器,通过CRUSH(Controlled Replication Under Scalable Hashing)这种拟算法来分配文件的location。Ceph的核心是RADOS(ReliableAutonomic Distributed Object Store),一个对象集群存储,本身提供对象的高可用、错误检测和修复功能。

Ceph生态系统架构可以划分为四部分:

client:客户端(数据用户)。client向外export出一个POSIX文件系统接口,供应用程序调用,并连接mon/mds/osd,进行元数据及数据交互;最原始的client使用FUSE来实现的,现在写到内核里面了,需要编译一个ceph.ko内核模块才能使用。
mon:集群监视器,其对应的daemon程序为cmon(Ceph Monitor)。mon监视和管理整个集群,对客户端export出一个网络文件系统,客户端可以通过mount -t ceph monitor_ip:/ mount_point命令来挂载Ceph文件系统。根据官方的说法,3个mon可以保证集群的可靠性。
mds:元数据服务器,其对应的daemon程序为cmds(Ceph Metadata Server)。Ceph里可以有多个MDS组成分布式元数据服务器集群,就会涉及到Ceph中动态目录分割来进行负载均衡。
osd:对象存储集群,其对应的daemon程序为cosd(Ceph Object StorageDevice)。osd将本地文件系统封装一层,对外提供对象存储的接口,将数据和元数据作为对象存储。这里本地的文件系统可以是ext2/3,但Ceph认为这些文件系统并不能适应osd特殊的访问模式,它们之前自己实现了ebofs,而现在Ceph转用btrfs。

Ceph支持成百上千甚至更多的节点,以上四个部分最好分布在不同的节点上。当然,对于基本的测试,可以把mon和mds装在一个节点上,也可以把四个部分全都部署在同一个节点上。


环境
hostname    ip            role          filesystem  release
master01    192.168.9.10  mon,mds,osd    xfs          CentOS release 6.7[2.6.32-573.8.1.el6.x86_64]
agent01    192.168.9.20  osd,[mon,mds]  xfs          CentOS release 6.7[2.6.32-573.8.1.el6.x86_64]
ocean-lab  192.168.9.70  client        xfs          CentOS release 6.7[4.3.0-1.el6.elrepo.x86_64]

版本
^_^[16:26:11][root@master01 ~]#ceph -v
ceph version 0.80.5 (38b73c67d375a2552d8ed67843c8a65c2c0feba6)


Repo
Epel
yum install ceph ceph-common Python-ceph
yum install ceph-fuse        # for client

host 解析
192.168.9.10    master01.ocean.org  master01
192.168.9.20    agent01.ocean.org    agent01
192.168.9.70    ocean-lab.ocean.org  ocean-lab


Ceph 配置
^_^[16:26:15][root@master01 ~]#cat /etc/ceph/ceph.conf
[global]
public network = 192.168.9.0/24
pid file = /var/run/ceph/$name.pid
auth cluster required = none
auth service required = none
auth client required = none
keyring = /etc/ceph/keyring.$name
osd pool default size = 1
osd pool default min size = 1
osd pool default crush rule = 0
osd crush chooseleaf type = 1

[mon]
mon data = /var/lib/ceph/mon/$name
mon clock drift allowed = .15
keyring = /etc/ceph/keyring.$name

[mon.0]
host = master01
mon addr = 192.168.9.10:6789

[mds]
keyring = /etc/ceph/keyring.$name

[mds.0]
host = master01

[osd]
osd data = /ceph/osd$id
osd recovery max active = 5
osd mkfs type = xfs
osd journal = /ceph/osd$id/journal
osd journal size = 1000
keyring = /etc/ceph/keyring.$name

[osd.0]
host = master01
devs = /dev/sdc1
   
[osd.1]
host = master01
devs = /dev/sdc2


启动ceph(在mon上执行)
初始化:
mkcephfs -a -c /etc/ceph/ceph.conf
/etc/init.d/ceph -a start

执行健康检查
ceph health            #也可以使用ceph -s命令查看状态
如果返回的是HEALTH_OK,则代表成功!


挂载ceph
mount
升级系统内核
kernel 2.6.34以前的版本是没有Module rbd的,把系统内核版本升级到最新
rpm --import
rpm -Uvh
yum --enablerepo=elrepo-kernel install kernel-ml  -y

安装完内核后修改/etc/grub.conf配置文件使
修改配置文件中的 Default=1 to Default=0

验证内核支持
#modprobe -l|grep ceph
kernel/fs/ceph/ceph.ko
kernel/net/ceph/libceph.ko
#modprobe  ceph
 
机器重启后生效 init 6

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/217d7199899b5d2c97cc9a413ad1afa6.html