BDR Storage Alerts & Capacity Issues
Audience: T1 / T2 / T3
Version: 1.6
Last Updated: April 2026
Applies To: Veeam BDR appliances (all models) with local repository storage
Overview
This guide addresses BDR storage capacity alerts and related backup failures. Covers both immediate remediation (freeing space quickly) and long-term solutions (capacity planning, retention optimization).
Common symptoms:
- Backup job fails with "Insufficient disk space on repository"
- Veeam console shows repository in red/warning state
- NinjaRMM or monitoring alert for BDR disk space (typically <10% free)
- Job completes but merge operation fails due to space
Tier Definitions
| Tier | Scope | Expected Resolution |
|---|---|---|
| T1 | Check space, identify quick wins | 15 minutes or less |
| T2 | Review retention, cleanup stale data | 30-60 minutes |
| T3 | Capacity planning, storage addition | 1+ hours, may require onsite/procurement |
T1 — Check Storage Usage & Quick Assessment
1. Check Current Disk Space
2. Check Windows Recycle Bin
⚠️ Quick Win: Large deleted files may be sitting in the Recycle Bin consuming repository space.
Check Recycle Bin size:
# Calculate total size of items in Recycle Bin
$recycleBin = (New-Object -ComObject Shell.Application).NameSpace(0xA)
$size = ($recycleBin.Items() | ForEach-Object { $_.Size } | Measure-Object -Sum).Sum
[PSCustomObject]@{
RecycleBinSizeGB = [math]::Round($size/1GB,2)
ItemCount = $recycleBin.Items().Count
}
Common scenario:
- Failed backup job cleanup leaves 50-100GB+ VHDX/VBK files in Recycle Bin
- Manual deletions of old backups sent to Recycle Bin instead of permanent deletion
- Windows maintenance operations moved large temp files to Recycle Bin
Action:
- If Recycle Bin shows significant space (>10GB):
- Verify no recent accidental deletions (check with team/client if unsure)
- Empty Recycle Bin: Right-click desktop icon → Empty Recycle Bin
- Or via PowerShell:
Clear-RecycleBin -Force
- Recheck disk space to verify recovery
- If storage alert clears, document in ticket and close
Resolution time: 5 minutes or less (immediate space recovery)
RDP to the BDR and run:
Get-WmiObject Win32_LogicalDisk | Select DeviceID, @{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB,2)}}, @{N='TotalGB';E={[math]::Round($_.Size/1GB,2)}}, @{N='PercentFree';E={[math]::Round(($_.FreeSpace/$_.Size)*100,2)}}
DTC Thresholds:
- < 10% free: Critical - immediate action required
- 10-20% free: Warning - review soon
- > 20% free: Healthy (failure may be transient)
3. Check Repository Status in Veeam
Open Veeam Backup & Replication console:
4. Quick Decision
- If > 10% free: Retry the failed job. This may have been a transient issue during a merge operation.
- If < 10% free: Escalate to T2 for investigation.
- If critically low (< 5% free): Flag for immediate T2/T3 attention. Merges and new backups will likely fail until space is freed.
T2 — Investigate & Identify Space Consumers
1. Review Retention Settings
Check each backup job's retention policy:
- In Veeam console: Home → Jobs → Backup
- Right-click each job → Edit
- Go to Storage tab → Retention policy
DTC Standard Retention:
- Workstations: 7-14 restore points (typically 15-20 in practice)
- Servers: 14-30 restore points (200-400 restore points is normal for longer retention policies)
- High-change environments: 7 restore points (1 week)
- Large environments with limited repo space: 5-7 restore points
Common over-provisioning:
- 30 restore points on a repo sized for 14 days
- GFS (Grandfather-Father-Son) enabled when not needed
- Incorrect retention after migration (old settings carried over)
Action: If retention is higher than DTC standard for the client, reduce to appropriate level and run an Active Full to trigger merge and space reclamation.
2. Identify Largest Backup Jobs
In Veeam console:
- Backup Infrastructure → Backup Repositories → right-click repository → Properties
- Go to Capacity tab to see breakdown by job
Or via PowerShell on the BDR:
Get-ChildItem -Path "E:\Backup\*" -Directory | ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum
[PSCustomObject]@{
JobName = $_.Name
SizeGB = [math]::Round($size/1GB,2)
}
} | Sort-Object SizeGB -Descending
(Adjust path to match your repository location - check Veeam console for exact path)
Action: Identify if one or two jobs are consuming disproportionate space. These are candidates for:
- Retention reduction
- Moving to separate repository (if available)
- Splitting into separate jobs (C: vs D: drives)
3. Check for Orphaned Backups
Orphaned backup chains = backups still on disk but no longer tied to an active job (typically from decommissioned servers, deleted jobs, or migrations).
In Veeam console:
- Home → Backups → Disk
- Look for backup chains that:
- Don't have a corresponding job in Home → Jobs → Backup
- Are for servers or workstations that have been migrated or decommissioned
- Show "orphaned" status or have old dates with no recent activity
Action: Right-click orphaned chain → Delete from disk (confirm with team lead first).
4. Check for Deleted VMs Still Consuming Space
In Veeam console:
- Home → Backups → Disk → expand each job (click the arrow next to the job name)
- Review each machine/VM listed under the job
What to look for:
| Indicator | What It Means | Action |
|---|---|---|
| Workstation with 100+ restore points | Retention misconfigured - should be 15-20 | Check job retention settings, reduce if excessive |
| Server with 200-400 restore points | Normal for server retention policies | Verify matches intended retention (usually normal) |
| Very high count (500-1000+) | Likely orphaned data or failed cleanup operations | Investigate - may be old backup chain |
| Machine no longer exists in environment | Decommissioned/migrated machine still accumulating backups | Right-click → Remove from backup → Delete from disk |
| Old creation dates with no recent activity | Backup chain from old migration/decommissioned server | Verify machine status, delete if confirmed obsolete |
| Mismatched types in same job | Servers and workstations mixed with same retention | Consider splitting job types for proper retention |
Example from screenshot:
workstations01 job:
- backoffice (workstation): 15 restore points ✓ (normal)
- crafton-imgsvr (server): 268 restore points ⚠️ (review - may be old data)
- craftonsvr (server): 400 restore points ✓ (normal for servers)
- doctor (workstation): 15 restore points ✓ (normal)
- scan-x1 (workstation): 15-16 restore points ✓ (normal)
Key Distinction - Servers vs. Workstations:
- Server images: 400 restore points is normal (longer retention for critical infrastructure)
- Workstations: 15-20 restore points is normal (standard retention)
- Excessive counts: Look for workstations with server-level retention (100+) or servers with unusually high counts that don't match retention policy
Action steps:
-
For machines with excessive restore points (100+):
- Verify the machine still exists and is in production
- Check if it was migrated/replaced (old backup chain should have been deleted)
- If obsolete: Right-click → Remove from backup → Delete from disk
- If still active: Investigate why so many points accumulated (check job retention, merge history)
-
For machines that no longer exist:
- Cross-reference with current server/workstation inventory
- Confirm with client or check documentation
- Delete from backup to reclaim space
-
For machines with normal count but old dates:
- Verify last backup date matches job schedule
- If dates are very old (months/years): likely orphaned
⚠️ Important: Before deleting any backup data, confirm with team lead and verify the machine is truly decommissioned - check NinjaRMM, AD, or client inventory first.
✅ Validated Resolution Example:
Issue: BDR storage alert triggered (<10% free space)
Investigation: Reviewed Backups → Disk view, found:
- Multiple machines with 15-16 restore points (normal)
- Two machines with 268 and 400 restore points (excessive)
Root Cause: Machines had been replaced but old backup chains were never removed
Resolution: Deleted replaced computer data via:
- Right-click each obsolete machine → Remove from backup
- Selected Delete from disk
- Freed significant repository space
- Storage alert cleared
Time to Resolution: 30 minutes (T2 level)
Lesson: Always audit backup jobs after migrations/replacements to remove old chains.
5. Check for Stale Merge Files
Interrupted merge operations can leave large temporary files (.vbk/.vib/.vrb) in the repository.
On the BDR:
# Check for .deleteme files (failed cleanup operations)
Get-ChildItem -Path "E:\Backup\" -Recurse -Filter "*.deleteme" | Select FullName, @{N='SizeGB';E={[math]::Round($_.Length/1GB,2)}}
# Check for .vbm files referencing missing restore points
Get-ChildItem -Path "E:\Backup\" -Recurse -Filter "*.vbm" | Select FullName
Action: These typically need to be removed manually if Veeam console can't clean them. Verify they're not part of an active chain by checking the .vbm metadata before deleting.
6. Review GFS (Grandfather-Father-Son) Retention
Many BDRs accumulate GFS full backups without anyone realizing it was enabled.
In Veeam console:
- Right-click each job → Edit → Storage tab
- Check Configure secondary destinations (GFS configuration)
If enabled: You'll see weekly/monthly/yearly fulls accumulating. Unless explicitly required for compliance, disable GFS to reclaim space.
T3 — Capacity Planning & Long-Term Solutions
1. Calculate Current & Projected Usage
Gather data:
- Current repository size (total GB)
- Current free space
- Average daily/weekly backup growth rate
- Retention policy in restore points
Rough capacity formula:
Required Space = (Full Backup Size × 1.5) + (Daily Change Rate × Retention Days)
Example:
- Full backup: 500 GB
- Daily change: 20 GB
- Retention: 14 restore points
- Required: (500 × 1.5) + (20 × 14) = 750 + 280 = 1,030 GB minimum
Action: Document current vs. required capacity. If undersized, escalate for storage addition.
2. Restructure Jobs for Efficiency
For large environments:
- Separate C: drives (system, frequent changes, standard retention) from data drives (D:/E:, infrequent changes, can use lower retention)
- Run separate jobs: "ClientName - System Drives" vs "ClientName - Data Drives"
- Apply different retention policies
Example:
- C: drives → 14 restore points (daily)
- D: drives → 7 restore points (weekly fulls, daily incrementals)
3. Evaluate Storage Addition Options
If capacity is legitimately insufficient:
| Solution | Timeline | Cost | Notes |
|---|---|---|---|
| Expand BDR local storage | 1-2 weeks | Moderate | Requires onsite visit if physical appliance |
| Add secondary repository | 1-3 weeks | Moderate-High | Another BDR or NAS device |
| Cloud repository (S3/Azure) | Days-1 week | Ongoing | DTC standard: Backblaze B2 S3 |
| Replace undersized BDR | 2-4 weeks | High | For fundamentally undersized deployments |
DTC Standard: Veeam S3 copy jobs to Backblaze B2 for offsite. This doesn't solve local capacity but provides DR coverage while local repo is restructured.
Action: Document findings and recommendations in HALO ticket. Engage Account Manager for client approval if cost/procurement required.
4. Schedule Onsite for Storage Addition
If physical storage addition is needed:
- Procure drive(s) matching BDR specs
- Schedule maintenance window with client (30-60 min)
- Onsite tasks:
- Physically install drive
- Initialize & format in Windows
- Add to Veeam repository (or create new repository)
- Optionally: migrate some jobs to new repo
- Post-addition: Run test backup, verify space allocation
Pre-onsite checklist:
- Confirm BDR model and available drive bays
- Verify drive compatibility (SATA/SAS, size limits)
- Confirm RAID configuration (if applicable)
- Backup current Veeam configuration
Quick Reference — Common Causes & Fixes
| Issue | Cause | Fix |
|---|---|---|
| Repository suddenly full | Retention too high | Reduce to DTC standard, run Active Full |
| Slow steady growth | Normal accumulation | Add storage or reduce retention |
| Large spike after migration | Old backup chains not deleted | Delete orphaned backups |
| Merge failures consuming space | Interrupted merges leaving temp files | Manually clean .deleteme files |
| GFS fulls accumulating | GFS enabled but not needed | Disable GFS secondary destination |
| One job consuming 80% of repo | Disproportionate retention or full size | Split into separate jobs or reduce retention |
| Large files in Recycle Bin | Deleted VHDX/VBK files not permanently removed | Empty Recycle Bin (T1 - 5 min fix) |
Escalation & Documentation
If T3 cannot resolve or capacity addition is required:
-
Document in HALO:
- Current capacity: X GB total, Y GB free (Z% free)
- Current retention settings per job
- Projected growth rate
- Recommended solution (storage addition, retention reduction, etc.)
- Cost estimate (if known)
-
Engage Account Manager if client approval needed for:
- Storage purchase
- Onsite visit for installation
- BDR upgrade/replacement
-
Temporary mitigation while waiting for approval:
- Reduce retention to minimum safe level (7 restore points)
- Disable non-critical jobs temporarily
- Set up manual cleanup script to run before backups
Related Documents
- Veeam Troubleshooting Playbook - Scenarios 2 and 9 cover storage-related issues
- Veeam BDR Deployment SOP - Initial capacity sizing guidance
- Veeam S3 Copy Job Configuration - Offsite backup to Backblaze B2
Document History:
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | April 2026 | DTC | Initial creation - comprehensive BDR storage troubleshooting guide |
| 1.1 | April 2026 | Scott Leister | Enhanced T2 Step 4 with detailed visual walkthrough of Backups → Disk view, added table of indicators for identifying cleanup candidates, included real-world example of excessive restore point counts |
| 1.2 | April 2026 | Scott Leister | Added validated resolution example: storage alert resolved by deleting replaced computer backup data (268 & 400 restore point cleanup) |
| 1.3 | April 2026 | Scott Leister | Critical correction: Updated retention standards to distinguish servers (400 points = normal) vs workstations (15-20 points = normal). Updated examples and indicator table accordingly. |
| 1.4 | April 2026 | Scott Leister | Added T1 Step 2: Check Windows Recycle Bin for deleted files. Addresses scenario where 90GB VHDX file in Recycle Bin consumed repository space - clearing bin freed space immediately (5-minute resolution). |
| 1.5 | April 2026 | Scott Leister | Added Recycle Bin scenario to Quick Reference table for easy lookup. Second real-world validation of different client with same Recycle Bin issue. |
| 1.6 | June 2026 | Zachary Boogher | Added T2 scope note clarifying T2 is authorized to execute all cleanup actions (retention reduction, orphaned chain deletion, decommissioned-machine removal, stale merge-file cleanup, GFS disable) without T3 escalation; T3 reserved for capacity planning/procurement. Safety gates preserved. |