Ceph分布式存储工作部署

举报
tea_year 发表于 2025/08/22 17:40:23 2025/08/22
【摘要】 Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目。经过多年的发展之后,已得到众多云计算和存储厂商的支持,成为应用最广泛的开源分布式存储平台。随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之一。Ceph可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),...



Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目。经过多年的发展之后,已得到众多云计算和存储厂商的支持,成为应用最广泛的开源分布式存储平台。随着云计算的发展,ceph乘上了OpenStack的春风,进而成为了开源社区受关注较高的项目之一。Ceph可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),然后按需分配给应用使用。

集群搭建(基于ceph-deploy)

1 集群规划及克隆

主机名

公共网络

内部(集群)网络

角色
ceph-admin
192.168.170.140

admin管理集群
ceph-1
192.168.170.141
192.168.200.141
mon,mgr,osd(/dev/sdb,/dev/sdc)

ceph-2
192.168.170.142
192.168.200.142
mon,mgr,osd(/dev/sdb,/dev/sdc)

ceph-3

192.168.170.143
192.168.200.143
mon,mgr,osd(/dev/sdb,/dev/sdc)

ceph-client
192.168.170.144


client

克隆机子,修改主机名称,修改IP,不再详细写,前面一直使用。

下面在克隆机已经配置过,不需要再次配置。

修改访问控制策略(nginx时修改过!)

vim /etc/selinux/config

:7 disabled

重启使用xshell连接

或者 在allsession中执行

cat /etc/selinux/config
setenforce 0 && sed -i 's/enforcing/disabled/' /etc/selinux/config
cat /etc/selinux/config
cat /etc/sysconfig/selinux 这是个软链接

注意点:

双IP配置的优势

性能提升:

分离流量:使用两个IP地址可以允许将Ceph集群的内部流量(如OSD之间的数据复制、心跳信号等)与外部流量(如Ceph客户机与OSD之间的通信)分离。这有助于减少网络拥塞,提高整体性能。

负载均衡:通过将不同类型的流量分配到不同的网络接口,可以实现更好的负载均衡,避免单一网络接口成为性能瓶颈。

安全性增强:

隔离内部网络:通过为Ceph集群配置一个专用的内部网络,可以将其与互联网或其他非集群网络隔离,从而提高系统的安全性。

防御DoS攻击:当Ceph OSD之间的流量中断时,可能会导致对等失败和放置组状态异常。维护一个独立的集群网络可以帮助抵御拒绝服务(DoS)攻击,减少此类风险。

DoS攻击,全称为Denial of Service(拒绝服务)攻击,是一种网络攻击手段,旨在通过恶意手段使计算机或网络无法提供正常的服务。DoS攻击通过向目标系统发送大量请求或数据包,以消耗其系统资源(如CPU、内存、网络带宽等),导致系统无法处理正常的服务请求,从而拒绝为合法用户提供服务。这种攻击并不涉及对目标系统的直接入侵,而是通过耗尽资源来间接达到攻击目的。

一.安装配置
1)修改hosts(admin操作)
vi /etc/hosts
192.168.170.140 ceph-admin
192.168.170.141 ceph-1
192.168.170.142 ceph-2
192.168.170.143 ceph-3
192.168.170.144 ceph-client
或者
cat >> /etc/hosts << EOF
192.168.170.140 ceph-admin
192.168.170.141 ceph-1
192.168.170.142 ceph-2
192.168.170.143 ceph-3
192.168.170.144 ceph-client
EOF

自己使用ping测试:

ping ceph-1

......

......

2)免密登录(admin操作)

ssh-keygen -t rsa
ssh-copy-id ceph-admin
---复习了脚本,全量复制,增量复制---
ssh-copy-id ceph-1
ssh-copy-id ceph-2
ssh-copy-id ceph-3
ssh-copy-id ceph-client

检查是否成功(在allsession中执行):

cat .ssh/authorized_keys

#循环怎么写?

for i in 10.0.0.14{0..4};do scp /root/.ssh/authorized_keys $i:/root/.ssh/;done

复制/etc/host

scp /etc/hosts ceph-1:/etc/
scp /etc/hosts ceph-2:/etc/
scp /etc/hosts ceph-3:/etc/
scp /etc/hosts ceph-client:/etc/

all session验证:
cat /etc/hosts

3) 同步时间(5台)

安装ntp ntpdate服务 ntp(network time protocol) ntpdate 手动同步时间服务

yum -y install ntp ntpdate

查看状态

service ntpd status

启动ntpd服务:

systemctl start ntpd

设置开机自动启动:

systemctl enable ntpd

或者

systemctl enable ntpd --now

4) 配置或者下载ceph-yum源(5台)

修改ceph的yum源


或者

下载ceph的yum源,安装(在allsessioin):

mkdir -p /opt/software && cd /opt/software/
vi /etc/yum.repos.d/ceph.repo

[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0
priority=1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=0
priority=1

yum clean all
wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate
ls
rpm -ivh ceph-release-1-1.el7.noarch.rpm --force

以上步骤所有节点都操作

5)安装ceph-deploy集群部署工具(5台)

https://docs.ceph.com/en/latest/install/#recommended-methods

一共有4种安装ceph的方法:

cephadm rook ,k8s 比较新的版本使用。

ceph-ansible ceph-deploy 适合比较老的稳定版本安装

安装依赖:

yum install -y python-setuptools

创建配置目录:

创建一个 Ceph 工作目录,后续的工作都在该目录下进行

mkdir /etc/ceph && cd /etc/ceph

pwd

安装ceph-deploy 部署工具

yum -y install ceph-deploy

查看版本:

 ceph-deploy --version


#下面代码可以提前执行也可以不执行

yum install yum-plugin-priorities
yum install epel-release
yum install snappy leveldb gdisk gperftools-libs

#ceph单独的安装,各个主机都安装,其他主机不安装ceph-common,这种方式去ceph-deploy
yum install -y ceph-common
6) 安装ceph软件包

在admin节点为其他节点上安装ceph,client可以不装

https://docs.ceph.com/en/latest/releases/

#注意:ceph-deploy 2.0.1 默认部署的是 mimic 版的 Ceph,若想安装其他版本的 Ceph,可以用 --release 手动指定版本

yum install deltarpm

都安装,可能少包.

ceph-deploy install --release nautilus ceph-admin ceph-1 ceph-2 ceph-3

安装过程依赖比较多,不是很快。

验证安装,查看 ceph 版本

ceph -v

ls

查看发现安装ceph后/ect/ceph都有生成文件

7)添加集群网卡:

在ceph-1,2,3 上执行poweroff 关机

 添加一张网卡

重新启动并按照规划配置192.168.200.0网段的IP

在ceph-1,2,3 上执行:

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36


vim /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="no"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens36"
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.200.141
NETMASK=255.255.255.0

DEFROUTE="yes" 表示该网络接口应该被用作默认的路由出口,no不是默认

DEFROUTE=def route = default route 默认路由

关闭NetworkManager并设置开机不启动

systemctl disable NetworkManager --now

systemctl status NetworkManager

NetworkManager是一个开源的网络连接管理工具,它为Linux系统提供了强大的网络配置和连接管理能力。NetworkManager是动态自动管理,Network是手动管理。

重启网络:

service network restart

查看网卡信息(ceph-1,2, 3):

7)初始化配置(admin操作)

在管理节点运行下面命令,告诉 ceph-deploy 哪些是 mon 监控节点

cd /etc/ceph

ceph-deploy new --public-network 192.168.170.0/24 --cluster-network 192.168.200.0/24 ceph-1 ceph-2 ceph-3

初始化一个新的Ceph集群,并指定了公共网络和集群网络的子网以及参与集群的节点。命令执行成功后会在 /etc/ceph 下生成配置文件。

ls

ceph.conf #ceph的配置文件

ceph-deploy-ceph.log #monitor的日志

ceph.mon.keyring #monitor的密钥环文件

8) 初始化mon(admin操作):

创建 mon 节点,由于 monitor 使用 Paxos 算法,其高可用集群节点数量要求为大于等于 3 的奇数台(底层要进行leader选举,防脑裂,谁做leader肯定得票数总monitor数量/2+1)

ceph-deploy mon create ceph-1 ceph-2 ceph-3

配置初始化 mon 节点,并向所有节点同步配置

ceph-deploy --overwrite-conf mon create-initial

pwd (一定是在/etc/ceph目录中)

ls

向ceph1-3收集密钥(可选):

ceph-deploy gatherkeys ceph1
ceph-deploy gatherkeys ceph2
ceph-deploy gatherkeys ceph3

这个命令的目的是为了简化 SSH 密钥的分发和管理,使得 ceph-deploy 能够无密码地登录到集群中的其他节点,以便执行各种管理和部署任务。ceph-deploy 工具会尝试从 ceph1 节点上收集 SSH 密钥(通常是 /root/.ssh/id_rsa.pub 文件中的公钥),并将这些密钥添加到当前工作目录下的 ceph-deploy-ceph.mon.keyring 文件中(如果该文件不存在,则会创建它)。

命令执行成功后会在 /etc/ceph 下生成配置文件

9)查看集群状态(admin操作):

ceph -s

#查看 mon 集群选举的情况

ceph quorum_status
ceph quorum_status --format json-pretty
ceph quorum_status --format json-pretty | grep leader

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。