主要内容:
块存储应用案例(快照、快照回滚、快照克隆)、分布式文件系统(文件系统的构成:inode和block,创建存储池实现inode和block)、对象存储(radosgw)
补充:Ceph的OSD提供3副本(可针对系统解决单点故障,但人为操作删除无法解决)
一、OSD镜像快照
OSD镜像快照(Object Storage Device Snapshot)是一种特定于对象存储系统的快照技术。对象存储设备(OSD)是一种存储系统,它将数据作为对象进行管理,而不是传统的文件或块存储方式。OSD镜像快照在这种环境下提供了一种数据保护和恢复机制。
OSD镜像快照的特点
对象级快照:OSD镜像快照是在对象级别创建的,这意味着它可以对单个对象或一组对象进行快照,而不是整个存储卷或文件系统。
高效存储:由于对象存储的特性,OSD镜像快照可以利用对象的元数据和唯一标识符来创建快照,这种方式通常比传统的块或文件系统快照更高效。
灵活恢复:用户可以选择恢复单个对象或一组对象到快照时的状态,这提供了更细粒度的数据恢复能力。
版本控制:OSD镜像快照可以作为对象的版本控制机制,允许用户访问和恢复对象的历史版本。
OSD镜像快照的工作原理
快照创建:在创建OSD镜像快照时,系统会记录对象的当前状态和元数据,而不是立即复制对象的数据。这通常通过记录对象的唯一标识符和快照时间戳来实现。
数据保护:当对象数据发生变化时,系统会根据快照策略决定是否复制原始数据。这可以是通过写时复制(COW)机制或其他增量备份技术来实现。
快照恢复:在需要恢复数据时,系统可以根据快照记录的信息,将对象恢复到快照时的状态。这可能涉及到从备份存储中检索原始数据或应用增量更改。
OSD镜像快照的应用场景
数据备份和恢复:OSD镜像快照可以用于定期备份关键数据,以便在数据丢失或损坏时进行快速恢复。
开发和测试环境:在开发和测试环境中,可以使用OSD镜像快照来创建一致的数据集,确保测试结果的准确性和可靠性。
内容分发网络(CDN):在内容分发网络中,OSD镜像快照可以用于快速恢复和分发内容,确保用户能够访问最新的数据。
长期数据保留:对于需要长期保留的数据,OSD镜像快照可以作为一种经济高效的方式来存储和管理数据的多个版本。
案例1:块存储应用案例
延续 CLUSTER-DAY3 的实验内容,演示块存储的应用案例,实现以下功能:
- 1)创建镜像快照
- 2)使用快照还原数据
- 3)使用快照克隆镜像
- 4)删除快照
实验前准备:
[root@client ~]# rbd map jacob //重新映射共享镜像
/dev/rbd0
[root@client ~]# blkid /dev/rbd0 //已格式化分区
/dev/rbd0: UUID="13bdcc31-fcfd-40a7-a2fb-1e4081f614f0" TYPE="xfs"
[root@client ~]# mount /dev/rbd0 /mnt/
[root@client ~]# ls /mnt/
test.txt
步骤1:创建镜像快照(快照snapshot)
1)查看镜像快照(snap ls)
- 格式:rbd snap ls 镜像名称 //查看镜像快照(ls是list查看)
补充:默认所有镜像都没有快照
[root@node1 ceph-cluster]# rbd snap ls jacob //显示为空(默认没有快照)
2)为镜像创建快照(snap create)
- 格式:rbd snap create 镜像名称 --snap 指定创建快照名称 //快照名称可任意(辨识度)
[root@node1 ceph-cluster]# rbd snap create jacob --snap jacob-snap1
[root@node1 ceph-cluster]# rbd snap ls jacob
SNAPID NAME SIZE
4 jacob-snap1 7168 MB
3)通过快照进行回滚数据(snap rollback)
- 格式:rbd snap rollback 镜像名称 --snap 指定回滚快照名称
[root@client ~]# rm -rf /mnt/test.txt //模拟删除客户端写入的测试文件
[root@client ~]# umount /mnt //必须卸载挂载点,不支持在线还原
[root@node1 ceph-cluster]# rbd snap rollback jacob --snap jacob-snap1
Rolling back to snapshot: 100% complete...done.
[root@client ~]# mount /dev/rbd0 /mnt/ //客户端重新挂载分区
[root@client ~]# ls /mnt/ //查看数据是否被恢复
test.txt
[root@client ~]# cat /mnt/test.txt
test
解释:使用jacob-snap1快照回滚数据,对jacob镜像进行回滚数据(rollback回滚)
步骤2:创建快照克隆
1)保护快照(snap protect)
- 格式:rbd snap protect 镜像名称 --snap 指定快照名称 //保护快照
- 格式:rbd snap rm 镜像名称 --snap 指定快照名称 //删除快照
补充;被保护的快照,不可以被删除
[root@node1 ceph-cluster]# rbd snap protect jacob --snap jacob-snap1
[root@node1 ceph-cluster]# rbd snap