VMware Cloud Community
szafa
Enthusiast
Enthusiast

storage allocation issue

Hi All

I'am new to aria automation and got nice task to troubleshoot issue in existing setup :). In short customer decided to test advanced workload placement using VMware Aria Operations recommendation. The integration is done but it is keep placing all new VM's on same cluster,look like storage is selected before compute, more details below.

Goal : use Advanced workload placement using VMware Aria Operations

Scenario : One vCenter with 4 cluster located in on DC and 4 cluster in other DC, each DC has own storage
Aria Automation integrated with Aria Operation
- one cloud zone (Placement policy : ADVANCED)
- storage profile for each cluster with tag for example : Storage:DB
- because we have two DC each with own storage in result we have two storage profile with tag Storage:DB

Now when we request VM that should be placed on data store with tag Storage:DB Aria Automation have two option :
data store on DC1 or data store on DC2 and always chose DC1. Then compute allocation starts (Advanced workload placement using VMware Aria Operations) and DC2 is recommended (because there is more available resources) but it will fail because datastore on DC1 was already selected :). In result all VM's get deployed to DC1.

It would work if the compute was selected first and then storage 🙂

Let me know if any one have idea how resolve that problem and how the storage allocation happen (cluster with more free space?)

Thanks

 

Reply
0 Kudos
9 Replies
eduardosuarez
VMware Employee
VMware Employee

Hello,

This could be of the tags not being inhereted.

Can you share the YAML?

Can you try this kb https://kb.vmware.com/s/article/91411 ?

Reply
0 Kudos
szafa
Enthusiast
Enthusiast

Thanks for answer @eduardosuarez. I have already check that KB but we have different scenario, two cluster with own storage each with same tag. Each time same data store is selected so all VM's are deployed in Cluster1. As I mentioned before the best would be that compute is selected first based on Aria Operation recommendation and storage that is available on selected cluster with tag storage:DB 

 

UntitledD.png

 

YAMAL :

***

Cloud_vSphere_Machine_1:
type: Cloud.vSphere.Machine
.
.
.
storage:
constraints:
- tag: Storage:DB

Cloud_vSphere_Disk_1:
type: Cloud.vSphere.Disk
properties:
.
.
.
constraints:
- tag: Storage:DB

***

Error that we get

host.png

I understand that datastoreB is allocated and then Aria Operation recommends host in cluster1 (which has no access to datastoreB) and VM is deployed on cluster2. First question why each time same datastore is selected and how to workaround that issue?

I hope that is clear now 🙂 

Thanks

Reply
0 Kudos
eduardosuarez
VMware Employee
VMware Employee

Can you try adding compute tags? Please add the capability tags to the cloud zones. 

Cloud_vSphere_Machine_1:
type: Cloud.vSphere.Machine
.
.
constraints:
- tag: Cluster:Cluster1
storage:
constraints:
- tag: Storage:DB

Cloud_vSphere_Disk_1:
type: Cloud.vSphere.Disk
properties:
.
.
.
constraints:
- tag: Storage:DB

***

Reply
0 Kudos
szafa
Enthusiast
Enthusiast

already tried that but then we limiting deployment just to Cluster1 but I'd like to automatically deploy equally on both clusters 🙂

 

Reply
0 Kudos
eduardosuarez
VMware Employee
VMware Employee

I see can you try using soft tags?


Cloud_vSphere_Machine_1:
type: Cloud.vSphere.Machine
.
.
.
constraints:
- tag: Cluster:Cluster1:soft
- tag: Cluster:Cluster2:soft
...

Reply
0 Kudos
eduardosuarez
VMware Employee
VMware Employee

What policy do you have selected at the project level?
https://docs.vmware.com/en/VMware-Aria-Automation/SaaS/Using-Automation-Assembler/GUID-91ED93ED-851A...

Can you try with spread?

Reply
0 Kudos
ronaldod
Enthusiast
Enthusiast

If spread is not fulfilling your need you can write a workflow that is doing the balance on your needs.

Reply
0 Kudos
szafa
Enthusiast
Enthusiast

changing placement policy on project level didn't help. We spoke with VMware TAM and they recommend just one storage policy and select any datastore but it didn't help so far. Will try tags now but looks like because storage is always selected first might be not possible to use aria operation advance placement without workflow and we'd like to avoid it. Will keep you update if we get some progress. If anyone have any suggestion please post it :). 

Reply
0 Kudos
emacintosh
Hot Shot
Hot Shot

As I understand it, the order of events is:

  1. A single Storage Profile selected
  2. Compute selected
  3. Datastore/cluster selected (based on the compute selected)

So the key is to ensure that the compute cluster selected in step 2 has its datastores in the Storage Profile selected in step 1.  So in our case, we tag the Storage profiles differently so we can select them separately.  Then we provide our users an option to choose which compute to use (tagged base, not explicit or anything) then we calculate which storage profile tag to use in our cloud template.

So something like this (probably some syntax errors here, just typed it up)

storage:
  constraints:
    - tag: ${input.compute == "Compute A"} ? "Storage A" : "Storage B"}'

 

If you're not looking to have to select the compute at all, then a storage policy may work.  We do that as well.  So we tag the datastores in vcenter, then create a policy based on those tags and then we choose that policy in our Storage Profile (we just have multiple policies).

So in that case, you would have a single Storage Profile that is using your storage policy.  And therefore, every datastore would be available in it.  So once compute is chosen, whatever datastore is selected for that compute will exist in the single Storage Profile and placement should succeed.

I'm still not sure why they choose the Storage Profile first and can only choose one.  We had to open a ticket a couple years ago and have an engineer explain it to us.