Agent storage availability
What storage is directly accessible by Agents.
File storages and their mount points that are available for Agents depend on the operating system Agent is running on. Here's listed some common storage locations available to Frends Agents, to be used in Processes for file storage.
PaaS Agent storage
For Frends Platform-as-a-Service (PaaS) Agents, specific drives are pre-mounted and available for use.
Shared Agent Group Storage: Each PaaS (Frends Cloud) Agent Group has an Azure file share that can be used to store files and share them among all Agents in the same Agent Group. It is mounted as the F
drive on Windows-based Agents, or /frends-shared-data/
on Linux Agents.
Local Agent Storage: Windows and stand-alone Linux PaaS Agents have a 32 GB local drive for storing files. This is mounted as the G:
drive or /frends-local-data/
. This drive is not available for Kubernetes Agents.
Internal System Drive: Frends PaaS Agents also have a small internal drive (e.g., C:
drive on Windows) used by the operating system and Frends itself. This drive should not be used for storing other data.
On-Premises and Self-Hosted Storage
For on-premises or self-hosted deployments, Frends can be configured to access various file systems.
Local File System: The Agent requires access to the local file system to store its own operational data, such as Process executables and SQLite databases. You can also use local file paths for file operations within your Processes.
Mounted Network Shares (SMB/CIFS): Frends Agents can be configured to mount and use network file shares. This is useful for accessing shared data across different systems. The configuration can be done during installation via a transformation file or manually by editing the Agent's configuration file. Processes can then access the mounted share like any other drive (e.g., Y:\myFile.xml
). Also storage locations that have been mounted on the server hosting the Agent are accessible without separate configuration.
Azure Files: You can mount an Azure File Share to a Frends Agent, for example, running in Azure Kubernetes Service (AKS).
NFS (Network File System): It is possible to mount an NFS share to a Frends Agent, for instance, in a Kubernetes environment. However, there have been reported issues with SQLite database locking when the persisted-system
directory is mounted on an NFS drive due to latency.
Kubernetes Volume Mounts
When deploying Frends Agents on Kubernetes, you can use volumes to persist data outside the Agent pod.
persisted-system
This volume mount can store the Frends Agent's internal database and Processes, ensuring they are not lost if the pod restarts. This is typically recommended only for development and testing environments, and for production use the Shared State Store is recommended instead.
persisted-data
This volume is used to mount an external file system that the Agent can use to store and retrieve process data.
HostPath Volumes
This simple option mounts a directory from the host node's filesystem directly into the Agent pod. It can be used for both persisted-system
and persisted-data
mounts.
To mount a hostPath volume as persisted-data or persisted-system, first specify the volumeMount in FRENDS-Agent-Deploy.yaml:
volumeMounts:
- name: persisted-data
mountPath: /persisted-data
Next, add the volume in FRENDS-Agent-Deploy.yaml:
volumes:
- name: persisted-data
hostPath:
path: /host_mnt/c/FRENDS/persisted-data/AgentGroupName
Replace the persisted-data in these examples with the persisted-system if necessary. The example path maps to C:\FRENDS\Persisted-data folder on Windows host system.
Check here to learn more about Kubernetes HostPath volumes.
AzureFile Volumes
You can mount a Microsoft Azure File Share into a pod running in Azure Kubernetes Service (AKS). This is supported for the persisted-data volume only.
Create a Frends Agent Storage Secret by running the kubectl command:
kubectl -n [NameSpace] create secret generic azure-storage-secret --from-literal=azurestorageaccountname="[AzureStorageAccountName]" --from-literal=azurestorageaccountkey="[AzureStorageAccountKey]"
Replace the following parameters in square brackets:
NameSpace: Kubernetes NameSpace that your Frends Agent is deployed to.
AzureStorageAccountName: The name of your Azure Storage Account.
AzureStorageAccountKey: The primary or secondary Access Key for your storage account. You can get this from the Azure Portal.
Edit the FRENDS-Agent-Deploy.yaml file and add a persisted-data volumeMount to volumeMounts:
volumeMounts:
- name: persisted-data
mountPath: /persisted-data
Next add the persisted-data volume under volumes:
volumes:
- name: persisted-data
azureFile:
secretName: azure-storage-secret
shareName: share/AgentGroupName
readOnly: false
You can learn more about the Azure File Share for AKS from Microsoft's documentation.
Last updated
Was this helpful?