CentOS6.5Ceph部署测试


1     概述

Ceph是一个分布式文件系统,在维持POSIX兼容性的同时加入了复制和容错功能。Ceph最大的特点是分布式的元数据服务器,通过CRUSH(Controlled Replication Under Scalable Hashing)这种拟算法来分配文件的location。Ceph的核心是RADOS(ReliableAutonomicDistributed 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-fuse -m monitor_ip:6789mount_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装在一个节点上,也可以把四个部分全都部署在同一个节点上。

2     环境准备

2.1    版本信息

本文档对应环境如下:

系统版本:CentOS release 6.5 (Final)

Linux c01 2.6.32-431.el6.x86_64

 

ceph软件版本:

ceph-0.80.5-0.el6.x86_64

ceph-deploy-1.5.10-0.noarch

ceph-0.81.0-5.el6.x86_64

ceph-fuse-0.80.5-0.el6.x86_64

 

两台服务器:

c01 192.168.11.111

c02 192.168.12.112

 

节点分布

MON节点:192.168.11.111 c01

MDS节点:192.168.11.111 c01

OSD0节点:192.168.12.112 c02

OSD1节点:192.168.12.112 c02

Client 其他Server

 

2.2    提前配置

ceph需要通过hostname进行通信,因此需要配置相同的/etc/hosts

除了client节点其他节点均需要ssh key互相认证

 

关闭selinux;关闭iptables或允许6789端口、配置ssh互相认证,配置hosts

/etc/init.d/iptablesstop &&chkconfig iptables off

sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config

setenforce0

3     部署Ceph集群

3.1   安装ceph-deploy

ceph-deploy为Ceph官方提供的安装部署工具,使用ceph-deploy的前提是配置统一hosts与ssh key互相认证。本次ceph-deploy安装在c01节点上。

#rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh http://ceph.com/rpm-firefly/el6/noarch/ceph-release-1-0.el6.noarch.rpm

yum install ceph-deploy -y

 

部署之前确保ceph每个节点没有ceph数据包(先清空之前所有的ceph数据,如果是新装不用执行此步骤,如果是重新部署的话也执行下面的命令),其中c01、c02为主机名

 [root@c01ceph]# ceph-deploy purgedata c01 c02 

 [root@c01ceph]# ceph-deploy forgetkeys

 [root@c01 ceph]#ceph-deploy purge c01 c02 

 

注:如果是新环境,没有任何数据的无需执行

 

3.2   批量安装ceph

在c01节点使用ceph-deploy工具向各个节点安装ceph

 

[root@c01 ceph]# ceph-deploy install c01 c02

 

(如果安装过程中由于网络原因中断,可以单独为某台服务器安装ceph-deploy install <hostname> 即可)

注:也可以纯手动安装ceph,安装过程如下:

yum cleanall

yum -yinstall wget

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -Uvh--replacepkgs epel-release-6*.rpm

yum -yinstall yum-plugin-priorities

rpm --importhttps://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc

rpm -Uvh--replacepkgs http://ceph.com/rpm-firefly/el6/noarch/ceph-release-1-0.el6.noarch.rpm

yum -yinstall ceph

ceph--version

[c01][DEBUG] ceph version 0.80.5 (38b73c67d375a2552d8ed67843c8a65c2c0feba6)

 

如果出现如下问题

[host-192-168-44-100][WARNIN]   file /etc/yum.repos.d/ceph.repo from installof ceph-release-1-0.el6.noarch conflicts with file from packageceph-release-1-0.el6.noarch

[host-192-168-44-100][ERROR ] RuntimeError:command returned non-zero exit status: 1

[ceph_deploy][ERROR ] RuntimeError: Failed toexecute command: rpm -Uvh --replacepkgshttp://ceph.com/rpm-firefly/el6/noarch/ceph-release-1-0.el6.noarch.rpm

则删除刚才安装的ceph-release包重新执行即可

rpm -e ceph-release

 

安装过程见附录

3.3       配置mon节点

3.3.1    创建mon节点

使用ceph-deploy new c01      (执行这条命令后c01都作为了monitor节点,多个mon节点可以在后面加入hostname多个实现互备如: ceph-deploynew c01 c02 c03)

[root@c01 ceph]# cd/etc/ceph/

[root@c01 ceph]# ceph-deploynew c01

[ceph_deploy.conf][DEBUG ] found configurationfile at: /root/.cephdeploy.conf

[ceph_deploy.cli][INFO  ] Invoked (1.5.10): /usr/bin/ceph-deploy newc01

[ceph_deploy.new][DEBUG ] Creating new clusternamed ceph

[ceph_deploy.new][DEBUG ] Resolving host c01

[ceph_deploy.new][DEBUG ] Monitor c01 at192.168.11.111

[ceph_deploy.new][INFO  ] making sure passwordless SSH succeeds

[ceph_deploy.new][DEBUG ] Monitor initialmembers are ['c01']

[ceph_deploy.new][DEBUG ] Monitor addrs are['192.168.11.111']

[ceph_deploy.new][DEBUG ] Creating a random monkey...

[ceph_deploy.new][DEBUG ] Writing initialconfig to ceph.conf...

[ceph_deploy.new][DEBUG ] Writing monitorkeyring to ceph.mon.keyring...

 

查看生成的配置

[root@c01 ceph]# ls

ceph.conf ceph.log  ceph.mon.keyrin

[root@c01 ceph]# cat ceph.conf

[global]

auth_service_required = cephx

filestore_xattr_use_omap = true

auth_client_required = cephx

auth_cluster_required = cephx

mon_host = 192.168.11.111

mon_initial_members = c01

fsid = 209c6414-a659-487e-b84e-22e1f6f29cd1

 

[root@c01 ceph]#

 

 

如果出现下列提示

[c01][WARNIN] Traceback (most recent calllast):

[c01][WARNIN]  File "/usr/bin/ceph", line 53, in <module>

[c01][WARNIN]     import argparse

[c01][WARNIN] ImportError: No module named argparse

[node1][ERROR ] RuntimeError: command returnednon-zero exit status: 1

[ceph_deploy][ERROR ] RuntimeError: Failed toexecute command: ceph --version

解决方法是:在报错的节点上执行安装python argparse模块

[root@c01 ceph]#yum install *argparse* -y

 

3.3.2    修改默认osd大小

编辑mon节点的ceph配置文件,把下面的配置放入ceph.conf中

如果只有1个osd节点那么下面2个配置都设置成1。否则设置osd pool default size = 2即可

[root@c01 ceph]# vim /etc/ceph/ceph.conf

osd pool default size = 1

osd pool default min size = 1

 

3.3.3    修改安全认证

为了更方便得让客户端挂载,使用none无需使用cephx认证。

[root@c01ceph]# vim /etc/ceph/ceph.conf

auth_service_required= none

auth_client_required= none

auth_cluster_required= none

authsupported = none

 

3.3.4    初始化mon节点

添加初始监控节点并收集密钥(新的ceph-deploy v1.1.3以上的版本需要此配置)。

 

[root@c01ceph]# ceph-deploy --overwrite-conf mon create-initial

[ceph_deploy.conf][DEBUG ] found configurationfile at: /root/.cephdeploy.conf

[ceph_deploy.cli][INFO  ] Invoked (1.5.10): /usr/bin/ceph-deploy--overwrite-conf mon create-initial

[ceph_deploy.mon][DEBUG ] Deploying mon,cluster ceph hosts c01

[ceph_deploy.mon][DEBUG ] detecting platformfor host c01 ...

[c01][DEBUG ] connected to host: c01

[c01][DEBUG ] detect platform information fromremote host

[c01][DEBUG ] detect machine type

[ceph_deploy.mon][INFO  ] distro info: CentOS 6.5 Final

[c01][DEBUG ] determining if provided host hassame hostname in remote

[c01][DEBUG ] get remote short hostname

[c01][DEBUG ] deploying mon to c01

[c01][DEBUG ] get remote short hostname

[c01][DEBUG ] remote hostname: c01

[c01][DEBUG ] write cluster configuration to/etc/ceph/{cluster}.conf

[c01][DEBUG ] create the mon path if it doesnot exist

[c01][DEBUG ] checking for done path:/var/lib/ceph/mon/ceph-c01/done

[c01][DEBUG ] done path does not exist:/var/lib/ceph/mon/ceph-c01/done

[c01][INFO ] creating keyring file: /var/lib/ceph/tmp/ceph-c01.mon.keyring

[c01][DEBUG ] create the monitor keyring file

[c01][INFO ] Running command: ceph-mon --cluster ceph --mkfs -i c01 --keyring/var/lib/ceph/tmp/ceph-c01.mon.keyring

[c01][DEBUG ] ceph-mon: mon.noname-a192.168.11.111:6789/0 is local, renaming to mon.c01

[c01][DEBUG ] ceph-mon: set fsid to28dc2c77-7e70-4fa5-965b-1d78ed72d18a

[c01][DEBUG ] ceph-mon: created monfs at/var/lib/ceph/mon/ceph-c01 for mon.c01

[c01][INFO ] unlinking keyring file /var/lib/ceph/tmp/ceph-c01.mon.keyring

[c01][DEBUG ] create a done file to avoidre-doing the mon deployment

[c01][DEBUG ] create the init path if it doesnot exist

[c01][DEBUG ] locating the `service`executable...

[c01][INFO ] Running command: /sbin/service ceph -c /etc/ceph/ceph.conf startmon.c01

[c01][DEBUG ] === mon.c01 ===

[c01][DEBUG ] Starting Ceph mon.c01 on c01...

[c01][DEBUG ] Starting ceph-create-keys onc01...

[c01][INFO ] Running command: ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.c01.asokmon_status

[c01][DEBUG ]********************************************************************************

[c01][DEBUG ] status for monitor: mon.c01

[c01][DEBUG ] {

[c01][DEBUG ]  "election_epoch": 2,

[c01][DEBUG ]  "extra_probe_peers": [],

[c01][DEBUG ]  "monmap": {

[c01][DEBUG ]     "created": "0.000000",

[c01][DEBUG ]     "epoch": 1,

[c01][DEBUG ]     "fsid":"28dc2c77-7e70-4fa5-965b-1d78ed72d18a",

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值