内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
本
风哥提示:
文档介绍Ceph RBD块存储的配置和使用方法。
Part01-RBD存储池配置
1.1 创建存储池
[root@ceph-mon1 ~]# ceph osd lspools
1 .mgr
# 创建RBD存储池
[root@ceph-mon1 ~]# ceph osd pool create rbd 128 128
pool ‘rbd’ created
# 启用RBD应用
[root@ceph-mon1 ~]# ceph osd pool application enable rbd rbd
enabled application ‘rbd’ on pool ‘rbd’
# 初始化RBD存储池
[root@ceph-mon1 ~]# rbd pool init rbd
# 查看存储池信息
[root@ceph-mon1 ~]# ceph osd pool get rbd all
size: 3
min_size: 2
pg_num: 128
pgp_num: 128
crush_rule: replicated_rule
hashpspool: true
nodelete: false
nopgcalc: false
nosizechange: false
write_fadvise_dontneed: false
noscrub: false
nodeep-scrub: false
use_gmt_hitset: 1
fast_read: 0
# 查看存储池统计
[root@ceph-mon1 ~]# ceph df
— RAW STORAGE —
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 4.0 TiB 3.9 TiB 4.0 GiB 4.0 GiB 0.10
TOTAL 4.0 TiB 3.9 TiB 4.0 GiB 4.0 GiB 0.10
— POOLS —
POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL
.mgr 1 32 449 KiB 23 1.3 MiB 0 1.2 TiB
rbd 2 128 0 B 0 0 B 0 1.2 TiB
1.2 创建RBD镜像
[root@ceph-mon1 ~]# rbd create rbd/image1 –size 100G
[root@ceph-mon1 ~]# rbd create rbd/image2 –size 200G
# 查看RBD镜像列表
[root@ceph-mon1 ~]# rbd ls rbd
image1
image2
# 查看镜像详细信息
[root@ceph-mon1 ~]# rbd info rbd/image1
rbd image ‘image1’:
size 100 GiB in 25600 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: 1234567890ab
block_name_prefix: rbd_data.1234567890ab
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
op_features:
flags:
create_timestamp: Fri Apr 4 19:35:00 2026
access_timestamp: Fri Apr 4 19:35:00 2026
modify_timestamp: Fri Apr 4 19:35:00 2026
# 调整镜像大小
[root@ceph-mon1 ~]# rbd resize rbd/image1 –size 150G
Resizing image: 100% complete…done.
# 删除镜像
[root@ceph-mon1 ~]# rbd rm rbd/image2
Removing image: 100% complete…done.
# 创建镜像快照
[root@ceph-mon1 ~]# rbd snap create rbd/image1@snap1
[root@ceph-mon1 ~]# rbd snap ls rbd/image1
SNAPID NAME TIME SIZE
1 snap1 Fri Apr 4 19:40:00 2026 150 GiB
# 回滚快照
[root@ceph-mon1 ~]# rbd snap rollback rbd/image1@snap1
Rolling back to snapshot: 100% complete…done.
# 克隆镜像
[root@ceph-mon1 ~]# rbd snap protect rbd/image1@snap1
[root@ceph-mon1 ~]# rbd clone rbd/image1@snap1 rbd/image1-clone
[root@ceph-mon1 ~]# rbd ls rbd
image1
image1-clone
Part02-RBD客户端配置
2.1 挂载RBD镜像
[root@client ~]# dnf install -y ceph-common
Updating Subscription Management repositories.
Last metadata expiration check: 0:05:23 ago on Fri Apr 4 19:40:00 2026.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
ceph-common x86_64 2:17.2.0-1.el9 epel 10 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 10 M
Installed size: 50 M
Downloading Packages:from PG视频:www.itpux.com
ceph-common-17.2.学习交流加群风哥微信: itpux-com0-1.el9.x86_64.rpm 20 MB/s | 10 MB 00:00
——————————————————————————–
Total 20 MB/s | 10 MB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : ceph-common-2:17.2.0-1.el9.x86_64 1/1
Running scriptlet: ceph-common-2:17.2.0-1.el9.x86_64 1/1
Verifying : ceph-common-2:17.更多视频教程www.fgedu.net.cn2.0-1.el9.x86_64 1/1
Installed:
ceph-common-2:17.2.0-1.el9.x86_64
Complete!
# 复制配置文件和密钥
[root@client ~]# mkdir -p /etc/ceph
[root@ceph-mon1 ~]# scp /etc/ceph/ceph.conf root@client:/etc/ceph/
[root@ceph-mon1 ~]# scp /etc/ceph/ceph.client.admin.keyring root@client:/etc/ceph/
# 映射RBD镜像
[root@client ~]# rbd map rbd/image1
/dev/rbd0
# 查看映射
[root@client ~]# rbd showmapped
id pool namespace image snap device
0 rbd image1 – /dev/rbd0
# 格式化并挂载
[root@client ~]# mkfs.xfs /dev/rbd0
meta-data=/dev/rbd0 isize=512 agcount=4, agsize=9830400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1
data = bsize=4096 blocks=39321600, imaxpct=25
= sunit=128 swidth=128 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=19200, version=2
= sectsz=512 sunit=128 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@client ~]# mkdir /data/rbd
[root@client ~]# mount /dev/rbd0 /data/rbd
# 测试写入
[root@client ~]# dd if=/dev/zero of=/data/rbd/test.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 1.23456 s, 84.9 MB/s
# 取消映射
[root@client ~]# umount /data/rbd
[root@client ~]# rbd unmap /dev/rbd0
2.2 RBD性能优化
[root@ceph-mon1 ~]# rbd feature disable rbd/image1 object-map fast-diff deep-flatten
# 查看特性
[root@ceph-mon1 ~]# rbd info rbd/image1
rbd image ‘image1’:
size 150 GiB in 38400 objects
order 22 (4 MiB objects)
snapshot_count: 1
id: 1234567890ab
block_name_prefix: rbd_data.1234567890ab
format: 2
features: layering, exclusive-lock
op_features:
flags:
create_timestamp: Fri Apr 4 19:35:00 2026
access_timestamp: Fri Apr 4 19:45:00 2026
modify_timestamp: Fri Apr 4 19:45:00 2026
# 配置客户端缓存
[root@client ~]# cat > /etc/ceph/ceph.conf << 'EOF'
[client]
rbd cache = true
rbd cache size = 64M
rbd cache max dirty = 48M
rbd cache target dirty = 32M
rbd cache max dirty age = 1.0
rbd cache writethrough until flush = true
EOF
# 性能测试
[root@client ~]# rbd bench --io-type write --io-size 4M --io-threads 16 --io-total 1G rbd/image1
e学习交流加群风哥QQ113257174lapsed: 2 ops: 256 ops/sec: 128.00 bytes/sec: 512.0 MB/sec
- 合理规划PG数量
- 禁用不必要的特性
- 启用客户端缓存
- 定期创建快照备份
- 监控存储池使用情况
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
