环境

两个节点:ceph1、ceph2

  • ceph1: mon、mds、osd.0、osd.1
  • ceph2: osd.2、osd.3

网络配置:

ceph1: 管理网络,eth0,10.0.0.20

存储网络,eth1, 10.0.1.20

ceph2: 管理网络,eth0,10.0.0.21

存储网络,eth1, 10.0.1.21

安装

root@ceph1:~# wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -

root@ceph1:~# echo deb http://download.ceph.com/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

root@ceph1:~# apt-get update && apt-get upgrade

root@ceph1:~# apt-get install ceph-common ceph-fs-common ceph-mds ceph

配置

/etc/ceph/ceph.conf

[global]
max open files = 131072
fsid = eb3d751f-829f-4eae-8d69-0423b81f88f4
auth cluster required = none
auth service required = none
auth client required = none
osd pool default size = 2
osd pool default min size = 1
mon osd full ratio = .95
mon osd nearfull ratio = .85 [mon]
mon data = /var/lib/ceph/mon/$cluster-$name [osd]
osd journal size = 1024
osd mkfs type = xfs
osd mkfs options xfs = -f  
osd mount options xfs = rw,noatime  [mon.monster]
host = ceph1
mon addr = 10.0.1.20:6789 [osd.0]
host =  ceph1
devs = /dev/sdb1 [osd.1]
host =  ceph1
devs= /dev/sdc1 [osd.2]
host =  ceph2
devs = /dev/sdb1 [osd.3]
host =  ceph2
devs = /dev/sdc1

部署mon

root@ceph1:~# ceph-authtool /etc/ceph/ceph.mon.keyring --create-keyring --gen-key -n mon. 

root@ceph1:~# ceph-mon -i monster --mkfs --keyring /etc/ceph/ceph.mon.keyring

root@ceph1:~# chown ceph:ceph -R /var/lib/ceph/mon/ /var/run/ceph

root@ceph1:~# /etc/init.d/ceph start mon.monster

部署osd

root@ceph1:~# mkfs.xfs  /dev/sdb1 
root@ceph1:~# mkfs.xfs  /dev/sdc1  root@ceph1:~# mkdir -p /var/lib/ceph/osd/ceph-0/
root@ceph1:~# mkdir -p /var/lib/ceph/osd/ceph-1/ root@ceph1:~# mount /dev/sdb1 /var/lib/ceph/osd/ceph-0/
root@ceph1:~# mount /dev/sdc1 /var/lib/ceph/osd/ceph-1/

部署osd.0

ps:无论osd在哪台服务器上,ceph osd creat都要在mon所在服务器上执行

root@ceph1:~# ceph osd create 
root@ceph1:~# ceph-osd -i 0 --mkfs --mkkey   
root@ceph1:~# ceph auth add osd.0 osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-0/keyring 
root@ceph1:~# ceph osd crush add osd.0 0.2 root=default host=ceph1
root@ceph1:~# ceph-osd -i 0 #或者/etc/init.d/ceph start osd.0

同理部署其他osd

ps: 不同服务器时,需先复制ceph.conf到对应服务器上

root@ceph1:~# ceph osd tree
ID WEIGHT  TYPE NAME      UP/DOWN REWEIGHT PRIMARY-AFFINITY 
-1 0.79999 root default                                     
-2 0.39999     host ceph1                                   
 0 0.20000         osd.0       up  1.00000          1.00000 
 1 0.20000         osd.1       up  1.00000          1.00000 
-3 0.39999     host ceph2                                   
 2 0.20000         osd.2       up  1.00000          1.00000 
 3 0.20000         osd.3       up  1.00000          1.00000 

部署mds

root@ceph1:~# ceph-mds -i a -n mds.monster -c /etc/ceph/ceph.conf  -m 10.0.1.20:6789

root@ceph1:~# ceph mds stat      
e3:, 1 up:standby

块存储的应用

创建存储池:

root@ceph-monster:~# rados mkpool k8s-pool 
successfully created pool k8s-pool

在该存储池里新建镜像:

root@ceph-monster:~# rbd create k8s-pool/k8s-image.v1 --size 4096 --image-feature layering

映射到块设备中:

root@ceph-monster:~# rbd map k8s-pool/k8s-image.v1
/dev/rbd3
root@ceph-monster:~# rbd showmapped 
id pool      image         snap device    
0  rbd       myimage.v1    -    /dev/rbd0 
1  test_pool test-image.v3 -    /dev/rbd1 
2  test_pool test.img      -    /dev/rbd2 
3  k8s-pool  k8s-image.v1  -    /dev/rbd3 

格式化并挂载:

root@ceph-monster:~# mkfs.xfs /dev/rbd3  
root@ceph-monster:~# mount /dev/rbd3 /rbdfs

rdb map的一个报错: rbd sysfs write failed

rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail" or so.

原因:rbd镜像的一些特性,OS kernel并不支持,所以映射失败,需要把部分不支持的特性disable掉。

方法一:
直接diable这个rbd镜像的不支持的特性:
$ rbd feature disable myimage exclusive-lock object-map fast-diff deep-flatten 方法二:
创建rbd镜像时就指明需要的特性,如:
$ rbd create --size 4096 myimage --image-feature layering 方法三:
如果还想一劳永逸,那么就在执行创建rbd镜像命令的服务器中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加
rbd_default_features = 1 再创建rdb镜像。
$ rbd create --size 4096 myimage 

cephfs 文件系统

新建一个pool:

root@ceph1:~# rados mkpool cephfs_mdata   
successfully created pool cephfs_mdata
root@ceph1:~# rados lspools 
rbd
cephfs_mdata

创建cephfs:

root@ceph1:~# ceph fs new cephfs1 cephfs_metadata cephfs_mdata
new fs with metadata pool 1 and data pool 2
root@ceph1:~# ceph fs ls
name: cephfs1, metadata pool: cephfs_metadata, data pools:
[cephfs_mdata ]
  • fs new 表示需要创建一个新的文件系统
  • cephfs1 表示新的文件系统的名字叫做cephfs2。
  • cephfs_metadata 表示文件系统元数据保存信息的存储pool
  • cephfs_mdata 表示文件系统的数据保存信息的存储pool

ps: ceph集群上只能创建一个文件系统

挂载到本地:

root@ceph1:~# mkdir /cephfs
root@ceph1:~# sudo mount -t ceph 10.0.1.20:6789:/ /cephfs/
root@ceph1:~# ceph mds stat  
e130: 1/1/1 up {0=a=up:active}
root@ceph1:~# ceph -s
    cluster eb3d751f-829f-4eae-8d69-0423b81f88f4
     health HEALTH_OK
     monmap e1: 1 mons at {a=10.0.1.20:6789/0}
            election epoch 4, quorum 0 a
      fsmap e130: 1/1/1 up {0=a=up:active}
     osdmap e158: 4 osds: 4 up, 4 in
            flags sortbitwise,require_jewel_osds
      pgmap v354: 80 pgs, 3 pools, 2542 bytes data, 20 objects
            4530 MB used, 195 GB / 199 GB avail
                  80 active+clean

ceph集群部署(基于jewel版)的更多相关文章

  1. Ceph集群部署(基于Luminous版)

    环境 两个节点:ceph0.ceph1 ceph0: mon.a.mds.mgr.osd.0.osd.1 ceph1: mon.b.osd.2.osd.3 操作系统:ubuntu14.04 网络配置: ...

  2. 分布式存储系统之Ceph集群部署

    前文我们了解了Ceph的基础架构和相关组件的介绍,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16720234.html:今天我们来部署一个ceph集群: 部 ...

  3. ceph集群部署

    最近在学习 kubernetes 过程中,想实现 pod 数据的持久化.在调研的过程中,发现 ceph 在最近几年发展火热,也有很多案例落地企业.在选型方面,个人更加倾向于社区火热的项目,Gluste ...

  4. ceph维护命令小结(基于jewel版)

    ceph osd pool 操作小计 #列出所有pool root@ceph:~# ceph osd pool ls [detail] #新建pool root@ceph:~# ceph osd po ...

  5. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  6. 理解 OpenStack + Ceph (1):Ceph + OpenStack 集群部署和配置

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  7. 2.Ceph 基础篇 - 集群部署及故障排查

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247485243&idx=1&sn=e425c31a ...

  8. openstack(pike 版)集群部署(一)----基础环境部署

    一.环境 1.系统: a.CentOS Linux release 7.4.1708 (Core) b.更新yum源和安装常用软件 #  yum -y install  epel-release ba ...

  9. 分布式存储ceph集群实践

    1.环境规划,三台主机 10.213.14.51/24            10.213.14.52/24       10.213.14.53/24    集群网络 172.140.140.11. ...

随机推荐

  1. 算法习题---5-6对称轴(UVa1595)

    一:题目 判断平面上的一组点,是否关于一条竖线对称.即找到一条垂直对称轴 (一)样例输入 - (二)样例输出 YES NO YES 二:代码实现 #define _CRT_SECURE_NO_WARN ...

  2. Qt编写自定义控件63-水波效果

    一.前言 几年前就一直考虑过写这个控件了,在9年前用C#的时候,就看到过别人用C#写了个水波效果的控件,挺好玩的,当时看了下代码用的二维数组来存储变换的图像像素数据,自从学了Qt以后,有过几次想要用Q ...

  3. k8s记录-etcd集群部署(三)

    https://blog.csdn.net/fy_long/article/details/86542872 1)程序准备tar xvf etcd-v3.3.11-linux-amd64.tar.gz ...

  4. Docker容器(一)——Docker的介绍与部署

    (1).Docker概述 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化.容器是 ...

  5. html中的<pre>标签

    定义和用法 pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码. ...

  6. 【docker 镜像源】解决quay.io和gcr.io国内无法访问的问题

    该问题容易导致image pull back off 错误,应当换源: 微软: https://yeasy.gitbooks.io/docker_practice/install/mirror.htm ...

  7. Windows2008R2+iis7.5环境下的dz论坛X3版伪静态设置教程

    Windows2008R2+iis7.5环境下的dz论坛X3版伪静态设置教程 因为2008R2不是那么的普及,加上X3版新出不久,所以伪静态的设置教程比较少,今天搞出来了,其实很简单,那么下面给大家简 ...

  8. 【转】do...while(0)的妙用

    前言 今天无意中看到这个标题,因为好奇就点进去了,不错,又学习啦... 具体内容: 1. do...while(0)消除goto语句: 2 宏定义中的do...while(0): 参考 1. 原链接_ ...

  9. @media 适配兼容

    /* 兼容iphone4/4s */ @media (device-height:480px) and (-webkit-min-device-pixel-ratio:2){ } /* 兼容iphon ...

  10. 浅谈PHP随机数安全的分析

    之前在身边有很多学PHP的朋友写一些小程序的时候,很多时候会使用PHP随机数函数rand()和mt_rand()函数去生成随机数 可是,随机数真的随机吗?这篇文章讲从多个实例中探讨随机数,当然,有写作 ...