Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Multi versie backup met hard links

Pagina: 1
Acties:

Vraag


  • chickpoint
  • Registratie: Oktober 2009
  • Laatst online: 21:38
Mijn vraag
Wij hebben een Windows server waarvan een aantal mappen naar een (backup) NAS gekopiëerd moeten worden. Dit wordt een multi versie backup [dagen..weken...maanden]. Op linux gaat dit heel netjes met rsync en deze kan ook netjes hardlinks maken zodat je backup niet te snel groeit.

Op Windows Server 2016 probeer ik hetzelfde te bereiken met robocopy en PowerShell, maar helaas kom ik niet verder in het wegschrijven dmv hardlinks. Want 24 maal 300 GB wordt al snel te gortig. Bij rsync kan dit bijvoorbeeld door de optie --link-dest te gebruiken.

Het liefste wil ik natuurlijk een oplossing maken zonder 3rd party software.

Relevante software en hardware die ik gebruik
Windows Server 2016
PowerShell 2.0
Synology DSM 6.2
rsync


Wat ik al gevonden of geprobeerd heb
Ik heb natuurlijk al eindeloos veel op het internet rondgestruind, helaas kom je we dedup topics tegen bij de Microsoft community maar dat gaat voornamelijk om het behouden van hardlinks die op de server aanwezig zijn.

Daarnaast heb ik geprobeert rsync via Cygwin te gebruiken, maar dit levert helaas ook niet het gewenste resultaat op. Evenals de varianten hierop.

Ik heb echt geen 9 tot 5 mentaliteit! Eerder 10 tot 3...

Beste antwoord (via chickpoint op 17-07-2018 22:45)


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:25

Hero of Time

Moderator LNX

There is only one Legend

Ik zou eerst kijken of wat je wilt wel ondersteund wordt. Uitgaande van je code hierboven neem ik aan dat je via CIFS/SMB de boel weg wilt schrijven. Voor zover ik weet ondersteund het geen symlinks als zodanig, dus hardlinks zal ook lastig worden. Het is immers een file system eigenschap, eentje die op Linux file systems prima werkt, bij NTFS nu ook wel, maar bijvoorbeeld FAT niet. Als je over CIFS/SMB iets wegschrijft, weet je niet wat voor file system er onder water wordt gebruikt.

Je zal dus verder na moeten gaan denken over oplossingen voor manieren die wel werken. Cygwin icm rsync zou al kunnen werken bijvoorbeeld. Maar de boel andersom regelen is ook een optie.

Commandline FTW | Tweakt met mate

Alle reacties


  • Cyphax
  • Registratie: November 2000
  • Laatst online: 23:15

Cyphax

Moderator LNX
chickpoint schreef op dinsdag 17 juli 2018 @ 15:11:
Mijn vraag
Op Windows Server 2016 probeer ik hetzelfde te bereiken met robocopy en PowerShell, maar helaas kom ik niet verder in het wegschrijven dmv hardlinks.
Wat maakt dat je niet verder komt? Kun je laten zien wat je al gemaakt hebt? Robocopy kan je alleen gewijzigde bestanden laten kopieren, en met een PS-script kun je sym/hardlinkjes maken.

Saved by the buoyancy of citrus


  • DukeBox
  • Registratie: April 2000
  • Laatst online: 00:25

DukeBox

loves wheat smoothies

Rsync (deltacopy) onder windows kan wel overweg met junctions/symlinks maar zover ik weet alleen om ze te herkennen en over te slaan.

Gaat het toevallig om filemaker backups ?

Duct tape can't fix stupid, but it can muffle the sound.


  • chickpoint
  • Registratie: Oktober 2009
  • Laatst online: 21:38
Cyphax schreef op dinsdag 17 juli 2018 @ 15:47:
[...]

Wat maakt dat je niet verder komt? Kun je laten zien wat je al gemaakt hebt? Robocopy kan je alleen gewijzigde bestanden laten kopieren, en met een PS-script kun je sym/hardlinkjes maken.
Het huidige script is als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
$date = Get-Date -Format yyMMdd_
Remove-Item -Path "C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\*.*" -Recurse
Get-ChildItem "SQLSERVER:\SQL\DBnaam\SQLEXPRESS\Databases" | Backup-SqlDatabase
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day7" Day8
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day6" Day7
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day5" Day6
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day4" Day5
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day3" Day4
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day2" Day3
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day1" Day2
Rename-Item -Path "\\backuplocatie\Backup\Daily\Day8" Day1
robocopy "C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\ " "\\backuplocatie\Backup\Daily\Day1\SQL " /copy:DAT /E /FFT /R:0 /W:0 /TS /FP /NP /PURGE /LOG:"\\backuplocatie\Backup\Logs\Daily\SQL\${date}SQL backup.log"
robocopy "G:\Archive\ " "\\backuplocatie\Backup\Daily\Day1\Archive " /copy:DAT /E /FFT /R:0 /W:0 /TS /FP /NP /PURGE /LOG:"\\backuplocatie\Backup\Logs\Daily\Archive\${date}Archive backup.log"


Ik rouleer nu de mappen om het verkeer een beetje in toom te houden, maar dit levert natuurlijk een kopie voor elke dag op, waardoor de backup heel snel heel erg groot wordt.

Als ik dus hardlinks wil maken via PowerShell zou het waarschijnlijk moeten zijn:
code:
1
New-Item -Itemtype Hardlink -Name naamnieuwbestand -Value locatieoudbestand


Of zit ik er dan helemaal naast :?

Ik heb echt geen 9 tot 5 mentaliteit! Eerder 10 tot 3...


Acties:
  • Beste antwoord

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:25

Hero of Time

Moderator LNX

There is only one Legend

Ik zou eerst kijken of wat je wilt wel ondersteund wordt. Uitgaande van je code hierboven neem ik aan dat je via CIFS/SMB de boel weg wilt schrijven. Voor zover ik weet ondersteund het geen symlinks als zodanig, dus hardlinks zal ook lastig worden. Het is immers een file system eigenschap, eentje die op Linux file systems prima werkt, bij NTFS nu ook wel, maar bijvoorbeeld FAT niet. Als je over CIFS/SMB iets wegschrijft, weet je niet wat voor file system er onder water wordt gebruikt.

Je zal dus verder na moeten gaan denken over oplossingen voor manieren die wel werken. Cygwin icm rsync zou al kunnen werken bijvoorbeeld. Maar de boel andersom regelen is ook een optie.

Commandline FTW | Tweakt met mate


  • chickpoint
  • Registratie: Oktober 2009
  • Laatst online: 21:38
Daar was ik al een beetje bang voor, dan ga ik inderdaad toch maar mijn 2e scenario uitvoeren.

Dan mogen alle servers elke dag 1 versie wegschrijven en dan doe ik de versies wel op de backup NAS. Daar kan ik dan hardlinks maken aangezien daar wel Linux op draait.

Thanks voor het meedenken!

Ik heb echt geen 9 tot 5 mentaliteit! Eerder 10 tot 3...


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 00:25

Hero of Time

Moderator LNX

There is only one Legend

Ik doelde meer op een cronjob op je NAS die naar een share gaat op je server en zo de versie backup maakt, maar dat kan ook.

Commandline FTW | Tweakt met mate

Pagina: 1