prashanthr2 opened a new issue, #12944:
URL: https://github.com/apache/cloudstack/issues/12944

   ### problem
   
   While documentation specifies NFS-only support for importVM, 
SharedMountPoint is also a filesystem-based shared storage type. Its exclusion 
seems unnecessary and may indicate a gap. Allowing SharedMountPoint or 
clarifying the rationale for this restriction would help improve consistency.
   
   
   Importing a VM using importVm having its qcow2 disk on SharedMountPoint 
primary storage pf the KVM host fails with error:
   
   **Unsupported Storage Pool → Disk not found or is invalid**
   
   This happens during CheckVolumeCommand, causing the import workflow to abort.
   
   SharedMountPoint storage is filesystem-based (similar to NFS from a 
hypervisor perspective), but the current implementation appears to allow only 
NFS for import, leading to this failure.
   
   
   Log snippets to confirm the issue
   
   ```
   2026-03-31 11:21:02,185 DEBUG [c.c.a.ApiServlet] 
(qtp1513608173-26:[ctx-adab0dad]) (logid:7aa9d804) ===START===  10.0.113.139 -- 
GET  
   
clusterid=362f4ccb-75a5-4054-82a0-f1f3adb348ea&command=importVm&diskpath=Centos7_vm-3312_disk0.qcow2&displayname=Centos7&hypervisor=kvm&importsource=shared&name=Centos7&networkid=320688c8-e81e-4488-a5ad-0341ffe32879&response=json&serviceofferingid=2ce350ae-0ee5-4e9f-aae8-973ab7e94826&storageid=76b0752f-e004-456e-8ded-2f92b2845c28&zoneid=cef2f153-1155-46a5-98ac-a24dc9cf4473
   ```
   
   The storagepool used above is SharedMountpoint
   
   ```
   (localcloud) 🐱 > list storagepools id=76b0752f-e004-456e-8ded-2f92b2845c28
   {
     "count": 1,
     "storagepool": [
       {
         "capacitybytes": 127901106176,
         "clusterid": "362f4ccb-75a5-4054-82a0-f1f3adb348ea",
         "clustername": "p1-c1",
         "created": "2026-03-30T15:42:44+0000",
         "details": {},
         "disksizeallocated": 0,
         "disksizetotal": 127901106176,
         "disksizeused": 1279262720,
         "hasannotations": false,
         "hypervisor": "KVM",
         "id": "76b0752f-e004-456e-8ded-2f92b2845c28",
         "ipaddress": "localhost",
         "istagarule": false,
         "managed": false,
         "name": "SharedMount-Cephfs",
         "overprovisionfactor": "2.0",
         "path": "/cephfs",
         "podid": "00866e4f-0077-4770-afbc-3c14cbfc6edd",
         "podname": "Pod1",
         "provider": "DefaultPrimary",
         "scope": "CLUSTER",
         "state": "Up",
         "storagecapabilities": {
           "VOLUME_SNAPSHOT_QUIESCEVM": "false"
         },
         "type": "SharedMountPoint",
         "zoneid": "cef2f153-1155-46a5-98ac-a24dc9cf4473",
         "zonename": "ref-trl-11329-k-Mr9-prashanth-reddy"
       }
     ]
   }
   ```
   
   
   Log snippet from KVM agent showing "Unsupported Storage Pool"
   ```
   2026-03-31 11:28:39,230 DEBUG [cloud.agent.Agent] 
(AgentRequest-Handler-3:[]) (logid:d2b37ca5) Request:Seq 3-2684145377912880400: 
 { Cmd , MgmtId: 32987697643852, via: 3, Ver: v1, Flags: 100011, 
[{"com.cloud.agent.api.CheckVolumeCommand":{"srcFile":"Centos7_vm-3312_disk0.qcow2","storageFilerTO":{"id":"3","uuid":"76b0752f-e004-456e-8ded-2f92b2845c28","host":"localhost","path":"/cephfs","port":"0","type":"SharedMountPoint"},"wait":"0","bypassHostMaintenance":"false"}}]
 }
   2026-03-31 11:28:39,230 DEBUG [cloud.agent.Agent] 
(AgentRequest-Handler-3:[]) (logid:d2b37ca5) Processing command: 
com.cloud.agent.api.CheckVolumeCommand
   2026-03-31 11:28:39,230 INFO  [kvm.storage.LibvirtStorageAdaptor] 
(AgentRequest-Handler-3:[]) (logid:d2b37ca5) Trying to fetch storage pool 
76b0752f-e004-456e-8ded-2f92b2845c28 from libvirt
   2026-03-31 11:28:39,230 DEBUG [kvm.resource.LibvirtConnection] 
(AgentRequest-Handler-3:[]) (logid:d2b37ca5) Looking for libvirtd connection 
at: qemu:///system
   
   2026-03-31 11:28:40,246 DEBUG [kvm.storage.LibvirtStorageAdaptor] 
(AgentRequest-Handler-3:[]) (logid:d2b37ca5) Successfully refreshed pool 
76b0752f-e004-456e-8ded-2f92b2845c28 Capacity: (118.94 GB) 127708168192 Used: 
(1.19 GB) 1275068416 Available: (117.75 GB) 126433099776
   2026-03-31 11:28:40,246 DEBUG [cloud.agent.Agent] 
(AgentRequest-Handler-3:[]) (logid:d2b37ca5) Seq 3-2684145377912880400:  { Ans: 
, MgmtId: 32987697643852, via: 3, Ver: v1, Flags: 10, 
[{"com.cloud.agent.api.Answer":{"result":"false","details":"Unsupported Storage 
Pool","wait":"0","bypassHostMaintenance":"false"}}] }
   ```
   
   the job eventually fails on Management Server as below
   ```
   2026-03-31 11:28:40,247 DEBUG [c.c.a.t.Request] 
(API-Job-Executor-38:[ctx-8abb7d09, job-51, ctx-69bc9bf2]) (logid:d2b37ca5) Seq 
3-2684145377912880400: Received:  { Ans: , MgmtId: 32987697643852, via: 
3(ref-trl-11329-k-Mr9-prashanth-reddy-kvm3), Ver: v1, Flags: 10, { Answer } }
   2026-03-31 11:28:40,247 DEBUG [c.c.a.m.ClusteredAgentManagerImpl] 
(API-Job-Executor-38:[ctx-8abb7d09, job-51, ctx-69bc9bf2]) (logid:d2b37ca5) 
Details from executing class com.cloud.agent.api.CheckVolumeCommand: 
Unsupported Storage Pool
   2026-03-31 11:28:40,270 ERROR [c.c.a.ApiAsyncJobDispatcher] 
(API-Job-Executor-38:[ctx-8abb7d09, job-51]) (logid:d2b37ca5) Unexpected 
exception while executing 
org.apache.cloudstack.api.command.admin.vm.ImportVmCmd 
com.cloud.utils.exception.CloudRuntimeException: Disk not found or is invalid
           at 
org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importKvmVirtualMachineFromDisk(UnmanagedVMsManagerImpl.java:2857)
           at 
org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importKvmInstance(UnmanagedVMsManagerImpl.java:2626)
           at 
org.apache.cloudstack.vm.UnmanagedVMsManagerImpl.importVm(UnmanagedVMsManagerImpl.java:1578)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
           at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.base/java.lang.reflect.Method.invoke(Method.java:569)
           at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
           at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
           at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
           at 
org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:109)
           at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
           at 
com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:52)
           at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
           at 
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
           at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
           at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
           at jdk.proxy3/jdk.proxy3.$Proxy538.importVm(Unknown Source)
           at 
org.apache.cloudstack.api.command.admin.vm.ImportVmCmd.execute(ImportVmCmd.java:289)
           at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:173)
           at 
com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:110)
           at 
org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:698)
           at 
org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
           at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
           at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
           at 
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
           at 
org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
           at 
org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:646)
           at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
           at java.base/java.lang.Thread.run(Thread.java:840)
   
   2026-03-31 11:28:40,271 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] 
(API-Job-Executor-38:[ctx-8abb7d09, job-51]) (logid:d2b37ca5) Complete async 
job-51, jobStatus: FAILED, resultCode: 530, result: 
org.apache.cloudstack.api.response.ExceptionResponse/null/{"uuidList":[],"errorcode":"530","errortext":"Disk
 not found or is invalid"}
   
   ```
   
   Note: Both NetworkFilesystem and SharedMountPoint represent shared 
file-based storage accessible across hosts, and importVM should not be 
restricted to NFS-only.
   
   ### versions
   
   CloudStack version: 4.22
   Hypervisor: KVM
   Primary storage: SharedMountPoint (clustered filesystem mounted on all hosts)
   
   ### The steps to reproduce the bug
   
   1. Configure a KVM cluster with SharedMountPoint primary storage
   2. Ensure storage is mounted on all hosts at the same path
   3. Attempt to import a VM by providing a QCOW2 disk using the importVm API
   4. Observe failure with "Unsupported Storage Pool" and "Disk not found or is 
invalid"
   
   
   ### What to do about it?
   
   ImportVM should support SharedMountPoint primary storage (shared 
filesystem-based storage) similar to NFS.
   
   Validation logic should allow:
   NetworkFilesystem (NFS)
   SharedMountPoint
   
   Instead of restricting import to NFS-only.
   
   Both NetworkFilesystem and SharedMountPoint represent shared file-based 
storage accessible across hosts, and importVM should not be restricted to 
NFS-only.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to