4.5. 持久性卷(PV)


每个 PV 都会包括一个 specstatus,它们分别代表卷的规格和状态,例如:

PersistentVolume 对象定义示例

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0001 1
spec:
  capacity:
    storage: 5Gi 2
  accessModes:
    - ReadWriteOnce 3
  persistentVolumeReclaimPolicy: Retain 4
  ...
status:
  ...

1
持久性卷的名称。
2
卷可以使用的存储容量。
3
访问模式,用来指定读写权限及挂载权限。
4
重新声明策略,指定在资源被释放后如何处理它。

4.5.1. 容量

一般情况下,一个持久性卷(PV)有特定的存储容量。这可以通过使用 PV 的 capacity 属性来设置。

目前,存储容量是唯一可以设置或请求的资源。以后可能会包括 IOPS 、 throughput 等属性。

4.5.2. 支持的访问模式

LVMS 是红帽构建的 MicroShift 唯一支持的 CSI 插件。内置在 OpenShift Container Platform 的 hostPath 和 LV 也支持 RWO。

4.5.3. 阶段

卷可以处于以下几个阶段:

表 4.1. 卷阶段
阶段描述

Available

可用资源,还未绑定到任何声明。

Bound

卷已绑定到一个声明。

Released

以前使用这个卷的声明已被删除,但该资源还没有被集群重新声明。

Failed

卷的自动重新声明失败。

您可以运行以下命令来查看绑定到 PV 的 PVC 名称:

$ oc get pv <pv-claim>

4.5.3.1. 挂载选项

您可以使用属性 mountOptions 在挂载 PV 时指定挂载选项。

例如:

挂载选项示例

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  name: topolvm-provisioner
mountOptions:
  - uid=1500
  - gid=1500
parameters:
  csi.storage.k8s.io/fstype: xfs
provisioner: topolvm.io
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true

注意

mountOptions 不会被验证。不正确的值将导致挂载失败,并将事件记录到 PVC。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.