ceph存储 ceph整体学习记录(未整理较乱)

本文档详细记录了Ceph存储系统的学习,包括Ceph的组成部分如radosgw、rbd、ceph-dfs及其工作原理,讨论了分布式系统中的SPoF、Paxos算法以及POSIX语义。同时,深入介绍了Ceph的部署、配置和优化,如硬盘控制器、SSD使用、OSD日志存储和网络规划。此外,文档还涵盖了故障域、性能测试和更新维护的最佳实践,以及Ceph与OpenStack、Swift的接口兼容性。
摘要由CSDN通过智能技术生成

ceph源码下载:

http://ceph.com/download/

主要文档下载连接:

http://download.csdn.net/detail/skdkjxy/8149989

/*******************/
Time:2014-11-6
Author:skdkjzz
/******************/
1、unified中何为radosgw、rbd、ceph-dfs、rados?
2、distributed中spof?
{
 http://article.yeeyan.org/view/258596/225158
 单点故障
}
3、ceph中何为paxos?
4、ceph包括四个部分--moniters(ceph-mon)、object_storage_daemons(ceph-osd)、clients(librados、librbd)、metadata_servers(ceph-mds)
5、posix语义?
6、rados_object_storage_model--include “pools” “objects”
7、object_storage--何为btrfs、xfs?online fsck 硬盘坏轨检查?
8、objects are automatically placed放置, balanced均衡, migrated迁移 in a dynamic cluster动态集群
9、CRUSH伪随机放置算法(pseudo-random placement algorithm)
10、3 replicas, same row, different racks(3个副本、同行、不同机架)
11、coordinate_peers(协调节点?)
12、何为openstack、RESTful、S3?
13、何为ACL_route_base(路由策略)?
14、何为rbd – rados block device --rbd?
15、基于内核的虚拟机(K Virtual Machine)--kvm
16、何为librbd、libvirt
17、shared cluster-coherent file system (共享集群一致?连贯?文件系统)?
18、动态子目录树分区特性--高效、可扩展、动态、自适应(均衡整个集群)
19、recursive_accounting--递归运算
20、Linux_kernel_client--Samba(CIFS)、export(NFS)
21、NFS-GANESHA 是一个用户空间服务器,支持NFSv2、NFSv3和NFSv4。它支持的运行平台包括Linux,BSD variants和POSIX-compliant Unixes。
22、何为poc?
{
POC测试,即Proof of Concept,是业界流行的针对客户具体应用的验证性测试,根据用户对采用系统提出的性能要求和扩展需求的指标,在选用服务器上进行真实数据的运行,
对承载用户数据量和运行时间进行实际测算,并根据用户未来业务扩展的需求加大数据量以验证系统和平台的承载能力和性能变化。
}
23、needs testing, deliberate qa effort for production(需要进行测试,为深思熟虑的品质做出努力)

/*******************/
Time:2014-11-7
Author:skdkjzz
/******************/
1、跟随去存储技术实验室
2、何为Lustre、GlusterFS和OrangeFS?
3、预计下周一进行疑惑解决,然后深入ceph框架
/========================================================================/
HardDisk:
4、预计下周一进行ceph安装文档阅读:
5、均衡日志和OSD性能相当重要
6、不顾分区而在单个硬盘上运行多个OSD,这样不明智!
7、不顾分区在运行了OSD的硬盘上监视器或者元数据服务器,也是不明智!
8、存储驱动器受限于寻道时间、访问时间、读写时间、还有总吞吐量,这些物理局限性影响着整体系统性能,尤
其在系统恢复期间。因此我们推荐独立的驱动器用于安装操作系统和软件,另外每个OSD守护进程占用一个驱动器。
大多数“slow OSD”问题的起因都是在相同的硬盘上运行了操作系统、多个OSD和/或多个日志文件。鉴于解决性能问题
的成本差不多会超过另外增加磁盘驱动器,你应该在设计时就避免增加 OSD 存储驱动器的负担来提升性能。
9、ceph允许你在每块硬盘驱动器上运行多个OSD,但这会导致资源竞争并降低总体吞吐量;ceph也允许把日志
和对象数据存储在相同驱动器上,但这会增加记录写日志并回应客户端的延时,因为ceph必须先写入日志才会回应确认了写动作。
btrfs文件系统能同时写入日志数据和对象数据,xfs和ext4却不能。
10、ceph最佳实践指示,你应该分别在单独的硬盘运行操作系统、OSD数据和OSD日志。
/========================================================================/

/*******************/
Time:2014-11-8
Author:skdkjzz
/******************/
SSD:
1、一种提升性能的方法是使用固态硬盘(SSD)来降低随机访问时间和读延时,同时增加吞吐量。SSD和硬盘相
比每GB成本通常要高10倍以上,但访问时间至少比硬盘快100倍。
2、SSD局限性在于顺序读写性能,SSD没有可移动机械部件,所以不存在和硬盘一样的局限性。但SSD也有局限性,评估SSD时,顺序读写性
能很重要,在为多个OSD存储日志时,有着400MB/s顺序读写吞吐量的SSD其性能远高于120MB/s的。
3、在大量投入SSD前,我们强烈建议核实SSD的性能指标,并在测试环境下衡量性能。
4、SSD没有移动机械部件,很适合ceph中不需要太多存储空间的地方,但是对SSD性能衡量需要注意一下几点:
 4.1)IOPS指标,又何为IOPS指标?
 4.2)写密集语义:记日志涉及写密集语义,所以你要确保选用的SSD写入性能和硬盘相当或好于硬盘。廉价SSD可能在加速访问的同时
 引入写延时,有时候高性能硬盘的写入速度可以和便宜SSD相媲美。又何为写密集语义?
 4.3)顺序写入:在一个SSD上为多个OSD存储多个日志时也必须考虑SSD的顺序写入极限,因为它们要同时处理多个OSD日志的写入请求。
 4.4)分区对齐:采用了SSD的一个常见问题是人们喜欢分区,却常常忽略了分区对齐,这会导致SSD的数据传输速率慢很多,所以请确保分区对齐了。
5、SSD用于对象存储太昂贵了,但是把OSD的日志存到SSD、把对象数据存储到独立的硬盘可以明显提升性能。osd_journal选项的默认值是
/var/lib/ceph/osd/$cluster-$id/journal,你可以把它挂载到一个SSD或SSD分区,这样它就不再是和对象数据一样存储在同一个硬盘上的文件了 。
6、提升CephFS文件系统性能的一种方法是从CephFS文件内容里分离出元数据。ceph提供了默认的metadata存储池来存储CephFS元数据,所以你不需要给
CephFS元数据创建存储池,但是可以给它创建一个仅指向某主机SSD的CRUSH运行图。又何为CRUSH运行图?

Controller:
1、优秀的ceph的性能问题探讨可以参考ceph相关blog--见ceph-docs_zh-v1.3.pdf,页码为p23
2、硬盘控制器对写吞吐量有显著影响,需慎重选择,以免造成性能瓶颈(bottleneck)

Others_Notes:
1、可以在同意主机运行多个osd,但是需保证osd硬盘吞吐量不超过为客户端提供读写服务所需网络带宽。
2、还应考虑集群在每台主机上存储的数据占总体的百分比,如果一台主机所占百分比太多而挂了,那么就可能导致诸如full ratio(满载满负荷)的问题,
那么ceph会中止运行来防止数据丢失。
3、如果每台主机运行多个osd,请保证内核是最新的,来确保硬件性能可达期望值。

Network:
1、建议每台机器最少两个千兆网卡,现在大多数机械硬盘都能达到大概100MB/s的吞吐量,网卡应该能处理所有OSD硬盘总吞吐量,所以推荐最少两个千兆网卡,
分别用于公网(前端)和集群网络(后端)。集群网络(最好别连接到国际互联网)用于处理由数据复制产生的额外负载,而且可防止拒绝服务攻击,拒绝服务攻击
会干扰数据归置组,使之在OSD数据复制时不能回到active+clean状态。请考虑部署万兆网卡。通过1Gbps网络复制1TB数据耗时3小时,而3TB(典型配置)需要9小时,
相比之下,如果使用10Gbps复制时间可分别缩减到20分钟和1小时。在一个PB级集群中,OSD磁盘失败是常态,而非异常;在性价比合理的的前提下,系统管理员
想让PG尽快从degraded(降级)状态恢复到 active+clean 状态。另外,一些部署工具(如Dell的Crowbar)部署了5个不同的网络,但使用了VLAN以提高网络和硬件可管理性。
VLAN使用802.1q协议,还需要采用支持VLAN功能的网卡和交换机,增加的硬件成本可用节省的运营(网络安装、维护)成本抵消。使用VLAN来处理集群和计算栈
(如 OpenStack、 CloudStack 等等)之间的VM流量时,采用10G网卡仍然值得。每个网络的机架路由器到核心路由器应该有更大的带宽,如40Gbps到100Gbps。
又何为VM流量?
2、服务器应配置底板管理控制器(Baseboard Management Controller, BMC),管理和部署工具也应该大规模使用BMC,所以请考虑带外网络管理的成本/效益平衡,
此程序管理着SSH访问、VM映像上传、操作系统安装、端口管理、等等,会徒增网络负载。运营3个网络有点过分,但是每条流量路径都指示了部署一个大型数据集群前
要仔细考虑的潜能力、吞吐量、性能瓶颈。

Failure_Domain:
1、故障域指任何导致不能访问一个或多个OSD的故障,可以是主机上停止的进程、硬盘故障、操作系统崩溃、有问题的网卡、损坏的电源、断网、断电等等。规划硬件需求时,
要在多个需求间寻求平衡点,像付出很多努力减少故障域带来的成本削减、隔离每个潜在故障域增加的成本。

HardWare_choose:
1、参考文档ceph-docs_zh-v1.3.pdf,页码为p24。
2、如果在只有一块硬盘的机器上运行OSD,要把数据和操作系统分别放到不同分区;一般来说,我们推荐操作系统和数据分别使用不同的硬盘。

/*******************/
Time:2014-11-9
Author:skdkjzz
/******************/
OS_Recommentdations:
1、推荐在较新的Linux发行版上部署ceph。
2、在btrfs上运行ceph,推荐使用Linux内核版本高于v3.5。又何为btrfs?
3、syncfs(2):对非btrfs文件系统(像XFS和ext4)而言,在一台服务器上运行了多个ceph-osd守护进程时,ceph使用syncfs(2)系统调用时效率高
得多(此功能在2.6.39内核和glibc-2.14加入)。又何为syncfs(2)?

Platfrom:
1、一般来说,ceph对Linux内核和系统初始化阶段的依赖很少(sysvinit、upstart、systemd)。又何为sysvinit、upstart、systemd?
2、Notes:
 2.1)默认内核的btrfs版本较老,不推荐用于ceph-osd储存节点,要升级到推荐的内核,或者改用xfs或ext4。
 2.2)默认内核带的ceph客户端较老,不推荐做内核空间客户端(内核rbd或ceph文件系统),请升级至推荐内核。
 2.3)已安装glibc版本不支持syncfs(2)系统调用,同一台机器上使用xfs或ext4的ceph-osd守护进程性能一般,它可以更好。

Testing:
1、我们持续地在这个平台上编译所有分支、做基本单元测试;也为这个平台构建可发布软件包。
2、我们在这个平台上做基本的安装和功能测试。
3、我们在这个平台上持续地做全面的功能、退化、压力测试,包括开发分支、预发布版本、正式发布版本。

Installing Ubuntu/debian Packages:p27

1、install release key:
 1.1)软件包都使用进行release.asc密钥加密签名过,把发布密钥添加到系统可信密钥列表中可避免安全警告,运行命令如下:
 wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add
2、Add release packeages:
 2.1)稳定版-bobtail是ceph最新的主要发布,适用任何想在生产环境下部署ceph,重大的bug已经修复。把软件库添加到apt源列表,运行命令如下:
 echo deb http://ceph.com/debian-bobtail/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
 2.2)稳定版-argonaut是ceph前一个的主要发布,适用已经在生产环境下部署了argonaut又没准备好升级。把软件库添加到apt源列表,运行命令如下:
 echo deb http://ceph.com/debian-argonaut/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
3、install packages-ceph:
 3.1)把正式发布或者开发包添加到apt源列表中,要更新apt数据库,在安装ceph。运行命令如下:
 sudo apt-get update && sudo apt-get install ceph

 
RPM packages install-centos&redhat:
1、rpm安装和ubuntu下类似,详见p29

Update Ceph:
1、可以逐个升级集群中的守护进程:
 1.1)登录主机升级ceph包
 1.2)重启ceph守护进程
 1.3)确认集群是健康,运行正常
 1.4)Notes:important-->一旦升级守护进程就无法降级!

2、depend relation,升级顺序如下:
 2.1)Monitors(or Osds)
 2.2)Osds(or Monitors)
 2.3)Metadata Servers
 2.4)RADOS Gateway
 Notes:
 作为一般规则,推荐一次性升级同一类型的所有守护进程(如所有ceph-osd守护进程、所有ceph-mon等等)以保证它们都处于同一版本。同时建议
 您升级完集群中的所有守护进程后再练习那个版本的新功能。
3、Upgrading OSD Steps:
 3.1)Upgrade the OSD package--> ssh {osd-host} && sudo apt-get update && sudo apt-get install ceph
 3.2)Restart the OSD, where N is the OSD number--> service ceph restart osd.N
 3.3)Ensure the upgraded OSD has rejoined the cluster--> ceph osd stat
 3.4)成功升级一个OSD后,再继续其它的,直到完成所有OSD。
4、Upgrading Monitors:
 4.1)Upgrade the ceph package--> ssh {mon-host} && sudo apt-get update && sudo apt-get install ceph
 4.2)Restart the monitor--> service ceph restart mon.{name}
 4.3)Ensure the monitor has rejoined the quorum--> ceph mon stat
 4.4)成功升级一个监视器后,再继续其它的,直到完成所有监视器。
5、Upgrading a Metadata Server:
 5.1)Upgrade the ceph package--> ssh {mds-host} && sudo apt-get update && sudo apt-get install ceph
 5.2)Restart the metadata server--> service ceph restart mds.{name}
 5.3)Ensure the metadata server is up and running--> ceph mds stat 
 5.4)成功升级一个元数据服务器后,再继续其它的,直到完成所有元数据服务器。
6、Upgrading a Client:
 6.1)Upgrade the package--> ssh {client-host} && apt-get update && sudo apt-get install ceph-common librados2 librbd1 python-ceph
 6.2)Ensure that you have the latest version--> ceph --version

Argonaut update to Bobtail:
1、Notes:
 1.1)现在默认开启了认证,但以前默认关闭
 1.2)监视器使用了新的内部on-wire协议(一个时间同步协议?)
 1.3)使用RBD format 2格式的映像前要先升级完所有OSD。
 1.4)bobtail版支持format 2格式的映像!若ceph-osd未完全升级完成,不可以使用format 2格式。检查集群版本命令如下:
 ceph osd ls 和 ceph tell osd.N version ,其中ceph osd ls 会列出集群里所有OSD的ID,循环脚本示例:
 {
 for i in $(ceph osd ls); do
  ceph tell osd.${i} version
 done
 }
 1.5)具体开始细节见p33。

Build Ceph Prerequisites,in other words,Cpeh depend other libs or tools:
1、在 Ubuntu上,执行sudo apt-get install安装缺失依赖,运行命令如下:
 1.1)sudo apt-get install autotools-dev autoconf automake cdbs gcc g++ git libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libcrypto++ libexpat1-dev
 1.2)sudo apt-get install uuid-dev libkeyutils-dev libgoogle-perftools-dev libatomic-ops-dev libaio-dev libgdata-common libgdata13 libsnappy-dev libleveldb-dev

Building Ceph:
1、具体安装步骤及注意事项如下:
 1.1):进入ceph source,执行命令如下
 {
  cd ceph
  ./autogen.sh
  ./configure --prefix=?
  make
 }
 1.2)根据你的系统可以用 make -j 同时运行多个任务,例如make -j4在双核CPU上会编译得更快。
 1.3)安装ceph到本地,执行命令--> sudo make install

Installing Oprofile:
1、分析ceph CPU消耗情况的最简方法就是用系统级的oprofile--> sudo apt-get install oprofile oprofile-gui

Compiling Ceph for Profiling:
1、编译适合分析的ceph:
 1.1)先清理先前编译--> make distclean
 1.2)查看输出调用图--> export CFLAGS="-fno=omit-frame-pointer -O2 -g"
 1.3)最终编译-->
 {
  ./autogen.sh
  ./configure
  make
 }
 1.4)超线程编译选项-->make -j4
 
/*******************/
Time:2014-11-10
Author:skdkjzz
/******************/
RADOS About:
1、ceph 集群可以包含数千个存储节点,最小系统至少需要二个OSD才能做到数据复制。要配置OSD集群,你得把配置写入
配置文件,ceph对很多选项提供了默认值,你可以在配置文件里覆盖它们;另外,你可以使用命令行工具修改运行时配置。
2、ceph 启动时要激活三种守护进程:
 2.1)ceph-osd
 2.2)ceph-mon
 2.3)ceph-mds
3、Hard disk prep:
 3.1)如果文件系统日志在原始硬盘上,就需要禁用写缓存:新的内核(big than v2.6.33)不需要禁用
 3.2)禁用硬盘的写缓存功能--> sudo hdparm -W 0 /dev/hda 0
 3.3)在生产环境,建议您在系统盘运行OSD,在另外的硬盘里放数据。如果必须把数据和系统放在一个硬盘里,最好给数据分配一个单独的分区。
4、Fs depend:
 4.1)ceph的OSD依赖于底层文件系统的稳定性和性能。
 4.2)当前,我们推荐部署生产系统时使用xfs文件系统,建议用btrfs做测试、开发和其他不太要紧的部署。我们相信,长期来看btrfs适合ceph的功能需求和发展方向,
 但是xfs和ext4能提供当前部署所必需的稳定性。btrfs开发在迅速推进,用户应该有能力经常更新到最新内核发布,而且能跟踪严重bug的修正进度。
 4.3)ceph的OSD有赖于底层文件系统的扩展属性(XATTR)存储各种内部对象状态和元数据。底层文件系统必须给XATTR提供足够容量,btrfs没有限制
 随文件存储的xattr元数据;xfs的限制相对大(64KB),多数部署都不会有瓶颈;ext4的则太小而不可用。
 4.4)要用这些文件系统,你得把下面这行写入ceph.conf的[osd]段里--> filestore xattr use omap = true
5、xfs、btrfs比较:
 5.1)xfs和btrfs相比较ext3/4而言,在高伸缩性数据存储方面有几个优势,xfs和btrfs都是日志文件系统,这使得在崩溃、断电后恢复时更健壮,
 因为文件系统在写入数据前会先记录所有变更。
 5.2)xfs由Silicon Graphics开发,是一个成熟、稳定的文件系统。相反,btrfs是相对年轻的文件系统,它致力于实现系统管理员梦寐以求的大规模数据存储基础,
 和其他Linux文件系统相比它有独一无二的功能和优势。
 5.3)btrfs是写时复制(copy-on-write, cow)文件系统,它支持文件创建时间戳和校验和(可校验元数据完整性)功能,所以它能探测到数据坏副本,
 并且用好副本修复。写时复制功能是说btrfs支持可写文件系统快照。btrfs也支持透明压缩和其他功能。
 5.4)btrfs也集成了多设备管理功能,据此可以在底层支持异质硬盘存储,和数据分配策略。未来开发社区还会提供fsck、拆分、数据加密功能,这些诱人的功能正是ceph集群的理想选择。
 
Configure Ceph:
1、典型的ceph集群中至少要运行下面四种守护进程中的一种:
 1.1)ceph-osd 对象存储设备
 1.2)ceph-mon 监视器
 1.3)ceph-mds 元数据服务器
 1.4)radosgw(ceph gateway) ceph网关
 1.5)为方便起见,每个守护进程都有一系列默认值(参见 ceph/src/common/config_opts.h),你可以用ceph配置文件覆盖这些设置。

2、configfile--> ceph.conf:
 2.1)启动ceph集群时,每个守护进程都从ceph.conf里查找它自己的配置。
 2.2)手动配置时,你需要创建ceph.conf来配置集群-->详见p43。
 2.3)ceph文件使用ini风格的语法,以分号(;)和井号(#)开始的行是注释。
 2.4)一个例程由类型和它的例程编号(ID)确定,OSD的例程ID只能是数字,监视器和元数据服务器的ID可包含字母和数字。
 2.5)元变量大大简化了集群配置,ceph会把配置的元变量展开为具体值;元变量功能很强大,可以用在[global] 、[osd] 、
 [mon] 、[mds]段里,类似于bash的shell扩展-->详见p45。
 2.6)理想情况下一台主机应该只 运行一类进程,例如:一台主机运行着ceph-osd进程,另一台主机运行着ceph-mds进程,ceph-mon进程又在另外一台主机上。
 2.7)每个主机都有一个标识名称(系统配置),监视器可用addr选项指定网络地址和端口(如域名或IP地址),基本配置可以只指定最小配置。例如:
 {
  [mon.a]
   host = hostName
   mon addr = 150.140.130.120:6789
  [osd.0]
   host = hostName
  
  Notes:
  2.7.1)主机名设置是主机的短名字,不是正式域名FQDN,也不是IP地址;在执行hostname -s就可以得到短名字。
  此设置只在mkcephfs和手动部署时用到,用chef部署ceph时不必要。
 }
 2.8)监视器默认监听 6789 端口,元数据服务器和OSD监听从6800开始的第一个可用端口;要确保监听6789端口的是监视器进程,每个OSD或元数据服务器进程
 监听了从6800开始的端口。每个主机使用的端口数量都是确定的,所以你没必要多开端口。但有些时候进程失败后重启却没释放旧端口,就会绑定到了新端口,
 所以要多留些端口作备用。如果你的部署区分了集群网和公网,你也许需要给每个网络写相应配置。网络端口配置示例命令:
 iptables -A INPUT -m multiport -p tcp -s {ip-address}/{netmask} --dports 6789,6800:6810 -j ACCEPT
 2.9)使用两个分开的网络:
  2.9.1)OSD给客户端做数据复制时,如果副本数大于1,客户端和ceph集群间的网络负载会很容易增大,这会导致延时增大和性能下降,ceph处于Degrade。
  2.9.2)拒绝服务攻击(DoS),当攻击OSD间的流量中断时,归置组就再也不能进入active+clean状态了,它也会阻止用户读写数据。
  2.9.3)最好的办法就是彻底分开集群网和公网。详见p47
  {
   2.9.3.1)要配置这样的网络,把下面的选项加到ceph.conf里的[global]段下:
   {
   [global]
     public network {public-network-ip-address/netmask}
     cluster network {enter cluster-network-ip-address/netmask}
   }
   2.9.3.2)要让ceph主机使用分开的网络,把下面的选项设置在守护进程例程下面:
   {
   [osd.0]
    public addr {host-public-ip-address}
    cluster addr {host-cluster-ip-address}   
   }
  }
 2.10)典型的ceph生产集群至少部署3个监视器来确保高可靠性,它允许一个监视器例程崩溃。奇数个监视器确保PAXOS算法能确定
 一批监视器里哪个版本的集群运行图是最新的。
 2.11)一个ceph 集群可以只有一个监视器,但是如果它失败了,因没有监视器数据服务就会中断。
 2.12)ceph监视器默认监听6789端口:
 {
  [mon.a]
    host = hostName
    mon addr = 150.140.130.120:6789
  Notes:
  1)默认情况下,ceph会在下面的路径存储监视器数据--> /var/lib/ceph/mon/$cluster-$id
  2)你必须自己创建对应的目录,前述的元变量必须先展开,名为ceph的集群将展开为--> /var/lib/ceph/mon/ceph-a
  3)你可以用mon data选项更改默认路径,但我们不推荐修改。用下面的命令在新监视器主机上创建默认目录,运行命令如下:
  ssh {new-mon-host} && sudo mkdir -p /var/lib/ceph/mon/ceph-{mon-letter}
 }
 2.13)典型的生产集群里,一个数据盘上运行一个OSD进程;典型部署要指定日志尺寸、文件存储的扩展属性(XATTR)是否使用对象图(如运行在ext4之上),例如:
 {
 [osd]
  osd journal size = 10000
  filestore xattr use omap = true #enables the object map. Only if running ext4.
 [osd.0]
  hostname = {hostname}
 Notes:
  1)默认ceph认为你把OSD数据存储在下面的路径下:--> /var/lib/ceph/osd/$cluster-$id
  2)你必须创建对应目录,名字为ceph的集群其元变量完全展开后,前述的目录将是--> /var/lib/ceph/osd/ceph-0
  3)你可以用mon data选项更改默认路径,但我们不推荐修改。用下面的命令在新监视器主机上创建默认目录,运行命令如下:
  ssh {new-osd-host} && sudo mkdir -p /var/lib/ceph/osd/ceph-{osd-number}
  4)osd data路径应该指向一个硬盘的挂载点,这个硬盘应该独立于操作系统和守护进程所在硬盘。按下列步骤准备好并挂载:
  ssh {new-osd-host} && sudo mkfs -t {fstype} /dev/{disk} && sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}
  5)我们推荐用xfs或btrfs文件系统,命令是mkfs
  6)ceph默认把OSD日志存储在下面的路径--> /var/lib/ceph/osd/$cluster-$id/journal
  7)没有性能优化时,ceph把日志和OSD数据存储相同的硬盘上;要优化OSD性能,可以把日志分离到单独的硬盘上(例如,固态硬盘能提供高日志性能)。
  8)ceph的osd journal size默认值是0,所以你得在 ceph.conf里设置,日志尺寸应该至少2倍于filestore min sync interval的值和预计吞吐量的乘积:
  osd journal size = {2 * (expected throughput * filestore min sync interval)}
  9)预计吞吐量应该包括硬盘吞吐量(持续的数据传输速度)和网络吞吐量,例如,7200转的硬盘速度大概是100MB/s,取硬盘和网络吞吐量中较小的一个
  应该能提供合理的预计吞吐量。一些用户以 10GB 起步,例如--> osd journal size = 10000 (unit is MB?)
 }
 2.14)journal and debug:
  2.14.1)为打 ceph的调试输出(例如,dout()),你可以在配置文件里添加调试选项。ceph的日志级别在 1 到 20 之间,1 是简洁、20 是详细。对每个
  进程都相同的子系统可以在[global]下配置,对特定守护进程的子系统要配置在进程段下,如[mon] 、[osd] 、[mds] 下。 例如:
  {
   [global]
     debug ms = 1
   [mon]
     debug mon = 20
     debug paxos = 20
     debug auth = 20
   [osd]
     debug osd = 20
     debug filestore = 20
     debug journal = 20
     debug monc = 20
   [mds]
     debug mds = 20

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值