cephfs部署与使用

一、前言

   CephFS(Ceph File System)是Ceph存储解决方案中的一个组件,它提供了一个分布式文件系统,允许用户在多个节点上访问和管理文件数据,相当于是共享文件系统,可应用于k8s的存储,linux系统的共享存储等,需要额外部署mds组件服务

二、部署

cephfs需要用到两个存储池,一个用于存储文件数据,另一个用于存储元数据

数据池(Data Pool):数据池用于存储文件数据。这是实际存储用户文件内容的地方可以配置数据池的副本数和其他参数

元数据池(Metadata Pool):元数据池用于存储文件系统的元数据,如文件名、目录结构等。元数据的管理对于文件系统的性能至关重要。因此,将元数据存储在单独的池中有助于优化性能

创建数据存储池

ceph osd pool create cephfs_data 32 32
#其中的两个32分别指的是pg数量和pg副本数,pg副本数必须大于等于pg数
#根据官网的说明pg数量越多,数据分布的越均衡

创建元数据存储池

ceph osd pool create cephfs_metadata 32 32

查看创建的存储池信息

ceph osd pool ls detail

size 3:表示每个对象将被复制成 3 个副本

min_size 2:这表示至少需要 2 个副本在线才能满足数据的可用性需求

crush_rule 0:这指示了使用的 CRUSH 规则的编号。CRUSH 是 Ceph 使用的数据分布算法,用于确定数据在存储集群中的存放位置

object_hash rjenkins:这表示对象的哈希算法是 rjenkins

pg_num 32:这指示了存储池中 PG(Placement Group)的数量

pgp_num 32:这表示在每个 PG 中的副本数

autoscale_mode on:这表示存储池启用了自动扩展模式,即 PG 的数量会根据存储集群的大小自动调整

last_change 133:这是上次更改存储池配置的时间戳

flags hashpspool stripe_width 0:这是一些存储池的标志和参数设置,如是否使用 CRUSH 哈希算法、条带宽度等

application cephfs:这指示了存储池的应用场景,即该存储池用于支持 Ceph 文件系统(CephFS)

创建cephfs并命名为cephfs

ceph fs new cephfs cephfs_metadata cephfs_data
#指定之前创建的数据存储池和元数据存储池

创建mds

ceph orch apply mds cephfs --placement="3 ceph01 ceph02 ceph03"

查看cephfs

ceph fs ls
ceph fs status cephfs

 默认情况下,ceph只支持一个活跃的MDS,其他的作为备用MDS,所以会看到只有一个mds节点为active状态

至此cephfs部署完成

cephfs的使用

centos系统挂载使用

先安装ceph客户端

编辑yum源

vi /etc/yum.repos.d/ceph.repo 

[Ceph]
name=Ceph
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/x86_64/
enabled=1
gpgcheck=0

[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-15.2.9/el7/noarch/
enabled=1
gpgcheck=0

安装eple解决依赖问题

yum -y install epel-release

安装ceph客户端

yum -y install ceph-common

在ceph01管理节点生成密钥

ceph-authtool -p /etc/ceph/ceph.client.admin.keyring > ceph.key

将密钥拷贝到客户端的ceph目录下

scp ceph.key 10.1.60.118@root:/etc/ceph
#客户端安装ceph时会自动生成ceph目录,这里我是使用另外的118主机作为客户端

 在客户端挂载cephfs文件系统

#创建挂载目录
mkdir /mnt/cephfs
#这里使用默认的admin用户,有需要可以自行创建其它用户
mount -t ceph -o name=admin,secretfile=/etc/ceph/ceph.key  10.1.60.126:6789:/ /mnt/cephfs

查看挂载的目录

df -Th

k8s使用cephfs作为存储

创建ceph目录

mkdir /opt/ceph && cd /opt/ceph

将ceph01管理节点生成的密钥拷贝到k8s节点上

k8s的所有工作节点也需要安装ceph-common

将ceph密钥进行base64编码

cat ceph.key |base64

编辑secret的yaml文件

vi secret.yaml

apiVersion: v1
kind: Secret
metadata:
  name: ceph-secret
type: "kubernetes.io/rbd"  #这里必须使用rbd类型
data:
  key: "QVFCenRndG1wVzJPQXhBQW5oMVFyRHlvT05Oa2RZR25tSHpYUmc9PQo="   #将生成的密钥编码填入

 编辑pv的yaml文件

vi pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: ceph-pv
spec:
  capacity:
    storage: 20Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: ceph
  cephfs:
    monitors: ["10.1.60.126:6789", "10.1.60.127:6789", "10.1.60.128:6789"]  #填写提供cephfs服务的节点
    path: /      #挂载目录,如果有创建其它目录也可以直接镜像挂载
    user: admin
    secretRef:
      name: ceph-secret   #使用secret进行验证

 编辑pvc的yaml文件

vi pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cephfs-pvc
  namespace: default
spec:
  accessModes: ["ReadWriteOnce"]
  storageClassName: ceph
  resources:
    requests:
      storage: 20Gi

执行yaml文件生成对应服务

kubectl apply -f secret.yaml

kubectl apply -f pv.yaml

kubectl apply -f pvc.yaml

查看pv和pvc是否正常

kubectl get pv,pvc

### 如何在 Ubuntu 上部署 CephFS #### 准备工作 确保保存 Ceph 配置文件的目录存在,Ceph 默认使用 `/etc/ceph`。安装 `ceph` 软件时,安装器会自动创建此目录[^1]。 ```bash ls /etc/ceph/ ``` 对于 `ceph-deploy` 的要求,该用户需具有 sudo 权限且能无密码登录。为了给特定用户分配 root 权限时,推荐的做法是在 `/etc/sudoers.d` 文件夹下增加一个用户名相同的文件来设置权限而不是直接编辑 `/etc/sudoers` 文件[^2]: ```bash cd /etc/sudoers.d touch ceph-server ``` #### 安装前准备 配置好适合的 YUM 或 APT 源以确保可获得最新的稳定版 Ceph 软件是非常重要的。这可以通过官方源或是国内可靠镜像源完成。根据实际需求挑选所需组件(Monitors、OSDs、MDSs 等)。注意依赖关系,保证系统拥有必要的运行环境[^3]。 针对 Ubuntu 用户来说,有时可能遇到软件包损坏的情况,这时可以尝试手动重新安装必要包或通过命令修复受损包[^4]: ```bash sudo dpkg -i --force-overwrite /var/cache/apt/archives/ceph-deploy_*.deb sudo apt-get install -f ``` 另外,还需确保 NTP 服务已正确安装并配置,这对于分布式系统的同步至关重要。 #### 创建 CephFS 文件系统 一旦完成了上述准备工作之后,就可以继续进行 CephFS 文件系统的创建工作了。具体过程涉及到了解集群结构以及调整相应的参数设定,比如指定监视器节点地址等信息。这些都将在 Ceph 主要配置文件 (`ceph.conf`) 中体现出来。 最后一步则是执行初始化和启动操作,包括但不限于创建文件系统、激活 MDS 和 OSD 服务等等,从而让整个 Ceph 存储集群得以顺利运作起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值