本文目录一览

1,cephfs bluestore文件写进哪里

这个提示框的意思就是你的图形硬件或者内存(说白了就是显卡)配置较低 以至于不可以运行某些app软件。说简单点,你装完之后 ,可能某些大型安卓软件无法在bluestacks里面运行。
不明白啊 = =!

cephfs bluestore文件写进哪里

2,cephfstop尝鲜体验

根据ceph 16版本的changelog,16版本提供了cephfs-top文件系统监控工具。刚好手头最近有个16版本的集群,便体验一下。 文件系统客户端周期性向元数据服务发送各类监控指标(metrics),这部分数据由元数据服务路由到mds为rank 0的节点 。 元数据服务器(多活部署)同样会将自身的指标数据发送至rank 0节点。并由rank 0汇集之后发送给Ceph mgr服务。 工具的使用者可以看到两类和文件系统相关的数据: 1、全局数据。窥探文件系统整体情况,比如客户端延迟。 2、每个MDS服务的数据。比如每个MDS拥有的子树(但是实际体验没看到)。 ceph-mgr作为管理组件,具有集成插件的能力。stats负责统计插件。使用前开启stats插件 由stats插件提供的文件系统性能统计命令 (注:方括号代表可选) 不加mds_rank查看到的是整体文件系统监控指标。利用json形式查看。 输出如下: 尝试之后发现展示的信息还是不够直观。另外,MDS的统计信息都是空的。 其中属于 客户端 几个主要的参数: 几个延迟是总延迟,除以操作量才是平均延迟。 cephfs-top是类似top的形式,依赖组件是mgr中的stats插件。使用python语言实现,展示主要是客户端的统计情况。 cephfs-top源码中,获取数据实现部分。 创建client.fstop用户,该用户为cephfs-top工具默认使用的用户 安装cephfs-top工具 如果出现 “RADOS permission denied”的错误。使用ceph auth get命令获得fstop的keyring至本地ceph默认配置目录。 运行监控命令 选项 -d 可以支持0.5s以上的展示频率。 可展示信息: 1、客户端数量,统计FUSE、内核、libcephfs使用者。 2、客户端id; 3、客户端对应cephfs挂载目录; 4、客户端本地目录,IP地址; 5、chit cap的命中率。 6、rlat 读操作总延迟(单位s) 7、wlat 写操作总延迟(单位s)。 8、mlat 元数据操作总延迟(单位s)。 9、dlease dentry lease即客户端dentry可用率。 10、oicaps 该客户端持有caps的数量。 11、oinodes 该客户端打开文件持有inode的数量。 在统计插件stats和cephfs-top出现前,ceph支持到各个组件所在节点通过命令查看性能统计。 比如客户端的延迟只能登陆到各个挂载节点查看。MDS的情况也只能在对应的节点通过ceph daemon方式查看。现在做了部分信息的汇总,对于运维和性能优化工作而言非常方便。 但是,统计的信息覆盖面还比较窄,组件的统计信息细节没有完全展示,如果要查看某个客户端或者MDS的统计信息,还是需要到各个节点上查看。cephfs-top还有可完善的空间。

cephfstop尝鲜体验

3,如何维护Openstack节点

一台Openstack节点进行维护的动机主要有三点:  硬件替换或升级  打安全补丁后需要重启 软件升级和服务重启 一般存在两种场景:VM的磁盘存储在dfs上(cephFS, glusterFS, NFS),容易维护VM磁盘存储在本地磁盘,最难维护的情况

如何维护Openstack节点

4,cephfs中告警盘点

总结下cephfs中由mds产生的告警信息。 Behind on trimming... 字面翻译落后于日志裁剪(trim)。mds的日志机制:mds以日志方式先保存元数据,元数据保存在每条操作的事件(event)中,事件(通常是1024个)组成segment。当segment到达一定数量时(mds_log_max_segments默认32)对日志进行裁剪,即将部分日志关联的元数据写回。出现该条告警实际上表明回写速度慢或者遇到了bug,单纯地将配置提高并不是最理想的办法。 Client name failing to respond to capability release 客户端没有及时响应释放cap的请求。在cephfs中客户端需要向mds获得响应的操作能力,称为cap。获得cap则有相关的操作能力。如果其他客户端需要操作时,mds会要求当前客户端释放cap。如果客户端出现bug或者没有响应,则mds会在60秒(session_timeout 设置)会出现该告警。 Client name failing to respond to cache pressure 客户端没有及时相应(mds的)缓存压力。元数据缓存一部分元数据信息,同时mds会在自身内存中缓存同样的信息。如果其缓存的元数据超过了最大inode缓存量或者最大内存用量,mds会要求客户端释放一定数量的缓存。如果在规定时间内即60s(mds_recall_warning_decay_rate的值)没有释放32k(默认设置在mds_recall_warning_threshold中,随后会减少)则产生告警 。产生告警的原因可能是客户端存在bug或者无法及时响应。 Client name failing to advance its oldest client/flush tid 客户端没有更新其最久客户端tid值。tid是指客户端和mds直接通信的task id。每次客户端完成任务后更新该task id,告知mds mds可以不用管该id之前的任务了。mds即可释放相关的占用资源。否则,资源不会被主动释放。当mds端自行记录的任务完成数超过100K(max_completed_requests设置)时,客户端并没有更新id,则产生相应的告警。 出现该告警可能代表客户端存在bug。也遇到过mds因为锁问题部分请求卡住,重启mds 锁状态正常后可以恢复。 MDS in read-only mode 字面翻译mds进入只读模式。只读模式意味着在客户端上创建文件等操作元数据的行为将不被允许。进入只读的原因可能是向元数据池写入时发生错误,或者通过命令强制mds进入只读模式。 N slow requests are blocked 字面翻译多个慢请求在阻塞状态。出现该条告警意味着客户端的消息没有处理完成,超过了mds_op_complaint_time所规定的时间(默认30s)。可能出现的原因是mds运行缓慢,或者向rados写入日志未确认(底层pg或者osd出现问题),或者是mds存在的bug。此时,通过ops命令查看当前正在执行的操作,可进一步分析出现阻塞请求的原因。 Too many inodes in cache 字面翻译在mds的缓存中缓存了太多inode。mds的缓存指两个方面:inode数量和内存占用量。inode默认值mds_cache_size为100K,mds_cache_memory_limit为1G。到达一个告警的阈值后产生告警,一般为50%(mds_health_cache_threshold)。通过调整参数可以避免告警的出现,但是这只是治标的办法,治本的办法需要跟踪业务,了解资源占用的具体原因,是否只是通过调整参数可以解决。

5,Ceph为什么越来越火国内使用ceph较为成功的存储厂商有哪些

Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs)。目前也是OpenStack的主流后端存储,随着OpenStack在云计算领域的广泛使用,ceph也变得更加炙手可热。国内目前使用ceph搭建分布式存储系统较为成功的企业有x-sky,深圳元核云,上海UCloud等三家企业。
搜一下:Ceph为什么越来越火?国内使用ceph较为成功的存储厂商有哪些?

6,Cephfs 快照介绍与使用

云和安全管理服务专家新钛云服 祝祥翻译 CEPFS支持快照功能,通常通过使用mkdir命令创建快照目录。注意这是一个隐藏的特殊目录,在目录列表中不可见。 通常情况下,快照正如起名:它们保存数据变化过程中的状态。需要注意的一点事,CEPFS快照的一些功能与您可能期望的有所不同: 默认情况下,新文件系统上会启用CEPFS快照功能。要在现有文件系统上启用它,请使用下面的命令。 启用快照后,CephFS中的所有目录都将有一个特殊的 .snap 快照目录。(如果愿意,可以使用客户端snapdir设置配置其他名称) 要创建CephFS快照,请在 .snap 下创建子目录。用你选择的名字创建快照。例如,要在目录“/1/2/3/”下创建快照,请使用 mkdir /1/2/3/.snap/my-snapshot-name 命令。 客户端会将请求发送到MDS服务器,然后在服务器的Server::handle_client_mksnap()中处理。它会从 SnapServer中分配一个 snapid,利用新的 SnapRealm创建并链接一个新的inode,然后将其提交到 MDlog,提交后会触发 MDCache::do_realm_invalidate_and_update_notify(),此函数将此 SnapRealm广播给所有对快照目录下任一文件有管辖权的客户端。客户端收到通知后,将同步更新本地 SanpRealm层级结构,并为新的SnapRealm结构生成新的 SnapContext,用于将快照数据写入 OSD 端。同时,快照的元数据会作为目录信息的一部分更新到OSD端(即sr_t)。整个过程是完全异步处理的。 如果删除快照,将执行类似的过程。如果将inode从其父SnapRealm中删除,重命名代码将为重命名的inode创建一个新的SnapRealm(如果SnapRealm不存在),将在原始父SnapRealm上有效的快照ID保存到新SnapRealm的父快照(past_parent_snaps)中,然后遵循与创建快照类似的过程。 RADOS SnapContext由一个快照序列ID(snapid)和一个包含所有快照ID对象组成。为了生成该列表,我们将与SnapRealm关联的SnapID与父快照中的所有有效SnapID结合起来。过时的SnapID由SnapClient缓存的有效快照过滤掉。 文件数据存储在RADOS“self-managed”快照中。在将文件数据写入OSD时,客户端会小心地使用正确的SnapContext。 快照的dentries(及其inode)作为快照时所在目录的一部分在线存储。所有dentries都包括第一个和最后一个有效的snapid。(非快照的dentries将最后设置为CEPH_NOSNAP)。 有大量代码可以有效地处理写回。当客户端收到MClientSnap消息时,它会更新本地SnapRealm表示及其到特定Inode的链接,并为Inode生成CapSnap。CapSnap作为功能写回的一部分被清除,如果存在脏数据,CapSnap将用于阻止新的数据写入,直到快照完全清除到OSD。 在MDS中,我们生成代表牙齿的快照,作为冲洗牙齿的常规过程的一部分。具有杰出CapSnap数据的假牙被固定并记录在日志中。 通过在快照的根目录“.snap”中调用“rmdir”来删除快照。(尝试删除根快照将失败的目录;必须先删除快照。)一旦删除,它们将被输入到已删除快照的OSDMap列表中,文件数据将由OSD删除。当目录对象被读入并再次写回时,元数据会被清除。 具有多个硬链接的Inode被移动到一个虚拟全局SnapRealm。虚拟SnapRealm覆盖文件系统中的所有快照。inode的数据将为任何新快照保留。这些保留的数据将覆盖inode的任何链接上的快照。 需要注意的是,CephFS的快照和多个文件系统的交互是存在问题的——每个 MDS集群独立分配 snappid,如果多个文件系统共享一个池,快照会冲突。如果此时有客户删除一个快照,将会导致其他人丢失数据,并且这种情况不会提升异常,这也是 CephFS的快照不推荐使用的原因之一。 创建快照: 从快照中恢复文件: 自动快照 使用cephfs-snap自动创建和删除旧快照。 下载文件到 /usr/bin 配合cron 一起使用。 使用示例: 创建的 cron 文件必须设置为可执行 要验证配置的 cron 任务是否会正确执行,请手动运行上述步骤中创建的 cron.* 脚本 现在检查 .snap 目录中是否创建了 cephfs 快照 如果 cron 没有按预期触发快照,请验证“/usr/bin/cephfs-snap”和“/etc/cron.*/cephfs-snap”文件是否可执行 参考文章:

7,ceph这款云存储技术怎么样

Ceph是一套高性能,易扩展的,无单点的分布式文件存储系统,基于Sage A. Weil的论文开发,主要提供以下三个存储服务:   对象存储(Object Storage),既可以通过使用Ceph的库,利用C, C++, Java, Python, PHP代码,也可以通过Restful网关以对象的形式访问或存储数据,兼容亚马逊的S3和OpenStack的Swift。   块存储(Block Storage),作为块设备像硬盘一样直接挂载。   文件系统(File System) ,如同网络文件系统一样挂载,兼容POSIX接口。   Ceph的结构,对象存储由LIBRADOS和RADOSGW提供,块存储由RBD提供,文件系统由CEPH FS提供,而RADOSGW, RBD, CEPH FS均需要调用LIBRADOS的接口,而最终都是以对象的形式存储于RADOS里。   Ceph集群的节点有三种角色:   Monitor,监控集群的健康状况,向客户端发送最新的CRUSH map(含有当前网络的拓扑结构)   OSD,维护节点上的对象,响应客户端请求,与其他OSD节点同步   MDS,提供文件的Metadata,如果不使用CephFS可以不安装 ?

8,cephfs目录共享给多个pod使用

本篇文章将介绍如何将cephfs的一个目录共享给多个pod使用,更进一步,多个pod之间虽共享一个目录,但可以隔离使用。 写这篇文章的起因是业务部门有多个云原生应用同时产生日志。这些日志放到一个大的目录下管理比如logs/,并且不同的应用所产生的日志存放在不同的目录下。 k8s访问cephfs的方式之一便是通过ceph-csi访问。ceph-csi提供了动态和静态的方式。 静态方式 由存储管理员显式地创建pv,开发者通过pvc获得符合容量要求和访问模式的pv,并和pod关联,达到使用存储的要求。但这样存在一些弊端,比如需要使用不同的pv时,管理员要分别手动构建pv。 动态方式 存储管理员不需要显式地创建pv,而是创建storageClass。由开发者声明pvc,由storageClass生成合适的pv。但是pv关联的路径使用uuid规则创建,如需将后台存储的目录和pod对应并不是很直观。 搭建了一个minikube的k8s系统环境(版本V1.21.0)和ceph存储(版本16.2.4),完成ceph-csi的配置。 不需要配置storageClass。只需要配置一个pv、一个pvc和两个pod。 在cephfs后端创建一个可使用的子卷,实质上是在cephfs内的/volumes(该目录是ceph-csi默认使用的目录)下面创建一系列子目录用来共享。 首先创建一个子卷的组(相当于创建一个上层目录,后面的子卷都是该目录下的子目录)。命令如下: 该命令的源格式为: 这条命令简单的效果是在cephfs后台会创建一个 /volumes/data 的路径。以后所有属于该组的子卷都在该目录下。 然后创建一个子卷名称为data,该卷的大小为1GB大小,size的单位是bytes。命令如下: 该命令的源格式为: 文件系统后台实际创建 /volumes/data/logs/dda798fb-2160-4aca-b810-3bbf7bbdd394 ,即在子卷下面还有一个子目录,目录使用uuid命名。该uuid命名的目录配置了和size一致的配额。即pv的大小。 该pv文件名称为 cephfs-static-pv1.yaml 。pv里的内容: 1、 storageClassName: standard ,如果不加该句,pvc在apply之后会一直处于pending状态,通过describe pvc 可以看到 “Cannot bind to requested volume storageClassName: does not match” 的消息。官方文档少了这条说明。 2、 persistentVolumeReclaimPolicy: Retain ,当pvc被释放后,PV将会被保留(不清理和删除)。 3、rootPath可以通过getpath命令获取: ceph fs subvolume getpath cephfs logs data ,源命令格式为 ceph fs subvolume getpath <文件系统名称> <子卷名称> <子卷组> 。获取命令的结果带来uuid的子目录,这个uuid目录是带配额的,该配额和pv中描述的大小一致。 4、删除pv和pvc不会删除文件系统后台的子卷,需要额外执行命令删除。 应用该静态pv 结果 在pod创建前创建pvc,该pvc名称为cephfs-static-pvc1.yaml。volumeName和以上创建的pv相对应。 应用该pvc 查看所创建的pvc 创建两个pod分别使用 logs/data/dda798fb-2160-4aca-b810-3bbf7bbdd394 目录下面的 dir4 目录和 dir5 目录。每次在创建pod的时候需要指定一个subPath。 第一个pod配置,指定使用dir4目录。 使用volumeMounts中的参数 subPath 。 subPath 在实际存储后端会建立一个子目录,可以使容器在挂载数据卷时指向数据卷内部的一个子路径,而不是直接指向数据卷的根路径。第二个pod配置。指定使用dir5目录。 两个pod创建后,在ceph后台可以看到路径如下 查看挂载情况 在两个pod内各创建一个文件 使用查看命令,可以看到每个pod的 /var/lib/www 中只有自己创建的内容。 cephfs文件系统后端也分别在两个目录内创建了对应的文件 创建一个storageClass和pvc,这里省去两个pod的创建过程。 动态的storageClass配置如下: pvc的配置 在底层文件系统中展现的结构 /volumes/csi/csi-vol-<uuid>/<uuid> 两次uuid的值不相同。 pod创建过程类似,修改 claimName 内的pvc内容。 动态的方式使用uuid分配,底层路径和pod之间的关系不那么明显,使用静态卷+subPath的方式能够预知到所使用的路径,也做到了应用之间的隔离。 目前发现的一个问题是无论用kernel方式还是fuse方式挂载,在一个Node上对应某个卷的挂载点只有一个,多个pod会同时访问一个客户端程序。可能造成caps过多,性能竞争的问题。(以下是通过 ceph daemon session ls 查看到的结果。在我的例子中两个pod共用一个ceph-fuse客户端)

9,ceph这款云存储技术怎么样

Ceph是一套高性能,易扩展的,无单点的分布式文件存储系统,基于Sage A. Weil的论文开发,主要提供以下三个存储服务: 对象存储(Object Storage),既可以通过使用Ceph的库,利用C, C++, Java, Python, PHP代码,也可以通过Restful网关以对象的形式访问或存储数据,兼容亚马逊的S3和OpenStack的Swift。 块存储(Block Storage),作为块设备像硬盘一样直接挂载。 文件系统(File System) ,如同网络文件系统一样挂载,兼容POSIX接口。 Ceph的结构,对象存储由LIBRADOS和RADOSGW提供,块存储由RBD提供,文件系统由CEPH FS提供,而RADOSGW, RBD, CEPH FS均需要调用LIBRADOS的接口,而最终都是以对象的形式存储于RADOS里。 Ceph集群的节点有三种角色: Monitor,监控集群的健康状况,向客户端发送最新的CRUSH map(含有当前网络的拓扑结构) OSD,维护节点上的对象,响应客户端请求,与其他OSD节点同步 MDS,提供文件的Metadata,如果不使用CephFS可以不安装?

10,如何 获得 ceph pool下 object的 空间使用状态

Ceph是一套高性能,易扩展的,无单点的分布式文件存储系统,基于Sage A. Weil的论文开发,主要提供以下三个存储服务: 对象存储(Object Storage),既可以通过使用Ceph的库,利用C, C++, Java, Python, PHP代码,也可以通过Restful网关以对象的形式访问或存储数据,兼容亚马逊的S3和OpenStack的Swift。 块存储(Block Storage),作为块设备像硬盘一样直接挂载。 文件系统(File System) ,如同网络文件系统一样挂载,兼容POSIX接口。 Ceph的结构,对象存储由LIBRADOS和RADOSGW提供,块存储由RBD提供,文件系统由CEPH FS提供,而RADOSGW, RBD, CEPH FS均需要调用LIBRADOS的接口,而最终都是以对象的形式存储于RADOS里。 Ceph集群的节点有三种角色: Monitor,监控集群的健康状况,向客户端发送最新的CRUSH map(含有当前网络的拓扑结构) OSD,维护节点上的对象,响应客户端请求,与其他OSD节点同步 MDS,提供文件的Metadata,如果不使用CephFS可以不安装 .

文章TAG:文件  cephfs  cephfs  bluestore文件写进哪里  
下一篇