部署ceph集群

本文详细介绍了如何使用ceph-deploy工具部署Ceph集群,包括安装部署工具、创建集群、准备日志磁盘分区、创建OSD存储空间以及验证集群状态等关键步骤。同时,文章还提供了常见错误的排查和解决方法。

2案例2:部署ceph集群

2.1问题

沿用案例1,部署ceph集群服务器,实现以下目标:

  • 安装部署工具ceph-deploy
  • 创建ceph集群
  • 准备日志磁盘分区
  • 创建OSD存储空间
  • 查看ceph状态,验证

2.2步骤

实现此案例需要按照如下步骤进行。

步骤一:部署软件

1)在node1安装部署工具,学习工具的语法格式

[root@node1 ~]#  yum -y install ceph-deploy
[root@node1 ~]#  ceph-deploy  --help

2)创建目录

[root@node1 ~]#  mkdir ceph-cluster
[root@node1 ~]#  cd ceph-cluster/

步骤二:部署ceph集群

1)创建ceph集群配置

[root@node1 ceph-cluster]# ceph-deploy new node1 node2 node3

2)给所有节点安装软件包

[root@node1 ceph-cluster]# ceph-deploy install node1 node2 node3

3)初始化所有节点的mon服务(主机名解析必须正确)

[root@node1 ceph-cluster]# ceph-deploy mon create-initial

常见错误及解决方法(非必要操作,有错误可以参考):

如果提示以下错误信息:

[node1][ERROR ] admin_socket: exception getting command descriptions: [Error 2] No such file or directory

解决方案如下(在node1操作):

先检查自己的命令是否是在ceph-cluster目录下执行的!!!!如果确认是在该目录下执行的creat-initial命令,依然保存,可以使用如下方式修复

[root@node1 ceph-cluster]# vim ceph.conf      #文件最后追加以下内容
public_network = 192.168.4.0/24

修改后重新推送配置文件:

[root@node1 ceph-cluster]# ceph-deploy --overwrite-conf config push node1 node2 node3

步骤三:创建OSD

1)准备磁盘分区(node1、node2、node3都做相同操作)

[root@node1 ceph-cluster]#  parted  /dev/vdb  mklabel  gpt
[root@node1 ceph-cluster]#  parted  /dev/vdb  mkpart primary  1M  50%
[root@node1 ceph-cluster]#  parted  /dev/vdb  mkpart primary  50%  100%
[root@node1 ceph-cluster]# chown  ceph.ceph  /dev/vdb1
[root@node1 ceph-cluster]# chown  ceph.ceph  /dev/vdb2
//这两个分区用来做存储服务器的日志journal盘
[root@node1 ceph-cluster]# vim /etc/udev/rules.d/70-vdb.rules
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2",OWNER="ceph",GROUP="ceph"

2)初始化清空磁盘数据(仅node1操作即可)

[root@node1 ceph-cluster]# ceph-deploy disk  zap  node1:vdc   node1:vdd    
[root@node1 ceph-cluster]# ceph-deploy disk  zap  node2:vdc   node2:vdd
[root@node1 ceph-cluster]# ceph-deploy disk  zap  node3:vdc   node3:vdd   

3)创建OSD存储空间(仅node1操作即可)

[root@node1 ceph-cluster]# ceph-deploy osd create \
 node1:vdc:/dev/vdb1 node1:vdd:/dev/vdb2  
//创建osd存储设备,vdc为集群提供存储空间,vdb1提供JOURNAL缓存,
//一个存储设备对应一个缓存设备,缓存需要SSD,不需要很大
[root@node1 ceph-cluster]# ceph-deploy osd create \
 node2:vdc:/dev/vdb1 node2:vdd:/dev/vdb2
[root@node1 ceph-cluster]# ceph-deploy osd create \
 node3:vdc:/dev/vdb1 node3:vdd:/dev/vdb2 

4)常见错误(非必须操作)

使用osd create创建OSD存储空间时,如提示run 'gatherkeys',可以使用如下命令修复:

[root@node1 ceph-cluster]#  ceph-deploy gatherkeys node1 node2 node3 

步骤四:验证测试

1)查看集群状态

[root@node1 ~]#  ceph  -s

2)常见错误(非必须操作)

如果查看状态包含如下信息:

health: HEALTH_WARN
        clock skew detected on  node2, node3…  

clock skew表示时间不同步,解决办法:请先将所有主机的时间都使用NTP时间同步!!!

ceph要求所有主机时差不能超过0.05s,否则就会提示WRAN,如果使用NTP还不能精确同步时间,可以手动修改所有主机的ceph.conf,在[MON]下面添加如下一行:

mon clock drift allowed = 1

如果状态还是失败,可以尝试执行如下命令,重启ceph服务:

[root@node1 ~]#  systemctl restart ceph\*.service ceph\*.target

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<think>好的,用户现在想了解如何在单机上部署Ceph集群,并且之前已经提供了一些相关的引用内容。我需要结合用户之前的问题和回答,以及当前的引用来给出一个清晰的指南。 首先,用户之前的问题是关于单机部署Ceph,我的回答已经详细列出了步骤,但现在用户再次提问,可能需要更详细或者更结构化的说明。同时,用户提供的引用内容中有提到CRUSH规则、部署管理节点、创建monitor等步骤,这些需要整合到新的回答中。 我需要检查之前的回答是否涵盖了引用的内容。例如,引用[1]提到移动host到root下形成树形结构,这可能是在集群扩展时的步骤,但单机部署可能不需要,不过用户现在问的是单机,可能需要忽略这部分。但引用[3]提到创建monitor的步骤,比如创建mon data和key,这可能在单机部署中需要详细说明。 之前的回答中,步骤3初始化集群用了ceph-deploy new localhost,而引用[3]中使用的是手动创建mon目录和密钥,这可能适用于不使用ceph-deploy的情况。是否需要提供两种方法?或者用户更倾向于使用ceph-deploy工具? 用户可能希望有一个更详细的步骤,包括手动配置的部分,特别是创建monitor和生成密钥的过程,这在引用[3]中有提到。因此,在回答中可能需要结合ceph-deploy的自动化步骤和手动配置的部分,确保单机部署的完整性。 另外,引用[2]提到同步配置到各个节点,但单机情况下可能不需要,但用户的问题是关于单机,所以这部分可能可以忽略,不过需要确保配置文件的一致性,尤其是在单机多实例的情况下。 需要确保回答的结构清晰,分步骤说明,包括准备工作、安装依赖、集群初始化、OSD配置、验证状态等。同时,注意用户提到的CRUSH规则,虽然在单机可能不需要调整,但可能需要简要说明,或者提及后续扩展时的相关命令。 还需要检查之前的回答是否有遗漏的步骤,比如创建monitor的目录和密钥,是否需要手动操作,或者是否ceph-deploy已经自动处理。根据引用[3],手动创建mon目录和密钥的步骤可能是在不使用ceph-deploy的情况下进行的,因此可能需要提供两种方法,或者说明在单机部署中推荐使用ceph-deploy简化流程。 另外,用户可能在部署过程中遇到权限问题,比如密钥文件的权限,之前的回答中提到chmod +r,需要再次强调这一点。同时,确保所有命令在单机环境下正确执行,比如使用localhost作为节点名称。 最后,生成相关问题时要考虑用户可能的后续步骤,例如如何添加OSD、如何调整CRUSH规则、如何监控集群状态等。确保问题覆盖用户可能感兴趣的方向,帮助他们进一步学习和解决问题。</think>### 单机部署 Ceph 集群详细指南 以下是在单台机器上部署 Ceph 集群的完整流程,结合手动配置和工具自动化步骤,确保集群功能完整可用。 --- #### **1. 环境准备** - **操作系统要求**:推荐使用 Ubuntu 22.04/CentOS 8 及以上版本,内核版本需支持 Ceph。 - **依赖安装**: ```bash # CentOS yum install -y epel-release yum install -y ceph-deploy python3 python3-pip # Ubuntu apt update && apt install -y ceph-deploy python3 python3-pip ``` - **关闭防火墙/SELinux**: ```bash systemctl stop firewalld && systemctl disable firewalld # CentOS setenforce 0 # 临时关闭 SELinux ``` --- #### **2. 初始化集群配置** **步骤 1:创建集群配置目录** ```bash mkdir ~/myceph && cd ~/myceph ``` **步骤 2:生成初始配置** 使用 `ceph-deploy` 初始化单节点集群: ```bash ceph-deploy new localhost # 生成 ceph.conf 和初始密钥 ``` **步骤 3:手动调整配置文件** 编辑 `ceph.conf`,添加单机优化参数: ```ini [global] osd pool default size = 1 # 单机副本数为1(默认3需修改) osd crush chooseleaf type = 0 # 单机无需层级选择 ``` --- #### **3. 部署 Monitor 和 Manager 服务** **步骤 1:安装 Ceph 核心组件** ```bash ceph-deploy install --release nautilus localhost # 指定版本 ``` **步骤 2:启动 Monitor** ```bash ceph-deploy mon create-initial # 自动生成 monmap 和密钥环 ``` **步骤 3:部署 Manager 守护进程** ```bash ceph-deploy mgr create localhost ``` --- #### **4. 配置 OSD(对象存储设备)** **步骤 1:准备磁盘** 假设使用 `/dev/sdb` 作为 OSD 磁盘: ```bash ceph-deploy disk zap localhost /dev/sdb # 清空磁盘 ceph-deploy osd create localhost --data /dev/sdb # 自动分区并激活 ``` **步骤 2:验证 OSD 状态** ```bash ceph osd stat # 输出应包含 osd.0 的 up 状态 ``` --- #### **5. 配置 CRUSH 规则(单机适配)** 单机环境下需简化 CRUSH 层级,确保存储池能正确映射[^1]: ```bash ceph osd crush tunables legacy # 使用兼容模式 ceph osd crush add-bucket localhost host # 创建虚拟 host 节点 ceph osd crush move localhost root=default # 挂载到 root 下 ceph osd crush rule create-simple single_host default host # 创建单机规则 ``` --- #### **6. 验证集群状态** ```bash ceph -s # 检查 HEALTH_OK ceph osd tree # 查看 OSD 层级结构 ``` --- #### **7. 管理密钥与权限** 确保本地客户端可访问集群: ```bash ceph-deploy admin localhost # 分发管理员密钥 chmod +r /etc/ceph/ceph.client.admin.keyring # 修复权限 ``` --- #### **关键问题排查** - **Monitor 启动失败**:检查 `/var/log/ceph/ceph-mon.*.log`,确认端口冲突或权限问题。 - **OSD 未激活**:使用 `ceph-disk activate /dev/sdb1` 手动激活分区。 - **集群健康警告**:若提示 `PG_DEGRADED`,调整存储池副本数: ```bash ceph osd pool set <pool-name> size 1 ``` --- ### 相关问题 1. **如何为单机 Ceph 添加多个 OSD 磁盘?** 2. **单机部署时如何调整 CRUSH 规则以提高数据分布效率?** 3. **如何通过 Ceph Dashboard 监控单机集群状态?** 4. **单机环境下如何测试 Ceph 的 RADOS 对象存储功能?** 通过上述步骤,可在单机上快速搭建一个功能完整的 Ceph 集群,适用于开发、测试或学习场景。生产环境需扩展至多节点并调整冗余策略[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值