Ceph集群管理之块存储管理

110 阅读3分钟

块设备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