-
Bug
-
Resolution: Done
-
Normal
-
CNV v4.13.5
-
None
-
Incidents & Support
-
3
-
False
-
-
False
-
CNV v4.13.9.rhel9-58, CNV v4.12.11-19
-
-
Storage Core Sprint 252, Storage Core Sprint 258, Storage Core Sprint 259
-
Important
-
No
Description of problem:
Importing a VM from RHV using MTV fails with these kind of errors: error: phase: CopyDisks reasons: - 'Unable to process data: Failure cleaning up temporary scratch space: openfdat /scratch/lost+found: permission denied' The importer pod uses a scratch PVC in Filesystem mode.
Version-Release number of selected component (if applicable):
OCP 4.13.17 Openshift Virtualization 4.13.5 MTV 2.5.5 Containerized Data Importer v1.56.1-12-g16ff45d2
How reproducible:
Reproduced only in customer environment.
Steps to Reproduce:
1. StorageClass and StorageProfile:
--- apiVersion: cdi.kubevirt.io/v1beta1
kind: StorageProfile
metadata:
creationTimestamp: "2024-04-03T10:42:24Z"
generation: 3
labels:
app: containerized-data-importer
app.kubernetes.io/component: storage
app.kubernetes.io/managed-by: cdi-controller
app.kubernetes.io/part-of: hyperconverged-cluster
app.kubernetes.io/version: 4.13.5
cdi.kubevirt.io: ""
name: k8s-wok-iscsi-noreplica-halma
ownerReferences:
- apiVersion: cdi.kubevirt.io/v1beta1
blockOwnerDeletion: true
controller: true
kind: CDI
name: cdi-kubevirt-hyperconverged
uid: e5578e77-68c0-4973-a87d-4c79d65d15fa
resourceVersion: "209194592"
uid: 4d2babc7-a762-4f58-a16c-1d57b6abbe7a
spec:
claimPropertySets:
- accessModes:
- ReadWriteMany
volumeMode: Block
status:
claimPropertySets:
- accessModes:
- ReadWriteMany
volumeMode: Block
provisioner: csi.huawei.com
storageClass: k8s-wok-iscsi-noreplica-halma
2. PVC created for the importer scratch space is in filesystem mode: oc describe pvc -n if-nvxsw mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
Name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
Namespace: if-nvxsw
StorageClass: k8s-wok-iscsi-noreplica-halma
Status: Bound
Volume: pvc-e0999a4d-8031-4bef-be05-908b659ae89c
Labels: app=containerized-data-importer
app.kubernetes.io/component=storage
app.kubernetes.io/managed-by=cdi-controller
app.kubernetes.io/part-of=hyperconverged-cluster
app.kubernetes.io/version=4.13.5
Annotations: pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: csi.huawei.com
volume.kubernetes.io/storage-provisioner: csi.huawei.com
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 30Gi
Access Modes: RWO
VolumeMode: Filesystem
Used By: importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-10815197-bd5e-405f-b156-ea906b799596
importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
Events: <none> oc get pvc -n if-nvxsw mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch -o yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: csi.huawei.com
volume.kubernetes.io/storage-provisioner: csi.huawei.com
creationTimestamp: "2024-04-05T09:12:32Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
app: containerized-data-importer
app.kubernetes.io/component: storage
app.kubernetes.io/managed-by: cdi-controller
app.kubernetes.io/part-of: hyperconverged-cluster
app.kubernetes.io/version: 4.13.5
name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
namespace: if-nvxsw
ownerReferences:
- apiVersion: v1
blockOwnerDeletion: true
controller: true
kind: Pod
name: importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
uid: 6fa4278b-80a8-4fa6-9c4c-ff0f7821b71f
resourceVersion: "210382846"
uid: e0999a4d-8031-4bef-be05-908b659ae89c
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "32212254720"
storageClassName: k8s-wok-iscsi-noreplica-halma
volumeMode: Filesystem
volumeName: pvc-e0999a4d-8031-4bef-be05-908b659ae89c
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 30Gi
phase: Bound
- State of the importer POD oc describe pod -n if-nvxsw importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
Name: importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
Namespace: if-nvxsw
Priority: 0
Service Account: default
Node: skslc-k8s-wok-105.prod-01.k8s.lan/10.160.1.105
Start Time: Fri, 05 Apr 2024 11:12:33 +0200
Labels: app=containerized-data-importer
app.kubernetes.io/component=storage
app.kubernetes.io/managed-by=cdi-controller
app.kubernetes.io/part-of=hyperconverged-cluster
app.kubernetes.io/version=4.13.5
cdi.kubevirt.io=importer
prometheus.cdi.kubevirt.io=true
Annotations: cdi.kubevirt.io/storage.createdByController: yes
k8s.ovn.org/pod-networks:
{"default":{"ip_addresses":["172.16.24.59/23"],"mac_address":"0a:58:ac:10:18:3b","gateway_ips":["172.16.24.1"],"ip_address":"172.16.24.59/...
k8s.v1.cni.cncf.io/network-status:
[{
"name": "ovn-kubernetes",
"interface": "eth0",
"ips": [
"172.16.24.59"
],
"mac": "0a:58:ac:10:18:3b",
"default": true,
"dns": {}
}]
openshift.io/scc: privileged
seccomp.security.alpha.kubernetes.io/pod: runtime/default
sidecar.istio.io/inject: false
Status: Succeeded
IP: 172.16.24.59
IPs:
IP: 172.16.24.59
Controlled By: PersistentVolumeClaim/mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
Containers:
importer:
Container ID: cri-o://f6d0579083646adba350c0ae7eef0121a99fd94947c6d2ad09be16bdc723107b
Image: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:eb66bfabd67d153e1e5a9537b1fe9a94f8e7fc101ec10f86d70a76c0324da082
Image ID: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:64fa194703392dd4048a9f508f7872e04864000b8728773504a09661a14684cb
Port: 8443/TCP
Host Port: 0/TCP
Args:
-v=1
State: Terminated
Reason: Completed
Message: Import Complete
Exit Code: 0
Started: Fri, 05 Apr 2024 11:12:46 +0200
Finished: Fri, 05 Apr 2024 11:15:38 +0200
Ready: False
Restart Count: 0
Limits:
cpu: 750m
memory: 600M
Requests:
cpu: 100m
memory: 60M
Environment:
IMPORTER_SOURCE: imageio
IMPORTER_ENDPOINT: https://rhev-hq.afbag.com/ovirt-engine/api
IMPORTER_CONTENTTYPE: kubevirt
IMPORTER_IMAGE_SIZE: 32212254720
OWNER_UID: b45118e9-3419-4c55-829c-7899cb0e27ca
FILESYSTEM_OVERHEAD: 0
INSECURE_TLS: false
IMPORTER_DISK_ID: 232d53f3-6814-40ab-a60b-e57e156978e4
IMPORTER_UUID:
IMPORTER_READY_FILE:
IMPORTER_DONE_FILE:
IMPORTER_BACKING_FILE:
IMPORTER_THUMBPRINT:
http_proxy:
https_proxy:
no_proxy:
IMPORTER_CURRENT_CHECKPOINT: 63073548-416d-4ed5-b54c-55f5a81c5b26
IMPORTER_PREVIOUS_CHECKPOINT:
IMPORTER_FINAL_CHECKPOINT: false
PREALLOCATION: false
IMPORTER_ACCESS_KEY_ID: <set to the key 'accessKeyId' in secret 'mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn'> Optional: false
IMPORTER_SECRET_KEY: <set to the key 'secretKey' in secret 'mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn'> Optional: false
IMPORTER_CERT_DIR: /certs
IMPORTER_PROXY_CERT_DIR: /proxycerts/
Mounts:
/certs from cdi-cert-vol (rw)
/proxycerts/ from cdi-proxy-cert-vol (rw)
/scratch from cdi-scratch-vol (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-w7wr8 (ro)
Devices:
/dev/cdi-block-volume from cdi-data-vol
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
cdi-data-vol:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
ReadOnly: false
cdi-scratch-vol:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
ReadOnly: false
cdi-cert-vol:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-p959s
Optional: false
cdi-proxy-cert-vol:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: import-proxy-cm-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
Optional: false
kube-api-access-w7wr8:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
ConfigMapName: openshift-service-ca.crt
ConfigMapOptional: <nil>
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events: <none>
oc get pod -n if-nvxsw importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26 -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
cdi.kubevirt.io/storage.createdByController: "yes"
k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["172.16.24.59/23"],"mac_address":"0a:58:ac:10:18:3b","gateway_ips":["172.16.24.1"],"ip_address":"172.16.24.59/23","gateway_ip":"172.16.24.1"}}'
k8s.v1.cni.cncf.io/network-status: |-
[{
"name": "ovn-kubernetes",
"interface": "eth0",
"ips": [
"172.16.24.59"
],
"mac": "0a:58:ac:10:18:3b",
"default": true,
"dns": {}
}]
openshift.io/scc: privileged
seccomp.security.alpha.kubernetes.io/pod: runtime/default
sidecar.istio.io/inject: "false"
creationTimestamp: "2024-04-05T09:12:32Z"
labels:
app: containerized-data-importer
app.kubernetes.io/component: storage
app.kubernetes.io/managed-by: cdi-controller
app.kubernetes.io/part-of: hyperconverged-cluster
app.kubernetes.io/version: 4.13.5
cdi.kubevirt.io: importer
prometheus.cdi.kubevirt.io: "true"
name: importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
namespace: if-nvxsw
ownerReferences:
- apiVersion: v1
blockOwnerDeletion: true
controller: true
kind: PersistentVolumeClaim
name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
uid: 5b80a799-60e1-4029-a149-e5e8a98fea14
resourceVersion: "210386401"
uid: 6fa4278b-80a8-4fa6-9c4c-ff0f7821b71f
spec:
containers:
- args:
- -v=1
env:
- name: IMPORTER_SOURCE
value: imageio
- name: IMPORTER_ENDPOINT
value: https://rhev-hq.afbag.com/ovirt-engine/api
- name: IMPORTER_CONTENTTYPE
value: kubevirt
- name: IMPORTER_IMAGE_SIZE
value: "32212254720"
- name: OWNER_UID
value: b45118e9-3419-4c55-829c-7899cb0e27ca
- name: FILESYSTEM_OVERHEAD
value: "0"
- name: INSECURE_TLS
value: "false"
- name: IMPORTER_DISK_ID
value: 232d53f3-6814-40ab-a60b-e57e156978e4
- name: IMPORTER_UUID
- name: IMPORTER_READY_FILE
- name: IMPORTER_DONE_FILE
- name: IMPORTER_BACKING_FILE
- name: IMPORTER_THUMBPRINT
- name: http_proxy
- name: https_proxy
- name: no_proxy
- name: IMPORTER_CURRENT_CHECKPOINT
value: 63073548-416d-4ed5-b54c-55f5a81c5b26
- name: IMPORTER_PREVIOUS_CHECKPOINT
- name: IMPORTER_FINAL_CHECKPOINT
value: "false"
- name: PREALLOCATION
value: "false"
- name: IMPORTER_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
key: accessKeyId
name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn
- name: IMPORTER_SECRET_KEY
valueFrom:
secretKeyRef:
key: secretKey
name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn
- name: IMPORTER_CERT_DIR
value: /certs
- name: IMPORTER_PROXY_CERT_DIR
value: /proxycerts/
image: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:eb66bfabd67d153e1e5a9537b1fe9a94f8e7fc101ec10f86d70a76c0324da082
imagePullPolicy: IfNotPresent
name: importer
ports:
- containerPort: 8443
name: metrics
protocol: TCP
resources:
limits:
cpu: 750m
memory: 600M
requests:
cpu: 100m
memory: 60M
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsNonRoot: true
runAsUser: 107
seccompProfile:
type: RuntimeDefault
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeDevices:
- devicePath: /dev/cdi-block-volume
name: cdi-data-vol
volumeMounts:
- mountPath: /scratch
name: cdi-scratch-vol
- mountPath: /certs
name: cdi-cert-vol
- mountPath: /proxycerts/
name: cdi-proxy-cert-vol
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: kube-api-access-w7wr8
readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
imagePullSecrets:
- name: default-dockercfg-mcrnh
nodeName: skslc-k8s-wok-105.prod-01.k8s.lan
preemptionPolicy: PreemptLowerPriority
priority: 0
restartPolicy: OnFailure
schedulerName: default-scheduler
securityContext:
fsGroup: 107
seLinuxOptions:
level: s0:c30,c25
seccompProfile:
type: RuntimeDefault
supplementalGroups:
- 1000920000
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
- effect: NoSchedule
key: node.kubernetes.io/memory-pressure
operator: Exists
volumes:
- name: cdi-data-vol
persistentVolumeClaim:
claimName: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
- name: cdi-scratch-vol
persistentVolumeClaim:
claimName: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
- configMap:
defaultMode: 420
name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-p959s
name: cdi-cert-vol
- configMap:
defaultMode: 420
name: import-proxy-cm-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
name: cdi-proxy-cert-vol
- name: kube-api-access-w7wr8
projected:
defaultMode: 420
sources:
- serviceAccountToken:
expirationSeconds: 3607
path: token
- configMap:
items:
- key: ca.crt
path: ca.crt
name: kube-root-ca.crt
- downwardAPI:
items:
- fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
path: namespace
- configMap:
items:
- key: service-ca.crt
path: service-ca.crt
name: openshift-service-ca.crt
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2024-04-05T09:12:33Z"
reason: PodCompleted
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: "2024-04-05T09:15:38Z"
reason: PodCompleted
status: "False"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2024-04-05T09:15:38Z"
reason: PodCompleted
status: "False"
type: ContainersReady
- lastProbeTime: null
lastTransitionTime: "2024-04-05T09:12:33Z"
status: "True"
type: PodScheduled
containerStatuses:
- containerID: cri-o://f6d0579083646adba350c0ae7eef0121a99fd94947c6d2ad09be16bdc723107b
image: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:eb66bfabd67d153e1e5a9537b1fe9a94f8e7fc101ec10f86d70a76c0324da082
imageID: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:64fa194703392dd4048a9f508f7872e04864000b8728773504a09661a14684cb
lastState: {}
name: importer
ready: false
restartCount: 0
started: false
state:
terminated:
containerID: cri-o://f6d0579083646adba350c0ae7eef0121a99fd94947c6d2ad09be16bdc723107b
exitCode: 0
finishedAt: "2024-04-05T09:15:38Z"
message: Import Complete
reason: Completed
startedAt: "2024-04-05T09:12:46Z"
hostIP: 10.160.1.105
phase: Succeeded
podIP: 172.16.24.59
podIPs:
- ip: 172.16.24.59
qosClass: Burstable
startTime: "2024-04-05T09:12:33Z"
Actual results:
The import of the VM fails.
Expected results:
No error importing the disk.
Additional info:
I see this issue addressed by this PR: https://github.com/kubevirt/containerized-data-importer/pull/2676 But I guess the fix is not included in 4.13. Can it be backported?