0%

ceph-rbd

简介

创建rbd-pool, 创建image

CREATE A BLOCK DEVICE POOL

1
$ rbd pool init <pool-name>

CREATE A BLOCK DEVICE USER

这部分我的理解还不够,暂时略过。直接参考官方文档会更好。

CREATING A BLOCK DEVICE IMAGE

1
$ rbd create --size {megabytes} {pool-name}/{image-name}

实例

1
rbd create nrbd.img --size 50G --pool rbd-pool

(我好像更喜欢各种风格的命令)

LISTING BLOCK DEVICE IMAGES

1
2
3
4
5
[root@ceph01 etc]# rbd ls --pool rbd-pool
bar
nnrbd.img
nrbd.img
rbd.img
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@ceph01 etc]# rbd info nnrbd.img --pool rbd-pool
rbd image 'nnrbd.img':
size 50 GiB in 12800 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: cb6eaf54bbe4
block_name_prefix: rbd_data.cb6eaf54bbe4
format: 2
features: layering, exclusive-lock
op_features:
flags:
create_timestamp: Mon Feb 27 11:09:59 2023
access_timestamp: Mon Feb 27 11:09:59 2023
modify_timestamp: Mon Feb 27 11:09:59 2023

客户端挂载

参考这篇博客可以知道

1
cephadmin@ceph-deploy:~/ceph-cluster$ sudo scp ceph.conf ceph.client.admin.keyring root@192.168.1.180:/etc/ceph/

是需要把这些配置文件复制到客户端。
ok,我按照这样的操作执行啦。可是接下来的命令不能work。然后我就尝试了好多方法,去定位问题。我去看官方文档,但是似乎并没有合适的解决方法。
直到今天早上灵机一动。我想到了server-client通信的问题。所以我就恍然大悟啦。
既然要通信,那必须有网络(软件抽象),有网卡(硬件抽象)。那么ceph的通信是需要两个网络的,一个public ip,一个private ip。所以需要在客户端添加一个private ip.

ip配置

参考链接
查看网卡配置文件

1
2
3
[root@localhost etc]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cat ifcfg-
ifcfg-ens18 ifcfg-eth0 ifcfg-lo

重启网络

1
systemctl restart network

检查ceph连接状况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@localhost etc]# ceph -s
cluster:
id: ba39b878-7aa9-45c3-b9d9-dab4a59bce4f
health: HEALTH_OK

services:
mon: 1 daemons, quorum mon1 (age 3d)
mgr: mon1(active, since 3d)
osd: 6 osds: 6 up (since 3d), 6 in (since 3d)
rgw: 1 daemon active (1 hosts, 1 zones)

data:
pools: 10 pools, 241 pgs
objects: 1.51k objects, 4.7 GiB
usage: 605 GiB used, 4.1 TiB / 4.7 TiB avail
pgs: 241 active+clean

io:
client: 27 KiB/s rd, 31 op/s rd, 0 op/s wr

新的问题

下一步我打算下载fio。但是遇到了新的错误。

1
2
3
$ yum install fio
ndctl-libs-65-5.el7.x86_64.rpm FAILED
https://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/Packages/ndctl-libs-65-5.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.tuna.tsinghua.edu.cn; Unknown error"

这错误上周也有遇到过。当时尝试了很多的错误方法,首先我认为是镜像源的问题,于是尝试更换了阿里镜像源,网易镜像源。但是都不行。因为看到是curl报的错,我还认为是curl的问题。
但是今天这个场景我就想到了是DNS的问题,因为我新添加的网卡没有配置DNS地址。

尝试ping百度也不行

1
2
[root@localhost etc]# ping www.baidu.com
ping: www.baidu.com: Name or service not known

修复方法
参考 stackexchange,stackoverflow

1
2
3
4
5
6
7
8
9
10
[root@localhost etc]# cat resolv.conf
# Generated by NetworkManager
search domain.name
nameserver 8.8.8.8
nameserver 1.1.1.1
nameserver 1.0.0.1
[root@localhost etc]# systemctl restart NetworkManager
[root@localhost etc]# ping www.baidu.com
PING www.a.shifen.com (180.101.50.242) 56(84) bytes of data.
64 bytes from 180.101.50.242 (180.101.50.242): icmp_seq=1 ttl=53 time=2.46 ms

(其实我最初的想法是添加路由,但是好像不太行)

当你对一个东西很熟悉的时候,解决问题的灵感自然就来了。