块存储-RBD

块存储
块是字节序列(例如,一个512字节的数据块)。基于块的存储接口是使用旋转介质(例如硬盘,CD,软盘甚至传统的9轨磁带)存储数据的最常用方法。块设备接口的无处不在使虚拟块设备成为与海量数据存储系统(如Ceph)进行交互的理想候选者。
Ceph块设备经过精简配置,可调整大小,并在Ceph集群中的多个OSD上存储条带化的数据。Ceph块设备利用了RADOS功能,例如快照,复制和一致性。Ceph的RADOS块设备(RBD)使用内核模块或librbd库与OSD进行交互。
注意
内核模块可以使用Linux页面缓存。对于librbd基于应用程序,Ceph支持RBD缓存。
Ceph的的块设备提供了无限的可扩展性,以高性能的内核模块,或者KVM系列如QEMU和基于云计算系统,如OpenStack的和的CloudStack依赖的libvirt和QEMU与Ceph的块设备集成。您可以使用同一群集同时运行Ceph RADOS网关,Ceph文件系统和Ceph块设备。

优点:

  • 通过Raid与LVM等手段,对数据提供了保护;
  • 多块廉价的硬盘组合起来,提高容量;
  • 多块磁盘组合出来的逻辑盘,提升读写效率;

缺点:

  • 采用SAN架构组网时,光纤交换机,造价成本高;
  • 主机之间无法共享数据;

使用场景

  1. docker容器、虚拟机磁盘存储分配;
  2. 日志存储;
  3. 文件存储;

常用命令如下:

# 创建存储池
ceph osd pool create rbdpool 64 64
# pg数的计算公式:total pgs = (osd * 100) / (pool size)。值取接近2的幂,如(3*100)/3=100, total pgs=128
#启用rbd功能
ceph osd pool application enable rbdpool rbd

# 查看存储池
rados lspools
ceph osd lspools
ceph osd dump | grep -i pool

#rbd存储池不能直接使用,需要先在其中创建映像(image),并把映像文件作为块设备使用。
#创建映像
rbd create img1 --size 1024 --pool rbdpool
#获取映像信息
rbd --image img1 --pool rbdpool
# 删除rbd镜像
rbd rm img1 -p rbdpool

# 磁盘映射
rbd map --image img1
# 查看映射的设备名称
rbd showmapped
#取消映射RBD镜像
rbd unmap  /dev/rbd1

#创建文件系统
mkfs.xfs /dev/rbd0

#挂载设备到系统
mkdir /mnt/img1
mount /dev/rbd0 /mnt/img1

#RBD镜像的使用量
rbd du

#调整RBD镜像容量
rbd resize rbdpool/img1 --size 20480

#同步文件系统,查看新的容量是否被内核接受
xfs_growfs -d /mnt/img1/

# 创建RBD快照
rbd snap create rbd/img1@snap1

#查看所创建的快照
rbd snap ls rbd/snap1

# 恢复快照
umount /mnt/img1
rbd snap rollback rbd/img1@snap1

# 对快照设置保护
rbd snap protect rbd/img1@snap1
# 对快照解除保护
rbd snap unprotect rbd/img1@snap1
# 删除快照
rbd snap rm rbd/img1@snap1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值