Working with Horizon Workspace Virtual Users and zmprov

One nifty feature of Horizon Workspace is the ability to share files and folders with external users. An "external user" could mean one of two things:

  1. A directory server user not synced to Horizon Workspace

  2. Someone outside of the enterprise

An invited user is then created as a virtual user in the Workspace instance. You can find more information about virtual users in the Horizon Workspace Administrator's Guide under User and Group Types:

When a virtual user is created, they are assigned to a hidden Class of Service (COS) called defaultExternal. This class of service comes with its own parameters, notably, all virtual users are defaulted to a file upload size of 2GB. You may notice the following error when a virtual user tries to upload a file larger than 2GB:

exceeds single file maximum upload size 2147483648 bytes

Additionally, the virtual user will share the quota of the internal user that shared the file with them. So if the inviter has an unlimited quota, files the invitee uploads won't have a negative impact. Conversely, if the inviter has a 10GB limit, any file the invitee uploads will go toward that internal user's 10GB quota.

So how can we increase the virtual user's file upload size limit?

Though the defaultExternal COS is hidden in the Administration Console, you can still configure its attributes via the data-va command line.

To change the upload file size limit for virtual users:

  1. Login to the data-va as root

  2. Change to the zimbra user:

    sudo su - zimbra

  3. Switch to the virtual user tenant and modify the upload attribute to the desired file size limit, in bytes:
    $ zmprov
    prov> st __virtual__
    prov> mc defaultExternal hzndataFileUploadMaxSize filesize-in-bytes
    prov> mc defaultExternal hzndataFileUploadMaxSizePerFile filesize-in-bytes
    prov> quit

    Increasing virtual user file upload limit to 3GB

  4. Restart the service

    zmcontrol restart

Note: to clear the Tenant specifier back to default, use the unsetTenant command:

$ zmprov

prov> ut

To view all COS, you can use 'gac.' Notice my example below doesn't show defaultExternal because I do not have any virtual users:

Additionally you can run "zmprov gac -v" which will show all the configured attributes for each COS. The process outlined above can be used to edit any COS manually. Keep in mind a COS you've created in the Administrator Console GUI will be in the default tentant, not the __virtual__ tenant.

Happy modding!

comments powered by Disqus