块设备RBD
RBD(RADOS Block Devices)即为块存储的一种,RBD通过librbd库与OSD进行交互
创建存储池
[root@node1 ~]# ceph osd pool create myrbd1 64 64
pool 'myrbd1' created
对存储池启用rbd功能
[root@node1 ~]# ceph osd pool application enable myrbd1 rbd
enabled application 'rbd' on pool 'myrbd1'
通过rbd命令对存储池初始化
[root@node1 ~]# rbd pool init -p myrbd1
创建并验证映像
rbd存储池并不能直接用于块设备,而是需要事先在其中按需创建映像(image),并把映像文件作为块设备使用,rbd命令可用于创建,查看及删除块设备的映像(image),以及克隆映像,创建快照,将映像回滚到快照和查看快照等管理操作
# 创建一个大小为5G的映像
[root@node1 ~]# rbd create myimg1 --size 5G --pool myrbd1
# 创建映像的时候还可以开启一些特性
[root@node1 ~]# rbd create myimg2 --size 3G --pool myrbd1 --image-format 2 --image-feature layering
# 查看pool中所有的image
[root@node1 ~]# rbd ls --pool myrbd1
myimg1
myimg2
#查看指定的image信息
[root@node1 ~]# rbd --image myimg1 --pool myrbd1 info
rbd image 'myimg1':
size 5 GiB in 1280 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: ac8245f6e053
block_name_prefix: rbd_data.ac8245f6e053
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
op_features:
flags:
create_timestamp: Wed Nov 1 06:32:49 2023
access_timestamp: Wed Nov 1 06:32:49 2023
modify_timestamp: Wed Nov 1 06:32:49 2023
查看当前ceph状态
[root@node1 ~]# ceph df
--- RAW STORAGE ---
CLASS SIZE AVAIL USED RAW USED %RAW USED
ssd 477 GiB 477 GiB 109 MiB 109 MiB 0.02
TOTAL 477 GiB 477 GiB 109 MiB 109 MiB 0.02
--- POOLS ---
POOL ID PGS STORED OBJECTS USED %USED MAX AVAIL
.mgr 1 1 1.3 MiB 2 3.8 MiB 0 151 GiB
mypool 2 32 0 B 0 0 B 0 151 GiB
myrbd1 3 64 405 B 7 48 KiB 0 151 GiB
客户端使用
安装ceph-common
root@onda:~# apt install ceph-common -y
从部署服务器同步认证文件到客户端服务器
scp ceph.conf ceph.client.admin.keyring root@onda:/etc/ceph/
客户端映射img
root@onda:~# rbd -p myrbd1 map myimg2
/dev/rbd0
查看映射的结果
root@onda:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 111.3G 0 part /var/snap/firefox/common/host-hunspell
/
mmcblk0 179:0 0 58.2G 0 disk
mmcblk0boot0 179:8 0 4M 1 disk
mmcblk0boot1 179:16 0 4M 1 disk
rbd0 252:0 0 3G 0 disk # 这里多了一个3G的磁盘
在映射的磁盘上创建文件系统
root@onda:~# mkfs.ext4 /dev/rbd0
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 786432 4k blocks and 196608 inodes
Filesystem UUID: 87ecc8e0-79c8-4d14-a35e-64aa19bf32b5
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
挂载
root@onda:~# mount /dev/rbd0 /mnt
# 查看挂载情况
root@onda:~# df -TH
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 394M 2.1M 392M 1% /run
/dev/sda2 ext4 118G 19G 93G 17% /
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 5.3M 4.1k 5.3M 1% /run/lock
/dev/sda1 vfat 536M 6.4M 530M 2% /boot/efi
tmpfs tmpfs 394M 107k 394M 1% /run/user/1000
tmpfs tmpfs 394M 62k 394M 1% /run/user/0
/dev/rbd0 ext4 3.1G 25k 3.0G 1% /mnt