Erfarenheter av Online Backup från City Network

(This post only is concerns Sweden and is therefore written in Swedish)

På pappret ser det ut som Online Backup från City Network (http://onlinebackup.se) skulle vara en väldigt bra tjänst. Vi har många kunder som skulle ha nytta av en sådan tjänst, men tjänsten är väldigt komplicerad att sätta upp så det är inte många som skulle klara av det.
Sedan när första fakturan kom efter ett halvår, visade det sig att den var väldigt mycket större än beräknat.
Då började letandet efter filer som inte skulle behövas säkerhetskopierats. Det visade sig vara näst intill omöjligt. Men det är inte de enda problemen jag haft med Online Backup.

Gamla filer raderas inte

Standardhanteringen av raderade filer är att de skall sparas i fem generationer. Det kan lätt tolkas som att man sparar filerna under fem extra säkerhetskopior. Men så är det inte.

De fem senaste versionerna av raderade filer spara i evigheter!

Gamla filer raderas inte (2)

Man kan ställa in att man vill spara filer i under en viss tidsperiod. Eftersom stanardinställningen sparade filerna i evigheter så ställde jag in att raderade filer skulle sparas i två veckor. Det fungerade uppenbarligen inte heller.

Efter att ha använt den här inställningen i över en månad, kan jag fortfarande återställa filer som är fem månader gamla!

Exkluderade filer sparas på backupservern

Eftersom ett av backupjobben tog med lite för många filer, la jag till ett filter som exkluderade dessa filer. Men efter att ha provkört detta ett tag så visade det sig att att filerna fortfarande fanns kvar på servern.
Detta bekräftades av City Networks support att det var så det det skulle fungera. Exkluderade filer exkluderas helt från backupprocessen och ligger de på backupservern kommer de att ligga kvar där och kosta pengar.
Inte precis som det borde fungera.

Exempel:

  • Man lägger till ett backupjobb som tar backup på C:\ViktigData.
  • Man testkör backupen och märker att den gjorde väldigt backup på väldigt många GB.
  • Efter att ha undersökt vad som gjorts backup på så visar det sig att man har en stor undermapp med oviktiga data och flera stora zip-filer.
  • Om man nu lägger till ett filter som exkluderar C:\ViktigData\Loggfiler och *.zip, så kommer man fortsätta att bli debiterad för dessa filer eftersom man en gång fört över dem till servern! Detsamma gäller om man raderar filerna och inte ändrat standardinställningarna.

Precis detta hände på vår server. Jag förutsatta att filer som inte var med i backupjobbet skulle rensas bort när jag körde rutinen “Delete files that have been deleted ”. Men nu har det visat sig att dessa exkluderade loggfiler (som jag inte kan komma åt eller återställa) ändå räknas med bland de GB jag får betala för! Dessa loggar är tio gånger så stora som de viktiga filerna jag behöver ha med i backupen.

Filer saknas i backupen

Jag skulle sätta upp en ny server och gjorde en disaster recovery på denna server.
Efter ett tag visade det sig att inte alla filer hade återställts, alla filer under ett helt undermappsträd saknades, endast mapparna hade återställts. Och efter lite mer utredning så stod det klart att dessa filer inte alls fanns med i backupen. Först trodde jag det berodde på att det var gamla filer i dessa mappar och att Online Backup hade spelat mig ännu ett spratt med inställningen “spara filer i max 6 månader” och inte heller sparat senaste versionen för filer som är äldre än 6 månader. Men så var nog inte fallet eftsom andra gamla filer var med i backupen. Sedan när jag ändrade en fil för att se om den kom med, fick jag ett felmeddelande vid nästa körning om att inkrementella backupen misslyckats eftersom ursprungsfilen saknades på servern.
Så på något sätt hade filerna försvunnit från servern utan någon varning eller felmeddelande. Tur att det inte var krisläge och den ordinarie serverna hade kraschat när detta hände…

Lösenord betyder inte lösenord

När man installerarar backupprogrammet på en ny dator som skall säkerhetskopieras, blir man ombedd på ett ställe att ange lösenord. Eftersom man har ett lösenord på deras webbserver och precis angivit ett annat under installationen av klienten kan det vara lite förvirrande att veta vilket man skall ange.
Ännu mer förvirrande är det att det inte är något lösenord som skall anges där, utan den kundnyckel man fått från Online Backup!

Använt utrymme på backupjobb

Eftersom tjänsten tar betalt per GB, är det nödvändigt att kunna få reda på vilka jobb som tar mest plats. Från början var detta omöjligt. Supporten har bekräftade att det endast är totalt storlek från varje dator som går att få fram. Däremot kunde man se hur mycket som plats som filerna tog på deras backupserver efter att de komprimerats (men det är inte det de tar betalt för).
Detta är nu tillagt i nyare versioner.

Installerar Apache webbserver med publik kontrollpanel

Vid installationen av klienten till Online Backup installeras samtigt en webbserver från Apache. Eftersom vi behöver backupen på vår webbserver (som kör IIS), kör nu servern en extra webbserver utanför vår kontroll. Vi har inte koll på om den har några säkerhethål eller om den blir uppgraderad när sådana hittas. Dessutom är administrationsgränssnittet öppet utåt för alla att försöka logga in på. Som standard vid installationen är både användarnamn och lösen “admin”, vilket för säkerhetsskull även skrivs ut på inloggningssidan! Inloggningen är inte krypterad och jag betvivlar att det finns några begränsningar på hur många felaktiga inloggningsförsök man har.

Slutsats

För att försöka förstå hur Online Backup från City Network fungerar (och inte fungerar) och hur de har tänkt att man skall använda den på bästa sätt, har jag lagt ner massvis med timmar både med att undersöka själv, men även på att prata med supporten både via mail, telefon och Facebook. Men supportens kunskap om hur Online Backup fungerar är väldigt låg och det är svårt att få några riktiga svar. Och eftersom de verkar vara osäkra på hur det fungerar, gör detta att varje gång jag kommer med ett problem till supporten behöver jag lägga ner ännu mer tid för att hjälpa dem att utreda vad som hänt…
Och att försöka få dem att förstå att man inte borde betala för raderade eller exkluderade filer har varit helt omöjligt. Likaså att man borde kunna se vilka filer det är som tar plats i backuperna.

Så efter alla de här problemen kommer jag inte att fortsätta använda den här backuptjänsten från City Network. Och jag rekommenderar alla testa tjänsten noggrant innan de börjar använda den. Tjänsten är inte längre i beta, men för mig känns det som ingenting är testat eller genomtänkt över huvid taget.

Comparing C# Collection Classes

While I was looking for a way to optimize flexible searches in my collections stored in memory, I came across this page. It has a great list with just the information I needed when deciding witch collection class to use for my memory indexes. I have collections with up to 1 million objects in them and I want (if possible) to retrieve subsets of them in less than 100 ms. And since each subset selections queries several properties randomly, I’m trying to optimize it with memory indexes.

http://geekswithblogs.net/BlackRabbitCoder/archive/2011/06/16/c.net-fundamentals-choosing-the-right-collection-class.aspx

 

My first plan was to scan multiple (sorted) indexes at the same time, but that was not as fast as I thought it would be. Currently the fastest way is to compare indexes two and two to get the intersection. My first try with Dictionary<T, T> was very fast, but used far too much memory. So the best way right now is to use List<T> (with IDs of int) and find intersections of indexes by looping and searching with BinarySearch().

Here is some more information about the BinarySearch():

http://www.dotnetperls.com/binarysearch