Menu Close

3.6. 使用 Fibre Channel 持久性存储

OpenShift Container Platform 支持 Fibre Channel,它允许您使用 Fibre Channel 卷为 OpenShift Container Platform 集群提供持久性存储。我们假设您对 Kubernetes 和 Fibre Channel 有一定的了解。

Kubernetes 持久性卷框架允许管理员提供带有持久性存储的集群,并使用户可以在不了解底层存储架构的情况下请求这些资源。持久性卷不与某个特定项目或命名空间相关联,它们可以在 OpenShift Container Platform 集群间共享。持久性卷声明是针对某个项目或者命名空间的,相应的用户可请求它。

重要

存储的高可用性功能由底层的存储架构提供。

3.6.1. 置备

要使用 PersistentVolume 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 失败。

3.6.1.1. 强制磁盘配额

使用 LUN 分区强制磁盘配额和大小限制。每个 LUN 都被映射到一个持久性卷,持久性卷必须使用唯一的名称。

采用这种方法强制配额可让最终用户以特定数量(如 10Gi)请求持久性存储,并可与相等或更大容量的卷进行匹配。

3.6.1.2. Fibre Channel 卷安全

用户使用持久性卷声明来请求存储。这个声明只在用户的命名空间中有效,且只能被同一命名空间中的 pod 使用。任何尝试访问命名空间中的持久性卷都会导致 pod 失败。

每个 Fibre Channel LUN 必须可以被集群中的所有节点访问。