cephfs客户端挂载

Ceph 存储介绍

Ceph 是一个开源的分布式存储系统,包括对象存储、块设备、文件系统。它可靠性高、管理方便、伸缩性强,能够轻松应对PB、EB级别数据。Ceph 存储体系中,核心为 RADOS,它是一个高可用分布式对象存储,该模块负责对集群众多 OSD 的运行,保证存储系统的可用性。同时该模块通过 LIBRADOS 的公共库对外提供存储服务,如对象存储、块设备存储。
在这里插入图片描述

环境、软件准备

要使用 Ceph 存储体系中的块设备、文件系统以及对象存储,必须保证已完成 Ceph 存储集群的搭建,并且保证 Ceph 存储集群处于 active + clean 状态。这里搭建过程可以参考Centos7 Ceph 存储集群搭建 文章

Ceph 文件系统

Ceph 文件系统,我们一般称为 cephfs。接下来我们演示一下如何创建一个 cephfs 文件系统。注意:如果在新的节点上使用 cephfs 的话,需要通过 ceph-deploy 安装 ceph 到该节点上,这里就不在描述了,参照上边块设备第一部分安装即可。这里我还是在 admin-node 上创建文件系统。一个 Ceph 文件系统需要至少两个 RADOS 存储池,一个用于数据、一个用于元数据。接下来,我们先创建两个存储池。

$ ceph osd pool create cephfs_data 64
pool 'cephfs_data' created
$ ceph osd pool create cephfs_metadata 64
pool 'cephfs_metadata' created

创建完毕,就可以用 fs new ... 命令创建文件系统了。
$ ceph fs new cephfs cephfs_metadata cephfs_data
new fs with metadata pool 11 and data pool 10
$ ceph fs ls
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

OK,cephfs 文件系统已经创建完毕,接下来我们看下元数据 MDS 的状态,看看是否为 active 状态。

$ ceph mds stat
e2: 0/0/1 up

有两种方式挂载,一种是使用内核驱动挂载,一种是用户空间挂载。

内核驱动挂载

Ceph v0.55 及后续版本默认开启了 cephx 认证,所以在挂载时,需要指明其密钥,以便通过认证。这里的密钥环就是之前提到的 ceph.client.admin.keyring 文件。

# 复制密钥 key
$ cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
    key = AQD/6ShariweMRAAkc1xN/H0ocAlpjp09z5blw==
    caps mds = "allow *"
    caps mon = "allow *"
    caps osd = "allow *"
# 创建挂载目录
$ sudo mkdir /mnt/cephfs
# 挂载 cephfs 到该目录,并指明用户名和密钥
$ sudo mount -t ceph 10.222.77.213:6789:/ /mnt/cephfs -o name=admin,secret=AQD/6ShariweMRAAkc1xN/H0ocAlpjp09z5blw==

不过这种方式,会把密钥显示留在了 Bash 命令里面,我们可以更安全的方式从文件读取。

# 将密钥 key 保存到文件中
$ sudo vim /etc/ceph/admin.secret
AQD/6ShariweMRAAkc1xN/H0ocAlpjp09z5blw==
$ sudo mount -t ceph 10.222.77.213:6789:/ /mnt/cephfs -o name=admin,secretfile=/etc/ceph/admin.secret

很遗憾,执行报错 mount error 5 = Input/output error .这就是上边元数据 MDS 的状态那里出的问题。因为我们必须部署至少一个元数据服务器才能使用 CephFS 文件系统。接下来,我们就部署一个元数据服务器 MDS。

# 在 ceph-deploy (admin-node) 节点上执行
$ ceph-deploy mds create admin node02 node03

创建成功,我们在看一下当前集群 MDS 状态。

$ ceph mds stat
e6: 1/1/1 up {0=node0=up:active}, 1 up:standby

ok 没问题了。

$ df -h
...
10.222.77.213:6789:/   66G   33G   33G   50% /mnt/cephfs

这里可以看到 cephfs 将两个节点 node0 和 node1 容量合并了。(我的虚拟机 node02、node03 / 根目录容量为 33 G,每个节点使用了 16G 左右。)
最后,我们在测试一下生成一个 1G 大文件,看是否自动同步到 node0 和 node1 吧!
$ sudo dd if=/dev/zero of=testfs bs=1G count=1
记录了1+0 的读入
记录了1+0 的写出
1073741824字节(1.1 GB)已复制,9.0857 秒,118 MB/秒

$ df -h
...
10.222.77.213:6789:/   66G   36G   30G   55% /mnt/cephfs

注意: 如需卸载 cephfs 文件系统,可以使用 sudo umount /mnt/cephfs 即可。
设置开机自动挂载/etc/fstab,例如

10.100.101.82:6789,10.100.101.83:6789,10.100.101.84:6789:/    /data/WEBLOG/   ceph     name=admin,secret=AQC5GxxxxxxxxxxxIhtlf/qWNGF0ZtSrzg==,_netdev     0       0
mount -a
用户空间挂载

安装ceph-fuse

##添加yum源
cat /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
##添加epel-repository和Ceph存储库
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
yum -y install ceph-fuse
## 将ceph.conf和ceph.client.admin.keyring 拷贝到服务器上进行用户空间文件系统挂载
cat ceph.client.admin.keyring
[client.admin]
        key = AQC5GwZbbwtcOhAAxxxWNGF0ZtSrzg==
        caps mds = "allow *"
        caps mon = "allow *"
        caps osd = "allow *"

cat /etc/ceph/ceph.conf 
[global]
fsid = b15d02d9-1595-4b75-8b51-4da7f2c3e2fd
mon_initial_members = beta-k8s-etcd-2, beta-k8s-etcd-3, beta-k8s-node-3
mon_host = xx
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 3
public network = 10.100.xx.0/24
mon_pg_warn_max_per_osd = 600
挂载
 ceph-fuse -m  10.100.xx:6789,10.100.xx:6789,10.100.xx:6789 /mnt/
设置开机自动挂载/etc/fstab
id=admin /mnt/ fuse.ceph  defaults    0       0
mount -a
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值