I received such error “vSphere Client cannot connect to Profile-driven storage service at https://vcenter:443/sps/sdk” when trying to run the VM Storage Profile in vCenter.
I logon the vCenter server and found ‘vSphere Profile-Driven Storage Service’ is stopped. And I tried to manually start the service, but failed. Then I restarted the vCenter server, the service still could not be started. I found those two relevant entries in the event log, which is not informative enough.
The VMware vSphere Profile-Driven Storage Service service terminated with service-specific error Incorrect function.
The VMware vSphere Profile-Driven Storage Service service is marked as an interactive service. However, the system is configured to not allow interactive services. This service may not function properly.
By poking around, I found that the vSphere Profile-Driven Storage service is actually a java wrapper (Wrapper is a program that makes the java codes run as a Windows service). Then instead of trying to start the service, I decided to manually run the wrapper program. The command is as following, basically you only need to tell the wrapper.exe which configuration file to use.
C:\Program Files\VMware\Infrastructure\Profile-Driven Storage\Wrapper\bin>wrapper.exe “C:\Program Files\VMware\Infrastructure\Profile-Driven Storage\conf\wrapper.conf”
Now I get more information about this issue – It is caused by that the wrapper failed to get a signal from the JVM.
Java is a resources hog. If the server does not have enough resources, it could take a long long time to run a java program. (A simple test is to run ‘java –help’ to see how long it takes to return the results). There are two things I can do to fix this issue – increase the resource (memory) and increase the wrapper ping timeout value (it 30 seconds by default).
After added the following lines into the wrapper configuration file C:\Program Files\VMware\Infrastructure\Profile-Driven Storage\conf\wrapper.conf, I ran the wrapper program again. Now it looks better
# Set the ping timeout to 300 seconds
I shutdown the vCenter server, increased the memory then power it on. This time the Storage-Driven service is running happily as expected after the server is back online.