【Ceph的部署】

这篇具有很好参考价值的文章主要介绍了【Ceph的部署】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、基于 ceph-deploy 部署 Ceph 集群

1、Ceph 生产环境推荐:

1、存储集群全采用万兆网络
2、集群网络(cluster-network,用于集群内部通讯)与公共网络(public-network,用于外部访问Ceph集群)分离
3、mon、mds 与 osd 分离部署在不同主机上(测试环境中可以让一台主机节点运行多个组件)
4、OSD 使用 SATA 亦可
5、根据容量规划集群
6、至强E5 2620 V3或以上 CPU,64GB或更高内存
7、集群主机分散部署,避免机柜的电源或者网络故障

字号4

2、Ceph 环境规划

主机名 Public网络 Cluster网络 角色
admin 192.168.102.10 admin(管理节点负责集群整体部署)、client
node01 192.168.102.20 192.168.100.20 mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node02 192.168.102.30 192.168.100.30 mon、mgr、osd(/dev/sdb、/dev/sdc、/dev/sdd)
node03 192.168.102.40 192.168.100.40 mon、osd(/dev/sdb、/dev/sdc、/dev/sdd)
client 192.168.102.50 client

3、环境准备

可选步骤:创建 Ceph 的管理用户
useradd cephadm
passwd cephadm

visudo
cephadm ALL=(root) NOPASSWD:ALL

【Ceph的部署】,ceph

1、关闭 selinux 与防火墙

systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

2、根据规划设置主机名

给每台服务器设置主机名

hostnamectl set-hostname admin
hostnamectl set-hostname node01
hostnamectl set-hostname node02
hostnamectl set-hostname node03
hostnamectl set-hostname client

3、配置 hosts 解析

【Ceph的部署】,ceph

4、安装常用软件和依赖包

yum -y install epel-release
yum -y install yum-plugin-priorities yum-utils ntpdate python-setuptools python-pip gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel zip unzip ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssh openssl-devel nss_ldap openldap openldap-devel openldap-clients openldap-servers libxslt-devel libevent-devel ntp libtool-ltdl bison libtool vim-enhanced python wget lsof iptraf strace lrzsz kernel-devel kernel-headers pam-devel tcl tk cmake ncurses-devel bison setuptool popt-devel net-snmp screen perl-devel pcre-devel net-snmp screen tcpdump rsync sysstat man iptables sudo libconfig git bind-utils tmux elinks numactl iftop bwm-ng net-tools expect snappy leveldb gdisk python-argparse gperftools-libs conntrack ipset jq libseccomp socat chrony sshpass

5、在 admin 管理节点配置 ssh 免密登录所有节点

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@admin
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@node01
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@node02
sshpass -p 'Dz030617' ssh-copy-id -o StrictHostKeyChecking=no root@node03

【Ceph的部署】,ceph

vim /etc/ssh/ssh_config 

【Ceph的部署】,ceph

6、为每一个服务器配置时间同步

systemctl enable --now chronyd
timedatectl set-ntp true					#开启 NTP
timedatectl set-timezone Asia/Shanghai		#设置时区
chronyc -a makestep							#强制同步下系统时钟
timedatectl status							#查看时间同步状态
chronyc sources -v							#查看 ntp 源服务器信息
timedatectl set-local-rtc 0					#将当前的UTC时间写入硬件时钟

【Ceph的部署】,ceph

#重启依赖于系统时间的服务
systemctl restart rsyslog 
systemctl restart crond

#关闭无关服务
systemctl disable --now postfix

7、配置 Ceph yum源

wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificate

rpm -ivh ceph-release-1-1.el7.noarch.rpm --force

8、执行完上面所有的操作之后重启所有主机(可选)

sync
reboot

9、为每哥节点主机多设置三张硬盘进行使用

【Ceph的部署】,ceph
添加好硬盘后进行刷新硬盘

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan

【Ceph的部署】,ceph

10、为每个节点设置vip地址

【Ceph的部署】,ceph

2、部署 Ceph 集群

1、为所有节点都创建一个 Ceph 工作目录,后续的工作都在该目录下进行

mkdir -p /etc/ceph

2、在admin节点上安装 ceph-deploy 部署工具

cd /etc/ceph
yum install -y ceph-deploy

ceph-deploy --version

【Ceph的部署】,ceph

3、在管理节点为其它节点安装 Ceph 软件包

#也可采用手动安装 Ceph 包方式,在其它节点上执行下面的命令将 Ceph 的安装包都部署上:
sed -i 's#download.ceph.com#mirrors.tuna.tsinghua.edu.cn/ceph#' /etc/yum.repos.d/ceph.repo

yum install -y ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common ceph

4、生成初始配置

#在管理节点运行下述命令,告诉 ceph-deploy 哪些是 mon 监控节点
cd /etc/ceph
ceph-deploy new --public-network 192.168.102.0/24 --cluster-network 192.168.100.0/24 node01 node02 node03
#命令执行成功后会在 /etc/ceph 下生成配置文件
ls /etc/ceph
ceph.conf					#ceph的配置文件
ceph-deploy-ceph.log		#monitor的日志
ceph.mon.keyring			#monitor的密钥环文件

【Ceph的部署】,ceph

5、在管理节点初始化 mon 节点

cd /etc/ceph
ceph-deploy mon create node01 node02 node03			#创建 mon 节点,由于 monitor 使用 Paxos 算法,其高可用集群节点数量要求为大于等于 3 的奇数台

ceph-deploy --overwrite-conf mon create-initial		#配置初始化 mon 节点,并向所有节点同步配置
													# --overwrite-conf 参数用于表示强制覆盖配置文件

ceph-deploy gatherkeys node01						#可选操作,向 node01 节点收集所有密钥
1、命令执行成功后会在 /etc/ceph 下生成配置文件
ls /etc/ceph
ceph.bootstrap-mds.keyring			#引导启动 mds 的密钥文件
ceph.bootstrap-mgr.keyring			#引导启动 mgr 的密钥文件
ceph.bootstrap-osd.keyring			#引导启动 osd 的密钥文件
ceph.bootstrap-rgw.keyring			#引导启动 rgw 的密钥文件
ceph.client.admin.keyring			#ceph客户端和管理端通信的认证密钥,拥有ceph集群的所有权限
ceph.conf
ceph-deploy-ceph.log
ceph.mon.keyring

【Ceph的部署】,ceph

2、在 node 节点上查看自动开启的 mon 进程
#在 node 节点上查看自动开启的 mon 进程
ps aux | grep ceph

【Ceph的部署】,ceph

3、在管理节点查看 Ceph 集群状态
cd /etc/ceph
ceph -s

【Ceph的部署】,ceph

4、查看 mon 集群选举的情况
ceph quorum_status --format json-pretty | grep leader

【Ceph的部署】,ceph

5、扩容 mon 节点
ceph-deploy mon add <节点名称>

6、部署能够管理 Ceph 集群的节点

#可实现在各个节点执行 ceph 命令管理集群
cd /etc/ceph
ceph-deploy --overwrite-conf config push node01 node02 node03		#向所有 mon 节点同步配置,确保所有 mon 节点上的 ceph.conf 内容必须一致

ceph-deploy admin node01 node02 node03			#本质就是把 ceph.client.admin.keyring 集群认证文件拷贝到各个节点
1、在 mon 节点上查看
ls /etc/ceph
ceph.client.admin.keyring  ceph.conf  rbdmap  tmpr8tzyc

cd /etc/ceph
ceph -s

7、部署 osd 存储节点

#主机添加完硬盘后不要分区,直接使用
lsblk 

【Ceph的部署】,ceph

1、如果是利旧的硬盘,则需要先擦净(删除分区表)磁盘(可选,无数据的新硬盘可不做)
cd /etc/ceph
ceph-deploy disk zap node01 /dev/sdb
ceph-deploy disk zap node02 /dev/sdb
ceph-deploy disk zap node03 /dev/sdb
2、添加 osd 节点
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdb
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdb
3、查看 ceph 集群状态
ceph -s

【Ceph的部署】,ceph

ceph osd stat
ceph osd tree
rados df

【Ceph的部署】,ceph

ceph osd status    #查看 osd 状态,需部署 mgr 后才能执行

【Ceph的部署】,ceph

ceph osd df    #查看 osd 容量,需部署 mgr 后才能执行

【Ceph的部署】,ceph

4、扩容 osd 节点
cd /etc/ceph
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdc
ceph-deploy --overwrite-conf osd create node01 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node02 --data /dev/sdd
ceph-deploy --overwrite-conf osd create node03 --data /dev/sdd

添加 OSD 中会涉及到 PG 的迁移,由于此时集群并没有数据,因此 health 的状态很快就变成 OK,如果在生产环境中添加节点则会涉及到大量的数据的迁移。

8、部署 mgr 节点

ceph-mgr守护进程以Active/Standby模式运行,可确保在Active节点或其ceph-mgr守护进程故障时,其中的一个Standby实例可以在不中断服务的情况下接管其任务。根据官方的架构原则,mgr至少要有两个节点来进行工作。

cd /etc/ceph
ceph-deploy mgr create node01 node02
ceph -s

【Ceph的部署】,ceph

解决 HEALTH_WARN 问题:mons are allowing insecure global_id reclaim问题:
禁用不安全模式:ceph config set mon auth_allow_insecure_global_id_reclaim false

【Ceph的部署】,ceph

1、扩容 mgr 节点
ceph-deploy mgr create <节点名称>

9、开启监控模块

1、在 ceph-mgr Active节点执行命令开启
ceph -s | grep mgr

yum install -y ceph-mgr-dashboard

cd /etc/ceph

ceph mgr module ls | grep dashboard

【Ceph的部署】,ceph

2、开启 dashboard 模块
ceph mgr module enable dashboard --force
3、禁用 dashboard 的 ssl 功能
ceph config set mgr mgr/dashboard/ssl false
4、配置 dashboard 监听的地址和端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8000
5、重启 dashboard
ceph mgr module disable dashboard
ceph mgr module enable dashboard --force
6、确认访问 dashboard 的 url
ceph mgr services

【Ceph的部署】,ceph

7、设置 dashboard 账户以及密码
echo "12345678" > dashboard_passwd.txt
ceph dashboard set-login-credentials admin -i dashboard_passwd.txt
  或
ceph dashboard ac-user-create admin administrator -i dashboard_passwd.txt

【Ceph的部署】,ceph


浏览器访问:http://192.168.80.11:8000 ,账号密码为 admin/12345678

【Ceph的部署】,ceph【Ceph的部署】,ceph

二、资源池 Pool 管理

上面我们已经完成了 Ceph 集群的部署,但是我们如何向 Ceph 中存储数据呢?首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解为 Ceph 存储上划分的逻辑分区,Pool 由多个 PG 组成;而 PG 通过 CRUSH 算法映射到不同的 OSD 上;同时 Pool 可以设置副本 size 大小,默认副本数量为 3。

Ceph 客户端向 monitor 请求集群的状态,并向 Pool 中写入数据,数据根据 PGs 的数量,通过 CRUSH 算法将其映射到不同的 OSD 节点上,实现数据的存储。 这里我们可以把 Pool 理解为存储 Object 数据的逻辑单元;当然,当前集群没有资源池,因此需要进行定义。

1、创建一个 Pool 资源池

创建一个 Pool 资源池,其名字为 mypool,PGs 数量设置为 64,设置 PGs 的同时还需要设置 PGP(通常PGs和PGP的值是相同的):

PG (Placement Group),pg 是一个虚拟的概念,用于存放 object,PGP(Placement Group for Placement purpose),相当于是 pg 存放的一种 osd 排列组合
cd /etc/ceph
ceph osd pool create mypool 64 64

2、查看集群 Pool 信息

ceph osd pool ls    或    rados lspools
ceph osd lspools

【Ceph的部署】,ceph

3、查看资源池副本的数量

ceph osd pool get mypool size

【Ceph的部署】,ceph

4、查看 PG 和 PGP 数量

ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

【Ceph的部署】,ceph

5、修改 pg_num 和 pgp_num 的数量为 128

ceph osd pool set mypool pg_num 128
ceph osd pool set mypool pgp_num 128

ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

【Ceph的部署】,ceph

6、修改 Pool 副本数量为 2

ceph osd pool set mypool size 2

ceph osd pool get mypool size

【Ceph的部署】,ceph

7、修改默认副本数为 2

到管理节点上进行添加内容
【Ceph的部署】,ceph

vim ceph.conf
......
osd_pool_default_size = 2

ceph-deploy --overwrite-conf config push node01 node02 node03

操作完成后对所有节点进行重启服务

systemctl restart ceph-mon.target 

【Ceph的部署】,ceph

8、删除 Pool 资源池

1)删除存储池命令存在数据丢失的风险,Ceph 默认禁止此类操作,需要管理员先在 ceph.conf 配置文件中开启支持删除存储池的操作

vim ceph.conf
......
[mon]
mon allow pool delete = true

【Ceph的部署】,ceph

2)推送 ceph.conf 配置文件给所有 mon 节点

ceph-deploy --overwrite-conf config push node01 node02 node03

操作完成后对所有节点进行重启服务

systemctl restart ceph-mon.target 

【Ceph的部署】,ceph
3)执行删除 Pool 命令

ceph osd pool rm dz dz --yes-i-really-really-mean-it

【Ceph的部署】,ceph文章来源地址https://www.toymoban.com/news/detail-576463.html

到了这里,关于【Ceph的部署】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Ceph的部署】

    1、存储集群全采用万兆网络 2、集群网络(cluster-network,用于集群内部通讯)与公共网络(public-network,用于外部访问Ceph集群)分离 3、mon、mds 与 osd 分离部署在不同主机上(测试环境中可以让一台主机节点运行多个组件) 4、OSD 使用 SATA 亦可 5、根据容量规划集群 6、至强

    2024年02月16日
    浏览(20)
  • Ceph部署

    DAS (直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储 NAS (网络附加存储,是通过网络附加到当前主机文件系统之上的存储) NFS、CIFS、FTP 文件系统级别的存储,

    2024年02月16日
    浏览(20)
  • Linux学习--Ceph部署

    前期准备 资源下载 链接: https://pan.baidu.com/s/1Yof-X-fD8kYLSmLAWFo5Ug 提取码: txj5 环境准备 在pubserver上配置ansible环境 配置名称解析 配置pubserver为NTP服务器 配置ceph1-ceph3使用pubserver提供的时间服务 准备容器仓库服务器 安装软件包,并导入镜像 安装ceph 创建集群 添加OSD硬盘 实现块存

    2024年02月11日
    浏览(29)
  • 分部署存储Ceph

    投入使用ceph前,要知道一个很现实得问题,ceph对低版本内核得客户端使用非常不友好,低内核是指小于等于3.10.0-862,默认的centos7.5及以下的系统都是小于此类内核,无法正常使用ceph的文件存储(cephFS)块存储(RBD)。 ceph部署一定要考虑好版本问题,经测试如果想使用cep

    2024年02月11日
    浏览(31)
  • Ceph的部署与应用

    一.存储基础 1.单机存储设备 (1)DAS(直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储 (2)NAS(网络附加存储,是通过网络附加到当前主机文件系统之上的存储) NFS、

    2024年02月16日
    浏览(25)
  • ceph相关概念和部署

    Ceph 可用于向云提供 Ceph 对象存储 平台和 Ceph 可用于提供 Ceph 块设备服务 到云平台。Ceph 可用于部署 Ceph 文件 系统。所有 Ceph 存储集群部署都从设置 每个 Ceph 节点,然后设置网络。 Ceph 存储集群需要满足以下条件:至少一个 Ceph 监控器,并且 至少一个 Ceph 管理器,以及至少

    2024年02月13日
    浏览(33)
  • Ceph集群安装部署

    1.1 环境简介 主机名 IP 磁盘一 磁盘二 磁盘三 CPU 内存 操作系统 虚拟化工具 ceph-01 192.168.200.33 100G 50G 50G 2C 4G Ubuntu 22.04 VMware15 ceph-02 192.168.200.34 100G 50G 50G 2C 4G Ubuntu 22.04 VMware15 ceph-03 192.168.200.35 100G 50G 50G 2C 4G Ubuntu 22.04 VMware15 1.2 配置hosts解析(所有节点) 1.3 配置时间同步 所有节点

    2024年02月13日
    浏览(31)
  • DAY 78 ceph集群部署

    Ceph 环境规划 主机名 Public网络 Cluster网络 角色 admin 192.168.137.10 admin(管理节点负责集群整体部署) node01    192.168.137.15 192.168.137.15 mon、mgr、osd node02   192.168.137.20 192.168.137.20 mon、mgr、osd node03   192.168.137.30 192.168.137.30 mon、osd clinet 192.168.137.40 client 1、关闭 selinux 与防火墙 2、

    2024年02月09日
    浏览(21)
  • 分布式存储Ceph部署

    前言 Ceph 和 GlusterFS 都是出色的分布式存储,其中Ceph 广泛由于Openstack以及K8S的分布式持久化存储。 介绍 Ceph 是一个开源的分布式存储系统,同时支持 对象存储、块设备、文件系统 ceph 是一个对象(object)式存储系统,它把每一个待管理的数据流(文件等数据)切分为一到多个固

    2024年02月14日
    浏览(31)
  • 使用cephadm部署ceph集群

    从红帽ceph5开始使用cephadm代替之前的ceph-ansible作为管理整个集群生命周期的工具,包括部署,管理,监控。 cephadm引导过程在单个节点(bootstrap节点)上创建一个小型存储集群,包括一个Ceph Monitor和一个Ceph Manager,以及任何所需的依赖项。 如下图所示: cephadm可以登录到容器

    2024年01月17日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包