一、安装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