2.7. 使用 Fibre Channel 持久性存储
OpenShift Container Platform 支持 Fibre Channel,它允许您使用 Fibre Channel 卷为 OpenShift Container Platform 集群提供持久性存储。我们假设您对 Kubernetes 和 Fibre Channel 有一定的了解。
Kubernetes 持久性卷框架允许管理员提供带有持久性存储的集群,并使用户可以在不了解底层存储架构的情况下请求这些资源。持久性卷不与某个特定项目或命名空间相关联,它们可以在 OpenShift Container Platform 集群间共享。持久性卷声明是针对某个项目或者命名空间的,相应的用户可请求它。
存储的高可用性功能由底层的存储架构提供。
其他参考资源
2.7.1. 置备
要使用 persistenceVolume API 置备 Fibre Channel 卷,必须有:
-
targetWWNs
(Fibre Channel 阵列目标的 World Wide Names)。 - 一个有效的 LUN 号码。
- 文件系统类型。
持久性卷和 LUN 之间有一对一的映射。
先决条件
- Fibre Channel LUN 必须存在于底层系统中。
PersistentVolume 对象定义
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv0001
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
fc:
targetWWNs: ['500a0981891b8dc5', '500a0981991b8dc5'] 1
lun: 2
fsType: ext4
- 1
- Fibre Channel WWN 由
/dev/disk/by-path/pci-<IDENTIFIER>-fc-0x<WWN>-lun-<LUN#>
代表,但您不需要提供WWN
之前(包括0x
)和以后(包括-
)的部分。
在卷被格式化并置备后,修改 fstype
参数的值会导致数据丢失和 pod 失败。
2.7.1.1. 强制磁盘配额
使用 LUN 分区强制磁盘配额和大小限制。每个 LUN 都被映射到一个单独的 PersistentVolume,不同 PersistentVolume 必须有不同的名称。
采用这种方法强制配额可让最终用户以特定数量(如 10Gi)请求持久性存储,并可与相等或更大容量的卷进行匹配。
2.7.1.2. Fibre Channel 卷安全
用户使用 PersistentVolumeClaim 来请求存储。这个声明只在用户的命名空间中有效,且只能被同一命名空间中的 pod 使用。尝试访问其他命名空间中的持久性卷都会导致 pod 失败。
每个 Fibre Channel LUN 必须可以被集群中的所有节点访问。