hosting e la suddivisione delle risorse: le tecnologie #tipoftheday

13
Hosting e la suddivisione delle risorse: le tecnologie

Upload: aruba-spa

Post on 18-Jul-2015

204 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Hosting e la suddivisione delle risorse:

le tecnologie

Page 2: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Limitare le risorse

in un ambiente di hosting è possibile,

ricorrendo a piattaforme come CloudLinux,

capaci di isolare ogni singolo

account utente

#e-Commerce

Contenuti a cura di HostingTalk

Page 3: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Le offerte di hosting sono croce e delizia tanto degli utenti quanto dei provider.

Per gli utenti, un servizio di hosting è abbordabile

dal punto di vista economico

e facilmente gestibile dal punto di vista tecnico.

Allo stesso tempo, i provider come Aruba offrono l’hosting perché permettono

una democratizzazione delle tecnologie di hosting a un mercato

che lo richiede e che si rende quindi profittevole.

Il rovescio delle medaglia sta nella difficoltà di gestire questi ambienti di hosting.

Dal punto di vista degli utenti,

la condivisione del medesimo hardware provoca problemi di sovra-utilizzo

da parte di alcuni clienti attestati sul server,

che, approfittando dell’assenza di limiti sulla CPU e sugli accessi al disco,

elaborano un quantitativo di richieste tali da sovraccaricare il server

e provocare difficoltà operative a chi condivide

la stessa macchina.

Page 4: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

In questo modo,

i siti più popolari provocano lentezza operativa,

instabilità e malfunzionamenti ai siti più piccoli residenti sul medesimo server.

Dal punto di vista dei provider,

la gestione di questa situazione e delle lamentele dei clienti che ne derivano

è difficoltosa e costosa, soprattutto per la necessità di individuare

l’utenza approfittatrice e gestire anche conseguenti interruzioni di servizio.

Il problema della limitazione delle risorse in un ambiente di hosting

può essere risolto impostando dei limiti al consumo hardware

e una giusta suddivisione delle risorse computazionali e di connettività

fra le utenze attestate sul medesimo server.

Una delle più interessanti tecnologie in questo senso

prende il nome di CloudLinux.

Page 5: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Anche se molti continuano a vedere CloudLinux come una distribuzione Linux a sé stante (basata su CentOS), in realtà CloudLinux è un’estensione per CentOS/RHEL

(Red Hat Enterprise Linux) integrata ormai da oltre un anno nel kernel di Linux,

ad affiancare tecnologie di containerizzazione molto più vetuste come chroot e cgroups.

Agli utenti di hosting , CloudLinux risolve il problema dei “vicini” di server che vogliono dominare gli spazi comuni, offrendo ai provider un controllo granulare sulle risorse da assegnare a ogni singolo cliente di hosting attestato sulla medesima macchina.

CloudLinux previene che un

utente o pochi utenti possano

impossessarsi delle risorse di un

server e permette di configurare

specifici limiti d’utilizzo

su RAM, CPU, processi

e accessi al disco

per ogni singolo account.

Page 6: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

L’obiettivo è una ripartizione equa delle risorse,

evitando che ci possano essere rallentamenti per gli utenti che usano meno risorse e che il provider debba intervenire in modo manuale per risolvere i problemi di sovra-utilizzo.

Per consentire ai provider di gestire al meglio l’assegnazione delle risorse,

CloudLinux crea un ambiente di runtime isolato e limitato per ogni singolo account utente.

Questo ambiente prende il nome di Lighweight Virtual Environment (LVE)

ed è essenzialmente paragonabile a un container.

LVE di CloudLinux permette di gestire a livello kernel l’isolamento,

il monitoraggio e la reportistica sulle risorse usate dagli utenti e

ha la stessa origine tecnologica della virtualizzazione basata sui contenitori.

CloudLinux si differenza infatti da un qualsiasi hypervisor, come VMware,

in quanto non permette di eseguire diversi sistemi operativi sul medesimo server,

ma permette la coesistenza indipendente di diversi ambienti utenti sullo stesso server Web,

sotto lo stesso sistema operativo.

Mentre le funzionalità di un hypervisor si adattano meglio agli ambienti di cloud computing,

CloudLinux e le tecnologie ad esso simili sono più adatte a un contesto di hosting.

Page 7: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Le limitazioni su CPU, memoria e I/O disco possono essere impostate tramite CloudLinux

in modo che siano valevoli per ogni hosting presente sul server; oppure possono essere rese differenti sulla base del singolo account, delle singole necessità tecniche,

magari corrispondenti anche a diverse condizioni economiche praticate ai diversi clienti.

In questo modo, i provider possono anche pensare di associare maggior risorse agli account

altospendenti o, viceversa, aumentare la densità server con scarso impatto negativo sugli

account di hosting già esistenti. CloudLinux, quindi, rappresenta non solo una garanzia

per un servizio di hosting efficiente, ma anche un’opportunità per i provider,

per minimizzare gli sprechi e massimizzare i guadagni.

Se si fatica ancora a capire l’importanza di una tecnologia come CloudLinux,

si può pensare a un esempio lampante. Un Web server Apache genera un nuovo processo

per ogni connessione utente quando si sta lavorando in single-thread. Ognuno di

questi processi consumano grandi quantità di memoria, soprattutto se pongono

in esecuzione linguaggi come Python, che richiede una nuova istanza

dell’interprete Python per ogni processo.

Page 8: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Sotto queste condizioni,

un sito traffica utilizzerà la maggior parte delle risorse con un conseguente

rallentamento per tutti gli altri siti ospitati in hosting.

In casi come questi, CloudLinux controlla il numero di processi che un cliente può creare, limitando il problema al singolo account utente. Se un account inizia a consumare

una grande quantità di risorse viene limitato. Il server continuerà ancora a funzionare

bene e solo i processi dell’account incriminato verranno rallentati o bloccati.

L’uso di CloudLinux, inoltre, migliora anche l’aspetto sicurezza.

In un’installazione CentOS/RHEL tradizionale, a un account viene impedito

di navigare nel file system degli altri clienti e nei loro processi attraverso apposite

impostazioni sui permessi file di Linux o tramite opportuna configurazione del php.ini.

CloudLinux fornisce un modo più sicuro per gestire questo aspetto,

con la creazione di un livello di astrazione superiore,

basato sulle funzioni di base del kernel.

Page 9: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Infatti, CloudLinux previene gli attacchi symlink e riduce la

visibilità al livello di ProcFS.

Per fare ciò, a livello di kernel implementa:

• CageFS che permette di dotare ogni singolo account di hosting di un proprio file system virtuale dedicato, in modo che un cliente non possa vedere gli altri account di

hosting, né le directory, i file ed i processi ad essi associati;

• SecureLinks che previene la possibilità che un utente crei un link simbolico a un file PHP qualsiasi di un altro utente (come il wp-config.php), i cui permessi sono

solitamente impostati a 644. Un file di questo tipo può essere letto tramite Web browser

perché Apache lo permette, e SecureLinks assicura che questo file possa essere

acceduto da Apache, solo se il proprietario del file è il medesimo utente

che sta eseguendo l’Apache VirtualHost.

Page 10: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Altri componenti avanzati di CloudLinux sono:

• il PHP Selector, che permette al cliente di eseguire la versione di PHP che predilige nel

proprio account di hosting. Con PHP Selector, l’utente può evitare di sottostare a un

upgrade forzato e imposto dal provider, scegliendo il motore PHP che più conviene per

l’esecuzione del proprio codice. In questo modo, viene garantito all’utente l’eseguibilità

di codice legacy, compatibile solo con i rilasci meno aggiornati del PHP;

• il MySQL Governor, utilizzato per terminare le query SQL di SELECT lente o di lunga

esecuzione, che potrebbero occupare le risorse senza utilità. L’algoritmo di rilevamento

degli abusi MySQL è capace di identificare un numero eccessivo di byte letti/scritti da o

verso un database, o un gran numero di connessioni MySQL. L’algoritmo prende in

considerazione molti parametri diversi e quando individua un utente che fa uso eccessivo

di risorse, gli impedisce di accedere a MySQL per un periodo di tempo che può prolungarsi

con il protrarsi dell’abuso.

Page 11: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

Chi crede che CloudLinux sia l’unica tecnologia capace di limitare e suddividere

le risorse fra i differenti account di hosting, si sbaglia.

In realtà, CloudLinux non solo non è l’unica piattaforma che funziona in questo senso,

ma non è nemmeno la prima.

Esistono infatti altre tipologie di piattaforme di virtualizzazione

basate su contenitori che in qualche modo hanno di volta in volta aggiunto

delle funzionalità che con il tempo hanno portato a soluzioni come CloudLinux e simili.

In passato, si parlava dei FreeBSD Jail, ossia di un meccanismo di implementazione di una

virtualizzazione a livello di sistema operativo FreeBSD, che consentiva di partizionare un

elaboratore basato su FreeBSD in diversi minisistemi indipendenti, chiamati, appunto, jail.

FreeBSD Jail consentiva l’isolamento a livello di file system, di rete e permetteva di imporre

limiti sulla memoria, sullo spazio disco e sulla CPU, ma non consentiva il controllo sull’I/O

e la live migration. Per l’epoca, 1998, questa tecnologia era comunque avanzata,

soprattutto se paragonata al semplice chroot (1982).

Page 12: Hosting e la suddivisione delle risorse: le tecnologie #TipOfTheDay

I più recenti cgroups, anche per via della posizione di rilievo conquistata da Linux nel settore, sono invece la risposta all’esigenza di compartimentare in modo più efficace gli utenti. Accanto a FreeBSD Jail, nei medesimi anni si parlò di Linux-VServer (2001), Virtuozzo Containers(2001), OpenVZ (2005) e Solaris Containers (2005).

Ora, accanto CloudLinux si possono citare:

• BetterLinux , che per quanto sviluppato e usato da Bluehost, Hostmonster, Fastdomain, Hostgator e altri, non sembra godere della stesse fortuna di CloudLinux;

• Hive, le cui funzionalità si sovrappongono a quelle di CloudLinux, anche se Hive usa RLimits per limitare l’uso delle risorse e basa l’isolamento degli account di hosting

su chroot, mentre CloudLinux agisce a livello kernel e sfrutta, come detto, CageFS.