为什么将现有块存储器安装到 pod 会因文件系统错误而失败?

当块存储卷挂载时使用了错误的文件系统,如何排查相关问题。

虚拟私有云 传统基础设施

运行 oc describe pod <pod_name> 时,会出现以下错误:

failed to mount the volume as "ext4", it already contains xfs. Mount error: mount failed: exit status 32

您具有设置为使用 XFS 文件系统的现有块存储设备。 为了将此设备安装到 pod,您已创建 PV,其中在 ext4 部分中指定 spec/flexVolume/fsType 作为文件系统,或者未指定任何文件系统。 如果未定义任何文件系统,PV 将缺省为 ext4

PV 已成功创建,并且已链接到现有块存储器实例。 但是,尝试使用匹配的 PVC 将 PV 安装到集群时,卷安装失败。 您无法将采用 ext4 文件系统的 XFS 块存储实例挂载到Pod上。

将现有 PV 中的文件系统从 ext4 更新为 XFS

  1. 列出集群中的现有 PV,并记下用于现有块存储器实例的 PV 的名称。

    oc get pv
    
  2. 将 PV YAML 保存到本地计算机。

    oc get pv <pv_name> -o yaml > <filepath/xfs_pv.yaml>
    
  3. 打开该 YAML 文件,并将 fsTypeext4 更改为 xfs

  4. 替换集群中的 PV。

    oc replace --force -f <filepath/xfs_pv.yaml>
    
  5. 登录到安装了 PV 的 pod。

    oc exec -it <pod_name> sh
    
  6. 验证文件系统是否已更改为 XFS

    df -Th
    

    示例输出

    Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/3600a098031234546d5d4c9876654e35 xfs 20G 33M 20G 1% /myvolumepath