RBD块设备在Ceph分布式存储中的具体应用


确保集群状态正常(具体配置过程略):
可参照 https://blog.51cto.com/jdonghong/244175 上半部分配置。
CEPH环境配置
开始部署RBD or RADOS Block Device

客户端安装ceph(本案例客户端为192.168.27.210,192.168.26.112)
ceph-deploy install bddb.com
推送配置文件到客户端。
[[email protected] idc-cluster]# ceph-deploy admin bddb.com


客户端创建rdb块镜像设备

[[email protected] ceph]# rbd create idc --size 4096 --image-feature layering
[[email protected] ceph]# rbd ls
idc
[[email protected] ceph]#
客户端映射创建的块镜像设备
[[email protected] ceph]# rbd map idc
/dev/rbd0
[[email protected] ceph]#

格式化块设备创建文件系统(客户端节点上)。
[[email protected] ceph]# mkfs.xfs /dev/rbd0

挂载目录:[[email protected] ceph]# mount /dev/rbd/rbd/idc /ceph/rbd

查看状态并存放或创建测试文件:


[[email protected] ceph]# ls /ceph
rbd rbd2
[[email protected] ceph]# ls /ceph -l
total 0
drwxr-xr-x 2 ceph ceph 6 Aug 23 11:17 rbd
drwxr-xr-x 2 ceph ceph 6 Aug 26 10:01 rbd2
[[email protected] ceph]# mount /dev/rbd
rbd/ rbd0
[[email protected] ceph]# mount /dev/r
random raw/ rbd/ rbd0 rtc rtc0
[[email protected] ceph]# mount /dev/rbd
rbd/ rbd0
[[email protected] ceph]# mount /dev/rbd/rbd/idc /ceph/rbd
[[email protected] ceph]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 60G 32G 29G 53% /
/dev/sda5 60G 3.5G 57G 6% /data
/dev/sda1 497M 148M 350M 30% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/rbd0 3.9G 16M 3.6G 1% /ceph/rbd
[[email protected] ceph]# ls

ceph.client.admin.keyring ceph.conf rbdmap tmp3nza8m tmpGs8qYv tmpNTb5P9 tmpOJovru
[[email protected] ceph]# cd /ceph/rbd
[[email protected] rbd]# ls
123.txt 1.txt lost+found my1.txt my2.txt my3.txt
[[email protected] rbd]# rbd map isc
/dev/rbd1
[[email protected] rbd]# lsblk -f

NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 5f75d5de-3e02-43e3-a36d-57bc39e9a5ae /boot
├─sda2 xfs bab8e8ae-cb5e-4299-b879-54960f1a24b9 /
├─sda3 swap ce44af87-b8a7-40d2-8504-1c8fae81f613 [SWAP]
├─sda4
└─sda5 xfs cb8c9f72-8154-4ae9-aa57-54703dedfd06 /data
sr0
rbd0 ext4 cf1f5bc8-5dd1-44d4-87a6-0c55d39405fe /ceph/rbd
rbd1 xfs 42989fcc-0746-4848-a957-0c01704865b8
[[email protected] rbd]# mount /dev/rbd
rbd/ rbd0 rbd1
[[email protected] rbd]# mount /dev/rbd/rbd/isc
123.txt 1.txt lost+found/ my1.txt my2.txt my3.txt
[[email protected] rbd]# mount /dev/rbd/rbd/isc /ceph/rbd
rbd/ rbd2/
[[email protected] rbd]# mount /dev/rbd/rbd/isc /ceph/rbd2/
[[email protected] rbd]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 60G 32G 29G 53% /
/dev/sda5 60G 3.5G 57G 6% /data
/dev/sda1 497M 148M 350M 30% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/rbd0 3.9G 16M 3.6G 1% /ceph/rbd
/dev/rbd1 10G 33M 10G 1% /ceph/rbd2
[[email protected] rbd]# cd /ceph/rbd2/
[[email protected] rbd2]# ls
[[email protected] rbd2]# touch {1..3}.txt
[[email protected] rbd2]# ls
1.txt 2.txt 3.txt
[[email protected] rbd2]# echo my test >1.txt
[[email protected] rbd2]# ls
1.txt 2.txt 3.txt
[[email protected] rbd2]# cat 1.txt
my test
[[email protected] rbd2]#


再在另一个客户端映射块设备并挂载,观察RBD效果:
首先在另一个客户端观察设备镜像状态:
[[email protected] rbd]# rbd ls
idc
isc
[[email protected] rbd]# rbd info idc isc
rbd: too many arguments
[[email protected] rbd]# rbd info idc
rbd image ‘idc‘:
size 4096 MB in 1024 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.85456b8b4567
format: 2
features: layering
flags:
[[email protected] rbd]# rbd info isc
rbd image ‘isc‘:
size 10240 MB in 2560 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.148a56b8b4567
format: 2
features: layering
flags:
[[email protected] rbd]#
映射rbd块镜像设备到本机(map)
[[email protected] rbd]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
fd0
sda
├─sda1 xfs fb314ba6-93e0-4d7d-bb80-9c6e5a92fd61 /boot
└─sda2 LVM2_member 3Zne0f-m5MZ-OP67-TQ2a-Lnzr-SGME-UNJnMK
├─centos-root xfs d009c83b-2ca3-4642-a956-9f967fa249e6 /
├─centos-swap swap cf124d61-2df9-44a4-bba2-cee94056f547 [SWAP]
└─centos-data xfs 538b2348-c8cd-4755-9ba9-2f3b10fb8f33 /data
sr0
rbd0 ext4 cf1f5bc8-5dd1-44d4-87a6-0c55d39405fe /ceph/rbd
[[email protected] rbd]# rbd map isc
/dev/rbd1
[[email protected] rbd]#


查看map后的映射效果:
[[email protected] rbd]# lsblk -f


挂载映射设备并观察效果:(注意这里无需再格式,因为在另一个客户端已经格式化,生成文件系统类型,否则会造成数据破坏,甚至报错及集群出错等可能)
[[email protected] rbd]# mount /dev/rbd/rbd/isc /ceph/rbd2
[[email protected] rbd]# df -h


进入挂载目录观察另一客户端创建的文件及内容是否存在:
[[email protected] rbd]# cd /ceph/rbd2/
[[email protected] rbd2]# ls
1.txt 2.txt 3.txt
[[email protected] rbd2]# cat 1.txt
my test
[[email protected] rbd2]#


切到另一个客户端观察文件变化:

文件内容无变化,尝试重新映射观察变化:
[[email protected] rbd2]# cd
[[email protected] ~]# umount /ceph/rbd2/
[[email protected] ~]# rbd unmap isc
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 60G 32G 29G 53% /
/dev/sda5 60G 3.5G 57G 6% /data
/dev/sda1 497M 148M 350M 30% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/rbd0 3.9G 16M 3.6G 1% /ceph/rbd
[[email protected] ~]#

重新映射后文件内容更新了:
[[email protected] ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 5f75d5de-3e02-43e3-a36d-57bc39e9a5ae /boot
├─sda2 xfs bab8e8ae-cb5e-4299-b879-54960f1a24b9 /
├─sda3 swap ce44af87-b8a7-40d2-8504-1c8fae81f613 [SWAP]
├─sda4
└─sda5 xfs cb8c9f72-8154-4ae9-aa57-54703dedfd06 /data
sr0
rbd0 ext4 cf1f5bc8-5dd1-44d4-87a6-0c55d39405fe /ceph/rbd
rbd1 xfs 42989fcc-0746-4848-a957-0c01704865b8
[[email protected] ~]# mount /dev/rbd/rbd/isc /ceph/rbd2/
[[email protected] ~]# cd /ceph/rbd2/
[[email protected] rbd2]# ls
1.txt 2.txt 3.txt
[[email protected] rbd2]# cat 1.txt
my test
my test
my test
my test
my test

观察编辑同一文件效果:

并无提示
更改内容:

出现不一致。
扩(缩)容:
[[email protected] ~]# rbd resize --size 20480 rbd/idc

[[email protected] ~]# rbd info idc
rbd image ‘idc‘:
size 20480 MB in 5120 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.85456b8b4567
format: 2
features: layering
flags:
[[email protected] ~]# resize2fs /dev/rbd0

查看文件依旧存在:
[[email protected] ~]# cd /ceph/rbd
[[email protected] rbd]# ls
123.txt 1.txt lost+found my1.txt my2.txt my3.txt
[[email protected] rbd]# cat my1.txt
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.27.210 master
192.168.27.211 client1
192.168.27.212 client2
192.168.27.213 client3
192.168.26.112 BDDB.com
192.168.26.112 bddb.com bddb

小结: rbd能实现在多客户端远程访问rbd块设备映射做为本地存储设备挂载使用,但不支持同一时刻多客户端同时挂载使用,会出现数据异步的情况,导致数据错乱,因此是非共享型异步传输方式,rbd支持在线扩(缩)容,最新ceph支持 layering,striping exclusive lock, object map,fast diff ,deep-flatten 等新的new features
layering。

原文地址:https://blog.51cto.com/jdonghong/2441790

时间: 2024-12-11 07:01:12

RBD块设备在Ceph分布式存储中的具体应用的相关文章

Ceph实践总结之:Centos 下RBD块设备客户端的配置

在进行本章的操作之前,要先完成基本集群的搭建,请参考http://blog.csdn.net/eric_sunah/article/details/40862215 Ceph的块设备又称为 RBD 或是RADOS. 块设备 实验的过程中,可以用虚拟机来作为ceph-client的节点,但是为了保证集群的稳定,不要在集群的节点上做下面的操作 安装Ceph 通过 OS Recommendations 判断你的客户端的OS是否满足基本的要求. 在管理节点使用 ceph-deploy 在ceph-cli

006 管理Ceph的RBD块设备

一, Ceph RBD的特性 支持完整和增量的快照 自动精简配置 写时复制克隆 动态调整大小 二.RBD基本应用 2.1 创建RBD池 [root@ceph2 ceph]# ceph osd pool create rbd 64 pool 'rbd' created [root@ceph2 ceph]# ceph osd pool application enable rbd rbd enabled application 'rbd' on pool 'rbd' 2.2 客户端验证 [root@

ceph 部署后rbd块设备读写只有10M左右,慢的更龟速一样,怎样解决!,求各位博友指点……,感激不尽……

1先描述下我的部署环境: 2台OSD,1台monitor,1台管理服务器,1台client,都是24核,64G内存,1.6T的SSD闪存卡,千兆网卡:目前安装的ceph版本是 0.94.7. 2 目前的现状 我用dd命令写5G数据,使用iostat 观察到%util 立马100%呀,同时await指标都是4000多,而且此时网络带宽也才使用10M左右. 使用fio工具顺序写1G的数据,测试出的bw只有7M多,iops只有800多, fio --name=seqWrite --filename=/

Ceph集群块设备使用-创建和使用OSD

创建Ceph块设备 [[email protected] ~]# rbd create block-device4 --size 5G --image-format 1 rbd: image format 1 is deprecated 查看块设备信息 [[email protected] ~]# rbd --image block-device4 info rbd image 'block-device4': size 5120 MB in 1280 objects order 22 (409

译:块设备和 OpenStack

libvirt 配置了 librbd 的 QEMU 接口,通过它可以在 OpenStack 中使用 Ceph 块设备镜像.Ceph 块设备镜像被当作集群对象,这意味着它比独立的服务器有更好的性能. 在 OpenStack 中使用 Ceph 块设备,必须首先安装 QEMU,libvirt 和 OpenStack.建议 OpenStack 安装的时候使用独立的物理节点.OpenStack 节点建议最小 8G RAM和四核处理器.下图描述了 OpenStack 和 Ceph 技术层次. Importa

使用ceph-deploy安装部署线上ceph分布式存储集群(centos6.6)

一:CEPH简介 OSDs: Ceph的OSD守护进程(OSD)存储数据,处理数据复制,恢复,回填,重新调整,并通过检查其它Ceph OSD守护程序作为一个心跳 向Ceph的监视器报告一些检测信息.Ceph的存储集群需要至少2个OSD守护进程来保持一个 active + clean状态.(Ceph默认制作2个备份,但你可以调整它) Monitors:Ceph的监控保持集群状态映射,包括OSD(守护进程)映射,分组(PG)映射,和CRUSH映射. Ceph 保持一个在Ceph监视器, Ceph O

Smart210学习记录------块设备

转自:http://bbs.chinaunix.net/thread-2017377-1-1.html 本章的目的用尽可能最简单的方法写出一个能用的块设备驱动.所谓的能用,是指我们可以对这个驱动生成的块设备进行mkfs,mount和读写文件.为了尽可能简单,这个驱动的规模不是1000行,也不是500行,而是100行以内. 这里插一句,我们不打算在这里介绍如何写模块,理由是介绍的文章已经满天飞舞了.如果你能看得懂.并且成功地编译.运行了这段代码,我们认为你已经达到了本教程的入学资格,当然,如果你不

linux块设备的IO调度算法和回写机制

************************************************************************************** 參考: <Linux内核设计与实现> http://laokaddk.blog.51cto.com/368606/699028/ http://www.cnblogs.com/zhenjing/archive/2012/06/20/linux_writeback.html *************************

LINUX块设备驱动&lt;6&gt;

转自:http://blog.chinaunix.net/uid-15724196-id-128144.html 第6章 +---------------------------------------------------+|                 写一个块设备驱动                  |+---------------------------------------------------+| 作者:赵磊