环境说明

server:3台虚拟机,挂载卷/dev/vdb 10G
系统:centos7.2
ceph版本:luminous
repo:
  • 公网-http://download.ceph.com,http://mirrors.aliyun.com
  • 内网-自建mirrors
 

架构说明

node1:admin-node,mon,mgr,osd
node2:osd
node3:osd

准备工作

1、安装centos、epel repo
使用阿里云mirros,https://opsx.alibaba.com/mirror
  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
  4. mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
  5. curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2、安装ceph repo
  1. yum install centos-release-ceph-luminous -y
3、安装ceph-deploy
  1. yum update -y
  2. yum installl ceph-deploy -y
4、安装、配置ntp
  1. yum install ntp ntpdate ntp-doc -y
5、安装ssh(系统自带请忽略或升级)
确认所有节点的ssh server 运行
  1. yum install openssh-server -y
6、用户设置
我们使用root用户,虽然官方不推荐这样
配置管理节点到其他server免密登录
  1. #生成秘钥对
  2. ssh-keygen
  3. #将管理节点公钥注入到其他server
  4. ssh-copy-id SERVER-
7、确保networking 启动
8、配置hosts
将ip hostname 写入/etc/hosts
9、关闭iptables
10、关闭selinux
11、安装yum-plugin-priorities
  1. yum install yum-plugin-priorities -y
 

部署集群

  1. #在管理节点使用ceph-deploy部署ceph cluster
  2. #创建部署目录
  3. mkdir ~/my-cluster
  4. cd ~/my-cluster
  5. #从头开始(非第一次部署ceph,清理环境)
  6. ceph-deploy purge {ceph-node}[{ceph-node}]
  7. ceph-deploy purgedata {ceph-node}[{ceph-node}]
  8. ceph-deploy forgetkeys
  9. rm ceph.*
  10. ##创建集群
  11. #创建monitor节点
  12. #例如:ceph-deploy new {initial-monitor-node(s)}
  13. ceph-deploy new node1
  14. #安装ceph包到各个节点
  15. ceph-deploy install node1 node2 node3
  16. #初始化monitor节点,获取keys
  17. ceph-deploy mon create-initial
  18. #上述命令执行成功后,你会在当前目录下得到以下keyring文件
  19. ceph.client.admin.keyring
  20. ceph.bootstrap-mgr.keyring
  21. ceph.bootstrap-osd.keyring
  22. ceph.bootstrap-mds.keyring
  23. ceph.bootstrap-rgw.keyring
  24. ceph.bootstrap-rbd.keyring
  25. #将keyring文件分发到各个节点
  26. ceph-deploy admin node1 node2 node3
  27. #部署manager(l版本之上才需要)
  28. ceph-deploy mgr create node1
  29. #部署osd节点(这里使用虚拟机,挂载了/dev/vdb卷)
  30. ceph-deploy osd create node1:/dev/vdb node2:/dev/vdb node3:/dev/vdb
  31. #检查集群,在管理节点执行
  32. ceph health
  33. ceph -s

扩展集群

node1 扩展了metadata,(rgw)
node2 扩展了metadata,monitor
node3 扩展了metadata,monitor
  1. #添加metadate server
  2. ceph-deploy mds create node1
  3. #添加monitors
  4. ceph-deploy mon add node2 node3
  5. #添加新的monitor节点之后,ceph会同步monitor,选举代表quorum
  6. #查看quorum状态
  7. ceph quorum_status --format json-pretty
  8. #添加managers
  9. #manager使用active/standby模式,多节点部署,可以在master down时,无缝顶替
  10. ceph-deploy mgr create node2 node3
  11. #添加rgw实例
  12. #为了使用ceph object gateway,需要部署rgw实
  13. ceph-deploy rgw create node1
  14. #rgw默认监听端口是7480,可以通过编辑ceph.conf修改端口
  15. [client]
  16. rgw frontends = civetweb port=80

存储、检索对象数据

为了存储对象数据,ceph client需要具备:
1.设置一个对象名
2.指定一个pool
ceph client 检索最近的集群map和CRUSH算法去计算怎样映射对象到PG,然后计算如何动态映射PG到OSD,
只需要对象name和pool name即可找到对象的位置。
  1. ceph osd map {poolname}{object-name}
练习:定位对象
  1. #创建一个对象,测试文件
  2. echo {Test-data}> testfiles.txt
  3. ceph osd pool create mytest 8
  4. #使用rados put 命令指定对象名,含有对象数据的测试文件,pool name
  5. #rados put {object-name} {file-path} --pool=mytest
  6. rados put test-object-1 testfile.txt --pool=mytest
  7. #验证ceph集群已经存储了此object
  8. rados -p mytest ls
  9. #找到对象位置
  10. #ceph osd map {pool-name} {object-name}
  11. ceph osd map mytest test-oobject-1
  12. #ceph会输出对象位置
  13. osdmap e537 pool 'mytest'(1) object 'test-object-1'-> pg 1.d1743484(1.4)-> up [1,0] acting [1,0]
  14. #删除测试对象object
  15. rados rm test-object-1--pool-mytest
  16. #删除mytest pool
  17. ceph osd pool rm mytest
随着集群的发展,对象位置可能会动态变化。
Ceph的动态重新平衡的一个好处是,Ceph可以让您不必手动执行数据迁移或平衡。
 

tip:如果虚拟机没有硬盘,可使用裸设备模拟

  1. #安装lvm
  2. yum install lvm2 -y
  3. #创建虚拟磁盘
  4. mkdir /ceph && dd if=/dev/zero of=/ceph/ceph-volumes.img bs=1M count=10240 oflag=direct
  5. sgdisk -g --clear /ceph/ceph-volumes.img
  6. vgcreate ceph-volumes $(losetup --show -f /ceph/ceph-volumes.img)
  7. lvcreate -L 9G -n ceph1 ceph-volumes
  8. mkfs.xfs -f /dev/ceph-volumes/ceph1
  9.  
  10. #挂载
  11. mkdir -p /var/local/osd1
  12. chown ceph:ceph /var/local/osd1 #修改属主属组,不然在添加osd时候会报权限错误
  13. mount /dev/ceph-volumes/ceph1 /var/local/osd1
 

1、ceph-deploy之部署ceph集群的更多相关文章

  1. 使用kubeadm部署Kubernetes集群

    一.环境架构与部署准备 1.集群节点架构与各节点所需安装的服务如下图: 2.安装环境与软件版本: Master: 所需软件:docker-ce 17.03.kubelet1.11.1.kubeadm1 ...

  2. CentOS上手工部署kubernetes集群

    本文完全是根据二进制部署kubernets集群的所有步骤,同时开启了集群的TLS安全认证. 环境说明 在下面的步骤中,我们将在三台CentOS系统的物理机上部署具有三个节点的kubernetes1.7 ...

  3. 高可用Kubernetes集群-14. 部署Kubernetes集群性能监控平台

    参考文档: Github介绍:https://github.com/kubernetes/heapster Github yaml文件: https://github.com/kubernetes/h ...

  4. kubeadm部署Kubernetes集群

    Preface 通过kubeadm管理工具部署Kubernetes集群,相对离线包的二进制部署集群方式而言,更为简单与便捷.以下为个人学习总结: 两者区别在于前者部署方式使得大部分集群组件(Kube- ...

  5. (二)Kubernetes kubeadm部署k8s集群

    kubeadm介绍 kubeadm是Kubernetes项目自带的及集群构建工具,负责执行构建一个最小化的可用集群以及将其启动等的必要基本步骤,kubeadm是Kubernetes集群全生命周期的管理 ...

  6. 部署TiDB集群

    架构图 节点规划 120.52.146.213 Control Machine 120.52.146.214 PD1_TiDB1 120.52.146.215 PD2_TiDB2 120.52.146 ...

  7. AMBARI部署HADOOP集群(4)

    通过 Ambari 部署 hadoop 集群 1. 打开 http://192.168.242.181:8080  登陆的用户名/密码是 : admin/admin 2. 点击 “LAUNCH INS ...

  8. 基于Ambari Server部署HDP集群实战案例

    基于Ambari Server部署HDP集群实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari Server端 博主推荐阅读: https://www.c ...

  9. 使用kubeadm部署k8s集群[v1.18.0]

    使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...

  10. 通过kubeadm快速部署K8S集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...

随机推荐

  1. bzoj1297 [SCOI2009]迷路——拆点+矩阵快速幂

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1297 一看感觉是矩阵快速幂之类的,但边权不好处理啊: 普通的矩阵快速幂只能处理边权为1的,所 ...

  2. JSP-Runoob:JSP 异常处理

    ylbtech-JSP-Runoob:JSP 异常处理 1.返回顶部 1. JSP 异常处理 当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方.JSP代码中通常 ...

  3. 我眼中的SEO——略读一些SEO书后

    近些日子一直在看一些SEO方面的书.为人有些浮躁,读SEO实在读不出太大营养,除了第一本书外,之后的书就是在不停地向后翻页.没有过太具体的实践,现在就来写一下我眼中的SEO.还希望各位多多指教. 1. ...

  4. Linux特殊符号及基础正则表达式

    第1章 特殊符号 1.1 引号系列 1.1.1 单引号 所见即所得  单引号里面的内容会原封不动的输出 [root@oldboyedu50-lnb ~]# echo 'oldboy $LANG $PS ...

  5. P4049 [JSOI2007]合金

    传送门 我数学可能白学了-- 因为三个数加起来等于\(1\),那么只要用前两个数就能表示,那么就能把每一种金属看成一个二维向量.考虑只有两个向量的时候,设这两个向量为\(a,b\),那么一个向量\(c ...

  6. [Apple开发者帐户帮助]七、注册设备(3)禁用或启用设备

    您可以禁用和启用设备,但不能从开发者帐户中删除它.您可以禁用不再用于开发或测试的设备.但是,这样做会使包含设备的配置文件无效,并且不会增加当年设备的总数. 所需角色:帐户持有人或管理员. 在“ 证书” ...

  7. python - 解决 ModuleNotFoundError: No module named 'pip'

    1.pip的版本为 9.0.3  想用 pip install -U pip 更新下包,但是在更新过程中出现了报错,如下所示: 2.然后尝试用pip install pandas包,提示 Module ...

  8. 【Kafka】《Kafka权威指南》——从Kafka读取数据

    应用程序使用 KafkaConsumer向 Kafka 订阅主题,并从订阅的主题上接收消息 . 从 Kafka 读取数据不同于从其他悄息系统读取数据,它涉及一些独特的概念和想法.如果不先理解 这些概念 ...

  9. Unicode gbk gb2312 编码问题 [转载]

    原文地址: http://www.cnblogs.com/csn0721/archive/2013/01/24/2875613.html HTML5 UTF-8 中文乱码   <!DOCTYPE ...

  10. SQL Server应用模式之OLTP系统性能分析

    OLTP系统的最大特点,是这类应用里有大量的,并发程度比较高的小事务,包括SELECT.INSERT.UPDATE和DELETE. 这些操作都比较简单,事务时间也不会很长,但是要求的返回时间很严格,基 ...