Hi Donal,
One more issue is, currently local storage is discovered when host is added.
But when mgmt. server got restarted, there is an exception happening while
add/discovering already existing local storage pool.
Root cause:
==========
I had debugged and figured out the root cause, CS not able to find the storage
pool and tries to created it but it fails to add to DB as the entry is already
persisted.
The reason why CS not able to get the existing localstorage is , when executing
the query to get the storage pool, it's getting empty set . It's because of the
storage path issue.
In the db the local storage path is stored as
"C:\Users\Public\Documents\Hyper-V\Virtual+Hard+Disks", ('+' symbol in place
of space)
In the db query its searching without "+" and with space which is causing the
query to have empty set and hence the issue.
I can fix the issue by removing the "+" when we are persisting the local
storage pool from hyperv
Exception:
=========
WARN [c.c.r.ResourceManagerImpl] (AgentTaskPool-14:ctx-ddbbf089) Unable to
connect due to
com.cloud.exception.ConnectionException: Unable to setup the local storage pool
for Host[-1-Routing]
at
com.cloud.storage.StorageManagerImpl.createLocalStorage(StorageManagerImpl.java:598)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
com.cloud.storage.LocalStoragePoolListener.processConnect(LocalStoragePoolListener.java:86)
at
com.cloud.agent.manager.AgentManagerImpl.notifyMonitorsOfConnection(AgentManagerImpl.java:519)
at
com.cloud.agent.manager.AgentManagerImpl.handleDirectConnectAgent(AgentManagerImpl.java:1414)
at
com.cloud.resource.ResourceManagerImpl.createHostAndAgent(ResourceManagerImpl.java:1760)
at
com.cloud.resource.ResourceManagerImpl.createHostAndAgent(ResourceManagerImpl.java:1922)
at
com.cloud.agent.manager.AgentManagerImpl$SimulateStartTask.run(AgentManagerImpl.java:1063)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: com.cloud.utils.exception.CloudRuntimeException: duplicate uuid:
35aa91ba-c95b-3fc4-91df-9c95dc31b350-HypervResource
at
org.apache.cloudstack.storage.volume.datastore.PrimaryDataStoreHelper.createPrimaryDataStore(PrimaryDataStoreHelper.java:66)
at
org.apache.cloudstack.storage.datastore.lifecycle.CloudStackPrimaryDataStoreLifeCycleImpl.initialize(CloudStackPrimaryDataStoreLifeCycleImpl.java:349)
at
com.cloud.storage.StorageManagerImpl.createLocalStorage(StorageManagerImpl.java:589)
... 14 more
-----Original Message-----
From: Donal Lafferty [mailto:[email protected]]
Sent: Saturday, August 31, 2013 5:19 AM
To: [email protected]
Subject: [Merge] Minimal Hyper-V Plugin
A plugin for Hyper-V control is available for CloudStack. The plugin
implements basic VM control; however, its architecture allows additional
functionality to be easily added. Incorporating the plugin in CloudStack will
allow the community to participate in improving the features available with
Hyper-V.
The plugin uses a Director Connect Agent architecture described here:
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Progress
This links provides details of third party libraries used by the plugin
including their licenses. No source for these libraries is used, and the
binaries are downloaded from their distributors at build time.
No proprietary tools are required for the build. For instance, C# compiled
with Mono has been tested. Therefore, the plugin has been added to the default
build and the default deployment.
The plugin includes unit and functional tests that can be triggered at build
time. See the link above for details.
The Apache header is applied to source and where feasible to build config files.
The source is the https://github.com/lafferty/cloudstack/tree/hyperv_plugin
Finally, the review request is at https://reviews.apache.org/r/13922/
Testing?
Integration test: created zone with CIFS secondary storage, added Hyper-V
host, registered templates, create/stop/start/destroy VM. Scripts for zone
setup are available on request.
Functional & unit tests: the Java versions are part of the build. The C#
versions were run inside Visual Studio's Test Explorer.