9.Ceph部署

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

Ceph部署

前期环境准备

主机名 public网络 cluster网络 角色
admin 192.168.242.69 admin(管理节点)
node01 192.168.242.66 192.168.242.100.11 mon、mgr、osd
node02 192.168.242.67 192.168.242.100.12 mon、mgr、osd
node03 192.168.242.68 192.168.242.100.13 mon、osd
client 192.168.242.70 client
####主机准备

为   node01   node02   node03    三台主机另外添加一张网卡和三个硬盘
###磁盘刷新

lsblk

如果在启动时添加磁盘,使用下面的命令刷新磁盘

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
####网卡设置

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens32 ifcfg-ens33

###修改网卡配置文件,修改IP地址

vim ifcfg-ens33


systemctl restart network
###环境准备
###可选步骤:创建 Ceph 的管理用户


useradd cephadm
passwd cephadm

visudo
cephadm ALL=(root) NOPASSWD:ALL
####防火墙设置
####关闭 selinux 与防火墙


systemctl disable --now firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
####根据规划设置主机名
####在每一台主机上分别设置


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

su
####在所有的主机上设置
####配置 hosts 解析

vim /etc/hosts

192.168.242.69 admin
192.168.242.66 node01
192.168.242.67 node02
192.168.242.68 node03
192.168.242.70 client

实验部署

软件安装

---所有主机---

###安装常用软件和依赖包

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
----admin----

###在admin管理节点配置  ssh  免密登陆其他所有节点

vim /etc/ssh/ssh_config

注释掉: StrictHostKeyChecking ask

将  ask     改为  no


ssh-keygen -t rsa

sshpass -p '123' ssh-copy-id root@admin
sshpass -p '123' ssh-copy-id root@node01
sshpass -p '123' ssh-copy-id root@node02
sshpass -p '123' ssh-copy-id root@node03

9.Ceph部署,10.分布式,ceph

----所有主机---

###配置时间同步(一定要做)

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时间写入硬件时钟

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


####关闭无关服务,邮箱服务
systemctl disable --now postfix

9.Ceph部署,10.分布式,ceph

---所有主机---

###配置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
---所有主机---

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

sync          ####同步操作
reboot        ####重启

部署Ceph集群

---所有主机---

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

mkdir -p /etc/ceph
---admin主机---

###安装 ceph-deploy 部署工具

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


###查看版本
ceph-deploy --version

9.Ceph部署,10.分布式,ceph

---admin---

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

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


####方法一
###下面的命令执行比较的慢,可以采用另外一种方式
cd /etc/ceph
ceph-deploy install --release nautilus node0{1..3} admin

###ceph-deploy install 本质就是在执行下面的命令:
yum clean all
yum -y install epel-release
yum -y install yum-plugin-priorities
yum -y install ceph-release ceph ceph-radosgw



###方法二
####也可采用手动安装 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

部署mon节点

---admin---

###在管理节点运行下述命令,告诉 ceph-deploy 哪些是 mon 监控节点
###生成初始配置

cd /etc/ceph

ceph-deploy new --public-network 192.168.242.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的密钥环文件

9.Ceph部署,10.分布式,ceph

---admin---

###在管理节点初始化 mon 节点

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

ceph-deploy --overwrite-conf mon create-initial	
###如果mon节点配置文件与管理节点不一样,可以执行这个命令
###配置初始化 mon 节点,并向所有节点同步配置
### --overwrite-conf 参数用于表示强制覆盖配置文件


ceph-deploy gatherkeys node01						
###可选操作,向 node01 节点收集所有密钥

###命令执行成功后会在 /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

9.Ceph部署,10.分布式,ceph

---node01节点---

###在 mon 节点上查看自动开启的 mon 进程

ps aux | grep ceph

9.Ceph部署,10.分布式,ceph

---admin---

###在管理节点查看 Ceph 集群状态

cd /etc/ceph
ceph -s
###查看 mon 集群选举的情况

ceph quorum_status --format json-pretty | grep leader

9.Ceph部署,10.分布式,ceph

####扩容 mon 节点
####横向扩展

ceph-deploy mon add <节点名称>
---admin---

###部署能够管理 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 集群认证文件拷贝到各个节点


---mom节点---

###在 mon 节点上查看

ls /etc/ceph
ceph.client.admin.keyring  ceph.conf  rbdmap  tmpr8tzyc

cd /etc/ceph
ceph -s

9.Ceph部署,10.分布式,ceph

部署OSD存储节点

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

lsblk 
---admin---

####如果是利旧的硬盘,则需要先擦净(删除分区表)磁盘(可选,无数据的新硬盘可不做)

cd /etc/ceph
ceph-deploy disk zap node01 /dev/sdb
ceph-deploy disk zap node02 /dev/sdb
ceph-deploy disk zap node03 /dev/sdb
---admin---

###添加 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

####查看 ceph 集群状态
ceph -s

####查看OSD状态
ceph osd stat
ceph osd tree
rados df


---admin---

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

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

#扩容 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,如果在生产环境中添加节点则会涉及到大量的数据的迁移。

9.Ceph部署,10.分布式,ceph

部署mgr节点

---admin---

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


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

ceph -s

9.Ceph部署,10.分布式,ceph

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


####扩容 mgr 节点
ceph-deploy mgr create <节点名称>
---admin---

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

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

9.Ceph部署,10.分布式,ceph

开启监控模块

---node01---

####在 ceph-mgr Active节点执行命令开启

ceph -s | grep mgr

yum install -y ceph-mgr-dashboard

cd /etc/ceph

ceph mgr module ls | grep dashboard
---node01---

####开启 dashboard 模块
ceph mgr module enable dashboard --force

####禁用 dashboard 的 ssl 功能
ceph config set mgr mgr/dashboard/ssl false

####配置 dashboard 监听的地址和端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8000

9.Ceph部署,10.分布式,ceph

---node01---

####重启 dashboard
ceph mgr module disable dashboard
ceph mgr module enable dashboard --force

####确认访问 dashboard 的 url
ceph mgr services

####设置 dashboard 账户以及密码

echo "123" > dashboard_passwd.txt


###方法一(以被替换)
ceph dashboard set-login-credentials admin -i dashboard_passwd.txt
###方法二
ceph dashboard ac-user-create admin administrator -i dashboard_passwd.txt
###浏览器访问:http://192.168.242.66:8000 
###账号密码为 admin/123

9.Ceph部署,10.分布式,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 数据的逻辑单元;当然,当前集群没有资源池,因此需要进行定义。
###创建一个 Pool 资源池,其名字为 mypool,P
###Gs 数量设置为 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
  • PG数官方推荐:一个pool资源池内应该包含多少PG数
    • OSD总数 < 5 ,PG数推荐为128
    • 5 < OSD总数 < 10 ,PG数推荐为512
    • 10 < OSD总数 < 50 ,PG数推荐为4096
    • OSD总数 > 50 ,PG数推荐为( Target PGs per OSD ) x ( OSD # ) x ( %Data ) / ( Size )(取最接近2的次方值)
####查看集群 Pool 信息

ceph osd pool ls    或    rados lspools

ceph osd lspools    ###能查看到资源池的ID号

9.Ceph部署,10.分布式,ceph

####查看资源池副本的数量

ceph osd pool get mypool size
###查看 PG 和 PGP 数量

ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num
###修改 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

9.Ceph部署,10.分布式,ceph

####修改 Pool 副本数量为 2

ceph osd pool set mypool size 2

ceph osd pool get mypool size

9.Ceph部署,10.分布式,ceph

####修改默认副本数为 2


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

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

###重启服务

systemctl restart ceph-mon.target

9.Ceph部署,10.分布式,ceph
9.Ceph部署,10.分布式,ceph

####删除 Pool 资源池

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


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


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

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


###所有 mon 节点重启 ceph-mon 服务

systemctl restart ceph-mon.target


###执行删除 Pool 命令

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

9.Ceph部署,10.分布式,ceph

9.Ceph部署,10.分布式,ceph文章来源地址https://www.toymoban.com/news/detail-576766.html

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

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

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

相关文章

  • 使用 Docker 部署分布式存储系统——Ceph

    最近工作中接触了一个 Python + Flask 的新项目,项目中使用了 Ceph 对象存储服务。遂在开发环境使用 Docker 搭建了一套 Ceph 集群。 Ceph 官方文档 Ceph 是一个开源的分布式存储系统,提供了对象存储、块存储和文件系统三种存储接口。Ceph 将数据存储在逻辑存储池中,使用 CRUSH 分

    2024年04月15日
    浏览(51)
  • 云原生之深入解析分布式存储系统Ceph的环境部署和实战操作

    ① 什么是 Ceph ? Ceph 是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph 在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据

    2024年02月09日
    浏览(46)
  • ceph分布式存储

    Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性 等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph在存储的时候充分利用存储节点的计算能力,在存储每一个数据时 都会通过计算得出该数据的位置,尽量的分

    2023年04月08日
    浏览(50)
  • 【分布式】ceph存储

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

    2024年02月16日
    浏览(46)
  • Ceph 分布式存储

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

    2024年02月16日
    浏览(44)
  • Ceph分布式文件系统

    目录 1.存储基础 单机DAS存储设备 DAS NAS SAN 单机存储的问题 分布式存储 分布式存储的类型 2.Ceph简介 Ceph优势 Ceph架构 Ceph组件 OSD(ceph-osd) Monitor(ceph-mon) Manager(ceph-mgr) MDS(ceph-mds) PG(归置组) Pool(存储池/资源池/数据池) OSD 存储后端 Filestore Bluestore BlueStore的主要功能 Ceph数据的存储过

    2024年01月16日
    浏览(55)
  • Ceph分布式存储笔记

    1、Ceph概念 分布式存储 是指一种独特的系统架构,它由一组网络进行通信、为了完成共同的任务而协调工作的计算机节点组成;分布式系统是为了用廉价的、普通的机器完成单个计算无法完成的计算、存储任务;其目的是利用更多的机器,处理更多的数据。 Ceph是一个统一【

    2023年04月08日
    浏览(56)
  • ceph分布式存储实战

    虚拟机安装ceph集群       部署ceph集群      mon服务器的高可用: # apt install ceph-mon # apt install ceph-mon 1.ceph的组件和功能 2.ceph的数据读写流程 3.使用ceph-deploy安装一个最少三个节点的ceph集群 推荐3个或以上的磁盘作为专用osd 4.测试ceph的rbd使用

    2024年02月09日
    浏览(44)
  • Ceph分布式存储系统

    Ceph :ceph被称为面向未来的存储还是一个分布式的存储系统,非常灵活,如果需要扩容,只要向ceph集中增加服务器即可。ceph存储数据时采用多副本的方式进行存储,生产环境下,一个文件至少要存三份,ceph默认也是三副本存储。 可以实现的 存储方式 : 块存储:提供像普通

    2024年04月15日
    浏览(47)
  • [分布式] Ceph实战应用

    2024年02月16日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包