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版本


[[email protected] mnt]# uname -r

3.10.0-862.el7.x86_64

[[email protected] mnt]# modprobe rbd

[[email protected] mnt]#

4 客户端安装ceph-common


# yum install –y ceph-common

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

6客户端查看挂载情况


[[email protected] mnt]# rbd showmapped

id pool image snap device

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

协助ceph块存储


rbd unmap /dev/rbd0

二、文件存储建立

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


[[email protected] ceph]# uname -r

3.10.0-862.el7.x86_64

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


[[email protected] ceph]#mkdir /cephfs

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


[[email protected] 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


[[email protected] ceph]#ceph osd pool create cephfs_metadata 32

[[email protected] ceph]#ceph osd pool create cephfs_metadata 16

服务器端启动cephfs


[[email protected] ceph]#ceph fs new leadorfs cephfs_metadata cephfs

验证数据生成


[[email protected] ceph]# ceph mds stat

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

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


[[email protected] ceph]# mount -t ceph 172.16.3.61:6789:/ /cephfs -o name=admin,secret=AQC6mmJdfBzyHhAAE1GazlHqH2uD35vpL6Do1w==

6 客户端检查挂载情况


[[email protected] 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创建文件


[[email protected] ceph]# cd /cephfs/

[[email protected] cephfs]# echo "Utopa 2019" > Utopa.txt

[[email protected] cephfs]# ls

Utopa.txt

检查服务器端使用情况


[[email protected] 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

原文地址:https://www.cnblogs.com/cloud-datacenter/p/12231030.html

时间: 2024-10-14 07:57:58

ceph rbd块存储挂载及文件存储建立的相关文章

数据存储——手机外部文件存储

一.特点 1.把文件存储在手机外部存储空间(SD卡)里 2.存储的是任意类型的文件 3.使用IO输入输出流操作文件 4.文件路径 1-SD卡根目录/Android/data/包名/files/[ 文件类型],应用卸载后,数据同时被删除: 2-SD卡根目录/,应用卸载之后,数据不会被同时删除. 5.需要声明权限 1-android.permission.WRITE_EXTERNAL_STORAGE,写入文件: 2-MOUNT_UNMOUNT_FILESYSTEMS,创建和删除文件. 二.API 1

SDS趋势之二:对象存储将替代文件存储

首先什么是对象存储? 对象存储(Object Storage)是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性.跨平台性以及安全的数据共享的存储体系结构. 典型应用:网盘.云存储. 上篇文章也讲到了随着科技的发展和网络技术的进步,计算机存储空间显得愈加紧张,大规模的数据增长对存储提出了新的挑战. 大家都说IDC预测,全球的数据量正面临一个爆炸性增长,到2020年即将达到44ZB.我觉得这44ZB里面有至少一半数据来自于非结构化数据,为什么这么说呢

4、Android-数据存储方案(文件存储/SharedPreferences)

简介: 任何一个应用程序都需要和数据进行交互 对于软件来说微博.QQ等都需要关系的是数据 没有数据的应用程序是一个没有灵魂的软件 而且还没有实际的用途 可以认为是单机 4.1.持久化技术的简介 数据持久化是指将那些内存中的瞬时数据保存到存储设备中 保证手机或者电脑关机的情况下,这些数据不会丢失 保存在内存中的数据是处于瞬时状态的 保证再存储设备中的是处于持久状态的 持久化技术则提供了一种机制可以让数据再瞬时状态和持久化状态之间进行转换 持久化技术被广泛应用于各种程序设计的领域当中 Android

数据存储——手机内部文件存储

一.特点 1.存储的是任意类型的文件 2.使用IO输入输出流操作文件 3.存放的目录:/data/data/包名/files/ 4.可以设置不被其他应用操作 5.应用卸载之后,数据同时被删除 二.API 1.FileOutputStream  文件输出流 1-openFileOutput(文件名,操作模式) mode  操作模式 1>MODE_PRIVATE,不能被别的应用访问,覆盖模式 2>MODE_APPEND,不能被别的应用访问,追加模式 2-close( )关闭输出流 2.PrintS

Android==》数据存储==》File(文件)存储

public class MainActivity extends Activity { private EditText inputEditText; private Button btn; private TextView showView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.act

zz``块存储、文件存储、对象存储这三者的本质差别是什么?

本质是一样的,底层都是块存储,只是在对外接口上表现不一致,分别应用于不同的业务场景. 分布式存储的应用场景相对于其存储接口,现在流行分为三种: 对象存储: 也就是通常意义的键值存储,其接口就是简单的GET.PUT.DEL和其他扩展,如七牛.又拍.Swift.S3 块存储: 这种接口通常以QEMU Driver或者Kernel Module的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的

块存储、文件存储、对象存储这三者的本质差别是什么

块存储:类似硬盘,需要挂载,可以分区,需要格式化,之后方可使用 文件存储:用自己的文件系统组织文件,只要支持协议并有许可,就可以使用,通常是通过网络: 对象存储:类似文件存储,但是有所区别.首先,不使用文件系统的层级方式组织文件,而是扁平化,通过id直接查找:然后是访问资源的方式,通常是用http和rest方式直接访问. 参考:https://www.zhihu.com/question/21536660 原文地址:https://www.cnblogs.com/ihibin/p/8759180

kubernetes挂载ceph rbd和cephfs的方法

[toc] k8s挂载Ceph RBD k8s挂载Ceph RBD有两种方式,一种是传统的PV&PVC的方式,也就是说需要管理员先预先创建好相关PV和PVC,然后对应的deployment或者replication来挂载PVC使用.而在k8s 1.4以后,kubernetes提供了一种更加方便的动态创建PV的方式,即StorageClass.使用StorageClass时无需预先创建固定大小的PV来等待使用者创建PVC使用,而是直接创建PVC即可使用. 需要说明的是,要想让k8s的node节点执

阿里云文件存储(NAS)助力业务系统承载双十一尖峰流量

2018天猫双11全球狂欢节,全天成交额再次刷新纪录达到2135亿元,其中总成交额在开场后仅仅用了2分05秒即突破100亿元,峰值的交易量达到惊人的高度,背后离不开阿里云大数据计算和存储能力的支撑.在整个交易的链路上,账单业务是一个重要的环节,尤其对商家系统来说,需要定期对账,账单子系统出现一点点问题都会影响商家的运营,2018的双十一,承载账单的消息系统把全网卖家账单系统60%的流量托付给了阿里云文件存储.在11日0点的峰值交易时刻,账单消息系统的写入流量瞬间达到日常流量的60倍以上,阿里云文