Objectives and Data Placement
Each site in a GFS is designed to operate even when disconnected, so objectives are managed locally per site. Every site applies its own objectives to the same share. This prevents sites from interfering with one another’s data mobility and gives each local administrator full control over placement. The guidance below is prescriptive: it states how to do it, not whether to.
Objectives dictate what data moves, when, and where it is stored. Two roles matter for replication:
- Core replication objective
-
A Place On objective targeting the shared OSV. This uploads file data to the shared bucket, which is what enables other sites to pull it.
- Local instance / performance objectives
-
Keep Online to hold a copy on the fastest local tier where data is actively used; Optimize for Capacity to avoid keeping local instances when no objective requires them (use with care — it interacts with durability).
Scenario 1: Two Sites, Second Site as DR
Site 1 is on-premises with large NAS that can hold nearly all data. Its objectives keep the NAS as full as possible with the most recent data, maximizing the existing investment.
Site 2 is in the cloud and cost-optimized: most data sits in low-cost cloud object storage, with only active files on expensive high-performance cloud storage. Site 2’s objectives are nearly the inverse of Site 1’s.
Example: Keep Recent Data Local on All Sites
To keep recently used data online everywhere while leaving the rest in cloud storage, create the objective on all three sites and apply it to the share or directory on each:
Command:
objective-create --name "Recently used data is local" --applied-objective keep-online,LAST_USE_AGE<7DAYS
Expected output:
ID: 3dd45ce7-16fa-439f-a678-6304686dc262
Name: Recently used data is local
Internal ID: 5
Applied objectives:
[ID: 2, Objective ID: 12851c6d-0837-4e12-bd1e-c9faeff29e9e, Objective name: keep-online, Applicability: LAST_USE_AGE<7*DAYS]
To verify or re-check the objective later, objective-list --name "<name>"
returns the same fields:
objective-list --name "Recently used data is local"
Expected output:
ID: 3dd45ce7-16fa-439f-a678-6304686dc262
Name: Recently used data is local
Internal ID: 5
Applied objectives:
[ID: 2, Objective ID: 12851c6d-0837-4e12-bd1e-c9faeff29e9e, Objective name: keep-online, Applicability: LAST_USE_AGE<7*DAYS]