文章目录

  • 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情况

  • 根据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:\Users\zhanghuigui\AppData\Roaming\Typora\typora-user-images\1547174207805.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
      

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


查看具体pool的详细信息
ceph osd pool ls detail

删除资源池

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

ceph 部署单机集群相关推荐

  1. 云计算学习总结(1)——PaaS云平台部署之在Centos7搭建Mesos+Zookeeper+Marathon+Docker单机集群

    ----------------------------------------------------------------------------------- ========Mesos+Do ...

  2. 云计算学习总结(1)——PaaS云平台部署之在Centos7搭建Mesos+Zookeeper+Marathon+Docker单机集群...

    ----------------------------------------------------------------------------------- ========Mesos+Do ...

  3. HyperLedger FabricV2.3 Raft单机集群部署

    目录 云主机配置 依赖环境配置 部署步骤 0.更新yum 1.安装golang 2.安装docker 3. 安装docker-compose 4. 安装git 5. 安装java 6. 防火墙配置 7 ...

  4. Kafka系列(七)、Kafka套件 Confluent Platform 单机/集群部署

    目录 简介 单机部署 集群部署 尾巴 Kafka系列: kafka 2.4.1单机版部署及使用 kafka监控系统kafka eagle安装使用 滴滴开源的kafka-manager编译及部署使用 k ...

  5. Centos7 x86服务器一键部署ES集群/单机shell

    背景 由于日常的实施工作中经常用到单机或者集群的es,每次都手动部署感觉很麻烦,于是抽空写了一个一键部署脚本,通过简单指定集群名称.节点ip.端口等几个配置参数后自动部署es单机或者集群数据库 安装脚 ...

  6. 25分钟!一键部署Oracle 11GR2 HA 单机集群

    无人值守安装Oracle 11GR2单机集群,只需要25分钟?没错,通过脚本静默安装,只需要25分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实现真正的无人值 ...

  7. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需 ...

  8. Docker - 容器部署 Consul 集群

    目录   准备 Consul 镜像 安装单个 Consul 组装集群 Consul 启动 Consul 和 Web 管理器 Consul 命令简单介绍 Web 管理器 Server 加入集群 Clie ...

  9. 容器编排技术 -- 使用Minikube 部署 Kubernetes 集群

    容器编排技术 -- 使用Minikube 部署 Kubernetes 集群 单机部署 创建Kubernetes cluster(单机版)最简单的方法是minikube: 首先下载kubectl cur ...

最新文章

  1. JS+Canvas的棋盘游戏和Java的动态结合
  2. Reactor/Proactor的比较 (ZZ)
  3. 转Java工程师成神之路
  4. 递归函数的理解 (三种类型)
  5. 数据库-优化-MYSQL的执行顺序
  6. flowable理论(三)flowable简介
  7. 7 学大厂,拓展基础组件封装思路 BAT?TMD
  8. bootstrap datatable 数据刷新问题
  9. windows批处理 复制文件和文件夹子文件夹
  10. 电子基础元器件——电阻器
  11. 天马行空的刷脸支付方式将是未来
  12. ORA-25156: 旧样式的外部联接 (+) 不能与 ANSI 联接一起使用
  13. 支付网关潜藏黑客!32万多含CVV码的财务信息被盗
  14. 注意: 如何解决Windows Server 2008 R2 EFI启动模式安装2019年8月更新KB4512486 KB4512506  KB4512514后自动进入修复模式,无法正常启动问题!!!
  15. 全国统筹明年启动,养老金发放将迎来哪些变化?
  16. RK3588 AP6398RS3之WIFI调试(一)
  17. php twig if,twig基本语法
  18. 链表中的LinkList L、LinkList *L
  19. 华为云平台零代码搭建物联网可视化大屏体验:疫情防控数据大屏
  20. 基于JavaWeb的影视评论网站设计与实现

热门文章

  1. 【翻译】使用新的Sencha Cmd 4命令app watch
  2. 2.monotouch 控件的使用
  3. 时间不同单位之间的转换
  4. Dojo QuickStart 快速入门教程 (1) Why Dojo
  5. map函数的简单用法。
  6. 小程序真机调试访问不了接口_小程序入门
  7. uefi怎么添加linux启动项,LINUX下EFIBOOTMGR的使用,删除UEFI主板多余启动项和添加启动项...
  8. 案例分析 陆金所_平安陆金所介绍-关于陆金所-平安陆金所
  9. java程序a-z b-y_有一行电文,以按下面规律译成密码: A---Z a---z B---Y b---Y C---X c---x …… 即第1个字母编程第26个字...
  10. java methode_Java Method.getTypeParameters方法代码示例