Ceph块存储
镜像快照
- 快照可以保存某一时间点时的状态数据
- 快照是映像在特定时间点的只读逻辑副本
- 希望回到以前的一个状态,可以恢复快照
- 使用镜像、快照综合示例
rbd create img1 --size 10G 创建镜像 rbd ls 查看镜像 rbd info img1 #查看img1设备信息 rbd map img1 #映射Ceph镜像到本地
创建快照
测试快照回滚数据
保护快照防止误删除
rbd snap protect img1 --snap img1-sn1 #保护指定快照
rbd snap unprotect img1 --snap img1-sn1 #取消快照保护模式
rbd remove img1 #删除镜像失败,需先删除快照
rbd snap rm img1 --snap img1-sn1 #删除指定快照
umount /dev/rbd0 #卸载设备
[root@client ~]# rbd unmap img1 #取消映射关系
rbd remove img1 #删除镜像
镜像快照克隆
- 不能将一个镜像同时挂载到多个节点,如果这样操作,将会损坏数据
- 如果希望不同的节点,拥有完全相同的数据盘,可以使用克隆技术
- 克隆是基于快照的,不能直接对镜像克隆
- 快照必须是受保护的快照,才能克隆
- 克隆流程
rbd create img2 --size 10G #创建img2镜像 mkfs.xfs /dev/rbd0 #格式化rbd设 rbd snap create img2 --snap img2-sn1 #创建img2-sn1快照 rbd snap protect img2 --snap img2-sn1 快照保护 rbd clone img2 --snap img2-sn1 img2-sn1-1 #克隆镜像img2-sn1-1 rbd clone img2 --snap img2-sn1 img2-sn1-2 #克隆镜像img2-sn1-2 rbd map img2-sn1-1 克隆机映射 mount /dev/rbd0 /data/ #直接挂载 rbd flatten img2-sn1-2 #将img2所有的数据拷贝到克隆镜像 rbd info img2-sn1-2 #已经无parent信息,已成为独立镜像,img2删除后无影响
镜像开机自动挂载
Ceph文件存储
文件系统
- 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构
- 即在存储设备上组织文件的方法
- 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统
数据与元数据
- 数据是文件的主要内容
- 元数据则是描述这些数据的附加信息,如属主、属组、权限等
CephFS配置及使用
- 创建CephFS文件系统
-
CephFS中数据与元数据独立存储于不同的存储池
# 创建存储池(一个元数据池可以对应多个数据池)
ceph -s 查看健康状态
ceph osd pool create data01 128 #创建数据池
ceph osd pool create metadata01 128 #创建元数据池 -
创建文件系统
启用MDS组件
-
客户端使用CephFS文件系统
-
挂载CephFS文件系统 确认cephfs支持相关包已安装
Ceph对象存储
-
概念
- 对象存储(Object Storage)是一种用于存储大量非结构化数据的架构模型
- 它使用简单的HTTP或HTTPS协议进行文件访问,而不是传统的文件系统API
- 与传统的文件系统存储方式不同,对象存储不是将数据存储在目录或文件夹中,而是将数据存储为独立的数据对象,每个对象都包含数据本身、元数据(描述数据的属性)以及唯一标识符
-
Ceph对象存储
- RGW(RADOWS GATEWAY)
- RGW是Ceph对象存储的网关
- 用于向客户端应用呈现存储界面
- 提供RESTful API访问接口
集群配置RGW网关
集群配置RGW网关 ceph orch apply rgw myrgw --placement="3 ceph1 ceph2 ceph3" --port 8080
ceph orch ps --daemon-type=rgw 你正在请求列出所有由Orchestrator管理的RADOS Gateway(RGW)守护进程的状态
-
客户端使用rgw
- ceph对象存储提供了一个与亚马逊S3(Amazon Simple Storage Service)兼容的接口
- 在S3中,对象被存储在一个称作桶(bucket)的器皿中。这就好像是本地文件存储在目录中一样
创建对象存储用户
radosgw-admin user create --uid=testuser --display-name="Test User" --email=test@tedu.cn --access-key=12345 --secret-key=67890
创建桶 aws --profile=ceph --endpoint=http://ceph1:8080 s3 mb s3://testbucket