DreamHost è un hosting con diversi pregi, tra i quali lo spazio illimitato e l’accesso SSH. La tentazione di usarlo come spazio di backup via FTP è forte, malgrado sia vietato dai termini di servizio; io lo facevo e ho ricevuto una mail cortese ma ferma, che mi chiedeva di rimuovere i file di backup entro 24 ore. Nessun problema: ero in torto e ho provveduto a eliminare quanto richiesto.

La parte divertente è stata che proprio a causa di questa mail ho scoperto che tutti gli account DH comprendono 50GB di spazio da usare per i backup, sebbene con alcune limitazioni. Per attivare il servizio basta creare l’utenza apposita nel pannello di controllo, e ci viene dato lo spazio su un altro server. Le limitazioni riguardano i protocolli supportati per il trasferimento dei file e il tipo di accesso: si possono usare solo ftp, sftp, scp e rsync, inoltre non è supportata la schedulazione di processi tramite cron.

Quello che vi sto per dire è riferito a linux, su windows ci sono altri sistemi per fare le stesse cose. L’esempio trattato riguarda il backup di un blog, ma gli usi possibili sono diversi e la procedura va bene in ogni caso.

Facciamo un passo indietro e vi racconto come facevo i backup del blog fino a qualche giorno fa: sul server dove gira WordPress ci sono due sistemi separati che fanno un dump del database tutti i giorni. Il primo via mysqldump, schedulato via cron, l’altro tramite PHPMyBackupPro, ottimo sistema che consiglio a chi non ha la possibilità di programmare dei task sul suo server. Tutti i giorni i file e i dump del database (tengo le ultime due settimane) venivano scaricati sia dal mio server a casa che dal server di DreamHost, in modo da avere tre copie dei dati su tre server in tre luoghi diversi.

Dovendo rimuovere i dati dal server principale di DH, non ho più la possibilità di scaricare da là i dati, quindi ho deciso di fare un doppio salto: il cronjob che scarica a casa provvede poi a uploadare via rsync i file sul server DH di backup. Rsync è un utilissimo comando che permette di trasferire file in modalità incrementale e opzionalmente compressa; in pratica copia solo i file aggiunti o modificati, skippando gli altri.

Per automatizzare il tutto è necessario configurare il password-less login, altrimenti rsync richiede la password ogni volta che viene lanciato. Per farlo serve una coppia di chiavi RSA (se non le avete già), da creare tramite il comando ssh-keygen -t rsa, che genera i file id_rsa e id_rsa.pub in ~/.ssh/. (Premete sempre invio alle richieste del programma). Adesso create via FTP la cartella .ssh sul server di backup (mi raccomando il punto davanti), copiateci id_rsa.pub e rinominatelo in authorized_keys; date i permessi 700 alla directory e 600 al file.

A questo punto rsync funzionerà senza richiedere l’inserimento della password. La sintassi per copiare i file è la seguente:

rsync -e ssh -av local_directory username@server.dreamhost.com:remote_directory

(tutto su una riga) naturalmente sostituendo local_directory, username, server.dreamhost.com e remote_directory con i parametri adeguati alla vostra configurazione. Utente e server sono quelli relativi allo spazio di backup.

Se volete potete aggiungere lo switch --delete, che cancella dalla destinazione i file che non esistono più sulla sorgente.

Tags: , , , , ,
Di: Andrea - 30/07/2009

In seguito al mezzo disastro descritto qui, si è resa necessaria le reinstallazione di un Domain Controller Windows Server 2003. Per fortuna, grazie al salvataggio del System State, il dominio non è andato perduto; come al solito mi appunto le cose qui, che magari potrebbero servire anche ad altri.

Ecco la procedura che ho seguito, pianificata con l’aiuto di un collega.

  • Individuazione del disco fisico da sostituire, non ancora rotto ma segnalato in “preguasto” da S.M.A.R.T. tramite la solita utility HP di gestione del controller RAID.
SLOT SUMMARY:
Slot Num  Slot Type  Array Controllers and Host Adapters  Detected
--------  ---------   --------------------------------------------
SLOT 0    PCI        Smart Array P400i Controller
SLOT 0 Smart Array P400i Controller ERROR REPORT:
Logical drive 1 status = Ready for recovery
Port 1I, Box 1, Bay 3 ... S.M.A.R.T. predictive failure  errors have been
detected in the factory Monitor and Performance data.   SOLUTION:  Please
replace this drive when conditions permit.
  • Spostamento dei 5 ruoli FSMO dal Domain Controller all’altro server DC e mailserver Exchange; la procedura è spiegata in questo documento Microsoft.
  • Impostazione del flag Global Catalog sull’altro server.
  • Backup del solo System State tramite NT Backup nel caso qualcosa vada storto e relativo controllo del log.
  • Annotazione dell’esatta versione del sistema operativo e -importante- versione di Service Pack installata.
  • Eliminazione del flag Global Catalog sul server da reinstallare. Per entrambi i casi la procedura è banale ed è qui.
  • Arresto e disabilitazione di eventuali servizi aggiuntivi. In questo caso è stato fermato SQL Server. Ricordarsi di controllare se la macchina è un DHCP server e agire di conseguenza.
  • Lanciare “dcpromo” per demotare il server da Domain Controller e renderlo un semplice server membro. In questa fase viene richiesto di impostare la password dell’amministratore locale, poiché il database SAM viene ricreato (sui DC non c’è). Non dimenticate la password.
  • Dopo il riavvio, lanciare un backup completo tramite NT Backup di tutti i dischi più il System State. In questa occasione, a causa di 5 file danneggiati, l’operazione ha richiesto più di 10 ore. Vi consiglio di fare il backup su una share di rete e non su un nastro.
  • Andarsene a casa e tornare la mattina successiva.
  • Controllo log per assicurarsi che il backup precedente sia andato a buon fine, e annotarsi i file danneggiati.
  • Accertarsi di avere a disposizione i media e il codice di licenza necessari alla reinstallazione del server. Nella fattispecie: CD di HP SmartStart 7.70 e 2 CD Windows Server 2003 R2 32 bit  ITA con relativo Product Key.
  • Momento della verità: spegnere e sostituire il disco individuato in precedenza. Il RAID in questione era 1+0, che permette di perdere fino a un massimo di due dischi senza compromettere di dati; trattandosi di un set in striping di drive “mirrorati” i dati sono salvi solo se si rompono due dischi “giusti”. Non ho sperato neppure per un momento di essere tanto fortunato, e avevo ragione: cambiato il disco, il controller mi ha fatto una pernacchia, ma almeno non è stato necessario riconfigurarlo.
  • Forti del nuovo disco logico bello vuoto, reinstallare Windows Server 2003 senza fare alcun aggiornamento e lasciando il server in workgroup.
  • Installare anche il secondo CD di Windows Server 2003 R2 quando richiesto e applicare il Service Pack precedentemente annotato. Questi passi sono importanti: il ripristino un System State di un server con SP2 su un server SP1 non funziona: la macchina non si riavvia più, e va rifatta da capo. L’errore riportato al boot è “Impossibile avviare Windows. Errore del software. Riportare questo problema come: caricamento delle DLL di HAL necessarie. Errore HAL Rivolgersi al Servizio Supporto Tecnico per riferire questo problema.” Naturalmente mi è successo.
  • Ripristinare il backup selezionando tutto tranne i file annotati in precedenza ed elencati come danneggiati dal log. Prima di lanciare il processo, assicurarsi di aver impostato l’opzione di NT Backup “se il file esiste già, sostituisci sempre“.
  • Al termine, controllare il log in cerca di eventuali errori e riavviare il server. Probabilmente saranno necessari un paio di riavvii.
  • Se tutto è andato a buon fine, avremo un server membro del dominio, con tutti i servizi installati, le patch applicate in precedenza e la configurazione originale.
  • Lanciare un “dcpromo” per promuovere la macchina a Domain Controller e controllare i log di sistema. Nel mio caso il log di security era danneggiato e ho dovuto ricrearlo. Controllare l’eventuale DHCP server.
  • Ripristinare i 5 ruoli FSMO e il flag Global Catalog seguendo la stessa procedura riportata in precedenza.
  • Riabilitazione e riavvio dei servizi aggiuntivi. In questo caso SQL Server. Controllare che funzionino tutti e guardare i log di sistema.
  • Fare qualche test funzionale dai client per assicurarsi che tutto sia a posto.
  • Bullarsi con amici e colleghi ed andarsene a casa.

Tempo impiegato: circa un giorno e mezzo di lavoro, facendo le cose con attenzione, calma e scrupolo.

Tags: , , , , ,
Di: Andrea - 02/07/2009

Ho riscontrato su CA Arcserve Backup versione 12 SP1 l”errore E8535 con EC=10054,  relativo alla mancata comunicazione del backup server con un server remoto su cui è installato il Client Agent per Windows. La riga completa nello scarno log del processo recita: “E8535 Impossibile ricevere i dati dall’agente client. INDIRIZZO=x.y.w.z, EC=10054, COMANDO=0.

Apparentemente l’error code 10054 è relativo ad un timeout, ma in questo caso può essere tranquillamente escluso. Molto probabilemente si tratta di un problema di mancata comunicazione tra il client ed il server relativa al licensing: l’unico server non elencato nella lista dei client licenziati sul backup server è proprio la macchina che presenta il problema.

Dopo aver tentato diverse strade senza successo (perfino Google ne sa poco), ci siamo decisi a chiamare il supporto Computer Associates. Dopo una mezz’ora di telefonata e di tentativi infruttuosi, la soluzione è stata la seguente:

sul client con l’agent installato, navigare il registro di configurazione fino a: HKLM--> Software --> Computer Associates --> Universal Client Agent --> Options --> 1000 e cambiare il valore della chiave Executable da 1 a 0. Al termine dell’operazione riavviare il servizio Arcserve Universal Agent.

Problema risolto.

Un plauso al supporto CA che ci ha richiamato mezz’ora dopo l’apertura del ticket. Dato che Google questa volta non mi è stato di aiuto, pubblico questo post sperando che questa informazione sia utile ad altri.

Tags: , , , , ,
Di: Andrea - 09/02/2009

Può capitare che gli script Robocopy non funzionino correttamente restituendo un “ERROR 5 (0×00000005) Copying NTFS Security to Destination Directory. Access denied.“, specialmente se la destinazione è un filesystem NTFS già popolato con strutture di file dotate di ACL abbastanza articolate. Questo accade perché Robocopy non riesce ad aggirare le ACL definite esplicitamente, neppure se l’account sotto il quale gira il processo ne ha i diritti. E’ un problema che ho già incontrato un paio di volte: l’errore si risolve eliminando tutta la struttura di destinazione prima del backup, oppure, nel caso questo non sia possibile, limitandosi a copiare i dati e tralasciando le ACL, utilizzando lo switch /COPY:DT invece del /COPYALL (equivalente a /COPY:DATSOU)

Tags: , , ,
Di: Andrea - 24/12/2008

WordPress logoHo atteso la versione 2.5.1 poi mi sono deciso ad aggiornare un po’ di WordPress. La procedura di aggiornamento è sostanzialmente simile a quella delle versioni precedenti; bisogna avere l’accortezza di utilizzare il wp-config.php esistente evitando di modificare il wp-config-sample.php presente nel pacchetto di installazione. Ho aggiornato blog ospitati da tre diversi provider senza grossi inconvenienti, tranne che per qualche incompatibilità tra alcuni plugin e WebPerTe. In particolare su questo hosting non riesco a far funzionare il bellissimo BackUpWordPress per alcuni problemi di permessi sui file creati. Ho un ticket in lavorazione, vediamo se si riesce a risolvere. Nel frattempo uso wp-db-backup oppure lo script phpMyBackupPro che non è un plugin ma funziona abbastanza bene; la schedulazione del processo è facile da gestire tramite un include nel template o un wget pianificato su un altro server (io ho fatto così).

Sulla nuova interfaccia di amministrazione devo ancora riflettere, secondo me piuttosto che mettere le stesse cose in posti diversi (Office 2007? Vista?) sarebbe stato meglio aggiungere nuove funzioni. In ogni caso la trovo più caotica di prima: le cose mi sembrano disposte a caso sull’interfaccia, ma probabilmente mi devo ancora abituare. Inspiegabilmente, dalla dashboard è sparito il numero totale dei commenti, ma dovrebbe riapparire dalla prossima versione. In compenso mi funziona finalmente la visualizzazione dei tag in fondo al post, grazie alla nuova versione di Simple Tag. Su un blog non riesco a creare nuovi utenti: indagherò.

(logo credits)

Tags: , , , ,
Di: Andrea - 29/04/2008