Ceph分布式存储工作部署
【摘要】 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)