Son, Father, Grandfather (SFG) Retention Strategy ================================================= Introduction ------------ The Son, Father, Grandfather (SFG) strategy is a standard industry approach to balance frequent backups with long-term storage efficiency: - **Son (Daily):** Keeps the most recent snapshots from the last 7 days. - **Father (Weekly):** Keeps the Monday snapshot from the previous 4 weeks. - **Grandfather (Monthly):** Keeps the snapshot taken on the 23rd of each month for the last 12 months. This layered structure ensures both short-term recovery and long-term archiving. Scheduler Configuration ------------------------ - **Frequency:** Snapshots are taken daily at 01:00 AM GMT+12. - **Retention Rules:** - 7 daily snapshots (Son) - 4 weekly snapshots (Father – every Monday) - 12 monthly snapshots (Grandfather – 23rd of each month) Snapshot Timeline (1 Year) --------------------------- After one year, you will retain: - 7 daily snapshots - 4 weekly snapshots (Mondays) - 12 monthly snapshots (23rd of each month) **Total retained snapshots after 1 year:** :: 7 + 4 + 12 = 23 snapshots All older snapshots are automatically deleted based on the rules. API Summary ----------- **Create the Snapshot Policy** **Endpoint:** :: POST /api/2.0/backupschedulers/ **JSON Payload**:: { "type": "snapshot", "name": "Son, Father, GrandFather Policy", "enable_backup_policy_notifications": true, "enable_retention_policy_notifications": false, "is_enabled": true, "is_default": false, "manual_incremental_backup": "", "retention_policy": { "name": "Son, Father, GrandFather Policy", "rules": [ { "period": "days", "quantity": 7 }, { "period": "weeks", "quantity": 4, "time_option": 1 }, { "period": "months", "quantity": 12, "time_option": 23 } ] }, "initial_backup": { "day_of_week": ["*"], "start_time": { "hour": 12, "minute": 0 }, "end_time": { "hour": 11, "minute": 45 } }, "incremental_backup": { "day_of_month": "*", "day_of_week": ["*"], "month": "*", "hour": "1", "minute": "0", "repeat": { "hour": "", "minute": "" }, "start_time": { "hour": 12, "minute": 0 }, "end_time": { "hour": 11, "minute": 45 } }, "user_timezone": "Etc/GMT+12" }