Load-balance by publishing resources to different mounts

Dear support,

We are thinking to relief the current storage server by starting to separate the content so that all textures are stored on a separate server mount. How do I adjust the config in order to achieve this?


1 comment

  • 0
    Manne Öhrström


    Great question! This is totally possible by adjusting your config to be a multi root config instead of a single root config! It involves a couple of different steps. For this example, I am extending the default configuration by adding a new root mount point called textures, located in /mnt/textures.

    1. Add a new local storage

    First, go into the shotgun site preferences and add a new local storage to reflect the new mount point:


    2. Update the roots.yml file

    Next, go to your toolkit project configuration and update the roots.yml file located in the core folder:


    This file reflects the storage settings in shotgun, so update it to match what you added in Shotgun:

      linux_path: /mnt/projects/
      mac_path: /mnt/projects/
      windows_path: 'z:\mnt\projects\'
    textures: {
      linux_path: /mnt/textures 
      mac_path: /mnt/textures
      windows_path: 'z:\mnt\textures'

    3. Set up new file locations in your templates file

    Now open your templates.yml file (also in the core location) and update the paths you want to move. In my example case, I am updating the photoshop work files location to now be on the new textures mount: 

        # The location of WIP files
          definition: '@shot_root/work/photoshop/{name}.v{version}.psd'
          root_name: textures

    Note how the definition format changes - previously it was simply photoshop_shot_work: '@shot_root/work/photoshop/{name}.v{version}.psd' which implies that the primary storage is used - now that we want to specify a specific storage for this path, you split up the template into a definition and a root_name part.

     4. Adjust the folder creation schema

    Lastly we need to make sure that toolkit can track the folder structure on the new mount point. The easiest way to do this is to go into the folder schema config and make a copy of the entire project folder and all its subfolders. In my case I name the folder textures and the corresponding yml config file textures.yml. Inside the configuration file, the root name is updated to be the textures root we just created. Note that any child folders referring to the root folder need to be updated to refer to $textures rather than the previous value:



    5. Do some testing!

    Now launch your application of choice - as part of launching you should now hopefully see new folders being created in your new storage. Once up and running, the apps using the updated template locations should start write and read their files from there instead. In my case, I start photoshop and try to do a shotgun save as:



Please sign in to leave a comment.