基于BClinux8部署Ceph 19.2(squid)集群

#作者:閆乾苓

文章目錄

  • 1.版本選擇
    • Ceph版本發布歷史
    • 目前官方在維護的版本
  • 2.部署方法
  • 3.服務器規劃
  • 4.前置配置
    • 4.1系統更新
    • 4.2配置hosts
  • cat >> /etc/hosts << EOF
  • ssh-keygen
  • ssh-copy-id ceph01
  • ssh-copy-id ceph02
  • ssh-copy-id ceph03
    • 4.5 Python3
    • 4.6 Systemd
    • 4.7 LVM2
    • 4.8 docker安裝
  • 5.使用 cephadm 部署Ceph 集群
    • 5.1安裝cephadm
    • 5.2引導新集群
    • 5.3啟用 Ceph CLI
    • 5.4添加主機
    • 5.4添加存儲(部署 OSD)

1.版本選擇

本文檔使用最新穩定版squid 19.2.0進行安裝部署測試

Ceph版本發布歷史

在這里插入圖片描述

目前官方在維護的版本

名稱發布時間最新版本停止維護時間(估計)
Squid2024-09-2619.2.02026-09-19
Reef2023-08-0718.2.42025-08-01

2.部署方法

使用官方推薦的Cephadm進行部署,Cephadm 通過引導單個主機、擴展集群以包含任何其他主機,然后部署所需的服務來創建新的 Ceph 集群。

3.服務器規劃

IPHostname硬件配置
192.168.61.11ceph01CPU: 4c、Mem: 8GB、Hdd1: 100G、Hdd2: 500GB
192.168.61.12ceph02CPU: 4c、Mem: 8GB、Hdd1: 100G、Hdd2: 500GB
192.168.61.13ceph03CPU: 4c、Mem: 8GB、Hdd1: 100G、Hdd2: 500GB

操作系統信息:
系統版本:BigCloud Enterprise Linux release 8.8 (Core)
內核:5.10.134-12.2.el8.bclinux.x86_64

4.前置配置

4.1系統更新

(所有節點執行)

# yum update

4.2配置hosts

(所有節點執行)

cat >> /etc/hosts << EOF

192.168.61.11 ceph01
192.168.61.12 ceph02
192.168.61.13 ceph03
EOF
4.3節點間ssh免密配置
(ceph01執行)

ssh-keygen

ssh-copy-id ceph01

ssh-copy-id ceph02

ssh-copy-id ceph03

4.4時間同步配置
使用chrony做為時間同步服務,ceph01作為集群內時間服務的server端,配置向公網ntp服務器(ntp.aliyun.com)同步時間,ceph02、ceh03作為集群內時間服務的client端,向ceph01 server端同步時間。

所有節點查看chrony是否安裝
# rpm -qa |grep chrony
chrony-4.2-1.0.1.an8.x86_64
如果沒有安裝,執行以下命令進行安裝
# yum install chrony備份原配置文件
# cp /etc/chrony.conf{,.df}ceph01節點(chrony服務端,需要能訪問外網ntpserver)修改配置文件
# cat > /etc/chrony.conf << EOF
pool ntp.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.61.0/24
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOFceph02、ceph03節點(chrony客戶端)修改配置文件
# cat > /etc/chrony.conf << EOF
pool ceph01 iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
EOF所有節點執行chronyd服務器重啟并設置開機啟動
# systemctl restart chronyd
# systemctl enable chronyd所有節點查看chronyd 服務是否正常
# systemctl status chronydceph01 查看配置的NTP服務器的狀態
[root@ceph01 ~]# chronyc sources -v
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
========================================================
^* 203.107.6.88               2   7   377    35  -1438us[-1796us] +/-   24msceph02、ceph03查看配置的NTP服務器的狀態
[root@ceph02 ~]# chronyc sources -v
MS Name/IP address      Stratum Poll Reach LastRx Last sample               
========================================================
^? ceph01                0   8     0     -     +0ns[   +0ns] +/-    0ns[root@ceph03 ~]# chronyc sources -v
MS Name/IP address      Stratum Poll Reach LastRx Last sample               
========================================================
^? ceph01                0   8     0     -     +0ns[   +0ns] +/-    0ns# 所有節點查看系統時間與時區是否設置正確
# date

4.5 Python3

默認已安裝,所有節點查看:(這個是python最低版本要求,是否是唯一的支持版本)

# python3 -V
Python 3.6.8

4.6 Systemd

默認已安裝,所有節點查看:

# systemctl --version
systemd 239 (239-74.0.2.an8.3) 

4.7 LVM2

默認已安裝,所有節點查看:

# rpm -q lvm2
lvm2-2.03.14-9.oe2203sp2.x86_64

4.8 docker安裝

# dnf -y install dnf-plugins-core# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo## 查看可安裝版本列表
# dnf list docker-ce --showduplicates | sort -r# dnf install docker-ce-26.1.3-1.el8 docker-ce-cli-26.1.3-1.el8 containerd.io docker-buildx-plugin docker-compose-plugin# systemctl enable docker
# systemctl start docker
# systemctl status docker# docker info |grep "Server Version:"
Server Version: 26.1.3

5.使用 cephadm 部署Ceph 集群

5.1安裝cephadm

(ceph01節點執行)
指定ceph的版本,比如本文是squid 19.2.0版本,并下載cephadm的可執行程序

[root@ceph01 ~]# CEPH_RELEASE=19.2.0
[root@ceph01 ~]# curl --silent --remote-name --location https://download.ceph.com/rpm-${CEPH_RELEASE}/el9/noarch/cephadm
[root@ceph01 ~]# chmod +x cephadm

因cephadm沒有對bclinux系統做適配,所以添加cephadm repo源有如下提示:

[root@ceph01 ~]# ./cephadm add-repo --release squid
ERROR: Distro bclinux version 8.8 not supported

Ceph squid19.2.0技術上支持centos7/8/9等主流linux系統,僅對linux kernel提出最低版本要求(4.19以上)。官方尤其對centos9做了全面的測試并提供各個組件的官方安裝包。而且這里的部署是裸金屬上的容器化部署,對系統平臺要求放寬。為了讓cephadm支持本環境的安裝,需要通過修改bclinux8的/etc/os-release達到ceph squid19.2.0 可以在bclinux8上安裝的目的。

[root@ceph01 ~]# cp /etc/os-release{,.df}
[root@ceph01 ~]# cat > /etc/os-release << EOF
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://issues.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
EOF

雖然獨立的 cephadm 足以引導集群,但最好在主機上安裝該命令

[root@ceph01 ~]#  ./cephadm add-repo --release squid
Writing repo to /etc/yum.repos.d/ceph.repo...
Enabling EPEL...
Completed adding repo.[root@ceph01 ~]# ./cephadm install
Installing packages ['cephadm']...

通過運行以下命令確認cephadm現在位于PATH 環境變量中

[root@ceph01 ~]# which cephadm
/usr/sbin/cephadm

5.2引導新集群

創建新 Ceph 集群的第一步是在 Ceph 集群的第一臺主機上運行該命令。在 Ceph 集群的第一臺主機上運行該命令會創建 Ceph 集群的第一個 Monitor 守護進程 。您必須將 Ceph 集群的第一臺主機的 IP 地址傳遞給該命令,因此您需要知道該主機的 IP 地址。

[root@ceph01 ~]# cephadm bootstrap --mon-ip 192.168.61.11

此命令將:

  • 在本地主機上為新集群創建一個監視器和一個管理器守護進程。
  • 為 Ceph 集群生成新的 SSH 密鑰并將其添加到 root 用戶/root/.ssh/authorized_keys文件中。
  • 將公鑰的副本寫入/etc/ceph/ceph.pub。
  • 向/etc/ceph/ceph.conf寫入一個最小配置文件。此文件是與 Ceph 守護進程通信所必需的。
  • 將client.admin管理(特權!)密鑰的副本寫入/etc/ceph/ceph.client.admin.keyring。
  • 將標簽添加到引導主機。默認情況下,任何具有此標簽的主機也將獲得/etc/ceph/ceph.conf/和/etc/ceph/ceph.client.admin.keyring _admin的副本。

引導集群命令正常結束輸出信息如下:

Ceph Dashboard is now available at:URL: https://ceph01:8443/User: adminPassword: b8c7zgjz8g
Enabling client.admin keyring and conf on hosts with "admin" label
Saving cluster configuration to /var/lib/ceph/0978cb18-dc68-11ef-b0d7-000c29460ffd/config directory
You can access the Ceph CLI as following in case of multi-cluster or non-default config:sudo /usr/sbin/cephadm shell --fsid 0978cb18-dc68-11ef-b0d7-000c29460ffd -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring
Or, if you are only running a single cluster on this host:sudo /usr/sbin/cephadm shell 
Please consider enabling telemetry to help improve Ceph:ceph telemetry on
For more information see:https://docs.ceph.com/en/latest/mgr/telemetry/
Bootstrap complete.

5.3啟用 Ceph CLI

[root@ceph01 ~]# cephadm shell
Inferring fsid 0978cb18-dc68-11ef-b0d7-000c29460ffd
Inferring config /var/lib/ceph/0978cb18-dc68-11ef-b0d7-000c29460ffd/mon.ceph01/config
Using ceph image with id '37996728e013' and tag 'v19' created on 2024-09-28 06:08:21 +0800 CST
quay.io/ceph/ceph@sha256:200087c35811bf28e8a8073b15fa86c07cce85c575f1ccd62d1d6ddbfdc6770a
[ceph: root@ceph01 /]# ceph -scluster:id:     0978cb18-dc68-11ef-b0d7-000c29460ffdhealth: HEALTH_WARNOSD count 0 < osd_pool_default_size 3services:mon: 1 daemons, quorum ceph01 (age 13m)mgr: ceph01.vqsdyy(active, since 11m)osd: 0 osds: 0 up, 0 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0 Busage:   0 B used, 0 B / 0 B availpgs:     

5.4添加主機

要將每個新主機添加到集群,請執行兩個步驟:
1.在新主機的root用戶的authorized_keys文件中安裝集群的公共SSH密鑰:

[root@ceph01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph02
[root@ceph01 ~]# ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph03

2.告訴Ceph新節點是集群的一部分:

[root@ceph01 ~]# cephadm shell
Inferring fsid 0978cb18-dc68-11ef-b0d7-000c29460ffd
Inferring config /var/lib/ceph/0978cb18-dc68-11ef-b0d7-000c29460ffd/mon.ceph01/config
Using ceph image with id '37996728e013' and tag 'v19' created on 2024-09-28 06:08:21 +0800 CST
quay.io/ceph/ceph@sha256:200087c35811bf28e8a8073b15fa86c07cce85c575f1ccd62d1d6ddbfdc6770a
[ceph: root@ceph01 /]# ceph orch host add ceph02 192.168.61.12
Added host 'ceph02' with addr '192.168.61.12'
[ceph: root@ceph01 /]# ceph orch host add ceph03 192.168.61.13
Added host 'ceph03' with addr '192.168.61.13'

查看集群中所有主機:

[ceph: root@ceph01 /]# ceph orch host ls
HOST    ADDR           LABELS  STATUS  
ceph01  192.168.61.11  _admin          
ceph02  192.168.61.12                  
ceph03  192.168.61.13                  
3 hosts in cluster

5.4添加存儲(部署 OSD)

集群中每個節點增加單獨的500G磁盤作為存儲盤
[root@ceph01 ~]# lsblk
..
nvme0n2      259:3    0  500G  0 disk

從特定主機上的特定設備創建高級 OSD

[ceph: root@ceph01 /]# ceph orch daemon add osd ceph01:/dev/nvme0n2
Created osd(s) 0 on host 'ceph01'
[ceph: root@ceph01 /]# ceph orch daemon add osd ceph02:/dev/nvme0n2
Created osd(s) 1 on host 'ceph02'
[ceph: root@ceph01 /]# ceph orch daemon add osd ceph03:/dev/nvme0n2
Created osd(s) 2 on host 'ceph03'

增加磁盤完成后查看集群狀態已正常

[ceph: root@ceph01 /]# ceph -scluster:id:     0978cb18-dc68-11ef-b0d7-000c29460ffdhealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 26m)mgr: ceph01.vqsdyy(active, since 28m), standbys: ceph02.dqnwfvosd: 3 osds: 3 up (since 16m), 3 in (since 16m)data:pools:   1 pools, 1 pgsobjects: 2 objects, 449 KiBusage:   82 MiB used, 1.5 TiB / 1.5 TiB availpgs:     1 active+clean

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/74245.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/74245.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/74245.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安裝React開發者工具

我們在說組件之前&#xff0c;需要先安裝一下React官方推出的開發者工具&#xff0c;首先我們分享在線安裝方式 首先打開谷歌網上應用商店(針對谷歌瀏覽器)&#xff0c;在輸入框內搜索react&#xff0c;安裝如下插件&#xff1a; 注意安裝提供方為Facebook的插件&#xff0c;這…

linux中如何修改文件的權限和擁有者所屬組

目錄標題 chmod指令八進制形式權限修改文件擁有者所屬組的修改umask有關內容 chmod指令 chmod指令可以用來修改人員的權限其形式如下&#xff1a; u代表的是擁有者&#xff0c;g代表的是所屬組&#xff0c;o代表的是其他人&#xff0c;a表示所有人&#xff0c;如果你想增加權…

三主熱備架構

1.要求 角色主機名軟件IP地址用戶client192.168.72.90keepalivedvip192.168.72.100masterserverAkeepalived, nginx192.168.72.30backupserverBkeepalived, nginx192.168.72.31backupserverCkeepalived, nginx192.168.72.32webtomcat1tomcat192.168.72.41webtomcat2tomcat192.1…

windows 10 系統配置Node

目錄 什么是Node.js 什么是Npm Node.js環境搭建 下載 解壓 配置環境變量 npm配置 如何運行下載的Node.js項目 什么是Node.js 在 Node.js 之前&#xff0c;JavaScript 只能運行在瀏覽器中&#xff0c;作為網頁腳本使用&#xff0c;為網頁添加一些特效&#xff0c;或者和…

Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 網站

開啟遠程桌面 參考文章Windows server開啟遠程桌面教程打開服務管理器。ECS 配置安全組&#xff0c;開啟 3389Telnet 驗證網絡聯通性 telnet x.x.x.x 338安裝 Windows App&#xff0c;登錄驗證 安裝 ASP.NET 3.5 1.參考文章Windows Server 2012安裝 .NET Framework 3.5和 Wi…

開源模型應用落地-shieldgemma-2-4b-it模型小試-多模態內容安全檢測(一)

一、前言 在人工智能迅速發展的過程中,內容安全成為AI應用中的一個重要挑戰。谷歌團隊于2025年3月推出了一款名為ShieldGemma-2-4B-IT的模型,它以創新的多模態安全檢測能力,為行業樹立了新的開源責任AI標準。 與早期的僅支持文本審核的版本相比,ShieldGemma-2-4B-IT在谷歌的…

【數據預測】基于遺傳算法GA的LSTM光伏功率預測 GA-LSTM光伏功率預測【Matlab代碼#91】

文章目錄 【可更換其他算法&#xff0c;獲取資源請見文章第6節&#xff1a;資源獲取】1. 遺傳算法GA2. 長短期記憶網絡LSTM3. 基于GA-LSTM的光伏功率預測4. 部分代碼展示5. 運行結果展示6. 資源獲取 【可更換其他算法&#xff0c;獲取資源請見文章第6節&#xff1a;資源獲取】 …

openEuler24.03 LTS下安裝Hadoop3完全分布式

目錄 Linux準備 openEuler24.03 LTS簡介 下載openEuler24.03 LTS 安裝openEuler24.03 LTS Linux基本設置 關閉及禁用防火墻 修改主機名 靜態ip 映射主機名 創建普通用戶 目錄準備 克隆主機 配置機器之間免密登錄 編寫分發腳本 安裝Java 下載Java 解壓 設置環…

【Linux之Shell腳本實戰】Linux服務器輸出美觀漂亮的html巡檢報告

【Linux之Shell腳本實戰】Linux服務器輸出美觀漂亮的html巡檢報告 一、Shell腳本介紹1.1 Shell腳本簡介1.2 Shell腳本特點二、腳本要求三、檢查本地環境3.1 本地環境規劃3.2 檢查本地系統3.3 檢查系統內核版本四、編輯腳本五、執行及測試腳本5.1設置定時任務5.2 執行效果六、總…

坦克大戰(c++)

今天我給大家分享一個c游戲。 廢話不多說&#xff0c;作品展示&#xff1a; #include <stdio.h> #include <windows.h> #include <time.h> //里規格&#xff1a;長39*278 &#xff08;真坐標&#xff09;(假坐標寬為39) 高39 //外規格&#xff1a;長…

node-ddk, electron組件, 自定義本地文件協議,打開本地文件

node-ddk 文件協議 https://blog.csdn.net/eli960/article/details/146207062 也可以下載demo直接演示 http://linuxmail.cn/go#node-ddk 安全 考慮到安全, 本系統禁止使用 file:/// 在主窗口, 自定義文件協議,可以多個 import main, { NODEDDK } from "node-ddk/m…

論文閱讀:2023 arxiv Provable Robust Watermarking for AI-Generated Text

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Provable Robust Watermarking for AI-Generated Text https://arxiv.org/pdf/2306.17439 https://github.com/XuandongZhao/Unigram-Watermark https://www.doubao.com/chat/211092…

一條sql語句在mysql中的執行流程(Mysql基礎架構)

mysql基礎架構 MySQL 主要分為 Server 層和 存儲引擎層&#xff1a; Server 層&#xff1a;主要包括 連接器、查詢緩存、分析器、優化器、執行器等&#xff0c;所有跨存儲引擎的功能都在這一層實現&#xff0c;比如存儲過程、觸發器、視圖&#xff0c;函數等&#xff0c;還有一…

GitLens with `Commit Graph`

文章目錄 GitLens with Commit Graph GitLens with Commit Graph 想要更直觀地查看 Git 提交歷史&#xff1f;我打包了一個支持 Commit Graph 的 GitLens 版本&#xff0c;讓你輕松在 VSCode 中查看分支、合并、變更記錄等內容&#xff0c;一目了然&#xff01; &#x1f4cc…

C#里使用libxl的數字格式

由于EXCEL里可以表示不同的數字格式, 比如表示貨幣數字時,與表示普通序號的數字就不一樣。 還有科學計算表示的數字使用小數點位數與普通貨幣也不一樣。 如下所示: 要使用這些格式, 下面創建一個例子來演示保存這些數字格式: private void button11_Click(object send…

CentOS 7擴容 /dev/shm

在 CentOS 7 中&#xff0c;/dev/shm 是基于內存的臨時文件系統&#xff08;tmpfs&#xff09;&#xff0c;其大小通常為系統內存的一半。要擴容 /dev/shm&#xff0c;可以通過重新掛載 tmpfs 并指定新的大小來實現。 擴容步驟 查看當前 /dev/shm 的大小&#xff1a; df -h /d…

【一起學Rust | Tauri2.0框架】基于 Rust 與 Tauri 2.0 框架實現全局狀態管理

前言 在現代應用程序開發中&#xff0c;狀態管理是構建復雜且可維護應用的關鍵。隨著應用程序規模的增長&#xff0c;組件之間共享和同步狀態變得越來越具有挑戰性。如果處理不當&#xff0c;狀態管理可能會導致代碼混亂、難以調試&#xff0c;并最終影響應用程序的性能和可擴…

百度SEO和必應SEO優化方法

如需SEO服務&#xff0c;可以搜索&#xff1a;深圳市信科網絡科技有限公司。 一、搜索引擎生態格局&#xff1a;流量入口的重新洗牌 2025 年&#xff0c;中國 PC 端搜索引擎市場正經歷戲劇性變革。StatCounter 數據顯示&#xff0c;必應憑借 Edge 瀏覽器的預裝優勢與 ChatGPT …

Redis 事件機制詳解

Redis 事件機制詳解 Redis 的事件機制是其高性能和高并發能力的關鍵之一&#xff0c;它采用Reactor 模型&#xff0c;基于文件事件驅動機制實現高效的 I/O 處理。Redis 的事件機制主要分為以下幾類&#xff1a; 文件事件&#xff08;File Event&#xff09; —— 處理網絡 I/…

【LangChain入門 3 Prompts組件】聊天提示詞模板 ChatPromptTemplate

文章目錄 一、 聊天信息提示詞模板1.1 使用關鍵字1.2 使用SystemMessage, HumanMessage, AIMessage來定義消息1.3 使用MessagesPlaceholder 在特定未知添加消息列表 二、關鍵類介紹2.1 ChatPromptTemplate 類2.1.1 from_messages()2.1.2 format_messages()2.1.3 format_prompt(…