Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7171008
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 服务器与存储

2015-11-30 21:27:17

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

[日期:2015-11-26] 来源:Linux社区  作者:oceanszf [字体:  ]

概述

Docs :

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           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

mount -t ceph 192.168.9.10:6789:/ /mnt/ceph
[17:07:39][root@ocean-lab ~]$ df -TH
Filesystem          Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg_oceani-lv_root
                    ext4    30G  7.7G  21G  28% /
tmpfs                tmpfs  111M    0  111M  0% /dev/shm
/dev/sda1            ext4  500M  94M  375M  21% /boot
192.168.9.10:/data2  nfs    30G  25G  4.0G  87% /mnt/log
192.168.9.10:6789:/  ceph  172G  5.4G  167G  4% /mnt/ceph

ceph-fuse [未测]
mon推荐有至少3个,假如挂掉一个、服务也能正常使用
ceph-fuse -m 192.168.9.10:6789,192.168.9.20:6789 /mnt/ceph

 

增加OSD

/master/rados/operations/add-or-rm-osds/

这里在agent01新增硬盘
[15:58:07][root@agent01 ~]$ 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.2]
host = agent01
devs = /dev/sdc1

[osd.3]
host = agent01
devs = /dev/sdc2


master01 ~ $ cd /etc/ceph; scp keyring.client.admin  agent01:/etc/ceph/
以下操作都在新增OSD节点上操作
初始化新增osd节点,需要在新增的节点机器上运行,这里在10.2.180.180上运行
ceph-osd -i 2 --mkfs --mkkey;
ceph-osd -i 3 --mkfs --mkkey;

加入节点
ceph auth add osd.2 osd 'allow *' mon 'allow rwx' -i /etc/ceph/keyring.osd.2;
ceph auth add osd.3 osd 'allow *' mon 'allow rwx' -i /etc/ceph/keyring.osd.3;
ceph osd create #added key for osd.2
ceph osd create #added key for osd.3
ceph osd rm osd_num    # 删除osd

/etc/init.d/ceph -a start osd.2 #启动osd.2
/etc/init.d/ceph -a start osd.3 #启动osd.3
/etc/init.d/ceph -a start osd  #启动所有osd
ceph -s #查看状态
ceph auth list #能查看所有认证节点

 

增加MDS


增加agent01 MDS到节点
将以下配置增加到配置文件,并同步到节点
[mds.1]
host = agent01
以下操作都在新增OSD节点上操作
生成key
ceph-authtool --create-keyring --gen-key -n mds.1 /etc/ceph/keyring.mds.1
加入认证
ceph auth add mds.1 osd 'allow *' mon 'allow rwx' mds 'allow' -i /etc/ceph/keyring.mds.1
启动新增MDS
/etc/init.d/ceph -a start mds.1

查看mds

^_^[10:06:51][root@master01 ~]# ceph mds stat

e50: 1/1/1 up {0=0=up:active}, 1 up:standby

 

 

增加MON

/master/rados/operations/add-or-rm-mons/

增加agent01 MDS到节点
将以下配置增加到配置文件,并同步到节点
[mon.1]
host = agent01
mon addr = 192.168.9.20:6789

导出key及mon map
mkdir /tmp/ceph
ceph auth get mon. -o /tmp/ceph/keyring.mon
ceph mon getmap -o /tmp/ceph/monmap

初始化新mon
ceph-mon -i 1 --mkfs --monmap /tmp/ceph/monmap --keyring /tmp/ceph/keyring.mon

启动新mon
ceph-mon -i 1 --public-addr 192.168.9.20:6789

加入quorum votes
ceph mon add 1 192.168.9.20:6789


查看mon

^_^[10:13:44][root@master01 ~]#ceph mon  stat

e2: 2 mons at {0=192.168.9.10:6789/0,1=192.168.9.20:6789/0}, election epoch 2, quorum 0,1 0,1

 

 

 

FAQ:

^_^[11:19:10][root@master01 ~]#/etc/init.d/ceph  -a start

=== mon.0 ===

Starting Ceph mon.0 on master01...already running

=== mds.0 ===

Starting Ceph mds.0 on master01...already running

=== osd.0 ===

Mounting xfs on master01:/ceph/osd0

Error ENOENT: osd.0 does not exist.  create it before updating the crush map

failed: 'timeout 30 /usr/bin/ceph -c /etc/ceph/ceph.conf --name=osd.0 --keyring=/etc/ceph/keyring.osd.0 osd crush create-or-move -- 0 0.04 host=master01 root=default'

@_@[11:20:59][root@master01 ~]#ceph osd create

0

@_@[11:21:11][root@master01 ~]#ceph osd create

1

^_^[11:21:20][root@master01 ~]#/etc/init.d/ceph start osd.1

=== osd.1 ===

Mounting xfs on master01:/ceph/osd1

create-or-move updated item name 'osd.1' weight 0.04 at location {host=master01,root=default} to crush map

Starting Ceph osd.1 on master01...

starting osd.1 at :/0 osd_data /ceph/osd1 /ceph/osd1/journal

在 CentOS 7.1 上安装分布式存储系统 Ceph  

Ceph环境配置文档 PDF  

CentOS 6.3上部署Ceph  

Ceph的安装过程  

HOWTO Install Ceph On FC12, FC上安装Ceph分布式文件系统  

Ceph 文件系统安装  

CentOS 6.2 64位上安装Ceph 0.47.2  

 12.04 Ceph分布式文件系统  

 14上安装 Ceph 0.24  

Ceph 的详细介绍
Ceph 的下载地址

本文永久更新链接地址

阅读(1467) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~