More on Elastic GPUs for AWS Instances

AWS has release Elastic GPUs for their EC2 instances….you can read more about it using the links found at the end of this post but I’m very excited to test this feature for both professional and personal reasons.

Prior to elastic GPUs, AWS users desiring increased graphics performance would need to deploy a G2/G3 EC2 instance that includes a “hardware” GPU.  Running Windows, the cheapest G2 instance, the G2.2xlarge, costs about $.77 per running hour to operate. Depending on your EC2 instance and graphics needs, the G2.2xlarge instance could be overkill and the over allocation of resources leads to waste as your not using the full capacity of the G2/3 instances, which means your paying for resources your not maximizing, which means your paying more than you really need to or should.  But there was no real way around this, until now.

Elastic GPUs come in 4 “sizes”:

  • Medium – 1GB | $.05 per running hour
  • Large – 2GB | $.10 per running hour
  • XLarge – 4GB | $.20 per running hour
  • 2XLarge – 8GB | $.40 per running hour

Additionally, Elastic GPUs support the following instance types:

  • C3 | C4
  • M3 | M4
  • R3 | R4
  • T2.Medium (or greater)
  • X1
  • D2
  • I3

According to Amazon, if your instance and graphics needs can be met with a T2 Medium Elastic GPU instances, you could obtain significant cost savings (up to 80%) as opposed to using the G2/3 instances.  That’s pretty cool!

Professionally, I am looking forward to testing (at least initially) elastic GPUs on Citrix XenApp instances to see what benefit, if any, an elastic GPU will provide in regards to end user published application performance.  Seems like it has to help to some degree though elastic GPUs may be more beneficial on single-user instances.

Personally, I like to take pictures and so I run Adobe Lightroom and Photoshop on occassion.  Not too long ago, my photo-editing laptop was stolen.  Granted, it was not an ideal platform on which to edit photos but it was all I had.  While considering the purchase of a better system on which to run the Adobe applications, I wondered if an EC2 instance would be capable of performing this task.  Do I want to spend $1200 (or whatever) on a laptop to edit photos or simply pay for an on-demand G2 instance in the neighborhood of $20/month for 10-15 hours of usage and storage?  The thought of spending $1200 made my stomach crawl so I opted to try the G2 AWS instance.  It’s worked well but now I’m wondering if a lower cost EC2 instance with an elastic GPU can run the Adobe applications as well as the G2 has and I suppose there’s only one way to find out.

To that end, I have deployed a T2.Large EC2 instance with a 2GB elastic GPU and will begin testing.  I’ll walk through the setup and the issues I had when trying to “migrate” my existing G2 instance to elastic GPUs on my next post.

Useful AWS Elastic GPU Links:


Leave a comment

Filed under AWS, Cloud Computing

EMC NetWorker – Delete the contents of the MNT directory

When troubleshooting NetWorker backups, I typically look to see if the failed VM has an older snapshot that was not deleted and remove it.  Thinking I’m awesome and have solved the VMs backup problem, I’m surprised to see that, more often than not, the VM backup fails the next time the backup runs.  Why, because the MNT directory for the failed backup job/VM still exists on the backup proxy.  Why do I always forget to check the MNT directory!!  Hopefully writing it down will help me to remember.



Leave a comment

Filed under EMC

CentOS 7 and Citrix – ctxvda status error

Over the course of the last few weeks, I’ve gotten an opportunity to explore building and publishing Linux virtual desktops using Citrix XenDesktop 7.11.  Now, I’m no Linux admin/expert which means configuring all this has been challenging at times even with the resources available on the web. Though the Linux VDA will support Red Hat, SUSE, and CentOS, I chose CentOS as my starting point because it’s free in that it does not require additional licensing to use beyond a 60-day demo period.

With that, my starting point for configuring CentOS 7 with XenDesktop 7.11 was the Citrix blog Installing the Linux VDA on Red Hat or CentOS 6.  I highly recommend this blog if you are new to Linux and need a launching pad from which to start your own feasibility testing for publishing Linux via Citrix.

Upon completing the installation of the Citrix VDA and executing ctxsetup to customize the VDA, I waited patiently (2 minute of hitting refresh) for the machine to register with the delivery controller but it never did and so commenced my Linux troubleshooting career.

1. On my Linux workstation, I started a terminal session and ran the command service ctxvda status to see if the VDA service was running:


2. So the VDA service failed to start….but why?  Next I reviewed the VDA log file to see a reference to Citrix KB article CTX119736:


Sweet!!!!  My solution is waiting for me….all I have to do is find the article and my issue will be resolved very shortly and I’ll be accessing my virtual desktop in no time.  BUT, if you try and find CTX119736, you’ll likely encounter the following:


3. Though I couldn’t find CTX119736, the more time I spent looking for it, the basic troubleshooting starting points became somewhat clear and really they are not that much different for Windows hosts….check the time, check the network, check name resolution, etc.  What I found going through those steps is that the time, the network and name resolution worked from the Linux workstation side, but the delivery controller could not ping the Linux workstation by name.  Looking at DNS on the server side revealed that though the workstation retrieved a DHCP address, a host (A) record was not created for it in DNS, thus the delivery controller could not communicate by name.  The DHCP scope options were set to dynamically update DNS records for clients that do not request updates.


4. I rebooted the Linux workstation and after doing so, the Citrix VDA service started and it successfully registered with the delivery controller.


I was surprised that a name resolution issue kept the ctxvda service from starting altogether and it was one of the last basic options I checked.  I figured that if DNS/name resolution was the issue that the ctxvda service on the Linux workstation would start, but that registration would fail.  However, when troubleshooting ctxvda service errors from this point forward, name resolution will be my first test.

Leave a comment

Filed under Citrix, Linux, VDI

“Why can’t I click OK?” – Resizing the Citrix Logon Window

Many clients that I work with (I’d say over 90%), have logon disclaimers that must be acknowledged prior gaining access to enterprise resources…seen below is simply an example I found online to serve as a frame of reference:


When publishing applications from Citrix XenApp, if the logon banner is applied via GPO at the domain level, users must acknowledge the disclaimer when accessing published applications….so they acknowledge once when logging into their domain computer, and then again when launching published applications.

Thus, some organizations disable the logon disclaimer on the by disabling policy inheritance on the XenApp Server OU and others leave the disclaimer in place so as to ensure any users making XenApp connections from non-domain computers will have to acknowledge the logon disclaimer.

The problem I have seen when using Server 2012R2 is that the logon disclaimer is “larger” than it was with Server 2008R2 and thus when the users launched applications from the 2012R2 server, the logon disclaimer page had a scroll bar.  If the scroll bar was not to the far left of the disclaimer page, the OK button “wouldn’t work”, which confused the users.

Citrix support told me the logon disclaimer window has a default size of 600 (W) and 520 (H) but that the size can be adjusted (in this case increased) so as to get rid of the scroll bar in order to maintain the focus of the disclaimer window.  To set the width and height of the logon disclaimer window, add the following registry keys:

  • HKLM\Software\Wow6432node\Citrix\CtxHook\AppInit_DLLS\Multiple Monitor Hook
    • Name: LogonUIWidth | Type: REG_DWORD | Value: 800 (Decimal)
    • Name: LogonUIHeight | Type: REG_DWORD | Value: 600 (Decimal)


After creating the keys shown above, the logon disclaimer window was larger, the scroll bar was gone, and the users could once again click OK without worrying about focus or scroll bars.  The change did not require a reboot of the XenApp server(s).



1 Comment

Filed under Citrix, Windows Server

Creating Custom EXEs with Smart Install Maker

On a recent Citrix project, I needed/wanted to do 3 things on end-user computers:

  • Remove the 11.x Citrix Web Plugin if it existed
  • Run the ReceiverCleanupUtility to uninstall older versions of the Online Plugin or Citrix Receiver
  • Install Citrix Receiver 4.4 using a custom command-line

Ultimately, I wanted the users to be able to do all this with a single click from the StoreFront page.  After a little research, Citrix has published steps on creating a custom Receiver package with Smart Install Maker.  I used Smart Install Maker to create a custom EXE to complete the 3 items listed above and will use StoreFront to make it available to the end-users.  This post is simply a recap of the steps required to create the EXE with screenshots.

1.Personally, I used VMware Workstation to create a “clean” VM (Windows 7) on which to install Smart Install Maker and test my custom EXE.  Perhaps you have access to other tools, but I recommend performing these tasks on your primary administrative device.

2.On my clean VM, I created a Receiver directory on the root of C and in that directory, I downloaded Citrix Receiver 4.4, the Citrix ReceiverCleanupUtility, and the .BAT file I created to perform these steps.  My .BAT file is shown below:

  • ECHO.
    ECHO Removing existing Citrix ICA/Receiver Clients
    REM ***********************************************************
    REM * The MsiExec executable uninstalls the Citrix Web Plugin *
    REM ***********************************************************
    MsiExec.exe /X{C0B165DC-F037-483F-B1C9-D89D91529CEB} /qn /norestart
    ReceiverCleanupUtility.exe /silent
    ECHO Existing Citrix ICA/Receiver Client removed
    ECHO Installing and Configuring Citrix Receiver 4.4
    CitrixReceiver.exe /includeSSON STORE0=”StoreService;;On;CTXStore” ALLOWADDSTORE=A ALLOWSAVEPWD=A

3. Download and install Smart Install Maker and your clean VM.  **Note:  A “full” copy of Smart Install Maker is $99.  If you do not purchase a full copy, you can use SIM for 30 days, though each execution of a custom EXE will display a “You are using a Demo” popup window.  The install of SIM is pretty straightforward.

4. Launch SIM.  On the Installer | General options screen, specify a name for the custom installation package in the Save as heading which determines where the final executable will be saved.  In this example, SIM will save the custom EXE (CustomSetup.exe) into the C:\Temp\Receiver folder.


5. On the Installer | Files options screen, click the plus icon (highlighted below) to add files to the project.



6. On the Add Item window, click the folder icon to the right of the Source file heading.


7. On the Open window, select the Citrix Receiver installation executable as well as any required BAT files and click Open.


8. When returned to the Add Item window, change the Destination directory and click OK.  The destination directory is simply the location to which the process will copy any necessary files.  In this example, I changed the destination directory to C:\CitrixRec…when the custom EXE is executed on a remote computer, a C:\CitrixRec directory will be created which contains the files added into the project.


9. On the Installer | Dialogs options screen, select Silent installation and change the Destination Path to C:\CitrixRec.


10. On the Installer | Commands options screen, click the plus icon (highlighted below) to command files to the project.


11. On the Add Item screen, click the select file icon (highlighted below) to add command files to the package.



12. On the Select a file window, select the BAT file used to install Citrix Receiver with customized settings and click OK.  When returned to the Add Item window, select After unpacking under Run schedule, then select the Wait until the application finishes checkbox and click OK.



13. On the top level menu, click Project | Build Installer.


14. The project will begin to compile as shown below.  Click OK when compiling has completed successfully.



15. On the Compile screen, click Test if you want to test the new executable from the compile screen; otherwise click Close.


16. Verify the success/failure of the package and make changes as required to the .BAT file. Once the package performs as desired, deploy and test the custom EXE to a pilot group, and then map out a strategy for deploying to the organization.

Leave a comment

Filed under Citrix, Utilities