一、安装ceph

客户端安装ceph-common包

# dnf install ceph-common

注意:安装ceph-common软件包与Ceph集群软件版本要一致



二、创建池与块设备

创建一个新的存储池作为磁盘使用

[root@ceph01 ~]# ceph osd pool create k8s_rbd 32 32 # 两个 32 指定的 pg 和 pgp 的数量
[root@ceph01 ~]# ceph osd pool application enable k8s_rbd rbd

下面的命令创建了一个 2G 大小的磁盘,image-feature 参数指定的是 RBD 镜像的功能特性,很多功能特性只有高版本的 Linux kernel 才支持,甚至有些都没有 kernel 版本支持,所以只打开最基本的 layering 即可

[root@ceph01 ~]# rbd create k8s_rbd/k8s_dev --size 2G --image-feature=layering

创建并授权一个用户可访问rbd存储池ks8_rbd

[root@ceph01 ~]# ceph auth add client.k8s_user mon "allow r" osd "allow * pool=k8s_rbd"

创建用户client.k8s_user,对OSD有所有的权限,对Mon有只读的权限

修改权限:

ceph auth caps client.k8s_user osd "allow * pool=k8s_rbd" mon "allow r"

导出用户信息到keyring文件

[root@ceph01 ~]# ceph auth get client.k8s_user -o ceph.client.k8s_user.keyring

将用户的ceph.client.k8s_user.keyring文件和ceph.conf文件复制到客户端的/etc/ceph目录



三、挂载块设备

将远端的 RBD 磁盘挂载到本地

[root@master01 ~]# rbd -p k8s_rbd --keyring /etc/ceph/ceph.client.k8s_user.keyring --user k8s_user map ceph_dev
/dev/rbd0

查看rbd映射的信息

[root@master01 ~]# rbd showmapped

格式化并挂载

[root@master01 ~]# mkfs.ext4 /dev/rbd0
[root@master01 ~]# mkdir /data
[root@master01 ~]# mount /dev/rbd0 /data/

查看挂载结果

[root@master01 ~]# df -h
/dev/rbd0       2.0G  6.0M  1.8G   1% /data

[root@master01 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   15G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0  1.5G  0 part 
└─sda3   8:3    0 12.5G  0 part /
sr0     11:0    1 1024M  0 rom  
rbd0   253:0    0    2G  0 disk /data