Ceph常用的三种存储操作

Ceph存储创建 执行完毕后,可以看到/etc/ceph目录中生成了三个文件ceph.conf 为 ceph 配置文件,ceph-deploy-ceph.log 为 ceph-deploy 日志文件,ceph.mon.keyring 为 ceph monitor 的密钥环。7、添加mds服务(主节点):Mds是ceph集群中的元数据服务器,而通常它都不是必须的,Mds只是负责接受用户的元数据查询请求,然后从osd中把数据取出来映射进自己的内存中供客户访问。Ceph是无中心化的存储,它没有管理节点、计算节点的之分。 阅读详情

Ceph常用操作

以下实验将重点演示Ceph的三种核心存储类型(块存储RBD、文件存储CephFS、对象存储RGW)的配置与使用,基于已部署的3节点cephadm集群(6个OSD)。

前提条件

  • 已完成3节点Ceph集群部署(状态HEALTH_OK)。

  • 所有节点已安装ceph-common工具(apt install -y ceph-common)。

一、块存储(RBD)操作

RBD(RADOS Block Device)提供块级存储,类似本地磁盘,适合虚拟机、容器等场景。

 ### 1. 创建RBD存储池与镜像
 # 1. 创建RBD存储池(pg数:6 OSD × 10 = 60 → 取64)
 ceph osd pool create rbd-pool 64 64
 rbd pool init rbd-pool      # 初始化RBD功能
 # 2. 在rdb-pool池创建一个10GB的镜像
 rbd create test-image --size 10G --pool rdb-pool
 # 3. 查看镜像信息
 rbd ls rbd-pool             # 列出池内所有镜像
 # 查看镜像
 rbd ls --pool rdb-pool      # 应显示test-image
 ​
 ### 2. 映射RBD镜像到本地并使用
 # 1. 映射镜像到本地设备(需root权限)
 rbd map rbd-pool/test-image
 # 2. 查看映射结果(应显示/dev/rbd0)
 rbd showmapped
 # 3. 格式化并挂载
 mkfs.ext4 /dev/rbd0
 mkdir /rbd-test
 mount /dev/rbd0 /rbd-test
 # 4. 测试读写
 echo "RBD block test" > /rbd-test/test.txt
 cat /rbd-test/test.txt  # 验证内容
 ​
 # 或者换一种方法测试写入数据(dd容易覆盖掉原本的东西,慎用!!!)
 dd if=/dev/zero of=/rbd-test/test.txt bs=1G count=5  # 写入5GB文件
 # 验证数据
 ls -lh /rbd-test/test.txt  # 应显示5GB文件
 df -h /rbd-test  # 查看挂载空间
 ​
 ### 3. 镜像快照与克隆(高级功能)
 # 1. 创建快照
 rbd snap create rbd-pool/test-image@v1
 # 2. 查看快照
 rbd snap ls rbd-pool/test-image
 # 3. 保护快照(防止删除,用于克隆)
 rbd snap protect rbd-pool/test-image@v1
 # 4. 从快照克隆新镜像
 rbd clone rbd-pool/test-image@v1 rbd-pool/clone-image
 # 5. 查看克隆镜像
 rbd ls rbd-pool
 ​
 ### 4. 清理操作
 umount /rbd-test
 rbd unmap /dev/rbd0
 # 需要先删除克隆子镜像
 rbd rm rdb-pool/clone-image
 # 检查并卸载RDB设备
 rbd unmap /dev/rbd0
 # 检查挂载点,确保/rbd-test已成功卸载(即无输出)
 mount | grep rbd-test
 # 取消快照保护
 rbd snap unprotect rdb-pool/test-image@v1
 # 删除镜像
 rbd snap rm rdb-pool/test-image@v1
 rbd rm rdb-pool/test-image
 # 查看池里是否还有残留
 rbd ls rdb-pool
 ​
 ###清理实验环境(可选)
 若需删除集群,在server-21执行:
 # 停止所有ceph服务
 cephadm rm-cluster --fsid $(ceph fsid) --force
 # 在其他节点清理残留(server-22和server-23)
 rm -rf /var/lib/ceph /etc/ceph

二、文件存储(CephFS)操作

CephFS提供POSIX兼容的文件系统,支持多节点共享读写,适合需要共享文件的场景(如NFS替代)。

 ### 1. 创建CephFS存储池与文件系统
 ### CephFS需要两个池:一个用于数据(data),一个用于元数据(metadata)。
 # 1. 创建元数据池和数据池
 ceph osd pool create cephfs-meta 32 32  # 元数据池(pg数较小)
 ceph osd pool create cephfs-data 64 64  # 数据池
 # 2. 创建CephFS文件系统(关联两个池)
 ceph fs new myfs cephfs-meta cephfs-data
 # 3. 查看文件系统状态
 ceph fs ls            # 显示myfs
 ceph fs status myfs   # 详细状态
 ​
 ### 2. 部署MDS(元数据服务器,CephFS必需)
 # 部署2个MDS(高可用,分布在两个节点)
 ceph orch apply mds myfs --placement="server-22,server-23"
 # 查看MDS状态(先是2个starting,后来是2个running)
 ceph orch ps --daemon_type=mds
 # 确认MDS状态(确保1个active,1个standby)
 ceph fs status myfs
 ​
 ### 3. 挂载CephFS到本地(这时候开一台不在Ceph集群里的机器用来访问共享目录)
 # 1. 创建挂载点(192.168.221.21和192.168.221.10都创)
 mkdir -p /mnt/cephfs
 # 2. 获取Ceph管理员密钥(在192.168.221.21上操作,用于挂载认证)
 ceph auth get client.admin -o /etc/ceph/admin.keyring
 -------------中间是Ceph集群以外的机器验证需要多做的步骤-----------------
 scp /etc/ceph/admin.keyring root@192.168.221.10:/root
 # 3. 挂载(指定monitor地址和密钥)(192.168.221.10操作)
 cd
 ls
 rm root@ceph21 -rf          #没有的话可以不删
 systemctl stop docker
 apt install ceph
 ---------------------------------------------------------------------
 cat /etc/ceph/admin.keyring
 mount -t ceph 192.168.221.21:6789,192.168.221.22:6789,192.168.221.23:6789:/ /mnt/cephfs -o name=admin,secret=(这里需要放/etc/ceph/admin.keyring这个文件里面的key)
 # 4. 验证挂载
 df -h /mnt/cephfs
 ​
 ### 4. 清理操作
 # 卸载挂载点
 umount /mnt/cephfs  # 内核驱动挂载
 # 或
 fusermount -u /mnt/cephfs  # FUSE挂载
 # 跟之前一样需要临时开启删除池的权限
 # 如需删除文件系统(谨慎操作)
 ceph fs rm myfs --yes-i-really-mean-it
 ceph osd pool rm cephfs-data cephfs-data --yes-i-really-really-mean-it
 ceph osd pool rm cephfs-meta cephfs-meta --yes-i-really-really-mean-it

挂载完之后,点开池可以看到:

点开文件系统可以看到:

三、对象存储(RGW)操作

RGW(RADOS Gateway)提供S3兼容的对象存储服务,适合存储图片、文档等非结构化数据。

 ### 1. 部署RGW服务
 # 1. 部署RGW实例(2个节点,高可用)
 ceph orch apply rgw myrgw --placement="server-21,server-22"
 # 2. 查看RGW状态(确认运行正常,显示running,如果没有可能是慢,多试两次)
 ceph orch ps --daemon_type=rgw
 ​
 ### 2. 配置RGW访问(S3兼容接口)
 #### 2.1 创建S3用户
 # 1. 创建RGW用户(用于S3认证)
 radosgw-admin user create --uid="zhangsan" --display-name="zhangsan"
 # 2. 记录输出中的access_key和secret_key(后续访问需要)
 # 示例输出:
 # {
             "user": "zhangsan",
             "access_key": "MAM6H3O4BV9PPFG19VBG",
             "secret_key": "8ULkmuNgncZxJEuV0MN9nPWG1o9CxtTtN6imnxXR"
    }
 ​
 #### 2.2 配置RGW访问地址
 RGW默认监听`7480`端口,需确认节点端口可访问:
 # 查看RGW监听地址(在server-21或22执行,应显示0.0.0.0:7480)
 netstat -tulpn | grep 7480
 # 如果这个时候没有显示,可能是默认80端口了,用80端口访问一下,如果显示XML就需要修改 RGW 端口(默认 7480)
 ​
 ​
 ​
 RGW(对象存储网关)默认端口为 7480,修改方式简单。
 步骤:
 修改 ceph.conf:在 RGW 配置段(如 [client.rgw.<实例名>])添加:
 ini
 [client.rgw.server-21]  # 实例名格式:rgw.<主机名>
 rgw_frontends = "civetweb port=新端口号"  # 例如 port=8080
 重启 RGW 服务:
 bash
 systemctl restart ceph-rgw@rgw.server-21  # 实例名需与配置一致
 验证:
 bash
 curl http://localhost:新端口号  # 应返回 XML 格式的错误信息(未认证)
 ​
 ​
 ​
 步骤 1:手动创建 RGW 规格文件
 # 直接新建 rgw-spec.yaml 文件,内容根据你的集群信息填写:
 vim rgw-spec.yaml
 # 文件内容模板(需替换以下参数):
 service_type: rgw
 service_id: myrgw  # 与现有 RGW 服务 ID 一致(即 rgw.myrgw 中的 myrgw)
 placement:
   hosts:
     - server-21  # RGW 运行的节点1
     - server-22  # RGW 运行的节点2(与集群状态中的 2 个 daemons 对应)
 port: 7480  # 你需要设置的端口号(如默认7480或其他端口)
 # 确保 service_id: myrgw 与现有服务 ID 一致(从 ceph orch ls --service-type rgw 中 NAME 列的 rgw.myrgw 提取)。
 ​
 步骤 2:先删除现有 RGW 服务(避免冲突)
 # 由于无法直接更新配置,需先删除现有 RGW 服务:
 ceph orch rm rgw.myrgw --force
 # 执行后等待几秒,确认服务已删除:
 ceph orch ls --service-type rgw  # 应无输出或显示 "stopped"
 ​
 步骤 3:用新规格文件重新部署 RGW
 # 使用手动创建的 rgw-spec.yaml 重新部署 RGW,应用端口配置:
 ceph orch apply -i rgw-spec.yaml
 ​
 步骤 4:验证端口是否生效
 # 查看 RGW 服务状态:
 ceph orch ls --service-type rgw
 输出中 PORTS 列应显示为 ?:7480(或你设置的端口),RUNNING 列显示 2/2(表示 2 个实例正常运行)。
 # 检查容器端口映射:
 cephadm ls | grep -A 10 "rgw.myrgw"
 确认 ports 字段包含设置的端口(如 0.0.0.0:7480->7480/tcp)。
 # 测试端口访问:在 RGW 节点执行:
 curl http://localhost:7480
 若返回 XML 格式的错误信息(如 AccessDenied),说明端口已正常监听。
 ​
 访问地址:
 `http://192.168.221.21:7480`(server-21的RGW)、`http://192.168.221.22:7480`(server-22的RGW)。
 能访问到白色的一个xml文件就是对的
 ​
 ### 3. 使用s3cmd工具操作对象存储
 #### 3.1 安装s3cmd
 apt install -y s3cmd
 #### 3.2 配置s3cmd
 s3cmd --configure
 按提示输入:
 - Access Key:步骤2.1中的access_key
 - Secret Key:步骤2.1中的secret_key
 - Default Region:CN(或者默认回车)
 - S3 Endpoint:输入192.168.221.21:7480(或192.168.221.22:7480)
 - DNS-style bucket+hostname:port template:(记得和上面这个IP一样)
 输入%(bucket)s.192.168.221.21:7480
 - 其他选项默认(回车),最后输入`y`保存配置(默认保存到~/.s3cfg)。
 vim ~/.s3cfg
 最后一行加入
 signature_v2 = True
 ​
 #### 3.3 测试对象存储操作
 # 1. 创建bucket(类似文件夹)
 s3cmd mb s3://mybucket
 ----------------到这里前面都一样,下面是Python脚本上传方法----------------
 # 安装模块
 apt install python3-pip
 pip install boto3
 # 编写第一个脚本
 vim rgw_upload.py
 ​
 import boto3
 from botocore.client import Config
 import argparse
 ​
 def upload_file():
     parser = argparse.ArgumentParser()
     parser.add_argument('--local-file', required=True)
     parser.add_argument('--rgw-endpoint', required=True)
     parser.add_argument('--access-key', required=True)
     parser.add_argument('--secret-key', required=True)
     parser.add_argument('--bucket-name', required=True)
     parser.add_argument('--object-name', required=True)
     args = parser.parse_args()
 ​
     # 配置连接 RGW(包含端口)
     s3 = boto3.client(
         's3',
         endpoint_url=args.rgw_endpoint,
         aws_access_key_id=args.access_key,
         aws_secret_access_key=args.secret_key,
         config=Config(signature_version='s3v4'),  # 兼容模式
         region_name='us-east-1'
     )
 ​
     # 检查并创建存储桶
     try:
         s3.head_bucket(Bucket=args.bucket_name)
     except:
         s3.create_bucket(Bucket=args.bucket_name)
 ​
     # 上传文件
     with open(args.local_file, 'rb') as f:
         s3.upload_fileobj(f, args.bucket_name, args.object_name)
     print(f"上传成功:s3://{args.bucket_name}/{args.object_name}")
 ​
 if __name__ == '__main__':
     upload_file()
 ​
 # 编写第二个脚本
 vim rgw_operate.py
 import boto3
 from botocore.client import Config
 import argparse
 import os
 ​
 def operate():
     parser = argparse.ArgumentParser()
     # 基础参数
     parser.add_argument('--action', required=True, help='操作类型:list 或 download')
     parser.add_argument('--rgw-endpoint', required=True)
     parser.add_argument('--access-key', required=True)
     parser.add_argument('--secret-key', required=True)
     parser.add_argument('--bucket-name', required=True)
     # 新增下载所需的参数
     parser.add_argument('--object-name', help='要下载的文件名(仅 download 时需要)')
     parser.add_argument('--local-path', help='本地保存路径(仅 download 时需要)')
     args = parser.parse_args()
 ​
     # 配置连接 RGW(s3v4 签名)
     s3 = boto3.client(
         's3',
         endpoint_url=args.rgw_endpoint,
         aws_access_key_id=args.access_key,
         aws_secret_access_key=args.secret_key,
         config=Config(signature_version='s3v4'),
         region_name='us-east-1'
     )
 ​
     # 执行操作
     if args.action == 'list':
         # 列出文件(复用之前的逻辑)
         try:
             response = s3.list_objects_v2(Bucket=args.bucket_name)
             if 'Contents' in response:
                 print(f"存储桶 {args.bucket_name} 中的文件:")
                 for obj in response['Contents']:
                     print(f"- {obj['Key']}(大小:{obj['Size']} bytes)")
             else:
                 print(f"存储桶 {args.bucket_name} 为空")
         except Exception as e:
             print(f"列出文件失败:{str(e)}")
 ​
     elif args.action == 'download':
         # 下载文件(新增逻辑)
         if not args.object_name or not args.local_path:
             print("错误:下载操作需要 --object-name 和 --local-path 参数")
             return
         # 拼接本地文件路径
         local_file = os.path.join(args.local_path, args.object_name)
         try:
             s3.download_file(args.bucket_name, args.object_name, local_file)
             print(f"文件已下载到:{local_file}")
         except Exception as e:
             print(f"下载失败:{str(e)}")
 ​
     else:
         print(f"不支持的操作:{args.action}(支持 list 或 download)")
 ​
 if __name__ == '__main__':
     operate()
     
 ### 执行命令
 前提你本地有a.txt这个文档,以及修改自己的ip,还有key,以及存储桶名。
 # 上传文件
 python3 rgw_upload.py \
   --local-file "./a.txt" \
   --rgw-endpoint "http://192.168.5.12" \
   --access-key "LISYZY2CM22F36OBT29J" \
   --secret-key "r4SK1arDX4Vk3B3s7D8cEz0tclSMKrnkWLeESmNJ" \
   --bucket-name "mybucket" \
   --object-name "a.txt"
   
 # 查看文件
 python3 rgw_operate.py \
   --action list \
   --rgw-endpoint "http://192.168.5.12:80" \
   --access-key "LISYZY2CM22F36OBT29J" \
   --secret-key "r4SK1arDX4Vk3B3s7D8cEz0tclSMKrnkWLeESmNJ" \
   --bucket-name "mybucket"
   
 # 下载文件
 python3 rgw_operate.py \
   --action download \
   --rgw-endpoint "http://192.168.5.12" \
   --access-key "LISYZY2CM22F36OBT29J" \
   --secret-key "r4SK1arDX4Vk3B3s7D8cEz0tclSMKrnkWLeESmNJ" \
   --bucket-name "mybucket" \
   --object-name "a.txt" \
   --local-path "/tmp/"
 -----------------------------------------------------------------------
 # 2. 上传本地文件到bucket
 echo "RGW object test" > test.obj
 s3cmd put test.obj s3://mybucket/
 # 3. 列出bucket中的对象
 s3cmd ls s3://mybucket/
 # 4. 下载对象
 s3cmd get s3://mybucket/test.obj downloaded.obj
 cat downloaded.obj  # 验证内容
 # 5. 删除对象和bucket
 s3cmd rm s3://mybucket/test.obj
 s3cmd rb s3://mybucket
 ​
 ### 4. 清理操作
 # 删除RGW用户
 radosgw-admin user rm --uid="s3user"
 # 停止RGW服务(如需)
 ceph orch rm rgw.myrgw

总结

本实验完成了Ceph三种核心存储的操作:

  • RBD:块存储,通过映射为本地磁盘使用,支持快照和克隆。

  • CephFS:文件系统,支持多节点共享,POSIX兼容。

  • RGW:对象存储,S3兼容,适合非结构化数据存储。

可根据业务场景选择合适的存储类型,例如:Kubernetes持久化存储用RBD,共享文件用CephFS,海量图片存储用RGW。


MinIO

MinIO 是一款高性能、兼容 S3 协议的开源对象存储服务器,主打轻量、易用和云原生特性,常用于存储海量非结构化数据(如图片、视频、日志等)。

核心特点

  1. S3 协议兼容:完全兼容 Amazon S3 API,支持各类 S3 工具(如 s3cmd、AWS CLI)和客户端,迁移成本低。

  2. 轻量高效:单二进制文件部署,无依赖;读写性能优异,支持海量小文件和大文件存储。

  3. 开源免费:基于 Apache 2.0 协议开源,可自由部署在私有环境,无需担心商用授权问题。

  4. 云原生适配:支持容器化部署(Docker、K8s),可弹性扩展,适配分布式架构。

  5. 数据安全:支持服务器端加密、SSL/TLS 传输加密、访问权限控制(IAM)等安全特性。

典型应用场景

  • 企业私有云存储:搭建内部对象存储服务,存储业务数据、备份文件等。

  • AI / 大数据存储:存储训练数据、模型文件、日志等海量非结构化数据。

  • 应用后端存储:作为 APP、网站的附件存储服务(如用户头像、上传文件)。

  • 边缘计算存储:因轻量特性,可部署在边缘节点,存储本地采集的数据。

基础架构

  • 单节点模式:单服务器部署,适合测试或小规模场景。

  • 分布式模式:多服务器组成集群,通过 “纠删码”(Erasure Code)实现数据冗余和高可用,支持横向扩展。

与 Ceph RGW 的区别

对比维度MinIOCeph RGW
定位专注对象存储,轻量易用统一存储(块、文件、对象)的一部分,功能复杂
部署难度极简(单二进制 / 容器)复杂(需部署整个 Ceph 集群)
性能针对对象存储优化,小文件性能突出兼顾多存储类型,对象存储性能略逊于 MinIO
适用场景快速搭建对象存储、轻量场景企业级复杂存储需求,需统一管理多种存储

简单来说,MinIO 是 “专精对象存储的轻骑兵”,适合需要快速搭建兼容 S3 的对象存储服务的场景;而 Ceph RGW 是 “全能存储集群的一部分”,适合需要统一管理块、文件、对象存储的复杂架构。

存储系统——Ceph Ceph、TFS、FastDFS、MooseFS(MFS)、HDFS、GlusterFS(GFS),存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。 阅读详情

相关推荐

Ceph 应用(CephFS文件存储、块存储、对象存储)

提供了user、subuser、bucket和object,其中的user对应于S3的user,而subuser则对应于Swift的user,不过user和subuser都不支持为bucket提供名称空间,因此不同用户的存储桶不允许同名;对象存储(object storage)是非结构数据的存储方法,对象存储中每一条数据都作为单独的对象存储,拥有唯一的地址来识别数据对象,通常用于云计算环境中。一个up,其余两个待命,目前的工作的是node01上的mds服务。(生产环境下此进程一般需要高可用,后续介绍)

A1100886的博客 3195

Ceph 分布式存储入门实践篇(基础架构之六)

Ceph是一个可靠的、数据自动重均衡、自动恢复的SDS(软件定义存储)分布式存储系统,功能主要有三大块:块存储、对象存储、文件系统。Ceph不但是提供了统一存储,并且同时还充分利用了客户端的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。不管是私有云还是公有云,随着云架构的发展,Ceph 成为了OpenStack、Proxmox标配的后端存储,不光如此,就连目前最火的容器编排 Kubernetes 持久存储也都支持 Ceph ,让 Ceph 成为当前主流的存储系统,而对 Ceph 存储的学习也就变的刻不容缓。 该课程属于比较基础的 Ceph 存储课程,旨在让大家能快速上手对 Ceph 集群的部署以及操作,主要讲解以下几个方面: 1.     架构的介绍2.     集群的多种部署方式3.     块存储部署,客户端使用及快照、克隆和镜像4.     对象存储的部署及简单使用5.     Ceph FS 文件系统的部署、客户端使用及导出为NFS6.     集群的操作和管理,包括服务,集群扩展,缩减和集群维护7.     Ceph 基础知识的介绍,包括集群map,PG和身份验证8.     Ceph 集群的监控

Ceph 的三种数据存储方式(块设备、对象存储、文件存储)

一、块设备 RBD(RADOS Block Devices) RBD(RADOS Block Devices)即为块存储的一种,RBD 通过 librbd 库与 OSD 进行交互,RBD 为 KVM 等虚拟化技术和云服务(如 OpenStack 和 CloudStack)提供高性能和无限可扩展性的存储后端,这些系统依赖于 libvirt 和 QEMU 实用程序与 RBD 进行集成,客户端基于 librbd 库 即可将 RADOS 存储集群用作块设备,不过,用于 rbd 的存储池需要事先启用 rbd 功能并进

LCK 博客 4991

Ceph入门到实战

SDS(英文:Software Define Storage)软件定义存储作为新基建(云计算中基础设施建设)重要的一环,Ceph作为未来统一软件定义存储系统,提供了RBD块存储,RGW对象存储和CephFS文件存储接口的接入,本课程结合在企业实践由浅入深多面剖析Ceph存储,一个分为三篇:基础篇、进阶篇和高阶篇,基础篇介绍Ceph的基础概念,Ceph分布式集群部署,RBD块存储的使用,RGW对象存储使用,CephFS文件存储的使用;进阶篇介绍Ceph运维中常见的操作,包括集群扩容,集群管理,CRUSHMAP定制,RBD快照克隆,RBD增量备份与恢复,RGW高可用集群;高阶篇介绍Ceph和kubernetes集成,Ceph与KVM集成,Ceph与openstack云平台集成,SDK开发等内容。备注:本课程以Ceph官方文档为主,不提供资料下载。【【课程大纲】

Ceph存储—基于CentOS7安装部署ceph集群

存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。具有高扩展性、高性能、高可靠性的优点。Ceph目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack,Kubernetes都可与Ceph整合以支持虚拟机镜像的后端存储。粗略估计,我国70%—80%的云平台都将Ceph作为底层的存储平台,由此可见Ceph俨然成为了开源云平台的标配。

weixin_60047971的博客 942

Ceph对象存储详解

而对象存储则将元数据独立出来了,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息)而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。之所以出现对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬各自的优点。(2)对象存储的成本比起普通的文件存储还要较高,需要购买专门的对象存储软件以及大容量硬盘,如果对数据量要求不是海量,只是为了做文件共享的时候,直接用文件存储就好了,性价比高。

悦分享 361

Ceph存储

简单来说,存储就是存放数据的介质,我们平时最常见的存储就是U盘、移动硬盘、笔记本使用的机械或固态硬盘等等。在服务器领域,为了数据的安全性,业务数据一般要与系统分开而且重要的业务数据一般是通过某种共享技术(nfs)挂载到远程存储上的,这样即是为了安全,也是为了高可用性。

小白的博客 1455

bugku渗透测试4-writeup

三、对这个主机进行全端口的扫描,发现存在22000 ssh端口,那么可以联想到时redis写入公钥来连接主机。又来了一个新的靶场,这个靶场打下来我觉得关键就是信息收集,走了很多的弯路。八、最后一个flag是要去看cms的数据库里面,这个数据库是sqlite。把这个数据库下载下来,登录密码是加密的,就直接用token。一、入口的漏洞是在登录的时候去抓包,修改action的值。六、没想到这个第一台机器的密码,在第二台里面。七、扫描第一台主机、使用之前的密码连接成功。获取最后一台主机的root密码。

vsdfbhsdhsdfh的博客 1294

分布式存储系统 Ceph 实战操作

Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点,同时提供块存储服务(rbd)、对象存储服务(rgw)以及文件系统存储服务(cephfs),Ceph在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据的位置,尽量的分布均衡。目前也是OpenStack的主流后端存储。分布式存储系统 Ceph 介绍与环境部署cephadm 是用于管理 Ceph 集群的实用程序或者是管理工具。

匠人精神,持之以恒! 2580

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

Altium Designer(AD)的简易使用

一、绘制原理图、原理图库 首先来说明原理图的概念。 根据百度百科,原理图,顾名思义就是表示电路板上各器件之间连接原理的图表。也就是表示芯片上的引脚连接什么元件,各个元件谁和谁相连,电源电压的大小之类的。​ 再来说一下原理图和原理图库的区别和联系。 原理图是某个产品的原理图设计文件;原理图库是设计原理图时用到的电子元件的电路符号的集合。绘制PCB板时先设计原理图即建立原理图文件,而在原理图文件中设计原理图前必须将原理图库文件加载到原理图编辑环境才能使用其中的电路符号。 接下来说明如...

qq_52630607的博客 2万+

Ceph 进阶系列(一):Ceph三种(块/文件/对象)存储接口

转载:Ceph介绍及原理架构分享 1. Ceph架构简介及使用场景介绍 1.1 Ceph简介 Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。 Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph...

Yannick Jiang 的专栏 6546

Python | KS检验以及其余非参数检验的实现

Python | KS检验以及其余非参数检验的实现1 什么是KS检验2 KS检验分类?3 KS检验的Python实现3.1 检验指定的数列是否服从正态分布3.2 检验指定的两个数列是否服从相同分布4 其余的非参数检验4.1 Wilcoxon符号秩检验(t检验的非参数版本)4.2 Kruskal-Wallis H检验(方差分析的非参数版本)4.3 Mann-Whitney秩检验5 参考 1 什么是KS检验 定义:检验一个分布f(x)与理论分布g(x)【比如正态分布】是否一致,或两个观测值分布是否有显著差异的检

RUC_Lee的博客 1万+

CEPH存储介绍

文章目录一: 概要二:ceph的历史和发展三:CEPH的优缺点3.1 优势3.1.1 crush算法3.1.2 统一存储架构3.1.3 丰富的特性3.2 缺点3.2.1 代码质量3.2.2 性能1 数据双倍写入2 IO路径过长3 对高性能硬件的支持有待改进3.2.3 **CephFS**3.2.4 **业务连续性**Write-All-Read-One的特点:3.2.5 社区四:ceph存储架构...

Lfwthotpt的博客 2451

手把手教学:利用AutoDL与vLLM快速部署DeepSeek-R1大模型实战指南

本文详细介绍了如何利用AutoDL平台和vLLM框架快速部署DeepSeek-R1大模型的实战指南。从服务器配置、vLLM安装优化到模型部署的两种方案,再到性能调优和生产环境建议,手把手教你高效完成大模型部署。特别针对国内开发者遇到的网络问题提供了稳定解决方案,并分享了显存优化、磁盘清理等实用技巧。

weixin_42531779的博客 326

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

本文介绍了如何将Langfuse集成到不同类型的AI应用中,包括原生OpenAI、LangChain和LangGraph应用。主要内容包括: 两种集成模式:手动追踪(精确控制)和自动追踪(通过回调机制) 三种应用场景的集成方案: 原生OpenAI应用:使用langfuse.trace()手动记录对话流程、LLM调用和工具执行 LangChain应用:通过LangfuseCallbackHandler自动追踪Agent执行过程 LangGraph应用:与LangChain相同的自动追踪方式,可可视化节点和状态

yonggeit的博客 3300

ceph存储

存储的三种方式包括:块存储、文件存储、对象存储1。此外,还有内存存储、硬盘存储和闪存存储2。内存存储:临时性数据存储方式,存储速度快,容量有限,通常用来存储正在使用的程序和数据。硬盘存储:永久性数据存储方式,存储速度相对较慢,容量较大,通常用来存储操作系统、应用程序、文档、图片、音频和视频等大容量数据。闪存存储:固态存储器,存储速度相对较快,容量较大,通常用来制作U盘、存储卡等移动设备。Ceph使用C++语言开发,是一个开放、自我修复和自我管理的开源分布式存储系统。

2401_83786744的博客 1444

搜索神器Perplexity的详细使用方法(持续更新)

本文主要介绍了ChatGPT的互补工具Perplexity的详细使用方法,希望对新手有所帮助。需要说明的是,Perplexity不需要上网工具,很方便新手和小白上手使用。Perplexity的官网链接为:https://www.perplexity.ai/ 。 文章目录 1. 为什么要讲Perplexity? 2. 详细使用方法 2.1 使用要点一 2.2 使用要点二 2.3 使用要点三

herosunly的博客 8万+

Ceph 分布式存储

https://blog.youkuaiyun.com/don_chiang709/article/details/89472242

建伟博客 3万+

五、MT8168 音频驱动之SPEAKER

本章主要讲解MT8168平台的内部SPEAKER驱动配置。分为HP接法和LINE OUT接法。2.1.3 audio_custom_exp.h设置。2.1.4 mixer_paths.xml设置。2.2.3 mixer_paths.xml设置。2.1.2 ProjectConfig 设置。2.2.2 ProjectConfig 设置。2.2.1 deconfig设置。2.1.1 DTS设置。......

Joon2020的博客 1664

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

理解Ceph的三种存储方式(块设备、文件系统、对象存储)

前言 “Ceph是一个开源的、统一的、分布式的存储系统”,这是我们宣传Ceph时常说的一句话,其中“统一”是说Ceph可以一套存储系统同时提供块设备存储、文件系统存储和对象存储三种存储功能。一听这句话,具有一定存储基础的用户应该已经大致了解了Ceph的存储接口,而没有存储基础的小白用户则 一脸懵逼。本文旨在让小白用户理解Ceph的块存储、文件系统存储和对象存储接口。 一. Ceph的块设备存储接口 什么是块设备? 块设备是i/o设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设

118路司机的博客 7565

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Ceph最全详解—分布式存储

ceph中的块设备叫做rbd,是rados block device的简写,表示ceph的块设备。④MDS:ceph-mds代表Ceph文件系统存储元数据(即,Ceph块设备和Ceph对象存储不使用MDS)。③Ceph OSD:ceph-osd存储数据,处理数据复制、恢复、重新平衡,并通过检查其他Ceph OSD守护进程的心跳来为Ceph监视器和管理器提供一些监视信息。ceph提供存储时,需要使用存储池。这些值中的大部分是默认设置的。我们需要跟踪的每个对象的元数据的数量以及我们需要运行的进程的数量。

weixin_50988812的博客 5540

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Ceph 进阶系列(一):Ceph 三种(块 _ 文件 _ 对象)存储接口

1. Ceph 架构简介及使用场景介绍 1.1 Ceph 简介 Ceph 是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。 Ceph 项目最早起源于 Sage 就读博士期间的工作(最早的成果于 2004 年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat 及 OpenStack 都可与 Ceph 整合以支持虚拟机镜像的后端存储。 1.2 Ceph 特点 高性能 a. 摒弃了传统的集中式存储元数据寻址的方案,采用 CRU

li4528503的博客 3109
上一篇: 存储概述和相关名词、Ceph集群搭建
下一篇: Kubernetes简介
chen_note
博客等级 码龄1年 251粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值