Enable creation of vms with solidfire root volumes on vmware67#4977
Enable creation of vms with solidfire root volumes on vmware67#4977skattoju4 wants to merge 3 commits intoapache:mainfrom
Conversation
|
@skattoju4 can you change PR branch to 4.15 and rebase it to 4.15 if this is a bugfix? |
|
Ok done. This is currently somewhat of a hack and may not be finalized in time for 4.15 but we can adjust later. |
|
@skattoju4 alright I've tentatively moved to 4.15.1 |
|
Ping @skattoju4 any update on this, would this make it into 4.15.1, or should we move the milestone? |
| //if (HypervisorType.VMware.equals(templateInfo.getHypervisorType())) { | ||
| // disconnectHostFromVolume(hostVO, volumeInfo.getPoolId(), volumeInfo.get_iScsiName()); | ||
| //} |
There was a problem hiding this comment.
As git will keep the history, we can remove the code and move the comment from code to commit message.
| //vmware 6.7 does not automatically mount datastores after rescanning once removed | ||
| //removeVmfsDatastore(cmd, hyperHost, datastoreName, storageHost, storagePortNumber, trimIqn(iScsiName), lstHosts); |
There was a problem hiding this comment.
As git will keep the history, we can remove the code and move the comment from code to commit message.
| s_logger.info("File " + fileFullPath + " exists on datastore"); | ||
| return true; | ||
| Boolean folderExists = true; | ||
| if(file.getDir() != ""){ |
There was a problem hiding this comment.
import org.apache.commons.lang3.StringUtils; if (StringUtils.isNotEmpty(file.getDir())){
vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
Outdated
Show resolved
Hide resolved
| HostDatastoreBrowserSearchResults results = browserMo.searchDatastore(dirFile.getPath(), file.getFileName(), true); | ||
| if (results != null) { | ||
| List<FileInfo> info = results.getFile(); | ||
| if (info != null && info.size() > 0) { |
There was a problem hiding this comment.
import org.apache.commons.collections.CollectionUtils; if (CollectionUtils.isNotEmpty(info)) {
No update yet. Not sure how to approach this. @Sjnas and @pdion891 are looking into it. |
|
Okay @skattoju4 @Sjnas @pdion891 - pl advise by end of this week, otherwise we can revisit this for next dot-release. I've proposed to cut RC1 b/w 24-31 this month on dev ML. |
…toreMO.java Co-authored-by: Daniel Augusto Veronezi Salvador <38945620+GutoVeronezi@users.noreply.github.com>
|
@skattoju4 are you able to update the PR? if not, can you tell me what I can do to help. @rhtyd I'd apreciate if we could merge this fix in the next release. will this also go into master branch ? |
|
@pdion891 It needs more investigation and testing in a solidfire + vmware env. I have essentially removed some steps from the deployment process to make it work. There might be a better approach. Not sure if this breaks compatibility with older versions of vmware or if there are any side effects. |
|
I'm happy to help @pdion891 as long as this PR can manage to get it reviewed/tested/merged by end of next week; as we've proposed a timeline for 4.15.1 RC1; otherwise we can target it for 4.15.2/4.16 in future. |
| ds.makeDirectory(String.format("[%s] %s", ds.getName(), vmName), dcMo.getMor()); | ||
| } | ||
|
|
||
| if (!ds.folderExists(String.format("[%s]", ds.getName()), "fcd")) { |
There was a problem hiding this comment.
use the constant "HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER" for "fcd"
There was a problem hiding this comment.
use the constant "HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER" for "fcd"
@skattoju4 any update on the changes suggested.
There was a problem hiding this comment.
sorry for the delay.. will update later this evening.
|
|
||
| if (!ds.folderExists(String.format("[%s]", ds.getName()), "fcd")) { | ||
| s_logger.info("fcd folder does not exist on target datastore, we will create one. vm: " + vmName + ", datastore: " + ds.getName()); | ||
| ds.makeDirectory(String.format("[%s] %s", ds.getName(), "fcd"), dcMo.getMor()); |
There was a problem hiding this comment.
"fcd" => HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER
|
@blueorangutan package |
|
@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
|
Packaging result: ✔️ centos7 ✔️ centos8 ✔️ debian. SL-JID 25 |
|
@blueorangutan test centos7 vmware-67u3 |
|
@rhtyd a Trillian-Jenkins test job (centos7 mgmt + vmware-67u3) has been kicked to run smoke tests |
|
Trillian test result (tid-686)
|
|
Ping @skattoju4 @pdion891 any update ? Has this passed your testing/validation and is this ready for merging? |
|
Can't really help myself, as we don't use SolidFire - but I would be happy (for others) to see this merged, if @skattoju3 or @skattoju4 is happy with testing |
|
Agree @andrijapanicsb. @skattoju4 @pdion891 @swill - can you advise when/if this is ready for merging and share your tests. We're looking to tentatively cut RC1 by 31st May 2021. Thanks. |
| // Seems like vmware 6.5 and above does not automatically remount the datastore after rescanning the storage. | ||
| // Not sure if this is needed. | ||
| // If using VMware, have the host rescan its software HBA if dynamic discovery is in use. | ||
| if (HypervisorType.VMware.equals(templateInfo.getHypervisorType())) { |
There was a problem hiding this comment.
cc @harikrishna-patnala @nvazquez could this cause any regression?
There was a problem hiding this comment.
@skattoju4 There are two more methods in which disconnectHostFromVolume() method is being called. Any specific reason why you want to remove this method call only here. Can you check the other two methods as well handleCreateManagedVolumeFromManagedSnapshot() and handleCopyAsyncToSecondaryStorage(). These two are also related to managed storage.
|
Ping @skattoju4 |
fb1189a to
a6e9386
Compare
|
have a bunch of conflicts to resolve and no vmware env to test currently.. don't think it will make 4.15.2 :( |
|
@skattoju thanks, moving it into the 4.16 milestone |
|
Ping @skattoju4 any update on this for 4.16, would it say be ready in two weeks (which is tentative date for cutting RC) |
|
Ping @skattoju4 |
|
@skattoju4 moved to next minor 4.16.1, pl advise if this PR is ready and can make into 4.16.0 by end of this/next week. Thanks. |
|
Hi @skattoju4 is this PR ready? |
|
Hey @nvazquez have not worked on this in a while not sure if the problem still exists or if there is interest in resolving it.. |
|
Hi @skattoju4, I think this is a critical issue that deserves to be fixed if possible. The same problem exists since VMware 6.5 (#3598) and it became a no go factor for the ACS+Solidfire+VMware combination. In our last testing with ACS 4.16.0, the issue still exists. Thus, there is an active interest in us as our managed storage is based on Solidfire and are willing to help with any testing. |
|
@skattoju4 i think this should be fixed. so for production its important to fix this. |
|
Hi @skattoju4 please advise if you are able to continue this work to include it on 4.17 |
|
Hey Nicolas, have not been able to find time for this unfortunately since a
few releases now. Can't promise anything at this point :(
…On Wed., Mar. 2, 2022, 6:30 a.m. Nicolas Vazquez, ***@***.***> wrote:
Hi @skattoju4 <https://github.com/skattoju4> please advise if you are
able to continue this work to include it on 4.17
—
Reply to this email directly, view it on GitHub
<#4977 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AT4SQF6XMQ2BWYUHO55J3X3U55GOTANCNFSM433BIOIA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
Ok @skattoju thanks for letting us know, I'll tentatively move it to the 4.18 milestone |
|
Closing this in favour of #6598 |
Description
This PR is an attempt to fix the issue where vms cannot be created with solidfire root disks on vmware 6.5 and above #3598
Previously the approximate steps would be:
Seems like previously vmware would rescan the storage and remount the datastore but newer versions do not seem to do this.
When attempting to manually mount the datastore the following error occurs:
Operation failed, diagnostics report: Unable to find volume uuid[523486b0-32e55252-da6b-0cc47a30b11e] lvm [snap-4756ea21-52348590-76c4f8d5-a176-0cc47a30b11e] devices.
Note: Newer versions of vmware in addition to updating the uuid also add a label snap-snapID-oldLabel during the resignature process.
Its possible the devices are being filtered for some reason and therefore not getting re-added after a rescan. https://kb.vmware.com/s/article/1016222
This change modifies the steps as followings
Some checks expect a fcd folder to be present, ADD check to ensure folder exists before testing for existence of files inside it.
However, this is not a final solution.
Steps to reproduce:
Create a vm with solidfire root disks on vmware 6.5 and above.
Expected: Sucessful vm creation
Actual: fails with java.lang.RuntimeException: Datastore '-iqn.2010-01.com.solidfire:t5eb.root-150.150-0' is not accessible. No connected and accessible host is attached to this datastore.
Attempts to Fixe: #3598
Types of changes
Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale
Bug Severity
Screenshots (if appropriate):
How Has This Been Tested?
This has been tested on vmware 6.7 using cloudstack 4.15 and solidfire 12