|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
UBLK 前端支持
从 v1.9.0 开始,SUSE Storage 支持 V2 数据引擎卷的 UBLK 前端。 此功能使用 UBLK SPDK 框架 将 V2 数据引擎卷暴露为块设备。 在某些高规格环境中(例如,配备快速 SSD 的机器,能够实现数百万 IOPS,并配备 32 个处理器内核),UBLK 前端可能比默认的 NVMe-oF 前端提供更好的性能。 有关性能比较,请参见 SUSE Storage 性能调查维基页面。 然而,UBLK 前端的成熟度低于默认的 NVMe-oF 前端(请参见 已知限制)。 UBLK 前端还有额外的限制,具体如下。
先决条件
-
节点上的内核版本必须为 v6.0 或更高。UBLK 内核驱动程序仅在内核 v6.0 及更高版本中可用。
-
在每个要附加 UBLK 卷的节点上,必须加载内核模块
ublk_drv。对于测试,您可以使用以下命令在每个相关节点上手动加载它:modprobe ublk_drv
如何使用
从清单创建 V2 卷时
-
创建一个指定 UBLK 前端的
StorageClass。例如:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: my-ublk-frontend-storageclass provisioner: driver.longhorn.io allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: Immediate parameters: numberOfReplicas: "1" staleReplicaTimeout: "2880" fsType: "ext4" dataEngine: "v2" frontend: "ublk" -
创建一个引用前一步中创建的
StorageClass的PersistentVolumeClaim(PVC)。例如:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-ublk-frontend-pvc namespace: default spec: accessModes: - ReadWriteOnce storageClassName: my-ublk-frontend-storageclass resources: requests: storage: 1Gi -
SUSE Storage 根据 PVC 和
StorageClass定义自动配置一个使用 UBLK 前端的 V2 卷。
已知限制
当实例管理器 pod 崩溃时,可能会在节点上留下孤立的 UBLK 设备。 目前,手动删除这些孤立设备可能很困难,有时可能需要重启节点。 我们正在进一步调查此问题 GitHub 问题 #10738。
参考手册
原始 GitHub 问题关于 UBLK 前端支持:GitHub 问题 #9456。