第四篇:创建cephfs服务

基于第三篇,我们搭建好了一个健康的ceph集群:

  • 3个mon节点组成的mon集群
  • 9个osd节点组成的osd集群
  • 3个mgr节点(ceph luminous版本才有的)
  • 3个mds服务(cephfs使用)
[root@ceph-1 ceph]# ceph -s
  cluster:
    id:     c165f9d0-88df-48a7-8cc5-11da82f99c93
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph-1,ceph-2,ceph-3
    mgr: ceph-1(active), standbys: admin, ceph-2, ceph-3
    osd: 9 osds: 9 up, 9 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0B
    usage:   965MiB used, 18.0TiB / 18.0TiB avail
    pgs:

本篇主要讲如何基于ceph集群搭建cephfs服务。

cephFS简介

The Ceph Filesystem (Ceph FS) is a POSIX-compliant filesystem that uses a Ceph Storage Cluster to store its data.

在这里插入图片描述

Ceph文件系统(CephFS)提供符合POSIX标准的文件系统作为服务,该服务在基于对象的Ceph存储集群之上。 CephFS文件被映射到Ceph存储在Ceph存储集群中的对象。 Ceph客户端有两种挂载cephfs的方式:基于内核和FUSE.下图为cephfs的结构图:

在这里插入图片描述

Ceph文件系统服务包括与Ceph存储集群一起部署的Ceph元数据服务器(MDS)。 MDS存储了文件系统里的所有元数据(目录,文件所有权,访问模式等)。 MDS(ceph-mds的守护进程)将一些简单的文件系统操作(例如列出目录或更改目录(ls,cd)等)与Ceph OSD守护进程隔离,这样可以减少对OSD进程造成不必要的负担。 因此,将元数据与数据分离意味着Ceph文件系统可以提供高性能服务,而不会对Ceph存储集群造成负担。

  • MDS:存储metadata(元数据)
  • OSD:存储file data(数据)

ceph-mds可以作为单个进程运行,也可以分发到多个物理机器,以实现高可用性或可伸缩性。

  • 高可用性:集群中处于standby状态的ceph-mds进程随时可以取代失败的active状态的ceph-mds,当active状态的ceph-mds进程失败时,ceph-mon很容易就可以把standby状态的mds转换成active状态,从而维持集群的可用性
  • 可扩展性:集群中可以有多个active状态的ceph-mds进程,它们会将目录树拆分为子树(以及单个繁忙目录的分片),从而有效地平衡所有活动服务器之间的负载。

新建ceph client虚拟机

根据第二篇的方法,新建一个虚拟机,我们命名为ceph-client.

安装好之后配置相应的网络,具体方法详见这里

修改ifcfg-enp0s3

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

将最后一行的ONBOOT=no改为ONBOOT=yes,添加IPADDR,NETMASK,这个是网卡1,用于给虚拟机上网。

修改ifcfg-enp0s8

vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.56.200
NETMASK=255.255.255.0

重启网卡并检查联网状态:

systemctl restart network

修改主机名hostname:

echo ceph-client > /etc/hostname

重启,通过本机终端登录

ssh root@192.168.56.200

修改yum源

yum clean all
curl http://mirrors.aliyun.com/repo/Centos-7.repo >/etc/yum.repos.d/CentOS-Base.repo
curl http://mirrors.aliyun.com/repo/epel-7.repo >/etc/yum.repos.d/epel.repo 
sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
yum makecache

配置ceph源

/etc/yum.repos.d/目录下新增一个ceph源文件ceph.repo,并写入下面内容:

vim /etc/yum.repos.d/ceph.repo
#写入以下内容
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/
gpgcheck=0
[ceph-source]
name=ceph-source
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
gpgcheck=0

安装软件

yum clean all && yum makecache
yum -y install yum-plugin-priorities 
yum -y install openssh-server

创建cephFS

登录mon集群的那三台机器中的一台即可,我这里登录ceph-1

ssh root@192.168.56.101

创建cephfs

creatring pools

[root@ceph-1 ceph]# ceph osd pool create cephfs_data 64
pool 'cephfs_data' created
[root@ceph-1 ceph]# ceph osd pool create cephfs_metadata 64
pool 'cephfs_metadata' created

creating a filesystem

[root@ceph-1 ceph]# ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
[root@ceph-1 ceph]# ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

一旦文件系统创建好之后,mds的状态就会发生变化,如下所示:

[root@ceph-1 ceph]# ceph mds stat
cephfs-1/1/1 up  {0=ceph-2=up:active}, 2 up:standby

再看看集群状态:

[root@ceph-1 ceph]# ceph -s
  cluster:
    id:     c165f9d0-88df-48a7-8cc5-11da82f99c93
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum ceph-1,ceph-2,ceph-3
    mgr: ceph-1(active), standbys: admin, ceph-2, ceph-3
    mds: cephfs-1/1/1 up  {0=ceph-2=up:active}, 2 up:standby
    osd: 9 osds: 9 up, 9 in

  data:
    pools:   2 pools, 128 pgs
    objects: 21 objects, 3.14KiB
    usage:   967MiB used, 18.0TiB / 18.0TiB avail
    pgs:     128 active+clean

  • mds进入active状态
  • 生成了两个pool,128个pg

挂载cephfs

cephfs支持两种方式挂载:

  • 内核驱动
  • 使用fuse

这是官网给出的两种挂载方式的对比:

The FUSE client is the most accessible and the easiest to upgrade to the version of Ceph used by the storage cluster, while the kernel client will often give better performance.

The clients do not always provide equivalent functionality, for example the fuse client supports client-enforced quotas while the kernel client does not.

内核驱动 (with kernel)

ceph一个集群只支持创建一个cephfs,所以只要创建一次cephfs之后,就可以在客户端机器上创建目录并挂载到集群:

在客户端机器上进行如下操作

[root@ceph-client ~]# mkdir -p /mycephfs
[root@ceph-client ~]# mount -t ceph 192.168.56.101,192.168.56.102,192.168.56.103:6789:/ /mycephfs

查看挂载情况:

[root@ceph-client ~]# df -h
文件系统                                             容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root                               50G  1.6G   49G    4% /
devtmpfs                                             485M     0  485M    0% /dev
tmpfs                                                496M     0  496M    0% /dev/shm
tmpfs                                                496M  6.8M  490M    2% /run
tmpfs                                                496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                                           1014M  129M  886M   13% /boot
/dev/mapper/centos-home                              347G   35M  347G    1% /home
tmpfs                                                100M     0  100M    0% /run/user/0
192.168.56.101,192.168.56.102,192.168.56.103:6789:/  5.4T     0  5.4T    0% /mycephfs

最后一行可以看到挂载成功。

使用fuse (with fuse)

使用fuse方式进行挂载,需要安装ceph-fuse工具,

[root@ceph-client ~]# yum install ceph-fuse
 ........
已安装:
  ceph-fuse.x86_64 2:12.2.9-0.el7

作为依赖被安装:
  fuse-libs.x86_64 0:2.9.2-10.el7    gperftools-libs.x86_64 0:2.6.1-1.el7    libibverbs.x86_64 0:15-7.el7_5    pciutils.x86_64 0:3.5.1-3.el7
  rdma-core.x86_64 0:15-7.el7_5

完毕!
[root@ceph-client ~]# ceph-fuse -v
ceph version 12.2.9 (9e300932ef8a8916fb3fda78c58691a6ab0f4217) luminous (stable)

ceph-fuse安装完成。

挂载cephfs

[root@ceph-client ~]# mkdir /fusefs
[root@ceph-client ~]# ceph-fuse -m 192.168.56.101:6789 /fusefs
ceph-fuse[10854]: starting ceph client
ceph-fuse[10854]: starting fuse
[root@ceph-client ~]# df -h
文件系统                                             容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root                               50G  1.6G   49G    4% /
devtmpfs                                             485M     0  485M    0% /dev
tmpfs                                                496M     0  496M    0% /dev/shm
tmpfs                                                496M  6.8M  490M    2% /run
tmpfs                                                496M     0  496M    0% /sys/fs/cgroup
/dev/sda1                                           1014M  129M  886M   13% /boot
/dev/mapper/centos-home                              347G   35M  347G    1% /home
tmpfs                                                100M     0  100M    0% /run/user/0
192.168.56.101,192.168.56.102,192.168.56.103:6789:/  5.4T     0  5.4T    0% /mycephfs
ceph-fuse                                            5.4T     0  5.4T    0% /fusefs

查看最后一行,说明挂载成功。

总结

本篇主要介绍了cephfs的架构以及在ceph集群上挂载cephfs的流程。

创建 CephFS 并使用它,需要遵循以下步骤: 1. 确保在 Ceph 集群中已启用 CephFS 功能。在 ceph.conf 文件中,确保以下配置项已设置为“true”: ``` [global] fsid = <your fsid> mon_initial_members = <your mon node names> mon_host = <your mon node IP addresses> auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx [client] keyring = /etc/ceph/<your ceph client keyring> ``` 2. 在 Ceph 集群中创建一个 MDS(元数据服务器)节点。这个节点将处理文件系统的元数据。可以使用以下命令创建 MDS 节点: ``` ceph-deploy mds create <mds node names> ``` 3. 创建 CephFS 文件系统。可以使用以下命令创建文件系统: ``` ceph fs new <fs name> <metadata pool name> <data pool name> ``` 其中,“fs name”是文件系统的名称,“metadata pool name”是用于存储文件系统元数据的池的名称,“data pool name”是用于存储文件数据的池的名称。 4. 挂载 CephFS 文件系统。可以使用以下命令将文件系统挂载到本地目录: ``` mount -t ceph <mon node>:<path> <mount point> -o name=<client name>,secret=<client key> ``` 其中,“mon node”是监视器节点的名称或 IP 地址,“path”是文件系统的路径,“mount point”是本地目录的路径,“client name”是用于访问文件系统的客户端名称,“client key”是用于访问文件系统的客户端密钥。 完成以上步骤后,就可以使用 CephFS 文件系统了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

godleft90

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值