在Ubuntu 18.04上安装和配置Ceph块设备

在本指南中,我们将学习如何在Ubuntu 18.04上安装和配置Ceph块设备。 Ceph块设备 是Ceph Storage Cluster的部署选项之一。其他部署包括 Ceph对象存储Ceph文件系统

Ceph块设备也称为 Reliable Autonomic Distributed Object Store (RADOS) Block Device (RBD)。他们使用 librbd 图书馆。

可以像安装普通硬盘一样将Ceph挂载为块设备。将数据写入Ceph块设备时,会在Ceph存储群集中的多个对象存储设备(OSD)中剥离数据。

RBD与KVM集成,因此可用于为云计算系统(例如OpenStack)提供块存储设备

在Ubuntu 18.04上安装和配置Ceph块设备

在继续之前,请确保您具有正在运行的Ceph存储集群。

请遵循以下指南,了解如何在Ubuntu 18.04上安装和设置Ceph Storage Cluster。

在Ubuntu 18.04上设置三节点Ceph存储集群

部署架构

准备Ceph客户端以进行Ceph部署

创建Ceph部署用户

在Ceph客户端上,创建具有无密码sudo权限的ceph用户,以安装ceph软件包和配置,就像在Ceph OSD节点上所做的一样。 不要使用用户名 ceph 因为它是保留的

更换 cephadmin 用户名。

useradd -m -s /bin/bash cephadmin
passwd cephadmin
echo -e "Defaults:cephadmin !requirettyncephadmin ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers.d/cephadmin
chmod 0440 /etc/sudoers.d/cephadmin

配置时间同步

为了确保Ceph群集和Ceph客户端之间的时间同步,请将Ceph客户端配置为使用与Ceph群集相同的NTP服务器。

apt install chrony
vim /etc/chrony/chrony.conf
...
# pool ntp.ubuntu.com        iburst maxsources 4
# pool 0.ubuntu.pool.ntp.org iburst maxsources 1
# pool 1.ubuntu.pool.ntp.org iburst maxsources 1
# pool 2.ubuntu.pool.ntp.org iburst maxsources 2
pool ntp.kifarunix-demo.com iburst
...

重新启动并启用chronyd以在系统引导上运行。

systemctl enable chronyd
systemctl restart chronyd

安装Python 2

在Ubuntu 18.04上部署Ceph需要Python 2。您可以通过执行以下命令来安装Python 2。

apt install python-minimal

设置无密码SSH登录到Ceph客户端

以您在Ceph Admin节点上创建的Ceph用户身份登录,生成无密码的SSH密钥并将其复制到客户端。

我们已经在关于在Ubuntu 18.04上设置Ceph集群的指南中做到了这一点。如果您按照指南进行操作,只需更新用户SSH配置文件, ~/.ssh/config,以及Ceph客户端的连接详细信息。

su - cephadmin
vim ~/.ssh/config
Host ceph-osd01
   Hostname ceph-osd01
   User cephadmin
Host ceph-osd02
   Hostname ceph-osd02
   User cephadmin
Host ceph-osd03
   Hostname ceph-osd03
   User cephadmin
Host ceph-client
   Hostname ceph-client
   User cephadmin

如果您没有DNS服务器,请更新hosts文件。

echo "192.168.2.118 ceph-client.kifarunix-demo.com ceph-client" >> /etc/hosts

接下来,将SSH密钥复制到Ceph客户端。

ssh-copy-id ceph-client

在Ceph管理节点上安装Ceph实用工具

在Ceph Admin节点上运行以下命令,以安装用于挂载ceph存储集群并与之交互的通用实用程序。这些由包装提供, ceph-common

sudo apt install ceph-common

在Ceph客户端上安装Ceph

通过运行以下命令在Ceph客户端上安装Ceph软件包。从ceph用户配置目录运行Ceph部署。

su - cephadmin
cd kifarunix-cluster/
ceph-deploy install ceph-client

将Ceph配置和密钥复制到Ceph客户端。

ceph-deploy admin ceph-client

创建块设备池

为了使用Ceph块设备客户端,您需要为RADOS块设备RBD创建一个池并对其进行初始化。

  • 池是用于存储对象的逻辑组。他们管理池的放置组,副本和CRUSH规则。
  • 放置组是逻辑对像池的一部分,它将对像作为组放置到OSD中。 Ceph客户端计算对象应存储在哪个展示位置组。

要创建Ceph池,请使用以下命令;

ceph osd pool create {pool-name} pg_num pgp_num

哪里:

  • {pool-name} 是您正在创建的Ceph池的名称。
  • pg_num 是池的展示位置组的总数。建议 pg_num 当您的Ceph集群中使用少于5个OSD时,此参数设置为128。
  • pgp_num 指定用于放置目的的放置组总数。 应等于展示位置组的总数

因此,在 Ceph客户,请运行以下命令以创建一个名为 kifarunixrbd

[email protected]:~$ ssh ceph-ceph-client

接下来,创建一个具有放置组编号128的OSD池

[email protected]:~$ sudo ceph osd pool create kifarunixrdb 128 128

将创建的池与相应的应用程序相关联,以防止未经授权的客户端类型将数据写入池中。一个应用可以是;

  • cephfs (Ceph文件系统)。
  • rbd (Ceph块设备)。
  • rgw (Ceph对象网关)。

要将上面创建的池与RBD关联起来,只需执行以下命令即可。相应地替换池的名称。

[email protected]:~$ sudo ceph osd pool application enable kifarunixrdb rbd

为池创建并启用应用程序后,可以使用以下命令对其进行初始化;

[email protected]:~$ sudo rbd pool init -p kifarunixrdb

列出可用的池;

sudo ceph osd lspools

创建块设备映像

在Ceph客户端中使用以下命令将图像添加到节点之前,请先在Ceph存储群集中为该块设备创建一个图像。

rbd create  --size  --pool 

例如,要在上面创建的池kifarunixrbd中创建1GB的块设备映像,只需运行以下命令即可;

[email protected]:~$ sudo rbd create disk01 --size 1G --pool kifarunixrbd

列出池中的图像,例如kifarunixrbd;

sudo rbd ls -l kifarunixrbd
NAME     SIZE PARENT FMT PROT LOCK 
disk01 1 GiB          2         

要检索有关所创建图像的信息,请运行命令;

sudo rbd --image disk01 -p kifarunixrbd info
rbd image 'disk01':
	size 1 GiB in 256 objects
	order 22 (4 MiB objects)
	id: 37886b8b4567
	block_name_prefix: rbd_data.37886b8b4567
	format: 2
	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
	op_features: 
	flags: 
	create_timestamp: Sat Mar 14 21:39:19 2020

从池中删除图像;

sudo rbd rm disk01 -p kifarunixrbd

将其移至垃圾箱以供以后删除;

sudo rbd trash move kifarunixrbd/disk01

要将图像从垃圾桶还原到池中,请获取在垃圾桶存储中分配的图像ID,然后使用该ID还原图像。

sudo rbd trash list kifarunixrbd
37986b8b4567 image01

哪里 基法尼 是池的名称。

sudo rbd trash restore kifarunixrbd/37986b8b4567

从垃圾箱清空图像以永久删除;

rbd trash remove kifarunixrbd/37986b8b4567

将图像映射到块设备

创建映像后,可以使用将其映射到块设备。但是,在映射映像之前,请通过运行以下命令禁用内核不支持的所有功能。 替换池和映像名称

[email protected]:~$ sudo rbd feature disable kifarunixrbd/disk01 object-map fast-diff deep-flatten

如果RBD内核模块尚未加载,它将由rdb加载。

接下来,将图像映射到块设备。

sudo rbd map disk01 --pool kifarunixrbd
/dev/rbd0

要显示映射到内核模块的块设备映像,请使用 rbd 命令;

[email protected]:~$ sudo rbd showmapped
id pool         image  snap device    
0  kifarunixrbd disk01 -    /dev/rbd0

要取消映射块设备映像,请使用命令rbd unmap /dev/rbd/{poolname}/{imagename} 例如;

sudo rbd unmap /dev/rbd/kifarunixrbd/disk01

在Ceph块设备上创建文件系统

Ceph映射的块设备现已准备就绪。剩下的就是在其上创建一个文件系统并将其挂载以使其可用。

例如,在其上创建XFS文件系统;

sudo mkfs.xfs /dev/rbd0 -L cephbd
meta-data=/dev/rbd0              isize=512    agcount=9, agsize=31744 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=1024   swidth=1024 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

在Ubuntu 18.04上安装Ceph块设备

现在,您可以安装块设备。例如,将其安装在 /media/ceph 目录;

sudo mkdir /media/ceph
sudo mount /dev/rbd0 /media/ceph

您也可以按以下方式安装它:

sudo mount /dev/rbd/kifarunixrbd/disk01 /media/ceph/

检查已挂载的文件系统;

df -hT -P /dev/rbd0
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/rbd0      xfs  1014M   34M  981M   4% /media/ceph

你去。

如果您检查Ceph集群的运行状况;

[email protected]:~# ceph --status
  cluster:
    id:     ecc4e749-830a-4ec5-8af9-22fcb5cadbca
    health: HEALTH_OK
 
  services:
    mon: 2 daemons, quorum ceph-osd01,ceph-osd02
    mgr: ceph-osd01(active), standbys: ceph-osd02
    osd: 3 osds: 3 up, 3 in
 
  data:
    pools:   1 pools, 128 pgs
    objects: 18  objects, 14 MiB
    usage:   3.1 GiB used, 8.9 GiB / 12 GiB avail
    pgs:     128 active+clean

这标志着我们关于如何在Ubuntu 18.04上安装和配置Ceph块设备的指南的结尾。

参考

阻止设备快速入门

其他教程

在Ubuntu 18.04上安装和设置GlusterFS

如何在RHEL / CentOS 7上安装和配置NFS服务器

Sidebar