PureFlash云原生存储部署方法

PureFlash云原生存储

PureFlash是一个开源存储系统,它能为云计算和传统应用提供块存储服务。PureFlash最显著的优势是其高性能,每节点能提供超过100万IOPS随机写IO。

PureFlash可以以云原生的方式部署,并为云原生应用提供持久存储。

PureFlash存储系统简介:https://blog.csdn.net/winux/article/details/114436250

PureFlash的开源项目位置:https://github.com/cocalele/PureFlash

PureFlash-csi项目作为k8s插件,位置在:https://github.com/cocalele/pureflash-csi.git

这个项目提供下面的功能:

  • 使用yaml文件在k8s集群中部署PureFlash服务
  • 提供CSI插件,以为k8s集群中的其他应用提供PV服务

本文介绍在K8S系统中部署PureFlash的步骤方法。

前提准备工作

从github 或者 gitee获取本项目代码:

复制代码
	# git clone https://gitee.com/cocalele/pureflash-csi.git
	or
	# git clone https://github.com/cocalele/pureflash-csi.git

部署存储服务

这一步可以在你的k8s集群中部署PureFlash. 就像其他的云原生存储(比如openEBS)一样,PureFlash把物理盘转变成软件定义存储服务。同时提供包括精简置备、快照、多副本、高可用等能力。

  1. 修改pfs-cluster/deploy/pfs.yaml 这个文件中的PFS_DISKS 变量,让他和实际的NVMe盘名字相同。

    复制代码
           - name: PFS_DISKS
             value: "/dev/nvme1n1,/dev/nvme2n1"

物理盘需要是干净的没有任何数据,接下来物理盘将被PureFlash管理,上面原有的数据会被丢弃

  1. 依次应用下面的 yaml 文件:

    复制代码
     # kubectl apply -f pfs-cluster/deploy/namespace.yaml
     # kubectl apply -f pfs-cluster/deploy/pfzk.yaml
     # kubectl apply -f pfs-cluster/deploy/pfdb.yaml
     # kubectl apply -f pfs-cluster/deploy/pfc.yaml
     # kubectl apply -f pfs-cluster/deploy/pfs.yaml

请在执行每一条命令前检查pod的状态都是正常的,即,前一条命令的执行完全成功。

上面命令执行完成后,存储服务就部署完了。

部署 CSI 插件

CSI插件是为了让K8s里面的应用程序能够访问存储服务提供的存储。

应用下面的yaml 文件:

复制代码
	# kubectl apply -f deploy/rbac-csi-pfbd.yaml
	# kubectl apply -f deploy/csi-pfbd-driverinfo.yaml
	# kubectl apply -f deploy/csi-pfbd-controller.yaml
	# kubectl apply -f deploy/csi-pfbd-node.yaml

PureFlash CSI 使用原生的内核态驱动作为客户端接口。内核驱动将数据卷以标准块设备的形式呈现在Linux系统里。这样就可以兼容任意的用户态应用。原生的内核态驱动也具有更高的性能,以及完整的PureFlash数据卷功能。

对应内核版本的驱动都放在项目的modules 下面。更多内核版本的支持正在不断加入到里面。

在创建PV前,请在host系统里面 运行命令 insmod pfkd-$(uname -r).ko 安装驱动。

创建使用PureFlash的 storage class

请参照项目examples目录里的这个文件:

复制代码
# cat examples/sc.yaml 
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: pfbd-rep2
provisioner: pfbd.csi.pureflash
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
parameters:
  replica_count: "2"

kubectl apply -f examples/sc.yaml 这个命令创建一个2副本volume的SC
kubectl apply -f examples/my-busybox.yaml 这个命令启动一个容器,使用上述SC的PVC.

相关推荐
鹤落晴春4 小时前
【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
运维·云原生·容器·kubernetes
汇智信科5 小时前
基于 Jmis 框架的制度与流程管控系统设计与应用|项目全生命周期管理
大数据·人工智能·微服务·云原生·汇智信科
陈聪.10 小时前
Kubernetes 集群网络插件迁移:从 Flannel 到 Calico 实战总结
云原生·kubernetes
Spider Cat 蜘蛛猫12 小时前
微服务- 自动审核商家入驻
微服务·云原生·架构
陈聪.13 小时前
Kubernetes Service 与 Ingress 知识总结
云原生·容器·kubernetes
分布式存储与RustFS1 天前
RustFS 多协议接入全景:S3 之外,Swift/Keystone 与 SFTP/FTPS 怎么选
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
分布式存储与RustFS1 天前
在 Kubernetes 上用 RustFS Operator 给 Tenant 开 KMS 加密:spec.encryption 实战
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
Seoyoneh2 天前
呼叫中心系统云原生架构演进:传统自建与云端部署的技术实现对比分析
云原生·架构
2601_962218472 天前
万象生鲜系统订单全生命周期追踪实现生鲜企业订单业务数字化可视
大数据·运维·微服务·云原生·架构
分布式存储与RustFS2 天前
RustFS 1.0 GA 前的生产验收清单:从 rc.1 到 GA 该准备什么
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准