Suddivisione delle risorse nell’hosting : le tecnologie

Limitare le risorse in un ambiente di hosting è possibile, ricorrendo a piattaforme come CloudLinux, capaci di isolare ogni singolo account utente

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 sovrautilizzo 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.

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.

Cos’è CloudLinux e come funziona su un ambiente di hosting

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 contenierizzazione 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.

Suddivisione delle risorse nell'hosting condiviso: le tecnologie

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 sovrautilizzo.

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.

I vantaggi sull’hosting derivanti dall’uso di CloudLinux

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. 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.

I componenti di CloudLinux

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 e 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.

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.

Limitazione hosting: non solo CloudLinux

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).

I più recenti cgroups, anche per via della posizione di rilievo conquistata da Linux nel settore, sono invece la naturale 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.

 

ArubaQuesto articolo è offerto da Aruba.it. Aruba gestisce una propria rete di Data Center a livello Europeo ed è leader nell’erogazione di servizi di hosting  in Italia con oltre 1 milione di clienti attivi. L’offerta di hosting include diverse soluzioni per il singolo professionista o l’azienda, verifica la migliore per te.  Aruba S.p.A., fondata nel 1994, è la prima società in Italia per i servizi di web hosting, e-mail, PEC e registrazione domini, la società gestisce oltre 2 milioni di clienti. In aggiunta ai servizi di web hosting, Aruba fornisce anche tutti una serie di servizi come server dedicati, housing e colocation o servizi managed. Aruba propone anche tutte le soluzioni nell’ambito dell’e-Security, come la firma digitale, la PEC e la conservazione sostitutiva.

Facci sapere cosa ne pensi!

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *