ceph-deploy 搭建ceph集群

哈希根系
• 阅读 3445

ceph集群搭建

ceph组件介绍

  • MON(monitor)
    MonitorCeph集群中扮演者管理者的角色,维护了整个集群的状态,是Ceph集群中最重要的组件。Mon保证集群的相关组件在同一时刻能够达成一致,相当于集群的领导层,负责收集、更新和发布集群信息。为了规避单点故障,在实际的Ceph部署环境中会部署多个Mon,同样会引来多个Mon之前如何协同工作的问题。在一个标准的Ceph环境中。
  • OSD
    实际存储数据的进程。通常一个OSD daemon绑定一个物理磁盘。Client write/read 数据最终都会走到OSD去执行write/read操作。
  • RADOS(Reliable Autonomic Distributed Object Store, RADOS)
    RADOSCeph 存储集群的基础。Ceph 中的一切都以对象的形式存储,而RADOS 就负责存储这些对象,而不考虑它们的数据类型。RADOS 层确保数据一致性和可靠性。对于数据一致性,它执行数据复制、故障检测和恢复。还包括数据在集群节点间的recovery
  • Librados
    简化访问RADOS的一种方法,目前支持PHP、Ruby、Java、Python、CC++语言。它提供了Ceph 存储集群的一个本地接口RADOS ,并且是其他服务(如RBD 、RGW) 的基础,以及为CephFS 提供POSIX 接口。librados API 支持直接访问RADOS ,使得开发者能够创建自己的接口来访问Ceph 集群存储。
  • RBD
    Ceph块设备。对外提供块存储。可以像磁盘一样被映射、格式化已经挂载到服务器上。支持snapshot(快照)及增量备份。
  • RGW
    Ceph对象网关,提供了一个兼容S3Swiftrestful API接口。RGW还支持多租户和Openstackkeyston身份验证服务。
  • MDS
    Ceph元数据服务器,跟踪文件层次结构并存储只供CephFS使用的元数据。Ceph块设备和RADOS网关不需要元数据。MDS不直接给client提供数据服务。

ceph写入数据流程

如下图所示一个File首先被切割为多个objects,每个objects默认4M大小,也就是100M的数据会被切割为25个object,并且每个object都有自己的objectid,通过hash然后进行掩码的运算,确认object是应该分布那个pg中,然后pg通过crush算法,将数据落在不同的osd.默认的crush算法基于host的.


ceph-deploy 搭建ceph集群


部署ceph集群

使用三台服务器
服务器用途
192.168.21.101node-1
192.168.21.101node-2
192.168.21.102node-3
修改三台服务器hostname
hostnamectl set-hostname node-1
hostnamectl set-hostname node-2
hostnamectl set-hostname node-3
开启ssh免密登录
ssh-keygen
ssh-copy-id -i /root/.ssh/id_rsa.pub node-2
ssh-copy-id -i /root/.ssh/id_rsa.pub node-3
关闭所有节点selinux和firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
所有节点安装ntp
yum install ntp ntpdate ntp-doc
systemctl start ntpd && systemctl enable ntpd
ntpq -np
所有节点添加yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
cat >/etc/yum.repos.d/ceph.repo <<EOF
[norch]
name=norch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0

[x86_64]
name=x86_64
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0
EOF
安装ceph初始化mon
yum clean all && yum makecache
yum install python-setuptools ceph-deploy -y
mkdir ceph-deploy && cd ceph-deploy
ceph-deploy new  --public-network 192.168.21.0/0 --cluster-network 192.168.21.0/0 node-1
yum install ceph ceph-mon ceph-mgr ceph-radosgw cepht-mds -y  #所有节点安装
ceph-deploy mon create-initial #初始化mon
ceph-deploy admin node-1 node-2 node-3 #推送配置文件到各个节点
ceph-deploy mgr create node-1 #初始化mgr作为监控
ceph -s # 查看集群状态
扩展mon添加osd
#集群添加osd
ceph-deploy osd create node-1 --data /dev/sdb
ceph-deploy osd create node-2 --data /dev/sdb
ceph-deploy osd create node-3 --data /dev/sdb
#添加mon节点使其高可用
ceph-deploy --overwrite mon add node-2
ceph-deploy --overwrite mon add node-3
#查看osd状态
ceph osd tree
#检查Ceph monitor仲裁状态
ceph quorum_status --format json-pretty
点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
Ceph Block Device块设备操作
使用cephblockdevice需要如下三个步骤:1\.在ceph集群的pool中创建一个BlockDeviceimage.2\.cephClient使用RBD设备与ceph集群的BlockDeviceimage进行映射(Map)。3\.cephClient的UserSpace便可以挂载(Mount)该RBD设备。
Stella981 Stella981
3年前
Kubernetes和TensorFlow集群搭建
原创未名小宇宙2018012022:48:35@引用自今日头条莫问出处莫问归途本文演示在Kubernetes集群上搭建TensorFlow集群。集群如下:(请不要问node1哪去了,因为TA罢工了)!Kubernetes和TensorFlow集群搭建(https://oscimg.oschina.net/oscnet
Stella981 Stella981
3年前
Kubernetes中用Helm安装Ceph存储服务
Kubernetes中用Helm安装Ceph存储服务注意:本文仅供参考。在Kubernetes中建议使用Rook项目,更为方便、兼容性更好。在Kubernetes中使用Ceph已经有专门的项目rook(https://rook.io(https://
Stella981 Stella981
3年前
Ceph分布式存储部署过程
前言:  环境介绍:此次部署系统为Cenots7MON、OSD10.110.180.112AdminMON、OSD10.110.180.113Node1MON、OSD10.110.180.114Node2Ceph文件目录部署过程此部署过程是采用文件目录方式挂在激活OSD的方式部署Ceph集群。1.系统关闭
Stella981 Stella981
3年前
Redhat对象网关指南
1.配置更换默认的端口从apache迁移到civetweb一个基于apache的配置类似以下形式:client.radosgw.gatewaynode1host{hostname}keyring/etc/ceph/ceph.client.radosgw.keyringrgw
Wesley13 Wesley13
3年前
CEPH总结
ceph简介Ceph是一个分布式存储系统,诞生于2004年,是最早致力于开发下一代高性能分布式文件系统的项目。随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之一。ceph基本结构!(http://uploadimages.jianshu.io/upload_images/4
Wesley13 Wesley13
3年前
(二)大数据生态圈集群搭建之
搭建流程说明下载安装包高可用完全分布式搭建一.集群规划二.hadoop安装配置三.zookeeper安装配置四.集群格式化五.启动,操作,关闭集群六.访问NameNode的WebUI页面七.搭建Hadoop的client说明
Stella981 Stella981
3年前
Kubernetes集群安装(自己搭过,已搭好)
k8s安装目录1\.组件版本&&集群环境组件版本etcd集群&&k8smaster机器&&k8snode机器集群环境变量2\.创建CA证书和密钥安装
DevOpSec DevOpSec
2年前
自建k8s集群之负载均衡使用
自建k8s而非云环境,组件mysql类(部分有状态服务)部署在虚机里也即集群外,业务服务部署在k8s集群内。需求:集群内、集群外,业务服务和组件相互间通过负载均衡、高可用的形式连通。此需求拆解成两个问题进行解决,接着往下看。集群内:k8s集群集群外:k8s集群外的应用部署在虚拟机或物理机环境
Ceph PG状态介绍
CephPG状态介绍
ceph数据重构原理
ceph数据重构原理