Ceph Block Device块设备操作

使用ceph block device需要如下三个步骤:

1. 在ceph 集群的pool中创建一个Block Device image.

2. ceph Client使用RBD设备与ceph集群的Block Device image进行映射(Map)。

3. ceph Client的User Space便可以挂载(Mount)该RBD设备。

image

Step1 创建Block Device Image

首先,需要新建一个pool,如果不想新建pool,可以使用默认pool,即rbd。

命令:ceph osd pool create <creating_pool_name> <pg_num>
参数:creating_pool_name : 要创建的pool的名字
          pg_num : Placement Group的个数
   
    # ceph osd pool create testpool 512
    pool testpool' created

,需要在ceph集群中创建一个Block Device Image。(查看rbd的命令,输入 "man rbd"命令)

命令:rbd create --size {MegaBytes} {pool-name}/{image-name}

例如:在名为“testpool”的pool中创建“bar”的Image,容量是1024MB

# rbd create --size 1024 testpool/bar

查看Block Device Images

# rbd ls testpool

rbd

以及查看一个Block Device Images的详细信息

# rbd info testpool/bar
rbd image 'bar':
size 1024 MB in 256 objects
order 22 (4096 kB objects)
block_name_prefix: rbd_data.5e3b248a65f6
format: 2
features: layering
flags:

Step2 ceph Client使用RBD设备与ceph集群的Block Device image进行映射(Map)

命令: sudo rbd map rbd/myimage --id admin --keyring /path/to/keyring

例如

# sudo rbd map testpool/bar --id admin --keyring /etc/ceph/ceph.client.admin.keyring

dev/rbd0

查看已经映射的Block Device信息

# rbd showmapped
id  pool       image   snap   device   
0   testpool   bar        -       /dev/rbd0

Step3 ceph Client的User Space挂载(Mount)该RBD设备

首先,使用该block device在client-node上创建一个文件系统。

# sudo mkfs.ext4 -m0 /dev/rbd/testpool/bar
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: done                           
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1024 blocks, Stripe width=1024 blocks
65536 inodes, 262144 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
         32768, 98304, 163840, 229376

Allocating group tables: done                           
Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

其次,挂载该文件系统

# sudo mkdir /mnt/ceph-block-device
# sudo mount /dev/rbd/testpool/bar /mnt/ceph-block-device

查看mount信息

# mount

...
/dev/rbd0 on /mnt/ceph-block-device type ext4 (rw,relatime,seclabel,stripe=1024,data=ordered)

* Ceph Block Deviced的其他相关操作

To create a new rbd image that is 100 GB:

rbd create mypool/myimage --size 102400

To use a non-default object size (8 MB):

rbd create mypool/myimage --size 102400 --object-size 8M

To delete an rbd image (be careful!):

rbd rm mypool/myimage

To create a new snapshot:

rbd snap create mypool/myimage@mysnap

To create a copy-on-write clone of a protected snapshot:

rbd clone mypool/myimage@mysnap otherpool/cloneimage

To see which clones of a snapshot exist:

rbd children mypool/myimage@mysnap

To delete a snapshot:

rbd snap rm mypool/myimage@mysnap

To map an image via the kernel with cephx enabled:

rbd map mypool/myimage --id admin --keyfile secretfile

To map an image via the kernel with different cluster name other than default ceph.

rbd map mypool/myimage –cluster cluster name

To unmap an image:

rbd unmap /dev/rbd0

To create an image and a clone from it:

1rbd import --image-format 2 image mypool/parent 2rbd snap create mypool/parent@snap 3rbd snap protect mypool/parent@snap 4rbd clone mypool/parent@snap otherpool/child

To create an image with a smaller stripe_unit (to better distribute small writes in some workloads):

rbd create mypool/myimage --size 102400 --stripe-unit 65536B --stripe-count 16

To change an image from one image format to another, export it and then import it as the desired image format:

1rbd export mypool/myimage@snap /tmp/img 2rbd import --image-format 2 /tmp/img mypool/myimage2

To lock an image for exclusive use:

rbd lock add mypool/myimage mylockid

To release a lock:

rbd lock remove mypool/myimage mylockid client.2485
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Ceph Block Device块设备操作 - HelloWorld