当前位置:   article > 正文

Ceph 认证授权和RBD块存储、对象存储使用(三)_rbd-682

rbd-682

RBD块存储

RBD介绍

1、RBD是Ceph分布式集群中最常用的存储类型
2、块是一个有序字节,普通的一个块大小为512字节,基于块的存储是最常见的存储方式,比如常见的硬盘、软盘和CD光盘等,都是存储数据最简单快捷的设备
3、Ceph块设备是一种精简置备模式,可以扩展大小且数据是以条带化的方式存储在一个集群中的多个OSD中RBD具有快照、多副本、克隆和一致性功能
4、Ceph块设备通过Linux内核模块或者librbd库与OSD之间交互通信的模式

librbd介绍

librbd是一个访问rbd块存储的库,librados提供了RBD、Ceph FS和Radosgw三种存储接口,其中librbd就是利用librados与RBD进行交互的,librbd主要用于为虚拟机提供块设备

RBD的应用场景

大多数使用场景中是基于QEMU/KVM通过librbd的方式,提到虚拟化就自然想到热度狠高的云计算,需拟化是云计算的核心,云计算的IaaS层一般对外提供虚拟机资源服务,比如火热的OpenStack等提供基础设施堆栈的开源软件框架,RBD块设备用于虚拟机的系统卷、数据卷,根据Ceph RBD的分层功能,还可以方便实现基于COW的克隆技术,还有基于RBD的快照、导入、导出和扩容等功能

RDB块存储的使用

#创建存储池
[cephadm@xiaomao ceph-cluster]$ ceph osd pool create kube 64 64
pool 'kube' created
#在kube存储池上启用rbd功能
[cephadm@xiaomao ceph-cluster]$ ceph osd pool application enable kube rbd
enabled application 'rbd' on pool 'kube'
#初始化rbd
[cephadm@xiaomao ceph-cluster]$ rbd pool init kube
#创建rbd镜像
#第一种创建方法
[cephadm@xiaomao ceph-cluster]$ rbd create  --pool kube --image vol01 --size 2G
#查看镜像是否创建成功
[cephadm@xiaomao ceph-cluster]$ rbd ls --pool kube
vol01
#第二种创建方法
[cephadm@xiaomao ceph-cluster]$ rbd create --size 2G kube/vol02
[cephadm@xiaomao ceph-cluster]$ rbd ls --pool kube
vol01
vol02
#查看镜像文件的详细信息
[cephadm@xiaomao ceph-cluster]$ rbd ls --pool kube -l
NAME  SIZE  PARENT FMT PROT LOCK
vol01 2 GiB          2
vol02 2 GiB          2
#第二种方法
[cephadm@xiaomao ceph-cluster]$ rbd info --pool kube vol01
rbd image 'vol01':
	size 2 GiB in 512 objects
	order 22 (4 MiB objects)
	snapshot_count: 0
	id: acd0fc78a781
	block_name_prefix: rbd_data.acd0fc78a781
	format: 2
	features: layering, exclusive-lock, object-map, fast-diff,deep-flatten
	op_features:
	flags:
	create_timestamp: Thu Jul  9 22:41:28 2020
	access_timestamp: Thu Jul  9 22:41:28 2020
	modify_timestamp: Thu Jul  9 22:41:28 2020
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

通过上面的 info 输出信息我们可以看到,当前2G的镜像,包含有512个object,每个object是4M,order类型是22,即2的2次方,块存储的前缀是 rbd_data.acd0fc78a781 开头,features提供了5个特性:layering, exclusive-lock, object-map, fast-diff, deep-flatten,由于CentOS 7.x有些特性还不支持,因此需要将其先禁用

#禁用rbd块的特性
[cephadm@xiaomao ceph-cluster]$ rbd feature disable kube/vol01 object-map fast-diff deep-flatten
#禁用后再次查看
[cephadm@xiaomao ceph-cluster]$ rbd info --pool kube vol01
rbd image 'vol01':
	size 2 GiB in 512 objects
	order 22 (4 MiB objects)
	snapshot_count: 0
	id: acd0fc78a781
	block_name_prefix: rbd_data.acd0fc78a781
	format: 2
	features: layering, exclusive-lock	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

客户端挂载使用rbd

#xiaomao5充当客户端
[root@xiaomao5 ~]# yum -y install ceph-common
#创建认证账号
#client.kube 账号名(kube) pool存储池   -o  ceph.client.kube.keyring:保存的文件名
[cephadm@xiaomao ceph-cluster]$  ceph auth get-or-create  client.kube  mon 'allow r' mds 'allow rw'  osd  'allow rwx pool=kube' -o  ceph.client.kube.keyring
#查看账号信息
[cephadm@xiaomao ceph-cluster]$ ceph auth get client.kube
exported keyring for client.kube
[client.kube]
	key = AQDjOAdfFB5MNRAAnIkXJr3Bo5G4UWEb3gfOcA==
	caps mds = "allow rw"
	caps mon = "allow r"
	caps osd = "allow rwx pool=kube"
#客户端挂载RBD的两个条件	
#复制账号信息到客户端
[cephadm@xiaomao ceph-cluster]$ scp ceph.client.kube.keyring   root@xiaomao5:/etc/ceph/
#复制ceph.conf配置文件到客户端
[cephadm@xiaomao ceph-cluster]$ scp ceph.conf   root@xiaomao5:/etc/ceph/	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
#使用客户端连接ceph集群
# --user 普通用户
[root@xiaomao5 ~]# ceph  --user kube -s
  cluster:
    id:     eff8141a-a26b-498f-9608-879c2565496d
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum xiaomao4,xiaomao5,xiaomao (age 100m)
    mgr: xiaomao4(active, since 2h), standbys: xiaomao, xiaomao5
    osd: 6 osds: 6 up (since 84m), 6 in (since 84m)

  data:
    pools:   1 pools, 64 pgs
    objects: 7 objects, 213 B
    usage:   6.0 GiB used, 354 GiB / 360 GiB avail
    pgs:     64 active+clean
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
#RBD块映射
[root@xiaomao5 ~]# rbd --user kube map kube/vol01
/dev/rbd0
#开始挂载
[root@xiaomao5 ~]# mkfs.xfs /dev/rbd0
[root@xiaomao5 ~]# mount /dev/rbd0  /mnt/
[root@xiaomao5 ~]# cd /mnt/
[root@xiaomao5 mnt]# cp /etc/fstab   /mnt/
[root@xiaomao5 mnt]# ls
fstab
#查看是否挂载成功
[root@xiaomao5 mnt]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/rbd0                2.0G   33M  2.0G   2% /mnt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
#查看块映射信息
[root@xiaomao5 ~]# rbd showmapped
id pool namespace image snap device
0  kube           vol01 -    /dev/rbd0
#卸载块设备
[root@xiaomao5 ~]# rbd unmap /dev/rbd0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
#调整RBD块的大小
[cephadm@xiaomao ceph-cluster]$ rbd resize -s 5G kube/vol01
Resizing image: 100% complete...done.
[cephadm@xiaomao ceph-cluster]$ rbd ls -p kube -l
NAME  SIZE  PARENT FMT PROT LOCK
vol01 5 GiB          2
vol02 2 GiB          2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
#删除镜像
[cephadm@xiaomao ceph-cluster]$ rbd rm kube/vol02
#查看镜像是否删除成功
[cephadm@xiaomao ceph-cluster]$  rbd ls -p kube -l
NAME  SIZE  PARENT FMT PROT LOCK
vol01 5 GiB          2
#把镜像放进回收站
[cephadm@xiaomao ceph-cluster]$ rbd trash move kube/vol01
#再次查看镜像是否回收成功
[cephadm@xiaomao ceph-cluster]$ rbd ls -p kube -l
#显示回收站中的镜像文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号