GCP File Storage

Google Cloud offers its own managed file storage option known as Filestore, however it’s only accessible via the Network File System (NFS) protocol (v3).

Typically, NFS shares are better suited to Linux or macOS clients, although it is possible to access NFS shares on Windows Servers. NFS shares on Windows are mounted per-user and are not persisted when the server reboots. It’s for these reasons that Octopus recommends using SMB storage over NFS when running on Windows Servers.

You can see the different file server options Google Cloud has in their File Storage on Compute Engine overview.

Filestore using NFS

Once you have created a Filestore instance, the best option is to mount the NFS share using the LocalSystem account, and then create a symbolic link pointing at a local folder, for example C:\OctopusShared\ for the Artifacts, Packages, TaskLogs, Imports, and EventExports folders which need to be available to all nodes.

See more information about Windows NFS and Octopus Deploy.

High Availability

With Octopus Deploy’s High Availability functionality, you connect multiple nodes to the same database and file storage. Octopus Server makes specific assumptions about the performance and consistency of the file system when accessing log files, performing log retention, storing deployment packages and other deployment artifacts, exported events, and temporary storage when communicating with Tentacles.

What that means is:

  • Octopus Deploy is sensitive to network latency. It expects the file system to be hosted in the same data center as the virtual machines or container hosts running the Octopus Deploy Service.
  • It is extremely rare for two or more nodes to write to the same file at the same time.
  • It is common for two or more nodes to read the same file at the same time.

In our experience, you will have the best experience when all the nodes and the file system are located in the same data center. Modern network storage devices and operating systems handle almost all the scenarios a highly available instance of Octopus Deploy will encounter.

Disaster Recovery

For disaster recovery scenarios, we recommend leveraging a hot/cold configuration. To achieve this with GCP you have several options available. Further details on the redundancy options available for Filestore can be found here.

Zonal

Zonal availability provided by GCP will replicate your data across a single zone. This will protect against simple hardware failure but provides no protection against a zone or region failure.

Regional

Regional availability provided by GCP will replicate your data across several zones within the same region. This will protect against the failure of one or more zones but provides no protection against a region failure.

Whether you use Zonal or Regional availability, it would be necessary to create backups of the Filestore in a different region to ensure data resilience. The backup can be configured within a scheduled job.

In the event of a failure of the primary region, it would be necessary to restore the backup of your Filestore to a secondary region and reconfigure Octopus to point to the new region. There may be some data loss to consider in this scenario based on how often your Filestore backups are taken.

Help us continuously improve

Please let us know if you have any feedback about this page.

Send feedback

Page updated on Wednesday, May 22, 2024