从传统运维到云运维演进历程之软件定义存储(二)

简介:

上回书说到一般企业使用Ceph会经历几个关卡:硬件选型 —— 部署调优—— 性能测试  架构灾备设计 —— 部分业务上线测试 —— 运行维护(故障处理、预案演练等)。

今天来重点讲下部署调优关卡。许多Ceph新手在测试环节以及预生产的时候会对Ceph集群的部署以及调优产生困扰,A公司运维小哥也遇到了部署和调优问题。下面来看看A公司运维小哥是如何解决这个问题的。

关卡二:部署调优关(部署)

难度:三颗星

上篇文章开头我也说到了,部署Ceph是新手的噩梦,对于传统运维来说部署一套Ceph是很难的事情,A公司运维小哥在官网以及Ceph中国社区的相关资料和帮助下才渐渐熟悉了什么是Ceph、它能做什么。在相关了解Ceph之后,A公司运维小哥开始部署Ceph。

下面说下部署过程,以及部署过程中的一些坑。

部署过程(按照官网步骤开始一步步做)

1. 安装Linux操作系统;

2. 配置系统IP,配置hosts文件,关闭防火墙和selinux,配置节点间免密访问;

3. 配置Ceph源;

4. 安装Ceph;

在部署的过程中,经历了三战三败的过程:

2-1

第一回合:网络问题

一开始就遇到了因为网络的问题而导致下载包失败,后查阅相关资料找到Ceph中国社区有篇文章“如何使用国内源部署Ceph”,于是采用国内Ceph源,解决了此问题。

2-2

图1:网络问题

第二回合:磁盘问题

解决了网络问题又迎来了磁盘分区的问题,运维小哥折腾了半天没弄好,后来在Ceph中国社区群友的帮助下解决了此事。遇到这种情况一般有两种原因:

一:磁盘提前分好区了

二:磁盘已挂载

解决办法:

一:删除分区

二:卸载硬盘&删除分区

2-3

图2:磁盘问题

第三回合:时间问题

搭建了好久终于搭建完了,但是又面临着一个问题,就是OSD服务进程在,但是ceph osd tree查看OSD却显示down状态,让运维小哥百思不得其解。

2-4
图3:OSD节点图

2-5
图4:OSD进程图

从上图可以看出,Ceph OSD进程在运行,但是ceph osd tree查看OSD却显示down状态。

而此时就是考验一个运维人员的处理故障的基本素质,好在这个运维小哥有过一两年的经验,经过基本排查,最终确定了是时间问题。由于三个节点时间不一致而导致的这个问题,这里称之为“OSD打摆子”。不只是时间问题会导致“OSD打摆子”问题,有时候也会因为网卡问题而导致“OSD打摆子”。

2-6
图5:Ceph节点1

2-7
图6:Ceph节点2

2-8
图7:Ceph节点3

其实在开始部署Ceph的环境准备环节就说到了要配置NTP服务器,然而大部分人容易忽略。其实在任何时候时间问题是排在第一位的,下面举两个例子说明下因为时间问题而产生的一些问题。

1.某云平台由于时间问题,导致云主机创建不了、宕机等问题。

2.某分布式文件存储由于时间问题,导致数据分布不均衡、脑裂等问题。

上述说的节点时间问题导致OSD出现“打摆子”故障,因为时间而产生的问题远不止于此,虽然可以部署成功,但是后续也会产生一系列莫名其妙的问题,如MON选举问题,OSD数据同步的问题等等。

所以云平台也好存储也好,都会因为时间而产生不必要的故障问题,建议运维人员要注重时间问题。

2-9
图8:Ceph集群

好了言归正传,上图是运维小哥新搭建好的集群。三节点、六个OSD的Ceph小集群。希望本文能够给予Ceph新手参考,请读者见仁见智,预知后事如何,请期待《部署调优关卡之调优》。



本文转自Devin 51CTO博客,原文链接:http://blog.51cto.com/devingeng/1854517

相关文章
|
存储 运维 安全
【运维知识高级篇】一篇文章带你搞懂GitHub基础操作!(注册用户+配置ssh-key+创建项目+创建存储库+拉取代码到本地+推送新代码到Github)
【运维知识高级篇】一篇文章带你搞懂GitHub基础操作!(注册用户+配置ssh-key+创建项目+创建存储库+拉取代码到本地+推送新代码到Github)
346 0
|
2月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
62 3
|
5月前
|
机器学习/深度学习 人工智能 运维
自动化运维的崛起:重新定义IT管理的未来
在数字化浪潮不断推进的今天,自动化运维不再是可选项,而是提升企业竞争力的必由之路。通过深入探讨自动化运维的关键要素、实施步骤和面临的挑战,本文旨在揭示自动化技术如何革新传统的IT管理模式,并展望其在未来IT领域的应用前景。
54 1
|
5月前
|
存储 C++ 运维
开发与运维数组问题之指针的定义语法如何解决
开发与运维数组问题之指针的定义语法如何解决
35 6
|
5月前
|
人工智能 运维
学习若依的好地方,若依社区,好的运维,社区,也可以运营自己的社区,可以用于投放软件产品和海报展示,有空可以研究怎样运行社区,好的标题设计
学习若依的好地方,若依社区,好的运维,社区,也可以运营自己的社区,可以用于投放软件产品和海报展示,有空可以研究怎样运行社区,好的标题设计
|
5月前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
运维 监控 安全
软件源码开发,网络中的“摄像头”:运维监控系统
总之,监控运维系统在软件源码开发平台中有着不可或缺的作用,通过以上分析,可以看出监控运维系统不只是监控着服务器、数据库、操作系统等,还可以为软件源码开发平台运维团队提供资源管理、容量规划、日志与事件记录等作用,确保着软件源码开发平台的系统和服务的正常运行。
软件源码开发,网络中的“摄像头”:运维监控系统
|
运维 监控 安全
2022云栖精选—数字化安全生产平台DPS重磅发布 助力传统运维向SRE转型
周洋 阿里云智能资深技术专家,高可用架构负责人
2022云栖精选—数字化安全生产平台DPS重磅发布 助力传统运维向SRE转型
|
运维 Shell Linux
【运维知识高级篇】超详细的Shell编程讲解1(Shell作用+脚本书写方式+脚本执行方式+变量分类+变量配置文件+变量定义+Shell重要的位置变量+三种传参方式)
【运维知识高级篇】超详细的Shell编程讲解1(Shell作用+脚本书写方式+脚本执行方式+变量分类+变量配置文件+变量定义+Shell重要的位置变量+三种传参方式)
362 1
|
缓存 运维 监控
【运维知识进阶篇】Ansible变量详解(变量定义+变量优先级+变量注册+层级定义变量+facts缓存变量)
【运维知识进阶篇】Ansible变量详解(变量定义+变量优先级+变量注册+层级定义变量+facts缓存变量)
382 0