您的位置:首页 > 运维架构 > Linux

centos 6.4下ceph-0.72的安装

2014-04-11 21:32 447 查看

背景:

ceph是一个分布式存储系统,基于rados存储集群,可以对外提供块存储,对象存储以及文件系统。并且ceph的客户端也已经继承在linux2.6.34及以后的版本中。ceph已经越来越多的使用在各种项目中,在openstack中,已经支持使用ceph作为存储后端。

ceph架构:

ceph的介绍非常多了,这里仅仅简单介绍下ceph的架构。搭建一个系统时,如果对其架构本身有一个大致的了解,会带来很大的好处。ceph中的节点分3中,mon(监控节点),osd(存储节点),mds(元数据节点)。其中mon,osd节点在ceph组建时是必须的,mds节点则是在使用文件系统服务时才需要的。
mon:负责监控集群的信息,维护整个集群的视图,以及协调osd节点pg的生成。
osd:管理存储业务,以及osd之间维护的心跳,给mon节点上报集群的状态变化。
mds:元数据管理,保存了全部集群中各个文件的信息,供给linux上cephfs使用。

搭建的准备:

首先需要准备centos6.4系统,然后需要配置ceph的yum源。将下面的地址写入/etc/yum.repo.d/ceph.repo中

[ceph-extras]
name=Ceph Extras Packages
baseurl=http://ceph.com/packages/ceph-extras/rpm/{distro}/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

[ceph-extras-noarch]
name=Ceph Extras noarch
baseurl=http://ceph.com/packages/ceph-extras/rpm/{distro}/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

[ceph-extras-source]
name=Ceph Extras Sources
baseurl=http://ceph.com/packages/ceph-extras/rpm/{distro}/SRPMS
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc


yum install ceph -y 就可以了 。

安装mon:

ceph的服务需要经过mon节点来提供,所以优先安装mon节点。在/etc/ceph/ceph.conf中写入下面的配置信息

[global]
fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
mon initial members = {node1}
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.{node1}]
host = {node1}
mon addr = {192.168.0.1}:6789


简单介绍下内容

集群的信息
fsid :集群uuid
mon initial members:初始化的节点主机名
osd pool default size:存储节点复制的副本数量
auth cluster required:集群需要的验证,这里使用cephx来验证。

现在开始执行命令:
生成mon的秘钥

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

给admin用户生成秘钥

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

将用户秘钥放入mon秘钥文件中

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

生成mon的map文件

monmaptool --create --add node1 192.168.0.1 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap

给mon建立一个文件夹

mkdir /var/lib/ceph/mon/ceph-{node1}

初始化mon的信息

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

现在已经安装完成了执行命令启动mon

/etc/init.d/ceph start mon.node1


输入 ceph -s 查看集群状态。可以看见集群在ERR状态,原因是只有mon没有osd节点集群并不能提供服务。

cluster a7f64266-0894-4f1e-a635-d0aeaca0e993
health HEALTH_ERR 192 pgs stuck inactive; 192 pgs stuck unclean; no osds
monmap e1: 1 mons at {node1=192.168.0.1:6789/0}, election epoch 1, quorum 0 node1
osdmap e1: 0 osds: 0 up, 0 in
pgmap v2: 192 pgs, 3 pools, 0 bytes data, 0 objects
0 kB used, 0 kB / 0 kB avail
192 creating


安装osd:

在osd节点上,需要先把mon节点上/etc/ceph/ceph.conf, 以及/etc/ceph/ceph.client.admin.keyring 复制到相应的目录。
这样在osd节点上 ,也可以使用ceph -s 来查看系统情况。

创建一个osd节点,会有返回值,从0开始依次增加,需要记住这个值,这是osd-number。这里就以osd-number的名字0为例

ceph osd create

创建osd的数据目录

mkdir /var/lib/ceph/osd/ceph-{0}

如果想使用单独的磁盘来做osd的存储,就需要将磁盘先格式化文件系统,目前ceph只支持ext4,xfs,brtfs这3个系统。然后将磁盘mount到ceph的数据目录下。

sudo mkfs -t {ext4} /dev/{hdd}
sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{0}

ceph的日志可以使用文件,也可以使用一个块设备,如ssd。
现在需要在/etc/ceph/ceph.conf文件中增加下面的配置

[osd.0]
osd journal = /dev/sde 或者 文件的地址 /var/lib/ceph/osd/ceph-{0}/journal

然后开始初始化ceph的信息

ceph-osd -i {0} --mkfs --mkkey --mkjournal

现在osd已经安装完成,然后需要对osd进行配置,使其加入到mon的集群中。
往mon注册osd.{0}用户

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

好了 可以启动ceph了
/etc/init.d/ceph start osd.{0}


现在可以看见ceph集群搭建完成了。

ceph的简单使用:

来简单的使用ceph创建个卷验证下集群。
ceph的客户端命令 rbd
创建一个100k的卷   

rbd create --size 100 test


查看该卷

rbd list
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ceph 分布式