Una de les principals diferències de Clouding és el nostre sistema de triple rèplica per a l'emmagatzematge dels teus servidors.
En la majoria dels proveïdors, les dades s'emmagatzemen de forma local en el mateix Hypervisor. És a dir, l'Hypervisor (equip físic o host) té la RAM, CPU i Disc dels servidors Cloud que allotja.
Per contra, a Clouding emmagatzemem els discos dels servidors Cloud en un clúster d'emmagatzematge distribuït.
Cada vegada que un Servidor Cloud escriu al disc, les dades s'escriuen simultàniament en 3 discs diferents, cada un d'ells allotjat en una cabina d'emmagatzematge diferent. D'aquesta manera el disc del teu servidor no està vinculat a cap servidor físic, sinó que està distribuït en múltiples cabines.
Això té múltiples avantatges i algun petit desavantatge.
Avantatges
Recuperació ràpida de fallades de software
En el cas d'un problema de hardware en un hypervisor, podem arrencar els servidors allotjats en aquest hypervisor en altres hypervisores en tot just uns segons. Si les dades estiguessin en els discos locals de l'hypervisor, caldria canviar primer el maquinari malmès, abans de poder accedir als discos dels servidors i recuperar-los.
Gran tolerància a fallades
En cas d'utilitzar discos locals, normalment s'opta per RAID 5 -en el qual només pot fallar un disc- o RAID 6 -on poden fallar 2 discos- o RAID 10 -de manera que puguin fallar entre 1 i la meitat dels discos, depèn de quins fallin. En cas de fallar més discos, es produeix una pèrdua total de dades.
En el cas de Clouding, haurien de fallar 3 discos exactament al mateix temps, en 3 cabines diferents, per produir-se una pèrdua de dades. La cosa seria parcial -i fàcilment recuperable des del sistema de Disaster Recovery- ja que les dades del teu servidor s'emmagatzemen en blocs de 4 MB, distribuint cada bloc en un disc diferent. És a dir, les dades no estan només en 3 discos específics, sinó distribuïts entre els centenars de discos que componen el nostre emmagatzematge.
Recuperació ràpida de rèpliques
En un RAID local normal, quan un disc falla, cal reemplaçar-lo físicament perquè les dades es tornin a replicar a aquest disc. Això implica que solen passar bastants hores des que es detecta la incidència, fins que es canvia el disc i comença la replicació. A més, les dades podran replicar com a molt, a la màxima velocitat del disc reemplaçat, el que augmenta el temps total de recuperació.
El nostre emmagatzematge distribuït funciona de forma molt diferent. Quan un disc falla, les rèpliques emmagatzemades en aquest disc, es comencen a replicar immediatament per tots els altres discos de sistema d'emmagatzematge distribuït.
En utilitzar només discos en estat sòlid, disposar de diversos centenars de discos i tenir cabines capaces de transmetre a velocitats de fins a 160gbps, la rèplica no només es comença a fer a l'acte, sinó que a més es completa en molt poc temps, ja que es realitza a una velocitat de desenes de Gbps utilitzant totes les rèpliques existents -que es troben distribuïdes per 2/3 dels discos- per generar una altra rèplica en el terç de discos restant.
Això fa, que el temps de recuperació des que es perd una rèplica fins que hi ha una altra disponible, sigui de pocs minuts, davant de les hores que sol trigar amb un sistema RAID normal.
Integritat de dades
Un RAID normal -encara utilitzant sistemes com PatrolRead- només verifica les dades puntualment i de forma superficial. És a dir, no examina les dades en si mateixes, sinó que simplement verifica que tots els sectors del disc siguin llegibles.
El sistema d'emmagatzematge que fem servir a Clouding té un comportament molt diferent.
Cada vegada que una dada s'escriu, es genera un CRC bàsic d'aquesta dada i s'emmagatzema. D'aquesta manera cada vegada que la dada sigui llegida en el futur, es podrà tornar a calcular el CRC de la mateixa i comparar-ho amb l'emmagatzematge. En el cas que el CRC no quadri, el sistema descartarà aquesta rèplica i utilitzarà una altra rèplica on el valor CRC coincideixi amb les dades emmagatzemades.
Addicionalment, es realitza una comparació dels CRC de totes les rèpliques cada dia, per assegurar la consistència de les dades.
I com a última barrera infal·lible de protecció, es realitza una comprovació bit a bit setmanalment, on es compara el contingut íntegre de cada rèplica contra les dues altres rèpliques existents. En el cas que una rèplica contingui dades diferents de les altres dues, s'utilitzaran les 2 rèpliques restants coincidents per sobreescriure les dades de la rèplica no coincident. A més, es genera un error, perquè els nostres tècnics revisin l'incidència a la recerca de possibles problemes en el disc afectat.
Això assegura, que les dades sempre es mantinguin sense cap mena de corrupció.
Aquestes accions es realitzen tant en les cabines que emmagatzemen els discos dels servidors Cloud, com amb les cabines independents que emmagatzemen els backups o els snapshots.
Snapshots i Clonat instantanis
Per fer un Snapshot d'un servidor en un RAID local, haurem de copiar totes les dades a un emmagatzematge extern, des del qual puguem després descarregar aquestes dades per restaurar aquest snapshot en un altre servidor. Totes aquestes transmissions de dades, especialment amb volums de certa grandària, poden comportar esperes bastant llargues cada vegada que efectuem operacions d'aquest tipus,
A Clouding, en disposar d'un emmagatzematge centralitzat, no necessitem copiar dades. Simplement indiquem al nostre sistema d'emmagatzematge que creï una instància nova d'un disc ja existent. El sistema d'emmagatzematge distribuït és capaç de realitzar aquesta acció de forma totalment transparent i sense cap espera per a l'usuari.
Per tant, a Clouding és possible crear un servidor des d'un snapshot o clonar un servidor en segons, ja que no hem de fer còpies de grans volums de dades.
Backups independents
En un sistema de RAID local, per a realitzar un backup cal que el hypervisor -o els servidors Cloud- enviïn el Backup a la destinació. Això pot provocar problemes de rendiment o de configuració.
Per contra, a Clouding podem llegir directament del sistema d'emmagatzematge distribuït per realitzar les còpies de seguretat, assegurant així que no afecta el rendiment dels hypervisors, ja que llegim de centenars de discos, la qual cosa fa que el procés de backup no afecti el rendiment .
D'altra banda, el sistema de backups és totalment independent dels hypervisors o els servidors cloud, de manera que sempre es realitza sigui quin sigui l'estat d'aquests.
Desavantatges
Costos
Un important desavantatge d'aquest sistema, és el cost, ja que hem de disposar de 3 vegades l'emmagatzematge contractat pels nostres clients. Això sumat a només utilitzar discos d'estat sòlid de grau Datacenter augmenta de forma important els costos.
Les cabines d'emmagatzematge són equips de molt altes prestacions, amb processadors amb gran nombre de cores i freqüències molt altes, així com gran quantitat de RAM per realitzar caché.
També és necessari disposar d'una xarxa d'alt rendiment i baixa latència, per assegurar que l'impacte d'aquest sistema en el rendiment és mínim. Per això a Clouding utilitzem switches de 40G i 100G CISCO amb latències de pocs microsegons per salt.
Rendiment
Evidentment, tota la capa d'abstracció i la separació dels nodes de procés dels d'emmagatzematge afecta el rendiment lleugerament.
L'equip de Clouding ha treballat i continua treballant contínuament per reduir al màxim aquestes diferències de rendiment i en l'actualitat aconseguim temps d'accés i taxes de transferència suficients per a aplicacions d'accés a disc intensiu.
Les taxes de transferència són molt similars a un disc d'estat sòlid local i les taxes de temps d'accés es mantenen per sota d'1 mil·lisegon, amb un temps d'accés habitualment de 500 a 700 microsegons.