RBD快速开始

Ceph Block Device也称为RBD 或RADOS Block Device

你一定不能在同一台机器上运行ceph集群与ceph client端,因为会死锁。

1.安装ceph

1.校验lunix内核版本,看看是否满足要求

lsb_release -a
uname -r

2.在admin node,使用ceph-deploy去在ceph client节点上安装ceph

ceph-deploy install ceph-client

3.在admin node,使用ceph-deploy去拷贝ceph配置文件与ceph.client.admin.keyring到ceph client节点:

ceph-deploy admin ceph-client

ceph-deploy会拷贝keyring到/etc/ceph文件夹洗哦啊。确保keyring文件拥有读的权限(例如,sudo chmod +r /etc/ceph/ceph.client.admin.keyring)

2.创建一个block device pool

1.在admin node,使用ceph工具去创建一个pool(官方建议取名为’rbd’)

ceph osd pool create rbd 128

2.在admin节点,使用rbd工具去初始化这个pool为RBD:

rbd pool init <pool-name>

不加时默认为rbd

3.配置一个block device

1.在ceph-client节点,创建一个block device image

rbd create foo --size 4096 --image-feature layering [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
  • –size -s 指定大小,默认单位为m
  • -p 指定pool,不加时默认为rbd
  • -m -k 使用时去掉中扩号
  • 这个镜像,实际上以对象形式存在ceph里,里面存着数据。当映射到块设备如/dev/rbd0,再mount到某路径下时,实际上该路径下到数据都是image里的数据。

2.在ceph-client节点,映射image到一个块设备

sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]

–name 指定用户

执行这一步之后,就会根据这个image生成一个硬盘设备

3.在ceph client节点通过格式化来使用block device

sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo

This may take a few moments.

4.挂载这个文件系统到ceph-client节点

sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device

5.可选,当重启时block device自动生成并挂载

要点

  • image才是存储数据的东西,所以映射的硬件不重要,所有的变更都会存入image里面
  • image也是以对象的形式被存储在rados里的
  • 同一个image可以被多个节点映射多次。映射出的硬件里的数据都是同样的
  • 当多个硬件都是同一个image映射出的,改变里面的数据,image里的数据随之改变,但是其他硬件里的东西不会随着改变,除非先unmap再map才会更新最新的数据

你可能感兴趣的:(ceph)