当前位置:网站首页>ceph部署
ceph部署
2022-08-09 15:46:00 【weijiajia123456】
基本概念
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式的存储系统。Ceph 独一无二地用统一的系统提供了对象、块、和文件存储功能,它可靠性高、管理简便、并且是开源软件。 Ceph 的强大足以改变贵公司的 IT 基础架构、和管理海量数据的能力。Ceph 可提供极大的伸缩性——供成千用户访问 PB 乃至 EB 级的数据。 Ceph 节点以普通硬件和智能守护进程作为支撑点, Ceph 存储集群组织起了大量节点,它们之间靠相互通讯来复制数据、并动态地重分布数据。
1.ceph的组件和功能
1)Ceph的核心组件
Ceph的核心组件包括Ceph OSD、Ceph Monitor和Ceph MDS三大组件。
Ceph OSD:OSD的英文全称是Object Storage Device,它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD。
Ceph Monitor:由该英文名字我们可以知道它是一个监视器,负责监视Ceph集群,维护Ceph集群的健康状态,同时维护着Ceph集群中的各种Map图,比如OSD Map、Monitor Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和object id等计算出数据最终存储的位置。
Ceph MDS:全称是Ceph MetaData Server,主要保存的文件系统服务的元数据,但对象存储和块存储设备是不需要使用该服务的。
(2)Ceph功能特性
Ceph可以同时提供对象存储RADOSGW(Reliable、Autonomic、Distributed、Object Storage Gateway)、块存储RBD(Rados Block Device)、文件系统存储Ceph FS(Ceph File System)3种功能,由此产生了对应的实际场景,本节简单介绍如下。
RADOSGW功能特性基于LIBRADOS之上,提供当前流行的RESTful协议的网关,并且兼容S3和Swift接口,作为对象存储,可以对接网盘类应用以及HLS流媒体应用等。
RBD(Rados Block Device)功能特性也是基于LIBRADOS之上,通过LIBRBD创建一个块设备,通过QEMU/KVM附加到VM上,作为传统的块设备来用。目前OpenStack、CloudStack等都是采用这种方式来为VM提供块设备,同时也支持快照、COW(Copy On Write)等功能。
Ceph FS(Ceph File System)功能特性是基于RADOS来实现分布式的文件系统,引入了MDS(Metadata Server),主要为兼容POSIX文件系统提供元数据。一般都是当做文件系统来挂载。
2.ceph的数据读写流程
Ceph的读/写操作采用Primary-Replica模型,客户端只向Object所对应OSD set的Primary OSD发起读/写请求,这保证了数据的强一致性。当Primary OSD收到Object的写请求时,它负责把数据发送给其他副本,只有这个数据被保存在所有的OSD上时,Primary OSD才应答Object的写请求,这保证了副本的一致性。
3.使用ceph-deploy安装一个最少三个节点的ceph集群 推荐3个或以上的磁盘作为专用osd
首先准备基础环境,我的三台虚拟机全部使用最小安装
ceph1:192.168.121.147 每台主机准备四块磁盘,sda作为系统盘,其它三块作为ceph的OSD服务磁盘使用
ceph2:192.168.121.148
ceph3:192.168.121.149
systemctl stop firewalld
systemctl disable firewalld //关闭防火墙并设置开机不启动
vim /etc/selimux/config
selinux=disabled //更改selinux的模式
hostnamectl set-hostname ceph1 //三台主机名分别设置为ceph1-3,注意这里使用短主机名
然后准备安装ceph集群的环境变量
以下配置三台机器都需要设置
vim /openrc //编辑一个文本
export username="ceph-admin" //安装时使用ceph-admin一般用户安装,这里设置一个变量方便后面调用
export passwd="ceph-admin"
export node1="ceph1" //设置主机名的环境变量
export node2="ceph2"
export node3="ceph3"
export node1_ip="192.168.121.147" //设置主机ip地址的环境变量
export node2_ip="192.168.121.168"
export node3_ip="192.168.121.149"
下载ceph的rpm源
wget -O /etc/yum.repos.d/ceph.repo https://raw.githubusercontent.com/aishangwei/ceph-
demo/master/ceph-deploy/ceph.repo
配置ntp
yum install -y ntp ntpdate
ntpdate cn.ntp.org.cn
systemctl restart ntpd
systemctl enable ntpd
systemctl enable ntpdate
创建部署用户
useradd ${username} //创建ceph-admin用户,用于集群部署
echo "${passwd}" | passwd --stdin ${username}
echo "${username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph-admin //设置ceph-admin执 行特殊命令时的sudo权限
chmod 0440 /etc/sudoers.d/ceph-admin 更该文件权限
配置三台主机的主机名解析
vim /etc/hosts
192.168.121.147 ceph1
192.168.121.148 ceph2
192.168.121.149 ceph3
配置三台主机的ssh免密钥登录
su - ceph-admin
ssh-keygen
ssh-copy-id [email protected]
ssh-copy-id [email protected]
ssh-copy-id [email protected]
使用ceph-deploy部署集群
安装ceph-deploy
sudo yum install -y ceph-deploy python-pip //注意python-pip需要使用epel源,提前将epel源配置好
mkdir my-cluster //创建安装目录
cd my-cluster
进行节点部署
ceph-deploy new ceph1 ceph2 ceph3 //这里务必要保证三台主机的网络是互通的
安装完之后my-cluster目录下面会生成三个文件
ceph.conf
ceph-deploy-ceph.log
ceph.mon.keyring
编辑ceph.conf配置文件,在最后添加一下信息
sudo vim ~/my-cluster/ceph.conf
public network = 192.168.6.0/24
cluster network = 192.168.6.0/24
安装ceph包
sudo yum install -y ceph ceph-radosgw //三个节点上都要安装,这两个包需要使用epel源,
配置初始的monitor并收集所有密钥:
ceph-deploy mon create-initial
把配置信息拷贝到各节
ceph-deploy admin ceph1 ceph2 ceph3
配置osd
使用for循环语句执行(也可以写到文本中做成脚本执行)
for dev in /dev/sdb /dev/sdc /dev/sdd //注意磁盘名称,可以使用lsblk命令进行查看
do
ceph-deploy disk zap ceph1 $dev
ceph-deploy osd create ceph1 --data $dev
ceph-deploy disk zap ceph2 $dev
ceph-deploy osd create ceph2 --data $dev
ceph-deploy disk zap ceph3 $dev
ceph-deploy osd create ceph3 --data $dev
done
配置完OSD之后,部署mgr用于监控整个集群
ceph-deploy mgr create ceph1 ceph2 ceph3
开启dashboard模块,启用浏览器界面
在开启dashboard模块之前要注意,因为我们是使用ceph-admin一般用户进行安装,所有无法调用/etc/ceph/下面的文件,将/etc/ceph目录下面的文件属主属组全部更改为ceph-admin
sudo chown -R ceph-admin /etc/ceph
然后加载dashboard模块
ceph mgr module enable dashboard
加载完模块之后查看7000号端口号是否正常监听
ss -ntl
打开浏览器输入192.168.121.147:7000查看ceph存储集群整体状况
边栏推荐
- MySQL 5.5系列安装步骤教程(图解版)
- TMin - TMin是否产生溢出
- August 9, 2022: Build .NET apps in C# -- use the Visual Studio Code debugger to interactively debug .NET apps (won't, fail)
- 2.1, pay attention to the network based on parallel context scenario text image super-resolution
- 六.数组越界问题引出对栈区内存的探索
- 易基因|作物育种:DNA甲基化在大豆优良品种培育中的作用研究成果
- [1413. Stepwise summation to get the minimum value of positive numbers]
- 网络——流量控制&可靠传输&滑动窗口
- 成为CTO,6个月被老板干死,我损失了1000万
- Qt学习第二天
猜你喜欢

Volatile:JVM 我警告你,我的人你别乱动

第一篇博客

Smart Light Pole Gateway Smart Transportation Application

SQL trill interview: send you a universal template, to?(key, each user to log on to the maximum number of consecutive monthly)

A42 - 基于51单片机的洗衣机设计

Sigrity PowerSI Characteristic Impedance and Coupling Simulation

网络——流量控制&可靠传输&滑动窗口

易基因|作物育种:DNA甲基化在大豆优良品种培育中的作用研究成果

日志定期压缩、清除

MySQL索引的B+树到底有多高?
随机推荐
网络——数字数据编码
[1413. Stepwise summation to get the minimum value of positive numbers]
B44 - 基于stm32蓝牙智能语音识别分类播报垃圾桶
打印星型图「建议收藏」
利用C#传输Json数据
【MySQL】源码编译MySQL8.x+升级gcc+升级cmake(亲测完整版)
面试官:Redis 大 key 要如何处理?
How to create DataFrame with feature importance from XGBClassifier made by GridSearchCV?
<IDEA 使用小技巧&&常用键联合操作>
插入一个数并排序「建议收藏」
计组——大端方式和小端方式相关题目
三.两数交换 空指针 && 野指针 解引用问题
视频聊天源码——一对一直播如何提高直播质量?
Nacos Jaspyt配置加密设置
现在,怎么挑选舞台租赁LED显示屏?
巧用Prometheus来扩展kubernetes调度器
5G NR Paging
pgsql备份工具,哪个比较好?
PADS生成位号图
B024 – STM32温湿度控制体温检测烟雾报警系统