High-end storage solutions usually provide functionality to spread data over different disks transparently within the storage hardware.
Using such solutions is preferred because it allows Elvis Server to address its storage as a single volume. This means that Elvis can just move files around without having to copy actual data, an operation that is time consuming to perform. In these setups, the storage solution will move data between online storage and near-line storage in the background without affecting application performance.
If your storage hardware does not support the above, Elvis Server allows you to spread the "Elvis Data" over multiple volumes. This can be used in the following cases:
- Store live production data on fast disks and store rarely accessed archive data on slower, less expensive disks (near-line storage), even if the storage hardware does not provide this by itself.
- When limitations on volume sizes exist. These can either be related to the storage hardware, the operating system or a virtualization layer. By spreading the data over multiple smaller volumes you can still store all your data on one Elvis Server.
WARNING: Elvis Server will try to move files where possible for optimal performance. Because files cannot be moved between volumes, a copy and delete action is used to spread data over multiple volumes. This dramatically impacts performance since a copy action is very slow compared to a move operation. Note that the tempFilestore (used for newly uploaded files) is always in the standard dataLocation, so make sure to keep critical production files on the default location for best import performance.
You configure volumes in volume-config.xml in the Config folder. In this file you can specify multiple different volumes to be used for files that match specific paths. Files placed in the matched folder paths are placed on the extra storage volumes. Files that do not match any of these volumes are placed in the standard dataLocation. The standard dataLocation is defined in config.properties.txt.
Note: You need to restart the server to apply changes made to the volume-config.xml file. If you configure a volume that matches files that are already in the system, you will have to move these files to the new location yourself, keeping the subfolder structure intact. It is best to set up the volumes before you start importing files into the system.
The matchPath indicates which folders will be placed on a volume. You can use a wildcard (*) to match any file or folder name. Use ** to match multiple directory levels. The matchPath must always end with a slash (/). Multiple matchPaths can be specified for one volume by separating them with commas.
<volume matchPath="/Archive Zone/"> <dataLocation>/Volumes/SecondarySAN/Elvis Data</dataLocation> </volume>
<volume matchPath="/Department B/,/Department C/"> <dataLocation>/Volumes/SecondarySAN/Elvis Data</dataLocation> </volume>
<volume matchPath="/*/Archive/"> <previewFilestoreLocation>F:\Elvis Fast Data\previewFilestore</previewFilestore> <mainFilestoreLocation>G:\Elvis Large Data\mainFileStore</mainFilestore> <versionFilestoreLocation>G:\Elvis Large Data\versionFilestore</versionFilestore> </volume>