Een tijdje geleden hebben we de mogelijkheid geïntroduceerd om snapshots te maken van een schijf. Dit is een zeer handige functie waarmee u snel en efficiënt schijfstatussen kunt opslaan, zelfs op live systemen.
Dankzij ZFS, verbruiken automatische snapshots alleen de delta tussen de huidige staat en het moment waarop de snapshot is gemaakt. Dit betekent dat als uw originele schijf 15 GB was en er slechts 1 MB aan gegevens is gewijzigd tussen de snapshot en de huidige staat, de grootte van de snapshot 1 MB is. Als u nog een megabyte naar de schijf schrijft, groeit de snapshot met nog een megabyte.
Een ander mooi aspect van dit systeem is dat elke snapshot kan worden gepromoveerd (gekloond) tot een volledige schijf. Dit betekent dat u een onafhankelijke kopie kunt maken die op een server kan worden gekoppeld, eventueel op een heel ander opslagsysteem. Als zodanig vormt dit de basis voor een opslagbeheerstrategie (afhankelijk van uw werklast).
Een waarschuwing
Hoewel het gebruik van periodieke snapshots deel kan uitmaken van uw back-upstrategie, is het onverstandig om snapshots als uw enige strategie te gebruiken.
Er zijn ook tal van situaties waarin het gebruik van deze snapshots niet werkt, zoals het maken van een snapshot van een actieve databaseserver. De snapshot-functionaliteit kan nog steeds nuttig zijn op stopgezette databaseservers (om een herstel naar een specifiek tijdstip te maken), maar nogmaals, het mag niet uw enige back-upstrategie zijn.
Automatische snapshots maken
Met behulp van onze Python-bibliotheek, is het automatiseren van snapshots heel eenvoudig. Gezien het feit dat we de CloudSigma inloggegevens moeten opslaan op het systeem dat de snapshots activeert, raden we u ten zeerste af om inloggegevens van productiediensten op een onveilige manier bloot te stellen. Als u dit bijvoorbeeld op een cloudserver wilt uitvoeren, zorg er dan voor dat deze is afgeschermd van de rest van de infrastructuur (bijvoorbeeld door onze functie voor netwerkbeleid te gebruiken) en dat deze volledig is vergrendeld.
Na het installeren van de Python-bibliotheek kunt u het script als volgt downloaden en uitvoeren:
[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot.py$ python snapshot.py drive-uuid my-snapshot
[/bash]
snapshot.py accepteert twee argumenten:
- De UUID van de schijf waarvan u een snapshot wilt maken
- Een herkenbare naam voor de snapshot
Nadat u handmatig een snapshot hebt gemaakt en hebt gecontroleerd of deze werkt (u kunt dit zien onder het gedeelte ‘snapshot’ van de schijf), kunnen we dit nu automatiseren.
De meest geschikte en gestandaardiseerde manier om een dergelijke taak uit te voeren is via de crontab (ervan uitgaande dat u Linux of Mac OS X gebruikt).
Voer met dezelfde gebruiker als waarmee u de bovenstaande snapshot hebt gemaakt het volgende uit:
[bash light=”true”]
$ crontab -e
[/bash]
Als u elke nacht om 01:00 uur een snapshot wilt maken, voegt u de volgende regel toe:
|
1 |
0 1 * * * python /path/to/snapshot.py drive-uuid my-snapshot >> $HOME/snapshot.log 2>&1 |
U zult ook merken dat het script logt naar een bestand met de naam snapshot.log in de thuismap van de gebruiker die het script uitvoert.
Automatisch opschonen van snapshots
Aangezien snapshots in de loop van de tijd groeien, wilt u deze snapshots waarschijnlijk na verloop van tijd verwijderen. Om dit probleem op te lossen, hebben we een ander script gemaakt dat dit voor u kan doen. Het script heet snapshot_purge.py en accepteert twee argumenten:
- De UUID van de schijf
- Het aantal dagen aan snapshots dat u wilt behouden
Als u bijvoorbeeld 30 dagen aan snapshots wilt behouden, kunt u eenvoudigweg het volgende uitvoeren:
[bash light=”true”]
$ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot_purge.py
$ python snapshot_purge.py drive-uuid 30
[/bash]
U kunt dit natuurlijk ook automatiseren. Als we bijvoorbeeld snapshots ouder dan 30 dagen willen opschonen, kunnen we het volgende toevoegen aan onze crontab (die om 01:30 uur wordt uitgevoerd):
|
1 |
30 1 * * * python /path/to/snapshot_purge.py schijf-uuid 30 >> $HOME/snapshot_purge.log 2>&1 |
Afronding
Dat’s het, mensen. Met behulp van deze twee scripts kunt u de snapshots van uw schijven automatiseren. Als u van meerdere schijven een snapshot wilt maken, voegt u gewoon meer snapshot.py-regels toe aan uw crontab met verschillende UUID's.
We krabben natuurlijk pas aan het oppervlak van wat we met snapshots kunnen doen, maar ik hoop dat dit dient als een snelle spoedcursus in het gebruik van snapshots voor uw opslagbeheerroutines.
Als u geavanceerdere behoeften heeft op het gebied van dataretentie, kunt u hopelijk een deel van de code in de bovenstaande scripts hergebruiken.
Reacties
Nog geen reacties. Wees de eerste.