Home > Blogs > VMware Consulting Blog > Tag Archives: Jeremy Wheeler

Tag Archives: Jeremy Wheeler

Composite USB Devices Step by Step

Jeremy WheelerBy Jeremy Wheeler

Users have a love/hate relationship with VDI: they love the ability to access apps and information from any device, at any time, but they hate the usual trade-offs in performance and convenience. If you’re using VMware Horizon View, you’ve already overcome a huge acceptance hurdle, by providing a consistently great experience for knowledge workers, mobile workers and even 3D developers across devices, locations, media and connections.

But sometimes, peripherals don’t behave as expected in a VDI environment, which can lead to JWheeler Composite USB White Paperuser frustration. For example, when someone wants to use a Microsoft LifCam Cinema camera, they naturally expect to just plug it into a USB device and have it auto-connect to their VDI session. But if anyone in your organization has tried to do this, you already know that’s not the case. Fortunately, there is an easy workaround to fix the problem.

Download the white paper for the VMware-tested fix to this common problem.

 


Jeremy Wheeler is an experienced Consulting Architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

VMware vRealize Operations Python Adapter – A Hidden Treasure

Jeremy WheelerBy Jeremy Wheeler

Even more power comes out of VMware vRealize Operations when enabling the vRealize Operations Python Adapter, adding additional intelligent monitoring and action capabilities.

To do this, execute the following steps:

Image 1:

JWheeler Image 1

  1. Select ‘Solutions’
  2. Select ‘VMware vSphere’
  3. Select ‘vCenter Python Adapter’

Add your vCenters, and match what you configured under the ‘vCenter Adapter’ section above #3 in image 1.

What Does This Do for Me?

When viewing the default dashboard ‘Recommendations’ you might see something such as the following in your ‘Top Risk Alerts For Descendants’

Image 2:

JWheeler Image 2

By selecting the alert, you will be presented with another dialog to dig into, which is an object we should inspect:

Image 3:

JWheeler Image 3

After I select ‘View Details’ it will present me with the object details of the virtual machine ‘av_prov1’.

Image 4:

JWheeler Image 4

Without Python Adapters configured you will not see the ‘Set Memory for VM’ button; with it configured it will be visible under the ‘Recommendations’ section.

Image 5:

JWheeler Image 5

After selecting ‘Set Memory for VM’ you will be presented with a new dialog (Image 5). Here we can see what the new memory recommendation would be and adjust or apply it. Additionally, if you want the changes to happen now, you can select Power-Off/Snapshot. Without powering off the virtual machine, vRealize Operations will attempt to hot-add the additional memory if the OS will support it.

Image 6:

JWheeler Image 6

Once you select ‘Begin Action’ you will see the dialog in Image 6.


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

Cloud Pod Architecture and Cisco Nexus 1000V Bug

Jeremy WheelerBy Jeremy Wheeler

I once worked with a customer who owned two vBlocks between two data centers. They ran Nexus 1000V for the virtual networking component. They deployed VDI, and when we enabled cloud pod architecture, global data replication worked great; however, all of our connection servers in the remote pod would show red or offline. I found that we could not telnet to the internal pod or remote pod connection servers over port 8472. All other ports were good. VMware Support confirmed that the issue is with the Nexus 1000V and found that there was a bug in the N1KV and a TCP Checksum Offload function.

The specific ports in question are the following:

VMware View Port 8472 – The View Interpod API (VIPA) interpod communication channel runs on this port. View Connection Server instances use the VIPA interpod communication channel to launch new desktops, find existing desktops, and share health status data and other information.

Cisco Nexus 1000V Port 8472 – VXLAN; Cisco posted a bug report about 8472 being dropped at the VEM for N1KV: Cisco Bug: CSCup55389 – Traffic to TCP port 8472 dropped on the VEM

The bug report mentions TCP Checksum being the root cause and offloading only 8472 packets. If removing the N1KV isn’t an option, you can disable TCP Offloading.

To Disable TCP Offloading

  • In the Windows server, open the Control Panel and select Network Settings Change Adapter Settings.
    JWheeler Ethernet Adapter Properties 1
    Right-click on each of the adapters (private and public), select Configure from the Networking menu, and then click the Advanced tab. The TCP Offload settings are listed for the Citrix adapter.JWheeler Ethernet Adapter Properties 2

I recommend applying the following:

  • IPv4 Checksum Offload
  • Large Receive Offload (was not present for our vmxnet3 advanced configuration)
  • Large Send Offload
  • TCP Checksum Offload

You would need to do this on each of the VMXNET3 Adapters on each connection server at both data centers. Once disabled (it did cause nic to blip), we were able to Telnet between the data centers on port 8472 again.

After making these adjustments you should be able to login to the View Admin portal and see all greens for remote connection servers. I have tested and validated this, and it works as intended. For more information I recommend you read Understanding TCP Segmentation Offload (TSO) and Large Receive Offload (LRO) in a VMware environment (2055140).


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

Horizon View 6.2 and Blackscreens

Jeremy WheelerBy Jeremy Wheeler

With the release of Horizon View 6.2 and the vSphere 6.0 Update 1a comes new features – but also possible new issues. If you have an environment running Horizon 6.2 and anything below vSphere 6.0 Update 1, you might see some potential issues with your VDI desktops. VMware has introduced a new video driver (version 6.23) in View 6.2 that greatly improves speed and quality, but to utilize this fully you need to be on the latest vSphere bits. Customers who have not upgraded to the latest bits have reported VDI desktops black-screening and disconnecting. One fix for those difficult images is to upgrade/replace the video driver inside the Guest OS of the Gold Image.

To uninstall the old video driver inside your Gold Image Guest OS follow these steps:

  1. Uninstall the View Agent
  2. Delete Video Drivers from Windows Device Manager
    • Expand Device Manager and Display Adapters
    • Right-click on the VMware SVGA 3D driver and select Uninstall
      JWheeler Uninstall
    • Select the checkbox ‘Delete the driver roftware for this device.’
      JWheeler Confirm Device Uninstall
  3. Reboot and let Windows rescan
  4. Verify that Windows in using its bare-bone SVGA driver (if not keep deleting the driver again)
  5. Install View Agent 6.2

Note: Do NOT update VMware tools or you will have to repeat this sequence unless you upgraded the View Agent.

Optional Steps:

If you want to update the video driver without re-installing the View Agent, follow these steps:

  1. Launch View Agent 6.2 installer MSI (only launch the installer, do not proceed through the wizard!)
  2. Change the %temp% folder and sort the contents by the date/time
  3. Look for the most recent long folder name, for example:
    JWheeler Temp File Folder
  4. Change into the directory and look for the file ‘VmVideo.cab’
    JWheeler VmVideo
  5. Copy ‘VmVideo.cab’ file to a temp folder (i.e., C:/Temp)
  6. Extract all files form the VmVideo.cab file. You should see something like this:
    JWheeler Local Temp File
  7. You can execute the following type of syntax for extraction:
    – extract /e /a /l <destination><drive>:\<cabinetname>
    Reference Microsoft KP 132913 for additional information.
  8. You need to rename each file, so remove the prefix ‘_’ and anything after the extension of the filename. Example:
    JWheeler Local Disk Temp Folder 2
  9. Install View Agent 6.2 video drivers:
    1. Once rebooted in the device manager expand ‘Display Adapter’
    2. Right-click on the ‘Microsoft Basic Display Adapter’ and click ‘Update Driver Software’
    3. Select ‘Browse my computer for driver software’
    4. Select ‘Browse’ and point to the temp folder where you expanded and renamed all the View 6.2 drivers
    5. Select ‘Next and complete the video driver installation.

After completing these steps of re-installing the View Agent, and/or replacement video drivers, you will need to do the following:

  1. Power-down the Gold Image (execute any power-down scripts or tasks as you normally do)
  2. Snapshot the VM
  3. Modify the View pool to point to the new snapshot
  4. Execute a recompose

Special thanks to Matt Mabis (@VDI_Tech_Guy) on discovering this fix.


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

User Environment Manager: Personal Management and Profile Unity to UEM

Jeremy WheelerBy Jeremy Wheeler

User Environment Management is the concept of managing a user’s persona across devices and locations. Using dynamic contextual policy control, VMware User Environment Manager gives IT a comprehensive profile management tool that supports physical, virtual, and cloud-hosted desktops and applications.  These policies deliver a consistent experience that adapts to the end-user’s needs. Regardless of how delivery is performed, end-users can access their desktops and applications with personalized and consistent settings across devices. UEM is focused entirely on the context of the user, and not the device the user is working on.

Have a look at this User Environment Manager Migrations technical document for step-by-step instructions on preparation and migration of Persona Management to UEM, and preparation, configuration and  migration of Profile Unity to UEM.


Jeremy Wheeler, Consulting Architect with the VMware End-User Computing Professional Services team, created this paper.

VMware would like to acknowledge the following people for their contributions to this document:

  • Devon Cassidy, Technical Support Engineer End User Computing, Global Tech Lead, VMware
  • Pim van de Vis, Technical, IT Infrastructure Architect, VMware

Cloning AppStacks and Modifying Scripts

Jeremy WheelerBy Jeremy Wheeler

Recently while working onsite with a client I discovered they needed to have local Windows accounts created upon AppStack attachment as required by their application. The customer didn’t want to go through the process of recreating the AppStack to achieve this. I was able to solve this problem by injecting scripts into the VMDK of the AppStack. These scripts are called at the time a volume is dynamically attached, or at various points during system startup and logon. They are used in order only if present in the AppStack or Writable volume. If not present in the volume the batch file will be skipped.

All batch files are in the root of the AppStack or Writable Volume. They are only accessible on a system without an agent.

For example, if you assign a volume to a Windows system and there is a user logged in, you would see the following steps—taken automatically—in chronological order:

  • prestartup.bat runs under Windows SYSTEM. If the volume is attached from boot, this will run when SVSERVICE starts.
  • startup.bat runs under Windows SYSTEM. If the volume is attached from boot, this will run when SVSERVICE starts.
  • shellstart.bat runs under Windows USER. If the volume is attached before the user logs in, this is called just before the Windows shell launches.
  • startup_postsvc.bat runs under Windows SYSTEM. This will only occur if there are services or drivers on the AppStack or Writable Volume.
  • logon_postsvc.bat runs under Windows USER. This will only occur if there are services or drivers on the AppStack or Writable Volume.
  • allvolsattached.bat runs under Windows USER. If multiple volumes are attached at the same time (i.e., during user logon), then this is called only once.

These scripts may contain any scriptable actions and are used to customize Windows desktop and application actions at various points in time during the system startup and user login processes. This is to ensure AppStack and Writable Volume data will function appropriately and provide the user with the best possible experience.

These scripts are case sensitive and should be utilized and/or modified with caution.

Batch File Details:

Optional wait times for each batch file may be configured. These are just part of the agent machine. Wait times are defined in seconds and all settings are stored as REG_DWORD registry entries in the following Windows registry path.

HKLM\SYSTEM\CurrentControlSet\services\svservice\Parameters

Registry keys may also be created on the agent machine using the command line interface.

Example:

reg.exe add HKLM\SYSTEM\CurrentControlSet\services\svservice\Parameters /v KeyValue /t REG_DWORD /d 60

End User System Batch Files

The following is a list of each batch file used on the end-user system.

  • prestartup.bat – Launched under Windows SYSTEM when a volume is dynamically attached or during system startup prior to virtualization being activated.
    Optional wait time key: WaitPrestartup (default do not wait).
  • startup.bat – Launched under the Windows SYSTEM when a volume is dynamically attached or during system startup. (Right after the volume is virtualized)
    Optional wait time key: WaitStartup (default do not wait).
  • startup_postsvc.bat – Launched under the Windows SYSTEM after services have been started on the volume. This is only called when there are services on the volume, which are needed to be started (not called unless there are services on volume).
    Optional wait time key: WaitStartupPostSvc (default do not wait).
  • logon.bat – Launched under the Windows USER at logon and before Windows Explorer starts.
    Optional wait time key: WaitLogon (default wait until it finishes).
  • logon_postsvc.bat – Launched under the Windows USER after services have been started. This is only called when there are services on the volume, which are needed to be started (not called unless there are services on volume).
    Optional wait time key: WaitLogonPostsvc (default do not wait).
  • shellstart.bat – Launched under the Windows USER when a volume is dynamically attached or when Windows Explorer starts.
    Optional wait time key: WaitShellstart (default do not wait).
  • allvolattached.bat – Launched after all volumes have been processed (so if user has 3 AppStacks, this will be called after all 3 have loaded).
    Optional wait time key: WaitAllvolattached (default do not wait).
  • shellstop.bat – Launched under the Windows USER when Windows session logoff is initiated, but before Windows Explorer is terminated.
    Optional wait time key: WaitShellstop (default do not wait).
  • logoff.bat – Launched under the Windows USER during Windows session logoff when Windows Explorer has terminated, but before the volume has disconnected.
    Optional wait time key: WaitLogoff (default do not wait).
  • shutdown_presvc.bat – Launched under the Windows SYSTEM when the computer is being shut down before services have been stopped.
    Optional wait time key: WaitShutdownPresvc (default do not wait).
  • shutdown.bat – Launched under the Windows SYSTEM when the computer is being shut down after services have been stopped.
    Optional wait time key: WaitShutdown (default do not wait).

Provisioning System Batch Files

The following is a list of each batch file used on the provisioning system

post_prov.bat – Launched at the end of provisioning to conduct any one-time steps that should be performed at the end of provisioning. Invoked at the point of clicking the provisioning complete pop-up while the volume is still virtualized.
Optional wait time key: WaitPostProv (default wait forever).

The steps needed to perform such an operation are outlined here.

App Volumes Update Method

**** Initial preparation

JWheeler Cloning AppStacks 1

  1. Select the source AppStack and click ‘Update.’
  2. Give the new AppStack a name, select the appropriate storage, append the path with the new AppStack name, and enter a description if needed.
  3. Select ‘Create’ and ‘Wait for completion’ or ‘Perform in the background.’
  4. Select ‘Update.’
  5. Once ‘Update’ is selected you will need to wait until the AppStack is cloned. Once completed refresh your App Volumes Manager interface.
  6. The new AppStack you created should be present and show the status of ‘Un-provisioned.’

**** Provision Updated AppStack

JWheeler Cloning AppStacks 2

  1. From the App Volumes Manager interface, select ‘AppStacks’.
  2. Select your newly created AppStack (the one you just modified).
  3. Select ‘Provision.’
  4. Enter the name of the provisioning virtual machine. The provisioning machine is typically a clean virtual machine with patches and limited applications installed.
  5. Select the provisioning virtual machine.
  6. Select ‘Provision.’
  7. Select ‘Start Provisioning.’
  8. Once the AppStack is attached to your provisioning machine open the console to that virtual machine.
  9. You will be greeted with a dialog box that says you’re now in provisioning mode.
  10. Select Explorer and change the view to show hidden files/folders.
  11. Navigate to “C:\SnapVolumesTemp\MountPoints.”

Note: Under MountPoints you will discover links. If you go into each link you will find a set of files such as batch scripts (startup.bat, etc.) You can make your changes at this point.

  1. Once you complete your changes, re-hide hidden files/folders.
  2. Select ‘OK’ on the App Volumes dialog to finish the capture process.
  3. Select ‘Yes’ to the installation complete dialog.
  4. Select ‘OK’ to the next dialog box, which will reboot the virtual machine.
  5. Once the provisioning machine has rebooted, login to complete the process.
  6. Select ‘OK’ at the ‘Provisioning successful’ dialog box.

**** Editing an AppStack VMDK outside the Update option

JWheeler Cloning AppStacks 3

  1. Select a virtual machine that does NOT have App Volumes Agent installed.
  2. Edit the settings of the virtual machine and add a drive. (Edit Settings > Add… > Hard Disk > Use an existing virtual disk)
  3. Navigate through the storage tree to your newly created AppStack and select the VMDK (i.e., \cloudvolumes\apps\<your new app>\<your new app.vmdk>
  4. Select ‘OK’ on the virtual machine settings interface to commit changes.
  5. You should now see a new drive letter representing the new AppStack VMDK. Proceed to make any customizations you need.
  6. Once finished, edit the settings again of the virtual machine (you can do this step with the virtual machine powered-on or off).
  7. Select the newly added hard disk (the new AppStack VMDK you added).
  8. Select the button ‘Remove.’
  9. Select the button ‘Remove from virtual machine.’
  10. Select ‘OK’ to commit changes to the virtual machine.

Note: If you receive an error message that the VMDK is in shared-mode you can do one of two options to resolve this.

  • Select ‘Rescan’ in the App Volumes Manager portal > Volumes > AppStacks tab.
  • Delete .metadata file where the VMDK resides on the datastore. This option is typically needed if you clone the AppStack from the datastore side and don’t use the Update method as outlined above.

Your AppStack is now ready to test.


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

Complex Apps

Jeremy WheelerBy Jeremy Wheeler

From time to time we all come across that extremely complicated application that an organization needs packaged – and of course, it has a lot of moving parts. In this blog entry I will walk through a proven process that has worked successfully, unlike the typical packaging style where, if you make a mistake, you are back at square one. An important key to keep in mind in this blog is the “disposable virtual machine.” I consider a disposable virtual machine an App Volumes Provisioning that will eventually become contaminated, and you will not be able to revert to a clean-state using a snapshot.

Note: Not utilizing a ‘disposable’ provisioning machine will place your normal provisioning machine at risk. The very end of this process involves removing ALL snapshots from the virtual machine.

JWheeler Complex Apps Stage 1

 

1. Prepare a ‘disposable’ provisioning machine. This virtual machine will lose all its snapshots once you finish this process, so it’s best not to use your typical provisioning machine.

2. Point the App Volumes Manager to the Provisioning virtual machine to start the provisioning process.

JWheeler Complex App Stage 2

3. Install any prerequisite applications such as Java, etc.

4. Power down the Provisioning virtual machine and take a snapshot, using this as more of a bookmark in case you need to go back. The snapshot process will capture all the virtual machine elements including the attached App Volume VMDK file as long as you are still in provisioning mode when you powered down the virtual machine.

5. Power on the virtual machine and continue installing any core applications, or your target application. One step my application required was an installation of SQL Express with an imported database, so I installed SQL Express during this step.

6. Power down the Provisioning machine once SQL is cleanly installed and has created another snapshot.

JWheeler Complex Apps Stage 3

7. Power on the provisioning virtual machine, and create any custom databases, accounts, etc.

8. Power down the virtual machine once you have completed all your installs and are ready to complete the App Volumes capture process.

9. Edit the virtual machine’s snapshots (VM > Snapshot > Snapshot Manager) and then ‘Remove All Snapshots.

10. Once the virtual machine’s snapshots have all been removed, you need to consolidate the redo logs. (VM > Snapshot > Consolidate)

11. Once consolidation has completed, power on the virtual machine

12. Select ‘OK’ on the App Volumes dialog box to complete the provisioning process and let the virtual machine reboot.

13. Login to the virtual machine and you should have the message that provisioning has finished successfully. Select ‘OK’

14. Provisioning is now complete and the VMDK should successfully detach from the virtual machine.

Once you complete these steps I recommend a lot of testing to validate the application is performing as expected.


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

Microsoft Office Options with App Volumes

Jeremy WheelerBy Jeremy Wheeler

Working with various customers I’ve discovered challenges when it comes to placing Microsoft Office into AppStacks. VMware has a few models out there that are supported, and they do work well. But a few things to keep in mind when dealing with Office:

  1. Only Office 2010 and 2013 are supported.
  2. Office core bits can be presented once, to the endpoint.

JWheeler AppStacks 1

 

In the diagram above:

1: Office core bits installed into AppStack

2: Office + Microsoft Project, Office icons hidden (Optional: Hide core office icons from start menu)

3: Office + Visio, Office icons hidden (Optional: Hide core office icons from start menu)

4: Office + Project + Visio (Optional: Hide core office icons from start menu)

5: Office + Project + Visio

JWheeler AppStacks 2

6: Base Gold Image installed with Office core bits, and one of three AppStacks that contain:

A) Visio

B) Project

C) Visio + Project

Note: If you hide/delete core office icons from the start menu (such as for Word, Excel, etc.) and you only present Project and/or Visio, don’t simply delete the ‘Office Tools’ folder. You can clean up some of the icons in that folder, but if you delete it, nothing will show in the start menu.


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

App Volumes: Storage Migration for AppStacks

Jeremy WheelerBy Jeremy Wheeler

Inside of App Volumes you can accomplish a storage migration between different SANs using the feature called ‘Storage Groups,’ provided you have shared storage between App Volume Managers. If you don’t, I recommend creating a temporary LUN/Volume to accomplish this migration. If you are performing a migration on a large scale, such as 2X or more App Volume Manager instances, you will need to perform steps one through eight on each App Volume Manager instance.

Conceptual architecture:

JWheeler AppVolumes Manager Conceptual Architecture

 

To achieve a successful migration we will need to utilize a shared LUN/Volume between datastores. This can be an NFS or iSCSI datastore and will only be used temporarily to complete this process.

JWheeler AppVolumes Migration Setup

Stage 1: Migration Startup

  1. Select ‘Infrastructure’
  2. Select ‘Storage Groups’
  3. Give your storage group a name (my example: migration_temp)
  4. Check ‘Automatically Replicate AppStacks’ and leave ‘Automatically Import AppStacks’ unchecked. If you check the ‘Import AppStacks’ checkbox, you will need to do a lot of cleanup if you were using a temporary LUN to do this migration.
  5. Select ‘spread’ for your distribution strategy.
  6. Select your preferred template storage.
  7. Select ‘direct’ for storage selection.
  8. Select the checkbox of your local shared storage. This field will represent where you currently have the AppStacks you want migrated.
  9. Select the checkbox of your Temporary LUN. The temporary LUN is assumed empty or the AppStacks you want migrated over are not on the temporary LUN.
  10. Select ‘Create’ 

Once your storage group is created replication will begin immediately; it might take awhile depending on how many AppStacks you need to distribute within the storage group.

Stage 2: Cleanup

  1. After all AppStacks have been evenly distributed in the storage group, you can simply delete the storage group. This will not delete any AppStacks – it simply disassociates the logical bucket of resources. Both the source LUN and temporary LUN will still have the AppStacks.

Load the VMware vSphere® client and move any AppStacks from the temporary LUN to the permanent shared storage LUN, and then to the View Block.

JWheeler AppVolumes View Block

I want to dig further into explaining this process about moving AppStacks from the temporary LUN. App Volumes create pointers to all AppStacks residing on storage. This means in our example (shown above) when we replicate an AppStack between two points the inventory object in App Volumes Manager will consider all these locations as the AppStack living space. This also means that if you decide to delete an AppStack from inventory, ALL pointer locations will also be deleted. So, if you need to clean up the App Volumes Manager inventory in your Source Environment, you will need to copy, move, or detach the temporary LUN you created prior to deletion. The process for doing that is explained here.

JWheeler AppVolumes

a)      Move AppStacks from cloudvolumes/apps/* to a temporary folder /cloudvolumes/apps/tmp/* using the vSphere C# client, GUI, or vSphere command-line.
b)      Delete AppStacks from Source inventory.
c)      Move AppStacks from cloudvolumes/apps/tmp/* to a permanent shared storage in the target environment folder /cloudvolumes/apps/* using the vSphere C# client, GUI, or vSphere command-line.
d)      Select ‘Import AppStacks’ in App Volume Manager under Volumes > AppStacks.
e)      Select the LUN you moved all the AppStacks into (step c).
f)       Set the root path of where the AppStacks will live and select ‘Import.’

You can also use ‘vmkfstools’ if you have shell access to a host that can see the shared storage. This process is a lot more manual compared to using App Volumes Storage Groups, but you can still accomplish the migration using this method.

Execute the following syntax:

vmkfstools -i </source/location> </dest/location> 

This will copy the VMDK file in its current format from source to target.
(AppStacks VMDKs are Thin Provisioned by default).

Once you have copied the AppStacks you will need to ‘Import AppStacks’ from the App Volume Manager
(Volumes –> AppStacks –> Import AppStacks).

Reference this Knowledge Base for additional information when using the vmkfstools command:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1028042

For more information, be sure to check out the following Education Course:


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013

Using Super Metrics to Populate Widgets in VMware vRealize Operations Manager

Jeremy WheelerBy Jeremy Wheeler

When setting up dashboards in VMware vRealizeTM Operations ManagerTM, I’ve found a lot of customers are trying to locate specific metrics, such as how much memory is available to a cluster after honoring N+1 and 80 percent max memory utilization per host. These types of metrics can be located through a “super metric,” but in many cases you need to edit the XML file(s) correlated to the widget before you can present the super metric to the GUI widget.

In VMware’s previous version of VMware vCenterTM Operations ManagerTM, XML files were used heavily when a specific widget interaction was needed. With VMware vRealize Operations Manager, the process of injecting super metrics into an XML file has changed. This blog specifically talks about the steps needed to populate a widget with your super metric. View the document here: vRealize Operations Management Supermetrics and XML Editing.

For more information, be sure to check out the following VMware Education courses:

 

vRealize with Operations Management Supermetrics_Jeremy Wheeler


Jeremy Wheeler is an experienced senior consultant and architect for VMware’s Professional Services Organization, End-user Computing specializing in VMware Horizon Suite product-line and vRealize products such as vROps, and Log Insight Manager. Jeremy has over 18 years of experience in the IT industry. In addition to his past experience, Jeremy has a passion for technology and thrives on educating customers. Jeremy has 7 years of hands-¬‐on virtualization experience deploying full-life cycle solutions using VMware, CITRIX, and Hyper-V. Jeremy also has 16 years of experience in computer programming in various languages ranging from basic scripting to C, C++, PERL, .NET, SQL, and PowerShell.

Jeremy Wheeler has received acclaim from several clients for his in-¬‐depth and varied technical experience and exceptional hands-on customer satisfaction skills. In February 2013, Jeremy also received VMware’s Spotlight award for his outstanding persistence and dedication to customers and was nominated again in October of 2013