首页 > ceph 部署单机集群

ceph 部署单机集群

文章目录

        • ceph-deploy部署集群
        • ceph-deploy 部署单机
        • ceph-deploy 创建osd
        • ceph osd创建资源池
        • ceph创建rbd块设备
        • ceph创建fs文件系统

本文档主要参考ceph官方命令进行部署,使用的时侯ceph-deploy原生命令方式进行集群各个组件的创建,删除,后续会增加扩容相关的命令。

ceph-deploy部署集群

  • 修改hosts文件,增加想要创建的集群节点名称和对应ip的映射关系

    hosts文件可以加快域名解析,同时方便局域网用户来为服务器创建容易记住的名字(node1,node2,node3…)

    vim /etc/hosts

    增加如下ip到主机名称的映射关系:

    10.192.55.95 node1
    10.192.55.6 node2
    10.192.55.100 node3
    

    表示三结点的集群,同时需要将该文件拷贝到每个节点上scp /etc/hosts 10.192.55.6:/etc

  • 修改hostname ,即对应hosts文件中的域名,在进行节点通信的时候主机间能够进行映射

    在每个ip上执行如右命令hostname node1,同时为了重启后生效应执行echo node1 >/etc/hostname或者直接编辑文件vim /etc/sysconfig/network,在其中增加HOSTNAME=node1来保持重启后生效

  • 进入目录/etc/ceph,如果没有就创建一个。用来存储部署过程中产生的配置文件,各个组件的密钥,以及ceph-deploy日志

    其实这个目录并没有太多的限制,可以根据自己情况随意创建,但是我们项目目前默认的是以上文件夹

  • 创建配置文件、cepm-mon的keyring以及ceph-deloy日志文件

    ceph-deploy new node1 node2 node3

    将以上产生的所有文件拷贝到每个节点,因为接下来创建mon的时候会ssh到每个节点进行keyring验证并部署mon

  • 创建mon(集群的大脑即监控者moniter),一般在ip较小的节点先进行创建(3节点最多可以创建3个mon),方便mon选举,本例是我在node1节点创建mon

    ceph-deploy mon create-initial

    此时运行ceph -s可以看到

    在这里插入图片描述

    此时集群其他节点还未更新,所以无法使用ceph -s命令查看ceph集群状态,因为缺少mon,客户端启动的相关密钥,类似于bootstrap.keyring,需要在各个节点进行密钥收集

  • 在其他非创建mon节点/etc/ceph目录下执行

    ceph-deploy gatherkeys node1即可在其他节点上ceph -s看到集群状态

  • 创建mgr(集群管理者maneger),为三个节点都创建mgr,只需在一个节点/etc/ceph目录下执行

    ceph-deploy mgr create node1 node2 node3

    此时运行ceph -s可以看到

    在这里插入图片描述

ceph-deploy 部署单机

单机部署和集群部署总体流程一样,只是把集群节点的多数目变为但数目即可

  • 修改hosts文件,增加单机ip和节点名称的映射

    vim /etc/hosts增加node1 10.192.55.95

  • 修改hostname

    hostname node1

  • 进入目录cd /etc/ceph,以下所有的ceph-deploy命令都在该目录中执行

  • 创建配置文件

    ceph-deploy new node1

  • 创建mon

    ceph-deploy mon create-initial

  • 创建mgr

    ceph-deploy mgr create node1

ceph-deploy 创建osd

以下命令适用于单机和集群

  • 为osd创建分区并做xfs文件系统,存储元数据

    ceph-deploy osd prepare node1:/dev/sdb

    创建多个

    ceph-deploy osd preapare node1:/dev/sdb node1:/dev/sdc node1:/dev/sdd

  • 激活osd

    ceph-deploy osd activate node1:/dev/sdb1 node1:/dev/sdc1 node1:/dev/sdd1

    在这里插入图片描述

    使用ceph osd tree查看osd情况

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DTBpOqgV-1575878199633)(C:UserszhanghuiguiAppDataRoamingTypora	ypora-user-images1547173828516.png)]

  • 根据crush规则部署OSD

    目前我们的集群如果不做crush规则的更改,则默认为3副本规则

    • 创建bucket(这是一种类型,表现形式为树形的,它的级别可以理解为从世界存储中心到具体的磁盘osd的划分,默认类型包括root,data center,room,row,rack,host,osd),我们一般以设备为单位,所以选择的级别就设置为host

      ceph osd crush add-bucket host1 host

      这里我们要适配crush的3副本默认规则,所以host个数要设置大于三个

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRfvlHLm-1575878199633)(C:UserszhanghuiguiAppDataRoamingTypora ypora-user-images1547174207805.png)]

    • 将host移动到root下形成树形管理结构,最后crush规则才能在集群中生效

      ceph osd crush move host1 root=default
      ceph osd crush move host2 root=default
      ceph osd crush move host3 root=default
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uzsM1MS9-1575878199633)(C:UserszhanghuiguiAppDataRoamingTypora	ypora-user-images1547174399159.png)]

    • 将osd移动到host下

      ceph osd crush add osd.0 1.00 host=host1
      ceph osd crush add osd.1 1.00 host=host2
      ceph osd crush add osd.2 1.00 host=host3
      

      在这里插入图片描述

ceph osd创建资源池

创建的资源池需要设置PG 以及PGP数目

ceph osd pool create pool_name 128 128

查看创建结果ceph -s

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cqKNRlPI-1575878199635)(C:UserszhanghuiguiAppDataRoamingTypora	ypora-user-images1547175846686.png)]

查看具体pool的详细信息

ceph osd pool ls detail

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UjepZf9h-1575878199635)(C:UserszhanghuiguiAppDataRoamingTypora	ypora-user-images1547175940338.png)]

删除资源池

ceph osd pool rm data data --yes-i-really-really-mean-it

ceph创建rbd块设备

创建前提是需要拥有pool资源池

  • 创建rbd块设备

    rbd create rbd_test -p data --size 1T在资源池data中创建一个名字叫做rbd_test的1T块设备

  • 查看创建结果

    rbd ls -p data

  • 查看具体块设备信息

    rbd info rbd_test -p data或者rbd info data/rbd_test

    在这里插入图片描述

  • 禁用rbd的特性,否则会需要做一些密钥验证无法创建映射

    rbd feature disable data/rbd_test object-map fast-diff deep-flatten exclusive-lock

    在这里插入图片描述

  • 创建rbd映射

    rbd map rbd_test -p data

  • 查看映射结果lsblk

    在这里插入图片描述

  • 解除rbd映射

    rbd unmap /dev/rbd0

  • 删除rbd 块

    rbd rm rbd_test -p data

    在这里插入图片描述

ceph创建fs文件系统

  • 创建mds,进入node1的/etc/ceph

    ceph-deploy mds create node1

  • 创建元数据资源池

    ceph osd pool create meta_data 128 128

  • 创建文件系统

    ceph fs new cephfs meta_data data

    在这里插入图片描述

更多相关:

  • 为了方便创建Component,请自行安装插件       接下来就是创建组件需要绑定入参in和事件out(用于输出参数)  运行效果如下(可以点击红色文字,就获取到了子组件传出的内容)...

  • 第1步 在stmg/src/main/webapp/subsystem下创建一个newPage文件夹 在newPage文件夹下新建一个newSubPage.jsp文件 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %> <%String pat...

  • 学习在Substance Designer中创建复杂材料的高级技术。 如果你想进入游戏行业,想学习如何创建高质量的纹理和学习物质设计,那么这个课程是给你的。 我设计了这个课程,从一开始就带你,教你我用来创建AAA纹理的3个步骤:图案,雕刻和细节。 看完这个课程后,你会觉得非常有信心创造一个AAA级纹理,你可以把它放在你的作品集里...

  • 了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建强大且通用的人工智能 创造具有多重能力的角色 创建级别组件 MP4 |视频:h264,1280×720 |音频:AAC,44.1...

  • 在Unity中学习高级粒子系统和视觉效果创建。初级到中级 你会学到: 游戏的视觉效果 Unity粒子系统 Unity中的Vfx 创建Unity视觉效果的初级到中级指南 课程获取:Unity粒子系统创建VFX游戏特效学习教程-云桥网 MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言...

  • 本文主要是在梳理cephfs内核方式挂载的内核代码逻辑所做的准备 环境:Centos 7.5 内核源码版本:3.10.0-862.el7.x86_64 打开ceph模块的debug信息 单独编译ceph模块的.ko文件 ceph在内核的通用模块主要有三个: ceph.ko 模块路径:/usr/src/kernels/3.10....

  • 文章目录安装使用使用`ceph tell`产生堆栈信息文使用`pprof`工具分析内存及`ceph tell`释放内存火焰图`FlameGraph`可视化进程堆栈信息 pprof是一个google开发的支持可视化、且可分析profile文件而达到对内存的分析。并且能够输出文本和图像来支持分析过程,pprof源码 安装...

  • 目前有两种动态修改的方式来让ceph中各个组件的配置生效,所以介绍如下两种方式方便我们进行功能或者代码的调试 使用ceph daemon方式修改 ceph daemon osd.0 help用于osd的daemon服务ceph daemon mon.ceph-node1 help用于mon的admin socket命令、ceph...

  • 我们内核挂载的前提是:看到centos7.5 中默认内核3.10.0-862.11.6.el7.x86_64的挂载fs执行文件读写性能更优良,所以尝试将3.10.0-862.11.6.el7.x86_64模块中与ceph fs挂载相关的ceph.ko,libceph.ko,dns_resolver.ko,libcrc32c.ko拷贝...

  • 文章目录1. 解决问题2. 应用场景3. 实现方式C++实现C语言实现4. 缺点5. 和其他三种创建模式的对比(单例,工厂,建造者) 1. 解决问题 如果对象的创建成本较大,而同一个类的不同对象之间的差别不大(大部分字段相同),在这种情况下,我们可以利用已有对象(原型)进行赋值(拷贝)的方式,创建新的对象,从而达到节省对象创...

  • 混合osd的部署 先部署所有的ssd 在/etc/ceph.conf中最后添加ssd做osd的block大小如下: 比如部署中有两个ssd,则添加 [osd.0] bluestore_block_size = xxxx [osd.1] bluestore_block_size = xxx 如上的size大小计算如下,如ssd容量...

  • 文章目录Pool创建ec pool创建副本pool创建Pool参数创建根故障域及添加osd其他命令Tier相关 Pool创建 ec pool创建 创建profile ceph osd erasure-code-profile set $profile_name k=$k m=$m crush-failure-domain...

  • 文章目录简介使用OSD相关操作PG相关操作对象相关操作总结 简介 ceph-objectstore-tool工具,能够操作到ceph最底层的数据,包括pg,对象层级。它能够对底层pg以及对象相关数据进行获取、修改。并能够对一些问题pg和对象进行简单修复。所以使用该工具进行操作的时候需要谨慎(涉及到修改的操作最好备份一份数据)...

  • 文章目录ceph版本:环境配置:异常问题:问题解决:总结 ceph版本: ceph 12.2.1 环境配置: tier_pool 16个分区大小800G 的osd容量 3副本 data_pool 32个4T盘 3副本 异常问题: ps:在分布式存储中遇到任何问题都不要先去通过重设存储节点,清除磁盘数据来解决,一定要...