CEPH搭建

简介: CEPH搭建

一、概述

       是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。


特点

1、统一存储

虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。


2、高扩展性

 扩容方便、容量大。能够管理上千台服务器、EB 级的容量。


3、可靠性强

支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。


4、高性能

因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。


组件

1、Monitor

一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。


2、OSD

OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。


3、MOD

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。


4、Objet

Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。


5、PG

PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。


6、RADOS

RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。


7. Libradio

Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。


8. CRUSH

CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。


9. RBD

RBD全称RADOS block device,是Ceph对外提供的块设备服务。


10. RGW

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。


11. CephFS

CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。


架构图

1:文件上传,先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)

2:切片后的文件object会存入到Ceph中

3:文件存储前,会经过CRUSH算法,计算当前文件存储归结于哪个PG

4:PG是逻辑概念上对文件存储范围划分的索引

5:根据PG索引将文件存储到指定服务器的OSD中


二、准备工作

centos1    monitor    osd         192.168.100.3

centos2                    osd         192.168.100.4

centos3                    osd         192.168.100.5

centos4                    Client      192.168.100.6


1、关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service


2、关闭图形网络管理器

systemctl stop NetworkManager

systemctl disable NetworkManager


3、配置静态ip

sed -i "s/ONBOOT=no/ONBOOT=yes/" /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl restart network


4、关闭selinux

setenforce 0


5、修改主机名

hostnamectl set-hostname centos{1..4}


6、修改设置

sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config

systemctl restart sshd


7、ssh免密设置

centos1

   ssh-keygen

   for i in 3 4 5 6 ; do ssh-copy-id root@192.168.100.$i;done

centos2

   ssh-keygen

  for i in 3 4 5 6 ; do ssh-copy-id root@192.168.100.$i;done

centos3

   ssh-keygen

   for i in 3 4 5 6 ; do ssh-copy-id root@192.168.100.$i;done

centos4

   ssh-keygen

   for i in 3 4 5 6 ; do ssh-copy-id root@192.168.100.$i;done


8、hosts文件修改

vim /etc/hosts

   192.168.100.3   centos1

   192.168.100.4    centos2

   192.168.100.5    centos3

   192.168.100.6    centos4

for i in 3 4 5 6;do scp /etc/hosts 192.168.100.$i:/etc/;done



9、时间同步

yum install -y ntp

vim /etc/ntp.conf

server 127.127.1.0  ·                  定义时间服务器

fudge 127.127.1.0 stratum 8       定义时间层次


systemctl start ntpd

systemctl enable ntpd


for i in 4 5 6 ;do ssh 192.168.100.$i  ntpdate 192.168.100.3;done


10、添加磁盘,并热扫描

cd /sys/class/scsi_host


for i in `ls`;do echo "- - -" > $i/scan;done

lsblk                        centos1 2 3 都需要进行


11、磁盘格式化

mkfs.xfs /dev/sdb


三、ceph安装

yum install epel-release -y
yum install lttng-ust -y
vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
# 清华源
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
yum -y install ceph ceph-deploy 
创建集群目录
mkdir -p /usr/local/soft/cephcluster
cd /usr/local/soft/cephcluster
ceph-deploy new centos1 centos2 centos3
修改配置文件
vim ceph.conf
#对外开放网段
public network = 192.168.100.0/24
# 设置pool池默认分配数量
osd pool default size = 2
# 容忍更多的时钟误差
mon clock drift allowed = 2
mon clock drift warn backoff = 30
# 允许删除pool
mon_allow_pool_delete = true
[mgr]
# 开启WEB仪表盘
mgr modules = dashboard
安装
ceph-deploy install centos1 centos2 centos3(需要良好网络)
初始化monitor
ceph-deploy mon create-initial 
同步管理信息
ceph-deploy admin  centos1 centos2 centos3
安装mgr(管理守护进程)
ceph-deploy mgr create  centos1 centos2 centos3
安装rgw
ceph-deploy rgw create centos1 centos2 centos3
创建mds服务
ceph-deploy mds create centos1 centos2 centos3
OSD安装,创建OSD
ceph-deploy osd create --data /dev/sdb centos1
ceph-deploy osd create --data /dev/sdb centos2
ceph-deploy osd create --data /dev/sdb centos3
查看集群状态
ceph -s


三、dashboard安装

开启dashboard模块
ceph mgr module enable dashboard
生成签名
ceph dashboard create-self-signed-cert
创建目录
mkdir -p /usr/local/jx/cephcluster/mgr-dashboard
cd /usr/local/jx/cephcluster/mgr-dashboard 
openssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca
启动服务
ceph mgr module disable dashboard
ceph mgr module enable dashboard
设置访问地址与端口
ceph config set mgr mgr/dashboard/server_addr 192.168.100.3
ceph config set mgr mgr/dashboard/server_port 9001
关闭https
ceph config set mgr mgr/dashboard/ssl false
查看ceph地址
ceph mgr services
设置用户和密码
ceph dashboard set-login-credentials jx123 123.com
访问测试
https://192.168.100.3:8443
在ceph文件系统创建存储池
少于5个OSD可把pg_num设置为128
OSD数量在5到10,可以设置pg_num为512
OSD数量在10到50,可以设置pg_num为4096
OSD数量大于50,需要计算pg_num的值
cd /usr/local/soft/cephcluster
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64
查看存储池
ceph osd lspools
创建文件系统
ceph fs new  fs_test  cephfs_metadata cephfs_data
查看文件系统
ceph fs ls
查看mds状态
ceph mds stat


四、客户挂载

centos1操作
安装
同步管理信息
ceph-deploy install centos4
ceph-deploy admin  centos4
centos4操作
yum install -y ceph-fuse
查看信息
ls  /etc/ceph
ceph.client.admin.keyring
创建挂载目录
mkdir /ceph挂载ceph文件系统
ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.100.3:6789 /ceph
相关文章
|
存储 负载均衡 监控
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--开放虚拟网络(OVN)简介
第六章 管理OPENSTACK网络--开放虚拟网络(OVN)简介
2949 0
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--开放虚拟网络(OVN)简介
|
存储 网络协议 文件存储
存储技术之FC 与 iSCSI 尖峰对决
  综述:   2003 年,互联网工程任务组(IETF)批准iSCSI(互联网SCSI)协议后,很多人开始将以太网作为分块存储网络使用(成为“基于IP 的存储”)。一直以来,人们采用iFCP和FCIP 等现有协议发送基于IP 的SCSI 命令行,主要允许FC 存储区域网络(SAN)通过IP 交换数据。凭借iSCSI,SCSI 命令行可以“端对端”地传送到世界各地的以太网中。
3425 0
|
7月前
|
存储 运维 自然语言处理
OpenClaw阿里云上一键部署上云指南,让OpenClaw(原Clawdbot)24小时为你工作
OpenClaw(原Clawdbot、Moltbot)是一款开源AI自动化代理平台,核心依托大语言模型的自然语言理解能力,无需用户掌握编程技能,仅通过日常语言指令即可完成办公自动化、文件管理、多工具协同、基础开发辅助等多元任务,兼容主流大语言模型,可灵活对接各类应用接口与私有知识库,适配个人办公、轻量团队协作等多种场景。2026年,阿里云轻量服务器针对OpenClaw优化推出专属一键部署方案,通过预置应用镜像,跳过手动配置依赖、调试运行环境的复杂步骤,大幅降低部署门槛,同时依托云端基础设施实现7×24小时不间断运行,让OpenClaw持续为用户处理自动化任务,兼顾便捷性、稳定性与低成本,成为个
874 9
|
4月前
|
机器学习/深度学习 人工智能 前端开发
2026 年 AI 对话转 Word 工具分析:Pandoc、Typora、DeepShare 怎么选?
本文对比Pandoc、Typora与DeepShare三大AI对话转Word工具:Pandoc适合技术用户批量转换,需前置整理;Typora侧重Markdown编辑后导出,适合人工润色;DeepShare专为AI网页优化,一键导出公式、表格、Canvas等复杂内容,省去复制粘贴与格式修复,是学生、教师及职场人士高效交付的首选方案。
2026 年 AI 对话转 Word 工具分析:Pandoc、Typora、DeepShare 怎么选?
|
SpringCloudAlibaba Dubbo Java
【SpringCloud Alibaba系列】Dubbo基础入门篇
Dubbo是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。
1006 1
【SpringCloud Alibaba系列】Dubbo基础入门篇
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
1083 2
|
Kubernetes Cloud Native Docker
使用 kubevpn 在本地快速开发云原生应用
KubeVPN 是一个用于云原生开发的工具,它允许用户通过本地计算机直接访问远程 Kubernetes 集群中的服务,利用 k8s DNS 或 Pod IP/Service IP。它可以拦截并调试服务网格中的工作负载流量,并提供开发模式,让容器在本地以与 k8s pod 相同的环境运行。快速开始包括下载二进制文件、自定义 Krew 安装、构建二进制文件以及安装示例应用。KubeVPN 支持链接到多个集群、DNS 解析、反向代理,以及在 Docker 中的开发模式,确保与 Kubernetes 运行环境一致。此外,它还兼容多种协议和平台。
1150 5
|
网络安全
ceph的mgr组件模块dashboard图形化管理ceph集群
关于如何通过Ceph的mgr组件模块dashboard来图形化管理Ceph集群的教程,包括基于HTTP和HTTPS的配置步骤。
1450 3
|
Java 持续交付 虚拟化
深入浅出:使用Docker容器化改善Java应用的开发与部署流程
在快速迭代与持续集成的软件开发周期中,确保应用在各种环境中一致运行是一个挑战。本文介绍了如何利用Docker容器技术,来容器化Java应用,以实现环境一致性、简化配置和加速部署过程。我们将从Docker的基础知识开始,探讨其与传统虚拟机的区别,进而深入到如何创建Dockerfile,构建镜像,以及运行和管理容器。此外,文章还将涵盖使用Docker Compose来管理多容器应用的策略,以及如何利用容器化改善CI/CD流程。通过本文,读者将获得关于如何高效地利用Docker改善Java应用开发与部署流程的实践指导。
828 1
|
Kubernetes 应用服务中间件 nginx
使用kubeadm搭建生产环境的多master节点k8s高可用集群
使用kubeadm搭建生产环境的多master节点k8s高可用集群
2091 1