文档章节

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

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

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

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

没有更多内容

加载失败,请刷新页面

加载更多

006-ELK的二进制安装

二进制安装ELKstack 本次搭建属于单点,在同一台机器上进行安装 基础组件部署 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yu...

伟大源于勇敢的开始
今天
5
0
OSChina 周四乱弹 —— 浙江台的电话号码倒是记得挺牢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :《Out On The Streets》 一直不理解北欧人对重金属和死亡摇滚的热情,听完这首歌好像理解了。#今日歌曲推荐# 《Out On The Stre...

小小编辑
今天
14
0
Leetcode PHP题解--D121 21. Merge Two Sorted Lists

D121 21. Merge Two Sorted Lists 题目链接 21. Merge Two Sorted Lists 题目分析 合并两个有序链表。 思路 逐个遍历两个链表,把小的数字塞入数组里。之后再拼起来。 最终代码 <?php/** *...

skys215
今天
6
0
mars-config 动态配置管理

mars-config 码云地址:https://gitee.com/fashionbrot/mars-config 介绍 spring mvc 、springboot 动态配置系统。http 轮训方式 更新 动态配置 软件架构 软件架构说明 后端使用技术 :sprin...

fashionbrot
今天
16
0
女朋友玩吃鸡手游被开挂老哥骗炮,我见义勇为将骗子绳之以法

大家好,我是乔哥。 晚上10点以后下班后我回到自如出租房里面,开始处理公众号粉丝发来的消息,一条一条处理,突然看到了这么几条消息,吸引了我的眼球: 然后我就和这位女粉丝小红(化名)聊...

gzc426
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部