Ceph官方文档翻译
- 格式:docx
- 大小:104.62 KB
- 文档页数:23
云计算与虚拟化技术丛书Ceph分布式存储学习指南Learning Ceph(芬)卡伦·辛格(Karan Singh) 著Ceph中国社区 译ISBN:978-7-111-56279-5本书纸版由机械工业出版社于2017年出版,电子版由华章分社(北京华章图文信息有限公司,北京奥维博世图书发行有限公司)全球范围内制作与发行。
版权所有,侵权必究客服热线:+ 86-10-68995265客服信箱:service@官方网址:新浪微博 @华章数媒微信公众号 华章电子书(微信号:hzebook)我们喜欢称呼Ceph为“未来的存储”,这是一个能够引起很多不同层的人共鸣的称呼。
对于系统架构师而言,Ceph的系统架构满足了所有人都希望构建的一类系统的需求。
它是模块化和可扩展的,并且有容错设计的。
对于用户来说,Ceph为传统和新兴的工作负载提供了一系列存储接口,可以在商用硬件上运行,并且支持仅以适度的资本投资来部署生产集群。
对于免费软件爱好者来说,Ceph持续推动着这些技术,这些技术的代码库是完全开源的,且允许所有人免费审查、修改并完善这些代码,在存储行业中这些代码仍然成本昂贵且具有专有的使用权限。
Ceph项目始于我在加州大学圣克鲁斯的一个研究计划,这个计划由几个能源部实验室(洛斯·阿拉莫斯、劳伦斯·利弗莫尔和桑迪亚)资助。
这个计划的目标是进一步加强拍字节(PB)级别的扩展、基于对象的存储系统。
在2005年加入该组织的时候,我最初的重点是为文件系统构建可扩展的元数据管理,即如何在多个服务器之间管理文件和目录层次结构,这样,系统就可以响应超级计算机中的100万个处理器,在同一时间将文件写入文件系统的同一目录下。
在接下来的3年里,我们主要研究了这个关键概念,然后构建了一个完整的体系结构并一直致力于这种系统的实现。
2006年当我们将最初描述Ceph的学术论文发表,并将相关代码开源且发布在网上后,我想我的主要工作就已经完成了。
ceph相关术语Ceph相关术语解析Ceph是一种分布式存储系统,用于提供高性能、高可靠性和可扩展性的存储解决方案。
它由多个组件组成,每个组件都有其特定的术语。
本文将对Ceph相关术语进行解析,以帮助读者更好地理解Ceph的工作原理和功能。
1. RADOS(Reliable Autonomic Distributed Object Store):RADOS是Ceph的核心组件,用于存储和管理数据。
它将数据分散存储在多个存储节点上,实现数据的冗余备份和负载均衡。
RADOS使用分布式对象存储的方式,将数据划分为多个对象,并将其分布在不同的存储设备上。
2. OSD(Object Storage Device):OSD是Ceph中的存储节点,负责存储和管理数据。
每个OSD负责管理一部分数据,并提供数据的读写和复制功能。
OSD之间通过网络进行通信,实现数据的传输和同步。
3. PG(Placement Group):PG是Ceph中的数据分片单位,用于将数据分散存储在不同的OSD上。
每个PG包含一个或多个对象,Ceph通过计算PG的哈希值,将对象映射到不同的PG中。
PG的数量决定了数据的分散度和负载均衡性能。
4. CRUSH(Controlled Replication Under Scalable Hashing):CRUSH是Ceph中的数据分布算法,用于确定数据在OSD上的存储位置。
CRUSH算法基于哈希函数和散列表,将数据块映射到特定的OSD上,实现数据的负载均衡和故障恢复。
5. MDS(Metadata Server):MDS是Ceph中的元数据服务器,用于管理文件系统的元数据信息。
它负责文件路径的解析、权限控制和数据的访问控制。
MDS采用多主架构,可以实现高可用性和容错性。
6. MON(Monitor):MON是Ceph中的监控节点,负责集群的管理和状态监测。
它维护集群的拓扑结构、成员状态和配置信息,并提供集群管理工具的访问接口。
ceph运维手册一、介绍Ceph是一个分布式存储系统,具有高性能、高可靠性和高可扩展性的特点。
在大规模数据存储领域,Ceph已经成为一种非常流行的解决方案。
本文将深入探讨Ceph的运维手册,包括必要的配置、监控、故障处理等方面。
二、环境准备在进行Ceph的运维工作之前,需要准备以下环境:1.硬件设备:Ceph要求至少3台服务器,并且每台服务器要有足够的计算和存储资源。
2.操作系统:推荐使用Linux操作系统,例如CentOS、Ubuntu等。
3.网络配置:确保服务器之间能够正常通信,并且网络带宽要足够支持存储系统的数据传输。
三、Ceph集群部署3.1 安装Ceph软件包在每台服务器上执行以下命令,安装Ceph软件包:$ sudo apt-get install ceph -y3.2 配置Ceph集群1.创建一个用于存储Ceph配置文件的目录:$ sudo mkdir /etc/ceph2.在主节点上执行以下命令,生成配置文件:$ sudo ceph-deploy new <主节点>3.编辑生成的Ceph配置文件,添加以下内容:osd pool default size = 2osd crush chooseleaf type = 14.在主节点上执行以下命令,部署配置文件到所有节点:$ sudo ceph-deploy --overwrite-conf config push <所有节点>3.3 启动Ceph集群在主节点上执行以下命令,启动Ceph集群:$ sudo ceph-deploy mon create-initial四、Ceph监控Ceph提供了一套监控工具,可以用于实时监控集群的状态和性能。
4.1 安装和配置监控工具在主节点上执行以下命令,安装和配置监控工具:$ sudo apt-get install ceph-mgr ceph-mgr-dashboard -y4.2 访问监控面板通过浏览器访问主节点的IP地址和监控面板端口,例如:主节点IP地址>:7000。
分布式存储ceph---ceph概念及原理(1)⼀、Ceph简介: Ceph是⼀种为优秀的性能、可靠性和可扩展性⽽设计的统⼀的、分布式⽂件系统。
ceph 的统⼀体现在可以提供⽂件系统、块存储和对象存储,分布式体现在可以动态扩展。
在国内⼀些公司的云环境中,通常会采⽤ ceph 作为openstack 的唯⼀后端存储来提⾼数据转发效率。
Ceph项⽬最早起源于Sage就读博⼠期间的⼯作(最早的成果于2004年发表),并随后贡献给开源社区。
在经过了数年的发展之后,⽬前已得到众多云计算⼚商的⽀持并被⼴泛应⽤。
RedHat及OpenStack都可与Ceph整合以⽀持虚拟机镜像的后端存储。
⼆、Ceph特点:1、⾼性能: a. 摒弃了传统的集中式存储元数据寻址的⽅案,采⽤CRUSH算法,数据分布均衡,并⾏度⾼。
b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
c. 能够⽀持上千个存储节点的规模,⽀持TB到PB级的数据。
2、⾼可⽤性: a. 副本数可以灵活控制。
b. ⽀持故障域分隔,数据强⼀致性。
c. 多种故障场景⾃动进⾏修复⾃愈。
d. 没有单点故障,⾃动管理。
3、⾼可扩展性: a. 去中⼼化。
b. 扩展灵活。
c. 随着节点增加⽽线性增长。
4、特性丰富: a. ⽀持三种存储接⼝:块存储、⽂件存储、对象存储。
b. ⽀持⾃定义接⼝,⽀持多种语⾔驱动。
三、Ceph应⽤场景 Ceph可以提供对象存储、块设备存储和⽂件系统服务,其对象存储可以对接⽹盘(owncloud)应⽤业务等;其块设备存储可以对接(IaaS),当前主流的IaaS运⾏平台软件,如:OpenStack、CloudStack、Zstack、Eucalyptus等以及kvm等。
Ceph是⼀个⾼性能、可扩容的分布式存储系统,它提供三⼤功能: (1)对象存储(RADOSGW):提供RESTful接⼝,也提供多种编程语⾔绑定。
CephV10.2.0Jewel正式版本发布本文由Ceph中国社区-半天河翻译,Devin校稿英文出处:官网release-notes 欢迎加入翻译组此次主版本的更新将是下一个长期稳定发行版的基础版本。
在Infernalis(9.2.X)版本和Hammer(0.94.X)版本后,我们做了许多重大修改,而且更新过程并不简单哦,请仔细阅读版本说明。
在Infernalis版本上进行的重要修改•CephFSo这是第一个CephFS宣称稳定并且生产就绪的版本!一些功能默认被禁用了,包含快照和多活MDS servero修复及灾备工具现已功能完善o包含了一个新模块cephfs-volume-manager,它提供了一个高级接口用来为Openstack Manila和相似的工程创建共享(shares)o现在实验性的在单一集群中支持多CephFS文件系统。
•RWGo Multisite功能已几乎完全被重构和重写,以便支持任意数量的集群/节点、双向故障切换和双活设置o现在可以通过NFS访问radosgw buckets(实验性的)o现已支持AWS4认证协议o支持S3请求payer bucketso新的多租户架构改善了与Swift的兼容性,为每个用户/租户提供了独立容器名称空间o现已支持Openstack Keystone v3 API。
同时也有一些Switf API的其他小功能和兼容性上的改变,例如删除bulk和SLO (static large objects)•RBDo新引入了跨集群异步备份(asynchronous replication)RBD镜像的支持。
这是通过per-RBD镜像日志来实现的,该日志可经流式处理后通过WAN传输到另一节点,同时一个新的rbd-mirror守护进程来执行跨集群副本操作。
o Exlusive-lock、object-map、fast-diff和journaling功能可以动态的开启和禁用。
ceph安装部署ceph简介不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署⼀个 Ceph ⽂件系统或者把 Ceph 作为他⽤,所有 Ceph 存储集群的部署都始于部署⼀个个 Ceph 节点、⽹络和 Ceph 存储集群。
Ceph 存储集群⾄少需要⼀个 Ceph Monitor 和两个 OSD 守护进程。
⽽运⾏ Ceph ⽂件系统客户端时,则必须要有元数据服务器( Metadata Server )。
Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的⼼跳来向 Ceph Monitors 提供⼀些监控信息。
当 Ceph 存储集群设定为有2个副本时,⾄少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。
Monitors: Ceph Monitor维护着展⽰集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。
Ceph 保存着发⽣在Monitors 、 OSD 和 PG上的每⼀次状态变更的历史信息(称为 epoch )。
MDSs: Ceph 元数据服务器( MDS )为 Ceph ⽂件系统存储元数据(也就是说,Ceph 块设备和 Ceph 对象存储不使⽤MDS )。
元数据服务器使得 POSIX ⽂件系统的⽤户们,可以在不对 Ceph 存储集群造成负担的前提下,执⾏诸如 ls、find 等基本命令Ceph组件:osdOSD 守护进程,⾄少两个⽤于存储数据、处理数据拷贝、恢复、回滚、均衡通过⼼跳程序向monitor提供部分监控信息⼀个ceph集群中⾄少需要两个OSD守护进程Ceph组件:mon维护集群的状态映射信息包括monitor、OSD、placement Group(PG)还维护了monitor、OSD和PG的状态改变历史信息Ceph组件:mgr(新功能)负责ceph集群管理,如pg map对外提供集群性能指标(如cpeh -s 下IO信息)具有web界⾯的监控系统(dashboard)ceph逻辑结构数据通过ceph的object存储到PG,PG在存储到osd daemon,osd对应diskobject只能对应⼀个pg⼀个raid可以对应⼀个osd⼀整块硬盘可以对应⼀个osd⼀个分区可以对应⼀个osdmonitor:奇数个 osd : ⼏⼗到上万,osd越多性能越好pg概念副本数crush规则(pg怎么找到osd acting set)⽤户及权限epoach:单调递增的版本号acting set: osd列表,第⼀个为primary osd,replicated osdup set :acting set过去的版本pg tmp:临时pg组osd状态:默认每2秒汇报⾃⼰给mon(同时监控组内osd,如300秒没有给mon汇报状态,则会把这个osd踢出pg组) up 可以提供iodown 挂掉了in 有数据out 没数据了ceph应⽤场景:通过tgt⽀持iscsi挂载公司内部⽂件共享海量⽂件,⼤流量,⾼并发需要⾼可⽤、⾼性能⽂件系统传统单服务器及NAS共享难以满⾜需求,如存储容量,⾼可⽤ceph⽣产环境推荐存储集群采⽤全万兆⽹络集群⽹络(不对外)与公共⽹络分离(使⽤不同⽹卡)mon、mds与osd分离部署在不同机器上journal推荐使⽤PCI SSD,⼀般企业级IOPS可达40万以上OSD使⽤SATA亦可根据容量规划集群⾄强E5 2620 V3或以上cpu,64GB或更⾼内存最后,集群主机分散部署,避免机柜故障(电源、⽹络)ceph安装环境由于机器较少,使⽤3台机器,充当mon与osd,⽣产环境不建议,⽣产环境⾄少3个mon独⽴主机IP⾓⾊配置ceph-0eth0:192.168.0.150(Public)eth1:172.16.1.100(Cluster)mon、osd、mgrDISK 0 15G(OS)DISK 110G(Journal)DISK 2 10G(OSD)DISK 3 10G(OSD)ceph-1eth0:192.168.0.151(Public)eth1:172.16.1.101(Cluster)mon、osd、mgrDISK 0 15G(OS)DISK 110G(Journal)DISK 2 10G(OSD)DISK 3 10G(OSD)ceph-2eth0:192.168.0.152(Public)eth1:172.16.1.102(Cluster)mon、osd、mgrDISK 0 15G(OS)DISK 110G(Journal)DISK 2 10G(OSD)DISK 3 10G(OSD)⼀、系统设置1.绑定主机名由于后续安装及配置都涉及到主机名,故此需先绑定依次在三个节点上执⾏以下命令完成hosts绑定[root@ceph-node0 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.150 ceph-node0192.168.0.151 ceph-node1192.168.0.152 ceph-node22.ssh-keygen信任3. 每台关闭防⽕墙systemctl stop firewalld4.时间同步yum install -y ntpdate//ntpdate 5.安装epel源与ceph-deploy本步骤要在每⼀个节点上执⾏安装epel源wget -O /etc/yum.repos.d/epel.repo /repo/epel-7.repo安装ceph-deployrpm -ivh https:///ceph/rpm-luminous/el7/noarch/ceph-release-1-1.el7.noarch.rpm 替换 ceph.repo 服务器sed -i 's#htt.*://#https:///ceph#g' /etc/yum.repos.d/ceph.repo 或直接复制下⽅⽂本内容替换 /etc/yum.repos.d/ceph.repo[Ceph]name=Ceph packages for $basearchbaseurl=https:///ceph/rpm-luminous/el7/$basearchenabled=1gpgcheck=1type=rpm-mdgpgkey=https:///ceph/keys/release.asc[Ceph-noarch]name=Ceph noarch packagesbaseurl=https:///ceph/rpm-luminous/el7/noarchenabled=1gpgcheck=1type=rpm-mdgpgkey=https:///ceph/keys/release.asc[ceph-source]name=Ceph source packagesbaseurl=https:///ceph/rpm-luminous/el7/SRPMSenabled=1gpgcheck=1type=rpm-mdgpgkey=https:///ceph/keys/release.asc6.安装ceph使⽤ yum 安装 ceph-deploy[root@ceph-node0 ~]# yum install -y ceph-deploy创建 ceph-install ⽬录并进⼊,安装时产⽣的⽂件都将在这个⽬录[root@ceph-node0 ~]# mkdir ceph-install && cd ceph-install[root@ceph-node0 ceph-install]#⼆、准备硬盘1.Journal磁盘本步骤要在每⼀个节点上执⾏在每个节点上为Journal磁盘分区, 分别为 sdb1, sdb2, 各⾃对应本机的2个OSD, journal磁盘对应osd的⼤⼩为25%使⽤ parted 命令进⾏创建分区操作[root@ceph-node0 ~]# parted /dev/sdbmklabel gptmkpart primary xfs 0% 50%mkpart primary xfs 50% 100%q2.OSD磁盘对于OSD磁盘我们不做处理,交由ceph-deploy进⾏操作三、安装ceph1.使⽤ceph-deploy安装ceph,以下步骤只在ceph-depoly管理节点执⾏创建⼀个ceph集群,也就是Mon,三台都充当mon[root@ceph-node0 ceph-install]# ceph-deploy new ceph-node0 ceph-node1 ceph-node2在全部节点上安装ceph[root@ceph-node0 ceph-install]# ceph-deploy install ceph-node0 ceph-node1 ceph-node2或在每个节点上⼿动执⾏ yum install -y ceph创建和初始化监控节点并收集所有的秘钥[root@ceph-node0 ceph-install]# ceph-deploy mon create-initial此时可以在osd节点查看mon端⼝创建OSD存储节点[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node0 --data /dev/sdc --journal /dev/sdb1[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node0 --data /dev/sdd --journal /dev/sdb2[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node1 --data /dev/sdc --journal /dev/sdb1[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node1 --data /dev/sdd --journal /dev/sdb2[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node2 --data /dev/sdc --journal /dev/sdb1[root@ceph-node0 ceph-install]# ceph-deploy osd create ceph-node2 --data /dev/sdd --journal /dev/sdb2把配置⽂件和admin 秘钥到管理节点和ceph节点[root@ceph-0 ceph-install]# ceph-deploy --overwrite-conf admin ceph-node0 ceph-node1 ceph-node2使⽤ ceph -s 命令查看集群状态[root@ceph-node0 ceph-install]# ceph -scluster:id: e103fb71-c0a9-488e-ba42-98746a55778ahealth: HEALTH_WARNno active mgrservices:mon: 3 daemons, quorum ceph-node0,ceph-node1,ceph-node2mgr: no daemons activeosd: 6 osds: 6 up, 6indata:pools: 0 pools, 0 pgsobjects: 0 objects, 0Busage: 0B used, 0B / 0B availpgs:如集群正常则显⽰ health HEALTH_OK如OSD未全部启动,则使⽤下⽅命令重启相应节点, @ 后⾯为 OSD IDsystemctl start ceph-osd@02. 部署mgrluminous 版本需要启动 mgr, 否则 ceph -s 会有 no active mgr 提⽰官⽅⽂档建议在每个 monitor 上都启动⼀个 mgr[root@ceph-node0 ceph-install]# ceph-deploy mgr create ceph-node0:ceph-node0 ceph-node1:ceph-node1 ceph-node2:ceph-node2再次查看ceph状态[root@ceph-node0 ceph-install]# ceph -scluster:id: e103fb71-c0a9-488e-ba42-98746a55778ahealth: HEALTH_OKservices:mon: 3 daemons, quorum ceph-node0,ceph-node1,ceph-node2mgr: ceph-node0(active), standbys: ceph-node1, ceph-node2osd: 6 osds: 6 up, 6 indata:pools: 0 pools, 0 pgsobjects: 0 objects, 0Busage: 6.02GiB used, 54.0GiB / 60.0GiB availpgs:3.清除操作安装过程中如遇到奇怪的错误,可以通过以下步骤清除操作从头再来[root@ceph-node0 ceph-install]# ceph-deploy purge ceph-node0 ceph-node1 ceph-node2[root@ceph-node0 ceph-install]# ceph-deploy purgedata ceph-node0 ceph-node1 ceph-node2[root@ceph-node0 ceph-install]# ceph-deploy forgetkeys四、配置1. 为何要分离⽹络性能OSD 为客户端处理数据复制,复制多份时 OSD 间的⽹络负载势必会影响到客户端和 ceph 集群的通讯,包括延时增加、产⽣性能问题;恢复和重均衡也会显著增加公共⽹延时。
Ceph Architecture Cognize架构Ceph企业提供独一无二的对象,块和文件存储在一个统一的系统。
Ceph为成千上万的客户提供访问PB级到EB的数据提供非凡的可扩展性。
Ceph的节点可以充分利用硬件资源和智能守护进程,在一个Ceph的存储集群中,可容纳大量节点,通过相互之间的复制和分发数据动态交流。
Ceph监控组件也可以被放置到一个集群,Ceph监控来监督Ceph的Ceph存储集群中的节点(监控集群,确保高可用性)。
CEPH的存储集群Ceph提供了一个根据RADOS无限扩展的Ceph存储集群,相关内容你可以参阅REDOS-一个可伸缩的、可靠的存储服务PB级别存储集群。
存储集群客户端和每个Ceph的OSD守护进程使用CRUSH算法有效地计算有关数据位置的信息,而不必依赖于一个查找表。
Ceph的高层次功能包括Ceph的存储集群,通过 librados提供了一个原生接口,在librados基础上建立一些服务接口。
Ceph OSD守护进程储存所有的数据成为一个层面的命名对象(例如,没有目录层次结构)。
对象的标识符,二进制数据和元数据组成的一组名称值对。
语义是完全基于Ceph的客户端。
例如,CephFS的使用元数据来存储文件属性,如文件的所有者,创建日期,最后修改日期,等等。
注意:整个集群的对象ID是唯一的,不仅仅在本地文件系统。
扩展性和高可用性在传统架构中,客户谈论到一个集中的组件(如网关,代理,API,外观等),作为单点进入到一个复杂的子系统。
这会带来性能和可扩展性的限制,同时引入单点故障(即,如果集中的组件出现故障,整个系统也出现故障)。
Ceph消除了集中式网关,使客户能够直接与Ceph的OSD守护进程进行互动。
Ceph的OSD守护进程创建对象的副本,在其他Ceph的节点上,以确保数据的安全性和高可用性。
Ceph还采用了集群监视器,以确保高可用性。
为了消除集中Ceph 的使用这种算法叫做CRUSH。
Ceph集群概念以及部署⼀、Ceph基础: 1、基础概念: ceph 是⼀个开源的分布式存储,同时⽀持对象存储、块设备、⽂件系统 ceph是⼀个对象(object)式存储系统,它把每⼀个待管理的数据流(⽂件等数据)切分伟⼀到多个固定⼤⼩(默认4M)的对象数据,并以其为原⼦单元(原⼦是构成元素的最⼩单元)完成数据的读写 对象数据的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为RADOS(reliable automatic distributed object store)存储集群,即可靠的、⾃动化的、分布式的对象存储系统 librados是RADOS存储集群的API,⽀持C/C++/JAVA/Python/ruby/go/php等多种编程语⾔客户端 2、ceph的设计思想: ceph的设计宗旨在实现以下⽬标: 每⼀组件皆可扩展 ⽆单点故障 基于软件(⽽⾮专业设备)并且开源(⽆供应商) 在现有的廉价硬件上运⾏ 尽可能⾃动管理,减少⽤户⼲预 3、ceph版本: x.0.z - 开发版 x.1.z - 候选版 x.2.z - 稳定、修正版 4、ceph集群⾓⾊定义: 5、ceph集群的组成部分: 若⼲的Ceph OSD(对象存储守护进程) ⾄少需要⼀个Ceph Monitor 监视器(数量最好为奇数1,3,5,7........) 两个或以上的Ceph管理器 managers,运⾏Ceph⽂件系统客户端时还需要⾼可⽤的Ceph Metadata Server(⽂件系统元数据服务器) RADOS Cluster:由多台host存储服务器组成的ceph集群 OSD(Object Storage Daemon):每台存储服务器的磁盘组成的存储空间 Mon(Monitor):Ceph的监视器,维护OSD和PG的集群状态,⼀个Ceph集群⾄少有⼀个Mon节点,可以是⼀三五七等这样的奇数个 Mgr(Manager):负责跟踪运⾏时指标和Ceph集群的当前状态,包括存储利⽤率,当前性能指标和系统负载等 6、Ceph集群术语详细介绍: 6.1 Monitor(ceph-mon)ceph监视器: 软件包名&进程名:ceph-mon 在⼀个主机上运⾏的⼀个守护进程,⽤于维护集群状态映射(maintains maps of the cluster state),⽐如ceph 集群中有多少存储池、每个存储池有多少PG 以及存储池和PG的映射关系等, monitor map, manager map, the OSD map, the MDS map, and the CRUSH map,这些映射是Ceph 守护程序相互协调所需的关键群集状态,此外监视器还负责管理守护程序和客户端之间的⾝份验证(认证使⽤cephX 协议)。
Ceph官方文档翻译石家庄众毅信息技术有限公司2017年06月目录在此处插入索引和目录准备¶New in version 0.60.谢谢您尝试Ceph !我们建议安装一个ceph-deploy管理节点和一个三节点的Ceph 存储集群来研究Ceph 的基本特性。
这篇预检会帮你准备一个ceph-deploy管理节点、以及三个Ceph 节点(或虚拟机),以此构成Ceph 存储集群。
在进行下一步之前,请参见操作系统推荐以确认你安装了合适的Linux 发行版。
如果你在整个生产集群中只部署了单一Linux 发行版的同一版本,那么在排查生产环境中遇到的问题时就会容易一点。
在下面的描述中节点代表一台机器。
在没有DNS的情况下,需要手动修改各个主机的hosts文件和主机名安装CEPH 部署工具¶把Ceph 仓库添加到ceph-deploy管理节点,然后安装ceph-deploy。
高级包管理工具(APT)¶在Debian 和Ubuntu 发行版上,执行下列步骤:1.添加release key :2.添加Ceph软件包源,用Ceph稳定版(如cuttlefish、dumpling、emperor、firefly等等)替换掉{ceph-stable-release}。
例如:3.更新你的仓库,并安装ceph-deploy:Note你也可以从欧洲镜像 下载软件包,只需把/替换成/即可。
红帽包管理工具(RPM)¶在Red Hat (rhel6、rhel7)、CentOS (el6、el7)和Fedora 19-20 (f19 - f20)上执行下列步骤:1.(只需要在管理节点)在RHEL7 上,用subscription-manager注册你的目标机器,确认你的订阅,并启用安装依赖包的“Extras”软件仓库。
例如:如果使用ceph-deploy部署,则不需要此步骤2.在RHEL6 上,安装并启用Extra Packages for Enterprise Linux (EPEL) 软件仓库。
请查阅EPEL wiki获取更多信息。
3.(只需要在管理节点)在CentOS 上,可以执行下列命令:把如下内容粘帖进去,用Ceph 的最新主稳定版名字替换{ceph-stable-release}(如firefly),用你的Linux发行版名字替换{distro}(如el6为CentOS 6 、el7为CentOS 7 、rhel6为Red Hat 6.5 、rhel7为Red Hat 7 、fc19是Fedora 19 、fc20是Fedora 20 )。
最后保存到/etc/yum.repos.d/ceph.repo文件中。
Note你也可以从欧洲镜像 下载软件包,只需把/替换成/即可。
CEPH 节点安装¶你的管理节点必须能够通过SSH 无密码地访问各Ceph 节点。
如果ceph-deploy以某个普通用户登录,那么这个用户必须有无密码使用sudo的权限。
或者2.确保所有Ceph 节点上的SSH 服务器都在运行。
创建部署CEPH 的用户¶ceph-deploy工具必须以普通用户登录Ceph 节点,且此用户拥有无密码使用sudo的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。
较新版的ceph-deploy支持用--username选项提供可无密码使用sudo的用户名(包括root,虽然不建议这样做)。
使用ceph-deploy --username {username}命令时,指定的用户必须能够通过无密码SSH 连接到Ceph 节点,因为ceph-deploy 中途不会提示输入密码。
我们建议在集群内的所有Ceph 节点上给ceph-deploy创建一个特定的用户,但不要用“ceph” 这个名字。
全集群统一的用户名可简化操作(非必需),然而你应该避免使用知名用户名,因为黑客们会用它做暴力破解(如root、admin、{productname})。
后续步骤描述了如何创建无sudo密码的用户,你要用自己取的名字替换{username}。
启动时联网¶Ceph 的各OSD 进程通过网络互联并向Monitors 上报自己的状态。
如果网络默认为off,那么Ceph 集群在启动时就不能上线,直到你打开网络。
某些发行版(如CentOS )默认关闭网络接口。
所以需要确保网卡在系统启动时都能启动,这样Ceph 守护进程才能通过网络通信。
例如,在Red Hat 和CentOS 上,需进入/etc/sysconfig/network-scripts目录并确保ifcfg-{iface}文件中的ONBOOT设置成了yes。
确保联通性¶用ping短主机名(hostname -s)的方式确认网络联通性。
解决掉可能存在的主机名解析问题。
Note主机名应该解析为网络IP 地址,而非回环接口IP 地址(即主机名应该解析成非127.0.0.1的IP地址)。
如果你的管理节点同时也是一个Ceph 节点,也要确认它能正确解析自己的主机名和IP 地址(即非回环IP 地址)。
开放所需端口¶Ceph Monitors 之间默认使用6789端口通信,OSD 之间默认用6800:7300这个范围内的端口通信。
详情见网络配置参考。
Ceph OSD 能利用多个网络连接进行与客户端、monitors、其他OSD 间的复制和心跳的通信。
某些发行版(如RHEL )的默认防火墙配置非常严格,你可能需要调整防火墙,允许相应的入站请求,这样客户端才能与Ceph 节点上的守护进程通信。
对于RHEL 7 上的firewalld,要对公共域开放Ceph Monitors 使用的6789端口和OSD 使用的6800:7300端口范围,并且要配置为永久规则,这样重启后规则仍有效。
例如:若使用iptables,要开放Ceph Monitors 使用的6789端口和OSD 使用的6800:7300端口范围,命令如下:在每个节点上配置好iptables之后要一定要保存,这样重启之后才依然有效。
例如:终端(TTY )¶在CentOS 和RHEL 上执行ceph-deploy命令时可能会报错。
如果你的Ceph 节点默认设置了requiretty,执行sudo visudo禁用它,并找到Defaults requiretty选项,把它改为Defaults:ceph !requiretty或者直接注释掉,这样ceph-deploy就可以用之前创建的用户(创建部署Ceph 的用户)连接了。
sudo visudo修改确保配置如下Defaults !visiblepwDefaults !requiretty{username}ALL=(ALL) NOPASSWD: ALLNote编辑配置文件/etc/sudoers时,必须用sudo visudo而不是文本编辑器。
SELINUX¶在CentOS 和RHEL 上,SELinux 默认为Enforcing开启状态。
为简化安装,我们建议把SELinux 设置为Permissive或者完全禁用,也就是在加固系统配置前先确保集群的安装、配置没问题。
用下列命令把SELinux 设置为Permissive:要使SELinux 配置永久生效(如果它的确是问题根源),需修改其配置文件/etc/selinux/config。
YUM优先级/首选项插件¶确保你的包管理器安装了优先级/首选项包且已启用。
在CentOS 上你也许得安装EPEL ,在RHEL 上你也许得启用可选软件库。
比如在RHEL 7 服务器上,可用下列命令安装yum-plugin-priorities并启用rhel-7-server-optional-rpms软件库:总结¶快速入门的预检部分到此结束,请继续存储集群快速入门。
存储集群快速入门¶如果你还没完成预检,请先做完。
本篇快速入门用ceph-deploy从管理节点建立一个Ceph 存储集群,该集群包含三个节点,以此探索Ceph 的功能。
第一次练习时,我们创建一个Ceph 存储集群,它有一个Monitor 和两个OSD 守护进程。
一旦集群达到active + clean状态,再扩展它:增加第三个OSD 、增加元数据服务器和两个Ceph Monitors。
为获得最佳体验,先在管理节点上创建一个目录,用于保存ceph-deploy生成的配置文件和密钥对。
ceph-deploy会把文件输出到当前目录,所以请确保在此目录下执行ceph-deploy。
Important如果你是用另一普通用户登录的,不要用sudo或在root身份运行ceph-deploy,因为它不会在远程主机上调用所需的sudo命令。
禁用requiretty在某些发行版(如CentOS )上,执行ceph-deploy命令时,如果你的Ceph 节点默认设置了requiretty那就会遇到报错。
可以这样禁用此功能:执行sudo visudo,找到Defaults requiretty选项,把它改为Defaults:ceph !requiretty,这样ceph-deploy就能用ceph用户登录并使用sudo了。
创建集群¶如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:ceph-deploy purgedata {ceph-node} [{ceph-node}]ceph-deploy forgetkeys用下列命令可以连Ceph 安装包一起清除:操作集群¶用ceph-deploy部署完成后它会自动启动集群。
要在Debian/Ubuntu 发行版下操作集群守护进程,参见用Upstart 运行Ceph;要在CentOS 、Red Hat 、Fedora 和SLES 下操作集群守护进程,参见用sysvinit 运行Ceph。
关于peering 和集群健康状况请参见监控集群;关于OSD 守护进程和归置组(placement group )健康状况参见监控OSD 和归置组;关于用户管理请参见用户管理。
Ceph 集群部署完成后,你可以尝试一下管理功能、rados对象存储命令,之后可以继续快速入门手册,了解Ceph 块设备、Ceph 文件系统和Ceph 对象网关。
扩展集群(扩容)¶一个基本的集群启动并开始运行后,下一步就是扩展集群。
在node1上添加一个OSD 守护进程和一个元数据服务器。
然后分别在node2和node3上添加Ceph Monitor ,以形成Monitors 的法定人数。
添加OSD¶你运行的这个三节点集群只是用于演示的,把OSD 添加到monitor 节点就行。