百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

ceph rbd块存储挂载及文件存储建立

wptr33 2025-05-16 16:46 16 浏览

ceph rbd块存储挂载及文件存储建立

一、rbd块存储挂载

1 创建一个OSD pool

# ceph osd pool create rbd1 128

查询存储空间使用

# ceph df

GLOBAL:

SIZE AVAIL RAW USED %RAW USED

480GiB 474GiB 6.12GiB 1.28

POOLS:

NAME ID USED %USED MAX AVAIL OBJECTS

volumes 1 134B 0 150GiB 5

vms 2 0B 0 150GiB 0

images 3 0B 0 150GiB 0

rbd1 4 14.3MiB 0 150GiB 19

rbd 5 0B 0 150GiB 0


2 创建一个名为ceph-client1-rbd1、大小为1024

rbd create ceph-client1-rbd1 --size 1024 -p rdb1

要列出RBD镜像,输入下列的命令

# rbd -p rbd1 ls

ceph-client1-rbd1

ceph-client1-rbd2

检看一个RBD镜像的详细信息

# rbd --image ceph-client1-rbd1 info

rbd: error opening image ceph-client1-rbd1: (2) No such file or directory

# rbd --image ceph-client1-rbd1 -p rbd1 info

rbd image 'ceph-client1-rbd1':

size 1GiB in 256 objects

order 22 (4MiB objects)

block_name_prefix: rbd_data.5b5756b8b4567

format: 2

features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

flags:

create_timestamp: Tue Oct 1 12:03:52 2019


3 客户端查看linux版本

[root@centos7 mnt]# uname -r

3.10.0-862.el7.x86_64

[root@centos7 mnt]# modprobe rbd

[root@centos7 mnt]#

4 客户端安装ceph-common

# yum install –y ceph-common

5 客户端挂载rbd硬盘并使用


6客户端查看挂载情况


[root@centos7 mnt]# rbd showmapped

id pool image snap device

0 rbd1 ceph-client1-rbd2 - /dev/rbd0


协助ceph块存储

rbd unmap /dev/rbd0


二、文件存储建立


1 检查客户端的linux内核版本:

[root@centos7 ceph]# uname -r

3.10.0-862.el7.x86_64

2 客户端创建挂载点目录:

[root@centos7 ceph]#mkdir /cephfs

跟使用块存储服务一样,客户端需要从服务器端拷贝以下2个文件到/etc/ceph/

[root@centos7 ceph]# ls

ceph.client.admin.keyring ceph.conf


3 服务器端及客户端,修改管理员密钥(生产环境需要创建普通账号并给予权限,这里例子暂时以管理员账号测试)

vi /etc/ceph/ceph.client.admin.keyring

[client.admin]

key = AQC6mmJdfBzyHhAAE1GazlHqH2uD35vpL6Do1w==

auid = 0

caps mds = "allow"

caps mon = "allow *"

caps osd = "allow *"

4 在服务器端创建cephfs OSD pool,保护数据及元数据2个pool

[root@ceph1 ceph]#ceph osd pool create cephfs_metadata 32

[root@ceph1 ceph]#ceph osd pool create cephfs_metadata 16

服务器端启动cephfs

[root@ceph1 ceph]#ceph fs new leadorfs cephfs_metadata cephfs

验证数据生成

[root@ceph1 ceph]# ceph mds stat

leadorfs-1/1/1 up {0=ceph1=up:active}


5 客户端挂载文件存储(目标地址可以输入集群mon多个地址)

[root@ceph1 ceph]# mount -t ceph 172.16.3.61:6789:/ /cephfs -o name=admin,secret=AQC6mmJdfBzyHhAAE1GazlHqH2uD35vpL6Do1w==

6 客户端检查挂载情况

[root@centos7 ceph]# df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 17G 1.2G 16G 7% /

devtmpfs 1.9G 0 1.9G 0% /dev

tmpfs 1.9G 0 1.9G 0% /dev/shm

tmpfs 1.9G 12M 1.9G 1% /run

tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup

/dev/sda1 1014M 142M 873M 14% /boot

tmpfs 378M 0 378M 0% /run/user/0

172.16.3.61:6789:/ 150G 0 150G 0% /cephfs

7 客户端在/cephfs创建文件

[root@centos7 ceph]# cd /cephfs/

[root@centos7 cephfs]# echo "Utopa 2019" > Utopa.txt

[root@centos7 cephfs]# ls

Utopa.txt

检查服务器端使用情况

[root@ceph1 ceph]# ceph df

GLOBAL:

SIZE AVAIL RAW USED %RAW USED

480GiB 474GiB 6.12GiB 1.28

POOLS:

NAME ID USED %USED MAX AVAIL OBJECTS

volumes 1 134B 0 150GiB 5

vms 2 0B 0 150GiB 0

images 3 0B 0 150GiB 0

rbd1 4 14.3MiB 0 150GiB 19

rbd 5 0B 0 150GiB 0

cephfs 6 11B 0 150GiB 1

cephfs_metadata 7 5.73KiB 0 150GiB 21


三、rdb map出錯rbd sysfs write failed


創建了一個rbd鏡像1

然後,在Ceph client端將該rbd鏡像映射為本地設備時出錯。

  1. $ rbd map docker_test --name client.admin

  2. rbd: sysfs write failed
  3. RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
  4. In some cases useful info is found in syslog - try "dmesg | tail" or so.

原因:

rbd鏡像的一些特性,OS kernel並不支持,所以映射失敗。我們查看下該鏡像支持了哪些特性。可以看到特性feature一欄,由於我OS的kernel只支持layering,其他都不支持,所以需要把部分不支持的特性disable掉。

方法一:

直接diable這個rbd鏡像的不支持的特性:

$ rbd feature disable docker_test exclusive-lock object-map fast-diff deep-flatten

方法二:

創建rbd鏡像時就指明需要的特性,如:

$ rbd create --size 4096 docker_test --image-feature layering

方法三:

如果還想一勞永逸,那麽就在執行創建rbd鏡像命令的服務器中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加

rbd_default_features = 1

再創建rdb鏡像。

$ rbd create --size 4096 docker_test

通過上述三種方法後,查看rbd鏡像的信息。

  1. $ rbd info docker_test

  2. rbd image 'docker_test':
  3. size 4096 MB in 1024 objects
  4. order 22 (4096 kB objects)
  5. block_name_prefix: rbd_data.43a22ae8944a
  6. format: 2
  7. features: layering
  8. flags:

次嘗試映射rdb鏡像到本地塊設備,成功!

  1. $ rbd map docker_test --name client.admin

  2. /dev/rbd0

相关推荐

MYSQL术语介绍:dynamic row format

InnoDB行格式。因为可变长度列值存储在保存行数据的页面之外,所以对于包含大对象的行非常有效。由于通常不会访问大字段来评估查询条件,因此不会经常将它们带入缓冲池,从而减少I/O操作并更好地利用缓...

阿里面试:MySQL Binlog有哪些格式?底层原理?优缺点?

binlog的格式也有三种:STATEMENT、ROW、MIXED,下面我详解binlog三种模式@mikechenStatement模式Statement模式:是基于SQL语句的复制(statem...

Mysql日期格式化显示“年月”(mysql日期格式化)

数据库中存储格式为DATE,如果只显示年月,就需要将日期数据格式化。下面通过两种方式对其格式化显示:...

看完这篇还不懂 MySQL 主从复制,可以回家躺平了

我们在平时工作中,使用最多的数据库就是MySQL...

MySQL binlog format (Statement、Row、Mixed) 二进制日志格式

MySQL的binlog日志作用是用来记录MySQL内部增删改查等对MySQL数据库有更新的内容的记录(对数据库的改动),对数据库的查询select或show等不会被binlog日志记录,主要用于数据...

性能优化-界面卡顿和丢帧(Choreographer 代码检测)

标签:ChoreographerUI卡顿UI丢帧本文将介绍3个知识点:获取系统UI刷新频率检测UI丢帧和卡顿输出UI丢帧和卡顿堆栈信息...

使用Java分析器优化代码性能,解决OOM问题

背景最近我一直在做性能优化,对一个单机应用做性能优化。主要是涉及到解析和导入导出相关的业务。大致说一下这个单机应用干嘛的:制作票样,类似于答题卡。发给某些人填写,然后通过单机python图像识别存到数...

面试必问的HashCode技术内幕(hashmap面试题原理)

3hashCode的内幕tips:面试常问/常用/常出错...

实战Netty!基于私有协议,怎样快速开发网络通信服务

私有协议编写目的本文档用于描述边缘计算单元(以下简称边缘盒)与上位机配置软件(以下简称上位机)之间进行的数据交互通信协议。通信方式...

C#工控上位机系列(2)- 串口通信/监控工具

工控机通常都带有很多串口(10个),而且可以通过Moxa卡扩展串口.但Moxa的串口和电脑自带的串口还是有点区别C#里面没区别,但之前VB6的MSComm控件有时就会有不一样的地方.支持串口通讯...

Java加密与解密之消息摘要算法1(消息摘要(hash函数编码法),又称数字指纹 ( ))

消息摘要算法有3大类,分别是:MD、SHA、MAC,通常用于数据完整性的验证。MD:MessageDigest消息摘要算法。包括:MD2,MD4,MD53种算法。SHA:SecureHashA...

zookeeper的Leader选举源码解析(zookeeper角色选举角色包括)

作者:京东物流梁吉超zookeeper是一个分布式服务框架,主要解决分布式应用中常见的多种数据问题,例如集群管理,状态同步等。为解决这些问题zookeeper需要Leader选举进行保障数据的强一致...

Java 中五种最常见加密算法:原理、应用与代码实现

引言在现代软件开发中,数据安全至关重要。无论是用户密码存储、敏感信息传输,还是系统间的通信,加密技术都扮演着核心角色。Java作为广泛使用的编程语言,通过javax.crypto和java.s...

干货|6招学会调用NFC的各个功能(调出nfc)

现在越来越多的手机支持NFC功能,这种轻松、安全、迅速的通信的无线连接技术,能够让我们的手机替代门禁卡、公交卡、银行卡甚至是车钥匙,那么怎么让APP中能够调用这个功能呢?今天小编就来教给大家!...

一文读懂流媒体协议之RTP 协议(rtp流媒体服务器)

一、简介1.1RTPRTP全名是Real-timeTransportProtocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。...