首页 > 其他分享 >RBD与Cephfs

RBD与Cephfs

时间:2024-05-26 15:37:47浏览次数:21  
标签:cephfs Cephfs ceph01 rbd ceph client RBD root

目录

1. RBD

rbd是Rados Block Device的简称,是ceph集群中常用的存储类型,rbd是通过linux内核模块或librbd库与osd之间完成交互,一般只有在为物理主机提供设备的时候才会使用内核rbd模块,虚拟机一般使用librbd库,当rbd使用基于内核模块驱动时,可以使用linux自带的页缓存来提高性能,当使用librbd库时,使用rbd缓存来提高性能。

1. RBD特性

  • 支持完整和增量快照
  • 自动精简置备
  • 写时复制
  • 动态调整大小
  • 内存内缓存

rbd工作流程:

  1. 创建一个pool,创建rbd设备并挂载
  2. 用户写入数据,ceph对数据切块,每个块的大小默认为4M,每个块的名字时object+序号
  3. 将每个object通过hash算法分配给对应的pg
  4. pg根据crush算法会寻找3个osd,把这个object保存在这3个osd上
  5. osd实际把硬盘格式化成xfs文件系统,object存储在这个文件系统就相当于存储了一个文件 rbd0.object1.file

2. 创建rbd池并使用

2.1 创建rbd

[root@ceph01 ~]# ceph osd pool create rbd
pool 'rbd' created
[root@ceph01 ~]# ceph osd pool application enable rbd rbd
enabled application 'rbd' on pool 'rbd'
# 执行初始化rbd池
[root@ceph01 ~]# rbd pool init rbd

2.2 创建用户

[root@ceph01 ~]# ceph auth get-or-create client.rbd mon 'profile rbd' osd ' profile rbd' 
[client.rbd]
	key = AQBYmVJmdzLLEBAAAuxze+16sFzNAUsTontr8Q==
[root@ceph01 ~]# ceph auth get client.rbd > ceph.client.rbd.keyring
exported keyring for client.rbd

这里的权限就是给的profile rbd 意思就是这个用户只能对rbd进行操作,当然,是所有的rbd,如果想指定特定的rbd可以 ,allow rw pool=xxx这样就是操作特定池的rbd

2.3 下发用户key与ceph.conf

[root@ceph01 ~]# scp ceph.client.rbd.keyring /etc/ceph/ceph.conf 10.104.45.244:/etc/ceph/

2.4 客户端查看pool

来到客户端

[root@client ~]# ceph osd pool ls --name client.rbd --keyring /etc/ceph/ceph.client.rbd.keyring
device_health_metrics
test_pool
test02
rbd

权限正常

2.5 创建rbd块

这一步操作也可以在客户端上执行

[root@ceph01 ~]# rbd create rbd/test --name client.rbd --size 5G --image-format 2 --image
-feature layering

查看rbd块

[root@ceph01 ~]# rados -p rbd ls --name client.rbd
rbd_header.fd7dc75c9ce3
rbd_id.test
rbd_directory
rbd_info

目前我们看到的rbd块里面有4个对象,后期往里面写入文件的时候这里面的对象会越来越多

2.6 映射rbd并挂载

在客户端操作

# 1. 加载rbd模块
[root@client ~]# modprobe rbd
# 2. 让rbd模块开机自动加载
[root@client ~]# echo "rbd" >> /etc/modules-load.d/rbd.conf

先看一下块设备

[root@client ~]# fdisk -l
Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Virtual disk    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A41913C9-11D3-4136-9C7A-4FF37D0A02D0

Device       Start       End   Sectors  Size Type
/dev/sda1     2048   1230847   1228800  600M EFI System
/dev/sda2  1230848   3327999   2097152    1G Linux filesystem
/dev/sda3  3328000 104855551 101527552 48.4G Linux LVM


Disk /dev/mapper/openeuler-root: 44.48 GiB, 47760539648 bytes, 93282304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/openeuler-swap: 3.93 GiB, 4219469824 bytes, 8241152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

目前机器上只有一个sda,并且是50G的

# 3. 映射rbd
[root@client ~]# rbd map --name client.rbd rbd/test
/dev/rbd0
# 4. 查看rbd
[root@client ~]# fdisk -l |grep /dev/rbd0
Disk /dev/rbd0: 5 GiB, 5368709120 bytes, 10485760 sectors
# 5. 格式化块设备
[root@client ~]# mkfs.xfs /dev/rbd0 
meta-data=/dev/rbd0              isize=512    agcount=8, agsize=163840 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=16     swidth=16 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=16 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
# 6. 挂载使用
[root@client ~]# mkdir /rbd
[root@client ~]# mount /dev/rbd0 /rbd/
[root@client ~]# echo 111 > /rbd/test

2.7 开机自动映射

这个地方是开机自动映射,并不是自动挂载,因为在挂载之前如果没有映射的话本地是没有这块磁盘的,所以也不存在能够挂载

# 1. 编写配置文件
[root@client ~]# vim /etc/ceph/rbdmap
#poolname/imagename     id=client,keyring=/etc/ceph/ceph.client.keyring
rbd/test                id=rbd
# 2. 开机自启动服务
[root@client ~]# systemctl enable --now rbdmap
Created symlink /etc/systemd/system/multi-user.target.wants/rbdmap.service → /usr/lib/systemd/system/rbdmap.service.
# 3. 开机自动挂载
[root@client ~]# tail -1 /etc/fstab 
/dev/rbd0	/rbd	xfs	defaults,_netdev 0 0

这里的id=rbd是用户名是rbd,并不是pool的名字

2.8 rbd create参数

  • --name:指定用哪个用户创建
  • --size:指定创建的块大小
  • --image-format:指定镜像文件格式,有1和2,1已经被废弃
  • --image-feature:指定镜像文件的特性,可以指定多个
  • --stripe-unit:指定rbd存储池中最小文件块的大小,不得小于4k,不得大于32M,默认4M
  • --stripe-count:如果指定了stripe-unit,则这个也需要指定,其表示一个数据可以并行写入到多少个数据块中,默认为1
Name 描述 ID
layering 支持分层快照特性,用于快照及写时复制,可以对image创建快照并保护,然后从快照克隆出新的image,父子image之间采用COW技术,共享对象数据 1
striping 支持条带化v2,类似于raid0,只不过ceph环境中的数据被分散到不同的对象中,可改善顺序读写场景较多情况的性能 2
exclusive-lock 支持独占锁,限制一个镜像只能被一个客户端使用 4
object-map 支持对象映射(依赖exclusive-lock),加速数据导入导出及已用空间统计等,此特性开启的时候,会记录image所有对象的一个位图,用于标记对象是否真的存在,在一些场景下可以加速IO 8
fast-diff 加速计算镜像与快照快照数据差异对比(依赖object-map) 16
deep-flatten 支持快照扁平化操作,用于快照管理时解决快照依赖关系等 32
journaling 修改数据是否记录日志,该特性可以通过记录日志回复数据(依赖独占锁),开启此特性会增加系统IO使用 64
data-pool EC data pool support 128

在创建时,指定多个rbd特性

[root@ceph01 ~]# rbd create rbd/test --name client.rbd --size 5G --image-format 2 --image
-feature layering,exclusive-lock,object-map

也可以直接指定默认的特性,可以直接使用id,如果我想要 layering+deep-flatten,那么id就是1+32=33

[root@ceph01 ~]# ceph config set client rbd_default_features 33
[root@ceph01 ~]# rbd create rbd/test01 --size 1G
[root@ceph01 ~]# rbd info rbd/test01
rbd image 'test01':
	size 1 GiB in 256 objects
	order 22 (4 MiB objects)
	snapshot_count: 0
	id: fdb9d96db2f9
	block_name_prefix: rbd_data.fdb9d96db2f9
	format: 2
	features: layering, deep-flatten
	op_features: 
	flags:
	create_timestamp: Sun May 26 11:37:08 2024
	access_timestamp: Sun May 26 11:37:08 2024
	modify_timestamp: Sun May 26 11:37:08 2024

看,这样设置默认之后创建出来的rbd就都是layering, deep-flatten 这两个特性了

2.9 rbd映射基本操作

# 查看已映射设备
[root@client ~]# rbd showmapped
id  pool  namespace  image  snap  device   
0   rbd              test   -     /dev/rbd0
# 取消映射,必须先取消挂载
[root@client ~]# umount /rbd 
[root@client ~]# rbd unmap rbd/test

3. 块设备操作

3.1 调整rbd大小

# 调大
[root@ceph01 ~]# rbd resize rbd/test --size 10G
Resizing image: 100% complete...done.
# 调小,慎重操作
[root@ceph01 ~]# rbd resize rbd/test --size 8G --allow-shrink
Resizing image: 100% complete...done.
[root@client ~]# fdisk -l |grep rbd
Disk /dev/rbd0: 8 GiB, 8589934592 bytes, 16777216 sectors

3.2 复制块设备

[root@ceph01 ~]# rbd ls rbd
test
test01
[root@ceph01 ~]# rbd cp rbd/test01 rbd/copy01
Image copy: 100% complete...done.

3.3 移动到其他pool

移动到其他的池也就是将rbd复制到其他的池里去

# 创建一个池
[root@ceph01 ~]# ceph osd pool ls
device_health_metrics
test_pool
test02
rbd
[root@ceph01 ~]# ceph osd pool create mv_rbd 
pool 'mv_rbd' created
[root@ceph01 ~]# ceph osd pool application enable mv_rbd rbd
enabled application 'rbd' on pool 'mv_rbd'
[root@ceph01 ~]# rbd pool init mv_rbd

# 将copy01移动到 mv_rbd
[root@ceph01 ~]# rbd cp rbd/copy01 mv_rbd/mv_copy
Image copy: 100% complete...done.

当客户端挂载了一个rbd(已经格式化完成的),并且想挂载这个rbd复制过来的另一个rbd时,这时候系统是会报错的,原因是因为这两个rbd是完全一样的,系统识别是有点问题的,想要挂载的话必须取消之前的rbd映射,也就是说同一时间只能挂载一个,不管你是挂载的复制的还是被复制的,这俩只能有一个存在于系统上

4. rbd快照管理

4.1 创建快照

[root@ceph01 ~]# rbd snap create rbd/test@snapshot01
Creating snap: 100% complete...done.
[root@ceph01 ~]# rbd snap ls rbd/test
SNAPID  NAME        SIZE   PROTECTED  TIMESTAMP               
     4  snapshot01  8 GiB             Sun May 26 12:34:03 2024

4.2 回滚快照

# 到客户端删除rbd上的所有文件
[root@client ~]# cd /rbd/
[root@client rbd]# ls
test
[root@client rbd]# rm test -f

# 卸载rbd
[root@client ~]# umount /rbd
# 回滚
[root@client ~]# rbd snap rollback rbd/test@snapshot01 --name client.rbd
Rolling back to snapshot: 100% complete...done
# 重新挂载查看文件
[root@client ~]# mount -a
[root@client ~]# cd /rbd/
[root@client rbd]# ls
test

4.3 保护快照

开启了这个功能之后快照无法被删除

[root@ceph01 ~]# rbd snap protect rbd/test@snapshot01
[root@ceph01 ~]# rbd info rbd/test@snapshot01
rbd image 'test':
	size 8 GiB in 2048 objects
	order 22 (4 MiB objects)
	snapshot_count: 1
	id: fd7dc75c9ce3
	block_name_prefix: rbd_data.fd7dc75c9ce3
	format: 2
	features: layering
	op_features: 
	flags: 
	create_timestamp: Sun May 26 10:22:11 2024
	access_timestamp: Sun May 26 10:22:11 2024
	modify_timestamp: Sun May 26 10:22:11 2024
	protected: True

4.4 删除快照

[root@ceph01 ~]# rbd snap rm rbd/test@snapshot01
Removing snap: 0% complete...failed.
rbd: snapshot 'snapshot01' is protected from removal.
2024-05-26T12:44:29.788+0800 7fa5126fc1c0 -1 librbd::Operations: snapshot is protected

现在是删不掉的,因为被保护了,我们需要取消保护

[root@ceph01 ~]# rbd snap unprotect rbd/test@snapshot01
[root@ceph01 ~]# rbd snap rm rbd/test@snapshot01
Removing snap: 100% complete...done.

4.5 克隆快照

克隆之前需要对被克隆的快照进行保护,原因是因为克隆出来的新快照是完全依赖于原先的快照的,如果原先的快照被删除,那么克隆出来的快照也将无法使用

# 先创建一个快照
[root@ceph01 ~]# rbd snap create rbd/test@snapshot01
Creating snap: 100% complete...done.
# 保护快照
[root@ceph01 ~]# rbd snap protect rbd/test@snapshot01
# 克隆新快照
[root@ceph01 ~]# rbd  clone rbd/test@snapshot01 rbd/clone_snap
[root@ceph01 ~]# rbd ls rbd/
clone_snap
copy01
test
test01

查看信息

[root@ceph01 ~]# rbd info rbd/clone_snap
rbd image 'clone_snap':
	size 8 GiB in 2048 objects
	order 22 (4 MiB objects)
	snapshot_count: 0
	id: fe76c24b54cf
	block_name_prefix: rbd_data.fe76c24b54cf
	format: 2
	features: layering
	op_features: 
	flags: 
	create_timestamp: Sun May 26 12:51:40 2024
	access_timestamp: Sun May 26 12:51:40 2024
	modify_timestamp: Sun May 26 12:51:40 2024
	parent: rbd/test@snapshot01
	overlap: 8 GiB

注意对比这个克隆出来的与其他的差异,这个rbd他有一个

parent: rbd/test@snapshot01,也就是说他是基于这个的,如果这个快照被删除那么这个克隆出来的也将无法使用,前面提到了

如果说我我就要让他独立存在呢?不受其他快照的影响,可以做到吗?是可以的

# 合并父镜像/快照拉平
[root@ceph01 ~]# rbd flatten rbd/clone_snap
Image flatten: 100% complete...done.
[root@ceph01 ~]# rbd info rbd/clone_snap
rbd image 'clone_snap':
	size 8 GiB in 2048 objects
	order 22 (4 MiB objects)
	snapshot_count: 0
	id: fe76c24b54cf
	block_name_prefix: rbd_data.fe76c24b54cf
	format: 2
	features: layering
	op_features: 
	flags: 
	create_timestamp: Sun May 26 12:51:40 2024
	access_timestamp: Sun May 26 12:51:40 2024
	modify_timestamp: Sun May 26 12:51:40 2024

这个时候再去看,他就没有parent这个条目了,也就是说他可以独立存在了

4.6 客户端配置rbd缓存

[root@client rbd]# vim /etc/ceph/ceph.conf
# 加入下列这些配置
[clienti.rbd]
rbd_cache = true
rbd_cache_size = 33554432 # 32M
rbd_cache_max_dirty = 25165824
rbd_cache_target_dirty = 16777216
rbd_cache_max_dirty_age = 1
rbd_cache_writethrough_until_flush = true

rbd缓存:开启之后想往磁盘写数据会先内存,然后再从内存里写入到磁盘,加速写入速度,开启之后也会面临风险,因为数据是先到内存,万一断电那么就会丢失32M数据,因为缓存大小是32M

2. CephFS

cephfs提供就是一个文件系统,不像rbd一样需要自己格式化

文件系统(cephfs)与块存储(rbd)不同的是,块存储只需要一个存储池就可以,而文件系统需要2个存储池,一个用来存放元数据,存放元数据的存储池需要有一个mds来读取。一个用来存放数据

1. mds是什么

mds:matadata server

文件系统需要存放元数据和数据,但是存储池里面存储的是对象,并不是元数据,那么需要使用文件系统的话就必须具备将对象转换成元素据的能力,这个就是mds的活,也就是转换元素据的,他还能够充当元数据的缓存,他的内存是可以缓存一部分元数据的。

2. 创建文件系统

2.1 创建2个存储池

# 1. 创建2个存储池 data_cephfs,metadata_cephfs
# 存储池名字可以随便起
[root@ceph01 ~]# ceph osd pool create cephfs_data
pool 'cephfs_data' created
[root@ceph01 ~]# ceph osd pool create cephfs_metadata
pool 'cephfs_metadata' created
# 2. 绑定文件系统类型
[root@ceph01 ~]# ceph osd pool application enable cephfs_metadata cephfs
enabled application 'cephfs' on pool 'cephfs_metadata'
[root@ceph01 ~]# ceph osd pool application enable cephfs_data cephfs
enabled application 'cephfs' on pool 'cephfs_data'

2.2 创建cephfs

# 先指定元数据池,再指定数据池
[root@ceph01 ~]# ceph fs new mycephfs cephfs_metadata cephfs_data
new fs with metadata pool 13 and data pool 12

2.3 创建mds

如果不创建mds的话集群过一会的健康状态就会变成 HEALTH_ERR

[root@ceph01 ~]# ceph orch apply mds mycephfs --placement="3"
Scheduled mds.mycephfs update...

2.4 查看文件系统信息

[root@ceph01 ~]# ceph fs dump
e8
enable_multiple, ever_enabled_multiple: 1,1
default compat: compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,8=no anchor table,9=file layout v2,10=snaprealm v2}
legacy client fscid: 1
 
Filesystem 'mycephfs' (1)
fs_name	mycephfs
epoch	5
flags	12
created	2024-05-26T06:36:24.540439+0000
modified	2024-05-26T06:38:54.292138+0000
tableserver	0
root	0
session_timeout	60
session_autoclose	300
max_file_size	1099511627776
required_client_features	{}
last_failure	0
last_failure_osd_epoch	0
compat	compat={},rocompat={},incompat={1=base v0.20,2=client writeable ranges,3=default file layouts on dirs,4=dir inode in separate object,5=mds uses versioned encoding,6=dirfrag is stored in omap,7=mds uses inline data,8=no anchor table,9=file layout v2,10=snaprealm v2}
max_mds	1
in	0
up	{0=65215}
failed	
damaged	
stopped	
data_pools	[12]
metadata_pool	13
inline_data	disabled
balancer	
standby_count_wanted	1
[mds.mycephfs.ceph03.hgvfpj{0:65215} state up:active seq 2 join_fscid=1 addr [v2:10.104.45.243:6824/75731152,v1:10.104.45.243:6825/75731152] compat {c=[1],r=[1],i=[7ff]}]
 
 
Standby daemons:
 
[mds.mycephfs.ceph02.dhucfo{-1:65221} state up:standby seq 1 join_fscid=1 addr [v2:10.104.45.241:6826/3559035759,v1:10.104.45.241:6827/3559035759] compat {c=[1],r=[1],i=[7ff]}]
[mds.mycephfs.ceph01.fkwkdc{-1:65469} state up:standby seq 1 join_fscid=1 addr [v2:192.168.101.10:6824/2486210203,v1:192.168.101.10:6825/2486210203] compat {c=[1],r=[1],i=[7ff]}]
dumped fsmap epoch 8

2.5 创建用户,并发放keyring

[root@ceph01 ~]# ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow *' osd 'allow rw pool=cephfs_metadata,allow rw pool=cephfs_data' -o ceph.client.cephfs.keyring
[root@ceph01 ~]# scp ceph.client.cephfs.keyring 10.104.45.244:/etc/ceph/

Authorized users only. All activities may be monitored and reported.
[email protected]'s password: 
ceph.client.cephfs.keyring                             100%   64   120.7KB/s   00:00 

2.6 客户端执行挂载

挂载有2种方式

    1. 基于ceph-fuse的方式
    1. 基于系统内核的方式(推荐这种)
# 需要安装ceph客户端,如果不安装mount -t ceph 会报错没有这个类型

# 1. 将用户密钥保存到一个文件。 只要密钥,其他任何东西都不用写
[root@client ~]# cat /etc/ceph/ceph.client.cephfs.keyring 
[client.cephfs]
	key = AQAP2lJm1BGICRAAblGZADS8xWfDsWl2keqzQw==
[root@client ~]# echo "AQAP2lJm1BGICRAAblGZADS8xWfDsWl2keqzQw==" > cephfs.key
[root@client ~]# mkdir /cephfs
[root@client ~]# mount -t ceph -o name=cephfs,secretfile=./cephfs.key  192.168.101.10,192.168.101.20,192.168.101.30:/ /cephfs

2.7 永久挂载

[root@client ~]# vim /etc/fstab
192.168.101.10,192.168.101.20,192.168.101.30:/ /cephfs ceph defaults,_netdev,name=cephfs,secretfile=/etc/ceph/cephfs.key

2.8 权限补充

刚刚我们所给的权限是可以直接挂载cephfs的根目录的,如果我们只想给这个用户挂载根目录下的某个目录,那么就需要做进一步的权限控制了

[root@ceph01 ~]# ceph fs authorize mycephfs client.user01 /nas rwps
[client.user01]
	key = AQCz4FJmZc+JAxAAtPPefz1dXPnwfoHH4LUXPw==

这里的mycephfs就是这个用户可以操作的文件系统名, /nas 就是它能够挂载的目录 权限是rwps也就是全部权限 rw很好理解,p是管理权限,s就是文件系统(fs中的s)

2.9 查看文件系统状态

[root@ceph01 ~]# ceph fs status
mycephfs - 1 clients
========
RANK  STATE            MDS               ACTIVITY     DNS    INOS   DIRS   CAPS  
 0    active  mycephfs.ceph03.hgvfpj  Reqs:    0 /s    11     13     12      1   
      POOL         TYPE     USED  AVAIL  
cephfs_metadata  metadata   300k   142G  
  cephfs_data      data       0    142G  
     STANDBY MDS        
mycephfs.ceph02.dhucfo  
mycephfs.ceph01.fkwkdc  
MDS version: ceph version 16.2.13 (5378749ba6be3a0868b51803968ee9cde4833a3e) pacific (stable)

标签:cephfs,Cephfs,ceph01,rbd,ceph,client,RBD,root
From: https://www.cnblogs.com/fsdstudy/p/18213732

相关文章

  • PVE-Ceph-RBD测试
    集群型号与规模CPU型号:3X24xIntel(R)Xeon(R)[email protected](2插槽)内存:110G磁盘:3X12X三星850evo500G(osd以raid0模式加入ceph)+3X1nvme500G可用osd个数:33个ceph集群副本:3副本ceph版本:cephversion17.2.6(810db68029296377607028a6c6da1ec06f5......
  • DRBD + keepalived实现文件实时同步和双机热备
    DRBD+keepalived实现文件实时同步和双机热备安装DRBD系统初始化设置注意:需要有数据盘或者多的分区yumupdate-y关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld修改host文件vim/etc/hosts192.168.1.240Primarykylin-01192.168.1.241Seconda......
  • 在Linux中,在分布式环境中如何实现文件系统冗余和同步?(例如DRBD、GlusterFS)
    在Linux中,实现分布式环境下的文件系统冗余和同步可以通过使用专门的分布式文件系统技术和块级复制技术来完成。这里重点介绍两种方案:DRBD(DistributedReplicatedBlockDevice)和GlusterFS。1.DRBD(DistributedReplicatedBlockDevice)DRBD是一种块设备级别的存储复制......
  • Ceph RBD和QEMU块设备qos测试
    微信公众号:运维开发故事作者:wanger关于ceph的qosCeph,作为一个高度可扩展的分布式存储系统,已经成为云计算和大数据时代的关键基石。随着企业和组织对数据存储的需求日益增长,Ceph通过其强大的特性,如可靠性、伸缩性和性能,满足了这些需求。然而,随着集群规模的扩大和工作负载的多样性,如......
  • 配置一个支持librbd的tgtd
    前言配置文件如下<targetiqn.2008-09.com.example:server.libdiskb>bs-typerbd<backing-storerbd/test4M>block-size512lbppbe0</backing-store></target>注意一定要用这个格式写配置文件,否则出现无法解析参数的问题......
  • k8s 对接 cephfs 文件系统
    创建资源池cephosdpoolcreatecephfs_data128cephosdpoolcreatecephfs_metadata128文件系统需要两个资源池,一个用于存储数据体,一个用于存放索引信息及其他数据相关信息。创建文件系统cephfsnewcephfscephfs_metadatacephfs_data获取admin秘钥cephauthg......
  • ceph应用-RBD、radosgw对象存储、cephfs
    块存储(RBD)用于K8S、openstack、linux中直接挂载。类似使用iscsi块存储一样。块存储使用案例#1.创建存储池#语法:cephosdpoolcreate<存储池名><PG>[<PGP>][{replicated|erasure}]# PG:指定存储池的pg数量# PGP:指定存储池pgp数量,一般与pg相同。不填写默认就是和PG......
  • 手把手系列 - Ceph使用rbd及cephfs与k8s集群集成 - 三种方式实现
    前言本次详细部署k8s、ceph以及如何使用ceph作为k8s的外部存储。主机信息主机名IP说明信息k8s-master192.168.199.41k8smasterk8s-node01192.168.199.42nodek8s-node02192.168.199.43nodeceph-node01192.168.199.44ceph-node01-独立磁盘(/d......
  • ceph(五)CephFS部署、使用和MDS高可用实现
    1.部署cephfs服务cephFS即cephfilesystem,可以实现文件系统共享功能(POSIX标准),客户端通过ceph协议挂载并使用ceph集群作为数据存储服务器,https://docs.ceph.com/en/latest/cephfs/。cephFS需要运行MetaDataServices(MDS)服务,其守护进程为ceph-mds,ceph-mds进程管理与cephFS上存......
  • Ceph RBD的使用笔记
    ceph的内容太多了,单独写一篇文章记录自己的一些RBD的学习笔记,其实简书和其他博客上已经记录的非常全面了,但是因为出处都比较分散,所以还是自己把自己的实验记录一下便于以后学习的查阅。也感谢各位大佬的无私分享。 1.RBD池的创建和enable[cephadmin@ceph-node~]$cephosdp......