文档章节

ceph0.80安装及使用(CentOS7/ceph-deploy)

fkkeee
 fkkeee
发布于 2014/09/22 18:03
字数 1227
阅读 6500
收藏 10

    Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。详见:http://www.oschina.net/p/ceph

    目前大部分部署ceph基本都是在Ubuntu,因为它的内核默认打开了Ceph_fs。选择CentOS7(默认文件系统是XFS,而不是EXT4)作为部署平台时则需要留意更多的信息,比如是用客户端加载ceph文件系统时。

    看过不少网上的文章,大都不太适合0.80,或是可被省略的步骤。比如配置ceph.conf。所以特意做了几遍的安装,总结此文。另外吐嘈下Redhat,收购了Ceph 所在的公司 Inktank还发布了自己的版本($1000/cluster),居然不在最新的内核中将 Ceph_fs 打开,导致很多人直接倒向Ubuntu。

一、准备主机环境:

主机名 IP

OS
ceph0 10.9.16.96 MON,        MDS CentOS7
ceph1 10.9.16.97 MON,OSD CentOS7
ceph2 10.9.16.98           OSD,MDS CentOS7
ceph3 10.9.16.99           OSD,MDS CentOS7
ceph4 10.9.16.100 MON CentOS7
client0 10.9.16.89 client CentOS7(内核3.16.2)
client1 10.9.16.95 client Ubuntu14.04

部署建议说明:

MON节点建议使用3个,OSD数据节点最好与操作系统分开以提高性能,有至少两个千兆网卡(这里只显示集群内的IP,客户端访问IP略)


二、准备工作(注:用ceph-deploy可直接安装ceph,也可以用yum另行安装)

  1. 确认每台机器的主机名正确(CentOS7中,只要更改/etc/hostname即可,比旧版本方便)

  2. 每台机器上加入对应的 IP/主机名到/etc/hosts;

  3. 每台机器使用 ssh-copy-id 完成这些服务器之间免ssh密码登录;(发现ansible好用了)

  4. 关闭防火墙(systemctl stop firewalld.service)或打开 6789/6800~6900端口;

  5. 编辑/etc/ntp.conf,开启时间服务同步时间;(crontab/ntpdate不靠谱,不另作说明)

  6. 确认已经配置epel/remi的 repo软件包;在client0上配置elrepo软件包以便yum升级内核

  7. 在所有的OSD服务器上,初始化目录,比如ceph1建立文件夹 /var/local/osd1,ceph2上对应/var/local/osd2


三、开始安装

(以下非特别说明,都是在ceph0上操作)

  1. 生成MON信息:ceph-deploy new ceph{0,1,4}

  2. 安装ceph:ceph-deploy install ceph0 ceph1 ceph2 ceph3 ceph4(注:如果已经用yum在每台机器上安装了ceph,这步可省略)

  3. 生成keys:ceph-deploy --overwrite-conf mon create-initial

  4. 准备OSD服务器:ceph-deploy --overwrite-conf osd prepare ceph1:/var/local/osd1 ceph2:/var/local/osd2 ceph3:/var/local/osd3

  5. 激活OSD:ceph-deploy osd activate ceph1:/var/local/osd1 ceph2:/var/local/osd2 ceph3:/var/local/osd3

  6. 复制key到各个节点:ceph-deploy admin ceph0 ceph1 ceph2 ceph3 ceph4

  7. 检查是否ok:ceph health。

  8. 安装MDS节点:ceph-deploy mds create ceph0 ceph2 ceph3

检查状态:

  1. [root@ceph0 ~]# ceph -s
        cluster 9ddc0226-574d-4e8e-8ff4-bbe9cd838e21
         health HEALTH_OK
         monmap e1: 2 mons at {ceph0=10.9.16.96:6789/0,ceph1=10.9.16.97:6789/0,ceph4=10.9.16.100:6789/0}, election epoch 4, quorum 0,1 ceph0,ceph1
         mdsmap e5: 1/1/1 up {0=ceph0=up:active}, 1 up:standby
         osdmap e13: 3 osds: 3 up, 3 in
          pgmap v6312: 192 pgs, 3 pools, 1075 MB data, 512 objects
                21671 MB used, 32082 MB / 53754 MB avail
                     192 active+clean

四、挂载问题:

client0的CentOS7默认没有开启ceph_fs的内核,需要更改内核,这里直接用yum更新(可以手工编译):

yum --enablerepo=elrepo-kernel install kernel-ml
grub2-set-default 0
mkdir /mnt/cephfs
mount -t ceph 10.9.16.96:6789,10.9.16.97:6789:/ /mnt/cephfs -o name=admin,secret=AQDnDBhUWGS6GhAARV0CjHB*******Y1LQzQ==
#这里的密钥,是 ceph.client.admin.keyring 中的内容。

#以下是 /etc/fstab 的自动加载内容:
10.9.16.96:6789,10.9.16.97:6789:/       /mnt/ceph       ceph    name=admin,secret=AQDnDBhUWGS6GhAARV0CjHB*******Y1LQzQ==,noatime      0       0

用Ubuntu14.04的命令是一样的,加载。

在复制文件时,用ceph -s可以实时查看到底下有一个文件读/写速度,如:client io 12515 kB/s wr, 3 op/s

不过这个读写速度是ceph内部(包括不同服务器之间的复制)的速度,而不是单纯客户端到服务器商的速度。

看看是不是已经正常用了。


五、安装结语:

  1. 并不是与网上的大多数教程写的那样一定要编辑 ceph.conf 文件。而应该是在特定需求环境下才去改。

  2. 要配置集群内网和访问外网的网络,以提高网络负载效率和可能的DDOS,可把下面的选项加到ceph.conf里的[global]段下。

    [global]
    public network {public-network-ip-address/netmask}
    cluster network {enter cluster-network-ip-address/netmask}
  3. ceph的osd journal size默认值是0,所以你得在ceph.conf里设置,日志尺寸应该至少2倍于 filestore min sync interval的值和预计吞吐量的乘积:osd journal size = {2 * (expected throughput * filestore min sync interval)}例如:osd journal size = 10000(是10G)

  4. 元变量将展开为实际的集群名和进程名,例如如果集群名是ceph(默认值),你可以用下面的命令检索osd.0的配置:ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less

  5. 使用其他端口加载方法:mount.ceph monhost1:7000,monhost2:7000,monhost3:7000:/ /mnt/foo


其他内容(如:增加/删除节点,块设备等,后续再写)

© 著作权归作者所有

fkkeee

fkkeee

粉丝 8
博文 4
码字总数 2251
作品 0
深圳
技术主管
私信 提问
加载中

评论(4)

韶纥
韶纥

引用来自“taiwanlin”的评论

您好,我在 三-5.激活OSD的步驟時,跑了很久,最後遇到error:
[WARNIN] ceph-disk: Error: ceph osd create failed: Command '/usr/bin/ceph' returned non-zero exit status 1:
[ERROR ] RuntimeError: command returned non-zero exit status: 1
[ERROR ] RuntimeError: Failed to execute command: ceph-disk -v activate --mark-init sysvinit --mount /var/local/osd0
請問有什麼設定需要修改的嗎?謝謝0
我也遇到了类似的问题,查看网上说好像是monitor的keyring有问题,但是我按照网上修改后还是出错。你后来有解决这个问题吗
fkkeee
fkkeee

引用来自“langyxxl”的评论

osd journal size = {2 * (expected throughput * filestore min sync interval)}
这里应该是filestore max sync interval
这个参数是有争论,我再找找资料。
langyxxl
langyxxl
osd journal size = {2 * (expected throughput * filestore min sync interval)}
这里应该是filestore max sync interval
taiwanlin
taiwanlin
您好,我在 三-5.激活OSD的步驟時,跑了很久,最後遇到error:
[WARNIN] ceph-disk: Error: ceph osd create failed: Command '/usr/bin/ceph' returned non-zero exit status 1:
[ERROR ] RuntimeError: command returned non-zero exit status: 1
[ERROR ] RuntimeError: Failed to execute command: ceph-disk -v activate --mark-init sysvinit --mount /var/local/osd0
請問有什麼設定需要修改的嗎?謝謝0
vm-centos7-安装ceph-deploy多节点部署ceph

用Vmware虚拟机新建4台机进行实验,主要是为了对ceph有直观的认识。 一、 准备5台主机 IP地址 主机名(Hostname) 192.168.xxx.xxx admin-node (该主机用于管理,后续的ceph-deploy工具都在该...

JennerLuo
2016/04/06
619
0
centos7快速部署ceph

1、机器: 10.39.3.22-26 2.优化 tcp参数优化 ntp时间同步配置 requiretty准备 执行命令visudo修改suoders文件: 1. 注释Defaults requiretty Defaults requiretty修改为 #Defaults requiret...

Wilson9527
2017/04/21
0
0
CentOS7下安装Ceph供Kubernetes使用

CentOS7下安装Ceph供Kubernetes使用 [TOC] 1. 环境说明 系统:CentOS7,一个非系统分区分配给ceph docker:1.13.1 kubernetes:1.11.2 ceph:luminous 2. Ceph部署准备 2.1 节点规划 监控节点...

ygqygq2
2018/08/20
0
0
Ceph入门----CentOS7部署ceph三节点分布式存储系统

1.Ceph集群环境 使用3台虚拟机,包括其中1个admin节点,三台虚拟机同时承担3个monitor节点和3个osd节点 操作系统采用CentOS Minimal 7 下载地址:http://124.205.69.134/files/4128000005F9F...

三石头
2017/09/20
0
0
企业私有云之共享存储ceph在centos7安装与应用

构建云设施,存储是一个重要组件,所以本文主要介绍一下我这里如何使用ceph的。 云软件选择openstack,版本是Mitaka,部署系统是centos 7.1,ceph版本是10.2.2. 选择ceph的原因是,免费、开源...

dl528888
2016/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java版spring cloud+spring boot+redis多租户社交电子商务平台(五)springboot整合 beatlsql

Spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求...

sccspuercode
21分钟前
3
0
SSM MySql数据导出到Excel

语言:java 框架:SSM 工程:maven 工具类:ExcelUtils.java 工具类下载地址:https://download.csdn.net/download/ledzcl/10234291 备注:本下载地址来源CSDN的dedzcl的博客(连接:https:/...

隔壁吃西瓜
25分钟前
2
0
OSChina 周四乱弹 —— 快把你男友们收走

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Delacey的单曲《Dream It Possible》: 挺喜欢华为这首歌的 《Dream It Possible》- Delacey 手机党少年们想听歌,请使劲儿戳(...

小小编辑
48分钟前
910
15
归并排序

import java.util.Arrays;/** * Created by chengxiao on 2016/12/8. */public class MergeSort { public static void main(String []args){ int []arr = {9,8,7,6,......

暗中观察
今天
4
0
面试爱奇艺,竟然挂在第5轮……

今天给大家分享我曾经在爱奇艺的面试,过程还是比较有意思的,可以给大家一些参考 <br> 聊骚阶段 嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗? ...

上海小胖
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部