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

运维是企业业务系统从规划、设计、实施、交付到运维的最后一个步骤,也是重要的步骤。运维从横向、纵向分可以分为多个维度和层次,本文试图抛开这纷繁复杂的概念,讲述一个传统的企业级运维人员转型到云运维人员,尤其是软件定义存储的运维之间经历的沟沟坎坎。

 

在传统企业中,业务运维工程师(Operations) 主要负责监控、维护并确保整个业务系统的可靠性,同时提出对系统架构的优化要求、提升部署效率、优化资源利用率并提高整体的ROI

 

随着云计算、大数据以及新兴的区块链等技术体系的迅猛发展,数据中心的扩容建设进入高峰期,云数据中心运维需求应运而生。传统的运维人员,以往接触的更多是硬件,如服务器、设备和风火水电;但是在云数据中心时代,运维人员已经从面向物理设备,转变为面向虚拟化、云的管理方式。

 

因此,云数据中心的运维对于传统的运维人员提出了新的能力要求——不仅要熟悉传统硬件设备,同时要掌握虚拟化、云系统的部署、监控和管理等运维能力。

 

本文选取云数据中心的其中一点,即软件定义存储(SDS)的运维为例,试述整个演进历程。

 

SDS即软件定义存储,最重要的是存储虚拟化,就是将存硬件中的典型的存控制器功能抽出来放到件上来实现,这些功能包括卷管理、快照等。俗话说软件看开源,SDSCephCeph是目前影响力最大的开源软件定义存储解决方案,其应用范围涵盖块存储、文件和对象存储,广泛被业界公司所采用。

 

Ceph运维工程师对于比传统运维人员既有相似点也有不同点,要做到能文能武,文能提笔写Ceph运维手册、预案手册等;武能挥手部署Ceph、进行预案演练、故障处理、集群扩容等。来保证Ceph整个集群的高可用性,确保数据不丢失,同时也进行一些常规故障的预案演练,保证出现故障后能够有序的进行故障恢复。

 

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

 

 

首先在关卡一的时候就会遇到很多问题,由于Ceph初学者对Ceph各组件没有深入了解,导致选型产生困难,因为初学者不了解Ceph各组件对于内存、CPU、网络等等这些硬件的消耗是多少。所以下面我讲述一个真实的A公司传统企业运维人员转型运维Ceph SDS的历程。

 

 

本文主要说下硬件选型关卡。许多Ceph新手在测试环节以及预生产的时候会对硬件选型产生困扰,A公司运维小哥也遇到了硬件选型问题,根据Ceph官网推荐我简单概述为以下几点:CPU、内存、数据存储、网络、硬盘。

 

 

关卡一:硬件选型关

难度:四颗星

Ceph是一个开源分布式统一存储,同时支持块、对象、文件三种存储。可以根据自己的使用场景需求还制定和选择不同的硬件。Ceph的硬件选型需要根据你的环境和存储需求做出选型计划。硬件的类型、网络和集群设计,是你在Ceph集群设计前期需要考虑的一些关键因素。Ceph选型没有黄金法则,因为它依赖各种因素,比如预算、性能和容量、或者两种的结合、容错性、以及使用场景。下面简单分析下三种常见场景搭配。

wKiom1fWRXWCCZe9AAFvxncpIvQ865.png-wh_50

1:三种存储场景类型

  • 高性能场景:这种配置的类型亮点在于它在低TCOownership的总消耗)下每秒拥有最高的IOPS。典型的做法是使用包含了更快的SSD硬盘、PCIe SSDNVMe做数据存储的高性能节点。通常用于块存储,但是也可以用在高IOPS的工作负载上。

  • 通用场景:亮点在于高吞吐量和每吞吐量的低功耗。通用的做法是使用SSDPCIe SSDOSD日志盘,以及一个高带宽、物理隔离的双重网络。这种方法常用于块存储,如果你的应用场景需要高性能的对象存储和文件存储,也可以考虑使用。

  • 大容量场景:亮点在于数据中心每TB存储的低成本,以及机架单元物理空间的低成本。也被称为经济存储、廉价存储、存档/长期存储。通用的做法是使用插满机械硬盘的密集服务器,一般是3672,每个服务器46T的物理硬盘空间。通常用于低功耗、大存储容量的对象存储和文件存储。一个好的备选方案,是采用纠删码来最大化存储容量。

 

 

企业可以根据预算、性能/容量需求、使用场景自由地选择任意硬件。在存储集群和底层基础设施上,有完全控制权,这也避免了被厂商锁定的风险。另外,Ceph的一个优势是它支持异构硬件。当创建Ceph集群时,你可以混合硬件品牌。比如你可以混合使用来自不同厂家的硬件,比如HPDELL等,混用现有的硬件可以大大降低成本。下面说一些常用的关于Ceph硬件选型的方法。

 

 

CPU

Ceph metadata server会动态的重新分配负载,它是CPU敏感性的,所以Metadata Server应该有比较好的处理器性能 (比如四核CPU).

Ceph OSD运行RADOS服务,需要通过CRUSH来计算数据的存放位置,replicate数据,以及维护Cluster Map的拷贝,因此OSD也需要合适的处理性能

Ceph Monitors 简单的维护了Cluster Map的主干信息所以这个是CPU不敏感的.

RAM内存

Metadata servers 以及Monitors 必须能够快速的提供数据,因此必须有充足的内存(至少每个进程1GB). OSD在日常操作时不需要过多的内存 (如每进程500MB);但是在执行恢复操作时,就需要大量的内存(如每进程每TB数据需要约1GB内存). Generally, 内存越多越好.

DataStorage数据存储

规划数据存储时要考虑成本和性能的权衡。同时OS操作,同时多个后台程序对单个驱动器进行读写 操作会显着降低性能。也有文件系统的限制考虑:BTRFS对于生产环境来说不是很稳定,但有能力记录journal和并行的写入数据,相对而言XFSEXT4会好一点。

Network

 

每台机器最少两个千兆网卡,在大多数机械硬都能达到大概 100MB/s 的吞吐量,网卡应该理所有 OSD 盘总吞吐量,所以推荐最少两个千兆网卡,分用于公网(前端)和集群网(后端)。集群网(最好别连接到外网)用于理由数据复制生的负载,而且可防止拒,拒会干数据,使之在 OSD 数据复制不能回到 active + clean 

 

一般生产环境建议部署万兆网卡。下面可以算一笔,假 1Gbps 复制 1TB 数据需要耗 3 ,而 3TB (典型配置)就需要 9 ,相比之下,如果使用 10Gbps 复制时间可分别缩减到 20 1 。所以一般使用Ceph都会上万兆网卡。

 

 

硬盘

Ceph集群的性能很大程度上取决于存储介质的有效选择。你应该在选择存储介质之前了解到集群的工作负载和性能需求。Ceph使用存储介质有两种方法:OSD日志盘和OSD数据盘。Ceph的每一次写操作分两步处理。当一个OSD接受请求写一个object,它首先会把object写到acting set中的OSD对应的日志盘,然后发送一个写确认给客户端。很快,日志数据会同步到数据盘。值得了解的是,在写性能上,副本也是一个重要因素。副本因素通常要在可靠性、性能和TCO之间平衡。通过这种方式,所有的集群性能围绕着OSD日志和数据盘了。

 

CephOSD 日志盘

如果你的工作境是通用景的需求,那么建你使用SSD做日志。使用SSD,可以减少访问时间,降低写延,大幅提升吞吐量。使用SSD做日志,可以每个物理SSD建多个逻辑分区,每个SSD逻辑分区(日志),映射到一个OSD数据。通常10到20GB日志大小足以足大多数景。然而,如果你有一个更大的SSD,这时,不要忘记为OSD增加filestore的最大和最小的同步时间间隔。

 

根据上述,A公司运维小哥参考了社区官方建议(http://docs.ceph.com/docs/master/start/hardware-recommendations/)以及专业公司咨询(IntelXSKY等)的方法综合考虑,最终他确定了一套适合自己当前环境场景的硬件来测试以及上线应用。下面贴出来A公司运维小哥根据自己场景需求选择的硬件配置。

设备

具体配置

数量

场景

CPU

Intel  Xeon E5-2650 v3

2


热数据应用/虚拟化场景

内存

64GB  DDR4

4

OS

  1. 2.5英寸Intel S3500系列 SSD 240GB SSD

2

SSD

Intel  S3700 400G

12

万兆网卡

intel  双口万兆(含多模模块)

2

 

2:热数据应用以及虚拟化场景

 

本文是作者个人工作经验的总结,供Ceph初学者参考,请读者见仁见智。欲知后事,且听下文《从传统运维到云运维演进历程之软件定义存储(二)》,主要讲述了A公司运维小哥在硬件选型完毕之后开始部署Ceph遇到的一些问题以及解决办法。


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

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

相关文章

Abp Uow 设计

初始化入口 在AbpKernelModule类中&#xff0c;通过UnitOfWorkRegistrar.Initialize(IocManager) 方法去初始化 1 /// <summary>2 /// This class is used to register interceptor for needed classes for Unit Of Work mechanism.3 /// </summary>4 …

python3.8 实现鼠标自动移动_“新生报到”!【移动机器人 HD-1500】负载1500kg,实现了重型货物运输的自动化...

2020年第三季度欧姆龙自动化&#xff08;中国&#xff09;有限公司新品【移动机器人 HD-1500】即日起在中国市场首次对外发布&#xff0c;实现了重型货物运输的自动化。这款最新的自动化移动机器人重型载荷能力为1500 kg&#xff01;更高的载荷能力可以令客户实现以前无法实现的…

android 监听本机网络请求_fiddler如何抓取https请求实现fiddler手机抓包-证书安装失败100%解决...

一、HTTP协议和HTTPS协议。(1) HTTPS协议HTTP协议SSL协议&#xff0c;默认端口&#xff1a;443(2) HTTP协议&#xff08;HyperText Transfer Protocol&#xff09;&#xff1a;超文本传输协议。默认端口&#xff1a;80&#xff0c;其中包含请求和响应两部分&#xff0c;其中请求…

C#的四舍五入函数

2019独角兽企业重金招聘Python工程师标准>>> 1.四舍六入&#xff08;国外的四舍五入&#xff09; Math.Round&#xff08;num&#xff09;; 2.四舍五入 Math.Round(num,MidpointRounding.AwayFromZero); 转载于:https://my.oschina.net/CrazyBoy1024/blog/746268

【BZOJ2243】 [SDOI2011]染色

Description 给定一棵有n个节点的无根树和m个操作&#xff0c;操作有2类&#xff1a; 1、将节点a到节点b路径上所有点都染成颜色c&#xff1b; 2、询问节点a到节点b路径上的颜色段数量&#xff08;连续相同颜色被认为是同一段&#xff09;&#xff0c;如“112221”由3段组成&am…

数字信号处理的fpga实现_FPGA数字信号处理:通信类I/Q信号及产生

大侠好&#xff0c;欢迎来到FPGA技术江湖&#xff0c;江湖偌大&#xff0c;相见即是缘分。大侠可以关注FPGA技术江湖&#xff0c;在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源&#xff0c;或者一起煮酒言欢。大侠好&#xff0c;“宁夏李治廷”再一次和各位见…

iic通讯协议

IIC总线 一般串行数据通讯都有时钟和数据之分,有异步和同步之别. 有单线,双线和三线等. I2C肯定是2线的(不算地线). I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了. I2C的原则是: 在SCL1(高电平)时,SDA千万别忽悠!!! 否则,SDA下跳则"判罚"为&…

使用 Python 切割图片

刚好我有张 PNG 图片需要均匀切割&#xff0c;刚好我不会 PhotoShop&#xff0c;刚好我想用 Python 来练练手。 于是撸袖子码脚本。 import os from PIL import Imagedef splitimage(src, rownum, colnum, dstpath):img Image.open(src)w, h img.sizeif rownum < h and co…

python数据分析知识点_Python数据分析--Pandas知识点(三)

本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. 下面将是在知识点一, 二的基础上继续总结. 前面所介绍的都是以表格的形式中展现数据, 下面将介绍Pandas与Matplotlib配合绘制出折线图, 散点图, 饼图, 柱形图, 直方图等五大基本图形. Matplotlib是python…

SPI通讯协议

SPI&#xff1a;高速同步串行口。是一种标准的四线同步双向串行总线。 SPI&#xff0c;是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM&#xff0c;FLASH&#x…

基于MVVM的知乎日报应用安卓源码

使用data binding , dagger2 , retrofit2和rxjava实现的&#xff0c;基于MVVM的知乎日报APP运行效果&#xff1a; <ignore_js_op> 使用说明&#xff1a; 项目结构android data binding来实现MVVM。dagger2来完成依赖注入。retrofit2rxjava实现restful的http请求。第三方类…

php签入html出来的影响seo吗_搜索引擎优化_SEO必备6大技能+SEO误区讲解!

大家好&#xff0c;我是逆冬&#xff0c;今天来分享一下实战SEO需要掌握什么样的技能以及SEO知识误区&#xff0c;本篇文章仅代表逆冬本人几年的经验、不见得适合每一个SEOer!下面就让逆冬本人来分析一下实战型SEO到底需要掌握什么技能。第1点&#xff1a;SEO需要不需要熟练掌握…

一种M2M业务的架构及实现M2M业务的方法

http://www.cnblogs.com/coryxie/p/3849764.html 技术领域 [0001] 本发明涉及通信技术领域&#xff0c;尤其涉及一种M2M业务的架构及实现M2M业务的方法。 背景技术 [0002] 随着通信技术的飞速发展以及通信技术与互联网技术的进一步融合&#xff0c;移动业务以及移动互联网技术普…

第二章 mybatis使用注解实现in查询(mysql)

mybatis实现in查询&#xff0c;两种方法&#xff1a; xml形式&#xff08;推荐&#xff09;注解方式&#xff08;个人喜欢注解&#xff0c;但是in场景可能不太适合注解&#xff09;代码&#xff1a; 1 Select("<script>" 2 "SELECT ID…

python面试代码题_python面试基础篇80题

1.为什么学习python?3.Python和Java、PHP、C、C#、C等其他语言的对比&#xff1f; C语言由于其底层操作特性和历史的积累&#xff0c;在嵌入式领域是当之无愧的王者。 PHP跨平台&#xff0c;性能优越&#xff0c;跟linux/unix结合比跟windows结合性能强45%,开发成本低,php5已经…

javascript 变量作用域

为什么80%的码农都做不了架构师&#xff1f;>>> javascript中的变量的作用域不同于java/c的变量规则。 1、在java/c中&#xff0c;如果有一个全局变量与一个局部变量重名&#xff0c;那么在局部变量的作用域中&#xff0c;局部变量会覆盖掉全局变量的值。当离开局部…

七月算法--12月机器学习在线班-第五次课笔记—回归

七月算法--12月机器学习在线班-第五次课笔记—回归 七月算法&#xff08;julyedu.com&#xff09;12月机器学习在线班学习笔记 http://www.julyedu.com 转载于:https://www.cnblogs.com/sweet-dew/p/5491271.html

公司网络搭建及×××到公司配置

一、公司路由器及子网配置公司192.168.1.0/24子网用于服务器集群&#xff0c;192.168.0.0/24子网用于办公子网&#xff0c;两个子网物理上不在一块。公司开业时&#xff0c;申请了电信40Mbps专线光纤&#xff0c;5个IP地址&#xff0c;网关&#xff1a;*.168.112.9 255.255.25…

蓝鸥零基础学习HTML5第五讲 CSS的基础样式

蓝鸥零基础学习HTML5第五讲 CSS的基础样式1.border<!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>Document</title><style>div {width:0px;height:0px;/*background: url("img/1.jpg…

C# 使用Conditional特性而不是#if条件编译

概述 #if/#endif 语句常用来基于同一份源码生成不同的编译结果&#xff0c;其中最常见的就是debug版和release版。但是这些工具在实际应用中并不是非常友好&#xff0c;因为它们容易被滥用&#xff0c;其代码页进而难以理解或调试。C#设计中考虑到这个问题&#xff0c;并提供了…