9.Ceph部署

文章目录

  • Ceph部署
    • 前期环境准备
    • 实验部署
      • 软件安装
      • 部署Ceph集群
      • 部署mon节点
      • 部署OSD存储节点
      • 部署mgr节点
      • 开启监控模块
      • 管理pool

Ceph部署

前期环境准备

主机名public网络cluster网络角色
admin192.168.242.69admin(管理节点)
node01192.168.242.66192.168.242.100.11mon、mgr、osd
node02192.168.242.67192.168.242.100.12mon、mgr、osd
node03192.168.242.68192.168.242.100.13mon、osd
client192.168.242.70client
####主机准备为   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-ens33systemctl restart network
###环境准备
###可选步骤:创建 Ceph 的管理用户useradd cephadm
passwd cephadmvisudo
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 clientsu
####在所有的主机上设置
####配置 hosts 解析vim /etc/hosts192.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-releaseyum -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     改为  nossh-keygen -t rsasshpass -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

在这里插入图片描述

----所有主机---###配置时间同步(一定要做)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

在这里插入图片描述

---所有主机---###配置Ceph yum  源wget https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm --no-check-certificaterpm -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

在这里插入图片描述

---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.repoyum install -y ceph-mon ceph-radosgw ceph-mds ceph-mgr ceph-osd ceph-common ceph

部署mon节点

---admin---###在管理节点运行下述命令,告诉 ceph-deploy 哪些是 mon 监控节点
###生成初始配置cd /etc/cephceph-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的密钥环文件

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

---admin---###在管理节点查看 Ceph 集群状态cd /etc/ceph
ceph -s
###查看 mon 集群选举的情况ceph quorum_status --format json-pretty | grep leader

在这里插入图片描述

####扩容 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  tmpr8tzyccd /etc/ceph
ceph -s

在这里插入图片描述

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

在这里插入图片描述

部署mgr节点

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

在这里插入图片描述

####解决 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 后才能执行

在这里插入图片描述

开启监控模块

---node01---####在 ceph-mgr Active节点执行命令开启ceph -s | grep mgryum install -y ceph-mgr-dashboardcd /etc/cephceph 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

在这里插入图片描述

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

在这里插入图片描述

管理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 lspoolsceph osd lspools    ###能查看到资源池的ID号

在这里插入图片描述

####查看资源池副本的数量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 的数量为 128ceph osd pool set mypool pg_num 128
ceph osd pool set mypool pgp_num 128ceph osd pool get mypool pg_num
ceph osd pool get mypool pgp_num

在这里插入图片描述

####修改 Pool 副本数量为 2ceph osd pool set mypool size 2ceph osd pool get mypool size

在这里插入图片描述

####修改默认副本数为 2vim ceph.conf
......
osd_pool_default_size = 2ceph-deploy --overwrite-conf config push node01 node02 node03###重启服务systemctl restart ceph-mon.target

在这里插入图片描述
在这里插入图片描述

####删除 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

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26790.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时&#xff0c;如何解决&#xff1f;如果确认此软件不是病毒软件&#xff0c;那么可以按照如下方法进行解决&#xff1a; 1&#xff1a;关闭防火墙 控制面板-系统和安全-Windows Defender防火墙-自定义设置&am…

前端实现 DIV 高度只有100px,宽度只有100px ,我要在这个DIV放一个宽度200的DIV,左右拉动滚动条显示

<!DOCTYPE html> <html> <head><title>点击监听两组span标签</title><style>.outer-div {width: 100px;height: 100px;overflow-x: scroll;background-color: #abc1ee;}.inner-div {width: 200px;}/* 自定义滚动条样式 */.outer-div::-web…

【milvus】向量数据库,用来做以图搜图+人脸识别的特征向量

1. 安装milvus ref:https://milvus.io/docs 第一次装东西&#xff0c;要把遇到的问题和成功经验都记录下来。 1.Download the YAML file wget https://github.com/milvus-io/milvus/releases/download/v2.2.11/milvus-standalone-docker-compose.yml -O docker-compose.yml看…

七大排序算法——希尔排序,通俗易懂的思路讲解与图解(完整Java代码)

文章目录 一、排序的概念排序的概念排序的稳定性七大排序算法 二、希尔排序核心思想代码实现 三、性能分析四、七大排序算法性能对比 一、排序的概念 排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0…

爆肝整理,接口自动化测试面试题+答案,25k*15薪如何达成的...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、请问你是如何做…

SQLite数据库安装

安装方式一&#xff1a; sudi apt-get install sqlite 安装方式二&#xff1a; https://www.sqlite.org/download.html 1. 把下载的文件 sqlite-autoconf-3420000.tar.gz 上传到开发板 2. tar xvf sqlite-autoconf-3420000.tar.gz 解压 3. cd sqlite-autoconf-3420000 进入…

mac 下 geoserver 安装

一、去官网下载geoserver https://geoserver.org/ 选择一个版本&#xff0c;然后点进去 二、需要配置java环境和设置geoserver 环境变量 1&#xff09;、java 环境安装 Java Downloads | Oracle 中国 2&#xff09;、环境变量设置 1.打开终端&#xff1a;command 空格键 2…

校园课表微信小程序全栈项目

遇到的第一个问题关于npm start 首先找到对应的后端项目 crtl shift (esc键下的波浪号) 召唤终端 Error:Cannot find module dotenv 解决问题: npm install dotenv 简写 npm i dotenv 然后遇到第二个问题 Port 3000 is already in use 我的3000接口被占用 那就要去检…

数仓学习---6、数据仓库概述、 数据仓库建模概述、维度建模理论之事实表、维度建模理论之维度表

这是本人的学习过程&#xff0c;看到的同道中人祝福你们心若有所向往&#xff0c;何惧道阻且长&#xff1b; 但愿每一个人都像星星一样安详而从容的&#xff0c;不断沿着既定的目标走完自己的路程&#xff1b; 最后想说一句君子不隐其短&#xff0c;不知则问&#xff0c;不能则…

windows权限维持

文章目录 不死马权限维持映像劫持技术策略组脚本维持shift粘滞键后门建立影子账号powershell配置文件后门Monitor权限维持利用安全描述符隐藏服务后门进行权限维持iis后门window隐藏技术驱动级文件隐藏 不死马权限维持 <?php ignore_user_abort(); //关掉浏览器&#xff0…

Java将获取的参数,图片以及pdf文件放入到word文档指定位置

首先引入的依赖 <!-- poi库 --> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId&…

配置spark

配置spark Yarn 模式Standalone 模式Local 模式 Yarn 模式 tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module cd /opt/module mv spark-3.0.0-bin-hadoop3.2 spark-yarn修改 hadoop 配置文件/opt/module/hadoop/etc/hadoop/yarn-site.xml, 并分发 <!--是否启动一…