4.5. 使用 Fibre Channel 持久性存储
OpenShift Container Platform 支持 Fibre Channel,它允许您使用 Fibre Channel 卷为 OpenShift Container Platform 集群提供持久性存储。我们假设您对 Kubernetes 和 Fibre Channel 有一定的了解。
Kubernetes 持久性卷框架允许管理员提供带有持久性存储的集群,并使用户可以在不了解底层存储架构的情况下请求这些资源。持久性卷不与某个特定项目或命名空间相关联,它们可以在 OpenShift Container Platform 集群间共享。持久性卷声明是针对某个项目或者命名空间的,相应的用户可请求它。
存储的高可用性功能由底层的存储架构提供。
其他资源
4.5.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: wwids: [scsi-3600508b400105e210000900000490000] 1 targetWWNs: ['500a0981891b8dc5', '500a0981991b8dc5'] 2 lun: 2 3 fsType: ext4
- 1
- 世界范围内的标识符(WWID)。必须同时设置 FC
wwids
或 FC targetWWN
和lun
的组合。建议使用 WWNs 目标的 FC WWID 标识符,因为它可确保每个存储设备都是唯一的,且独立于用于访问该设备的路径。通过发出 SCSI Inquiry 来检索 Device Identification Vital Product Data(页面 0x83)或
单元 Serial Number(页面 0x80)来获取 WWID 标识符。
FC WWID 被识别为/dev/disk/by-id/
来引用磁盘上的数据,即使到该设备的路径也会改变,甚至是从不同系统访问设备时。 - 2 3
- Fibre Channel WWN 由
/dev/disk/by-path/pci-<IDENTIFIER>-fc-0x<WWN>-lun-<LUN#>
代表,但您不需要提供WWN
之前(包括0x
)和以后(包括-
)的部分。
在卷被格式化并置备后,修改 fstype
参数的值会导致数据丢失和 pod 失败。
4.5.1.1. 强制磁盘配额
使用 LUN 分区强制磁盘配额和大小限制。每个 LUN 都被映射到一个持久性卷,持久性卷必须使用唯一的名称。
采用这种方法强制配额可让最终用户以特定数量(如 10Gi)请求持久性存储,并可与相等或更大容量的卷进行匹配。
4.5.1.2. Fibre Channel 卷安全
用户使用持久性卷声明来请求存储。这个声明只在用户的命名空间中有效,且只能被同一命名空间中的 pod 使用。任何尝试访问命名空间中的持久性卷都会导致 pod 失败。
每个 Fibre Channel LUN 必须可以被集群中的所有节点访问。