- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
puppet ceph 部署
runsisi@
/runsisi
前言
本文对使用 puppet 进行 ceph 集群的部署流程进行简要总结。全文结构如
下:第一、二节分别对puppet 和ceph 进行简单介绍;第三节分析 puppet-ceph
模块的结构和实现;第四节描述ceph 集群部署的操作流程;第五节总结全文;
附录为参考文献及代码。
1. puppet
puppet 是一个开源的配置管理工具(Puppet is an open source configuration
management utility[1]),同时也是当前最主流的配置管理自动化工具之一。
[2]
Puppet 有自己独立的语言 用于编写配置脚本,但不同于一般的脚本语言,
该语言只描述被配置对象的状态(即puppet 中的资源),而不需要指定实现该配
置所需要的操作步骤。puppet 自身定义了很多常见的资源类型,但用户也可以自
定义资源类型,具体实现细节可以参阅“Puppet Types and Providers ”一书。
Puppet 有两种工作模式:C/S 模式、serverless 模式。在C/S 模式下puppet 客
户端定时 (默认30 分钟)发起对服务端的连接,下载属于客户端所在节点的脚
[3]
本 (当然这是最简化的描述),然后应用脚本,从而使系统达到脚本所描述的状
态。Serverless 模式即无服务端模式,直接在所需配置的节点应用脚本即可,脚
本的分发可以使用标准的svn、git 等版本管理工具或简单粗暴的scp 拷贝等方式。
2. ceph
Ceph 号称“THE FUTURE OF STORAGE”[4] ,作为一个统一存储系统,对外提供:
文件系统、块设备、对象存储等三种存储访问形式。ceph 自身以集群的形式存
在,集群成员包括 MON、OSD、MDS 三种类型的节点,如果不需要对外提供文
件系统的存储方式,则集群只需要MON 和OSD 两种类型的节点。
MON 节点是ceph 集群的控制中心,OSD 节点的加入、集群管理等都需要依
赖 MON 节点,因此为了避免单点故障,一般会存在多个 MON 节点。OSD 节点
是实际的数据存储仓库,一份数据可能会在多个OSD 节点之间进行备份、恢复,
这些业务产生的网络数据交互在集群内部网络进行。MDS 节点主要负责在VFS 中
生成文件系统树(tree )。
Ceph 集群对各节点的时间同步有严格的要求,因此在部署ceph 集群之前,
需要先部署NTP 服务器,并在集群各节点都启用NTP 服务。
3. puppet-ceph 模块
第一节中提到编写 puppet 脚本实际上就是在脚本中定义资源,而对于某个
功能配置可能会涉及多个资源,如 NTP 服务的配置就包括 NTP 软件包、服务、
配置文件等三种资源,这样就产生了模块化的开发方式,一个 puppet 模块就可
能包括了对某个功能项的所有资源的管理。
采用 C/S 模式时,模块只需要在服务端进行安装,在客户端开启
/etc/puppet/puppet.conf/agent/pluginsync 选项的情况下会自动将模块从服务端
同步到客户端,但如果是serverless 模式则需要在所有节点手工安装模块。
[5]
在puppet 的官网 以及github 上能搜索到很多开源的puppet 模块,如用于
ceph 集群部署的 puppet-ceph[6] ,对于这些模块有些可以拿来就用,但是有些必
须对部分参数进行调整,如NTP 服务器的地址自然是不同环境有不同的配置。
[7] [8]
Puppet-ceph 模块使用了Roles and Profiles 设计模式 ,同时通过hiera 实现
代码和数据解耦
文档评论(0)