Archivi tag: server

Errore nell’accesso a convisioni Windows 7 da parte di Windows XP

Per alcune applicazioni è conveniente (sia come prezzo, sia come flessibilità) utilizzare un PC con Windows 7 da server per una piccola rete LAN. Nel mio caso il PC Windows 7 deve condividere delle cartelle in rete che contengono dati di alcune applicazioni.

Dopo un certo numero di giorni di funzionamento ininterrotti, tentando di accedere da un pc con Windows XP ad una delle cartelle condivise del server con Windows 7 Professional è possibile che si presenti un messaggio di errore simile a questo:

“Impossibile accedere a SERVER. Autorizzazioni insufficienti per accedere a \\SERVER\CONDIVISIONE. Contattare l’amministrazione della rete per richiedere l’accesso.”

Al contempo, se nella rete ci sono altre postazioni con Windows 7 o Windows Vista, esse accedono tranquillamente.

In prima istanza ho riavviato il servizio Server del PC con windows 7 e le condivisioni sono tornate accessibili da tutte le postazioni della rete. Ma il problema si ripresentava sempre più frequentemente.

Sul server con Windows 7, quando si presenta l’errore, viene creato nel registro eventi un messaggio simile a questo:

“Il server non ha potuto allocare memoria non di paging. È stato raggiunto il limite configurato per allocazioni di memoria non di paging.”

Per risolvere il problema è sufficiente modificare il valore di questa chiave di registro sul server con Windows 7

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\size 

Di default è 1, portarlo a 3.
Qui di seguito il significato dei valori:
1 = Minimize Memory Used
2 = Balance
3 = Maximize Throughput for File Sharing and Maximize Throughput for Network Applications

Dopo aver riavviato il PC il messaggio di errore non apparirà più.

Resettare la password di root su CentOS

 

Di seguito la procedura per cambiare / reimpostare la password su sistema operativo CentOS
  1. Quando si presenta la scelta dei due kernel (2.6.xxxx)
  2. selezionare la prima voce
  3. premere il tasto e per modificarla
  4. andare alla seconda riga (inizia con la parola kernel)
  5. premere il tasto e per modificarla
  6. Aggiungere la S maiuscola alla fine della riga
  7. Premere INVIO
  8. premere la lettera b per avviare il sistema
  9. quando si arriva al prompt dei comandi digitare il comando passwd ed inserire la nuova password

se da errore e dice che il filesystem non è montato digitare il seguente comando

# mount -o remount,rw /

infine digitare i due comandi seguenti per scrivere le modifiche e riavviare la macchina.

# sync
# reboot

Installare VirtualBox su CentOS 6

La politica di VMWare ha purtroppo escluso dall’ambiente server delle soluzioni valide per la virtualizzazione. L’affidabilissimo e stabilissimo VMWare Server non è più supportato dai recenti sistemi operativi, per cui ho deciso di passare alla soluzione di Oracle che, nonostante sia più macchinosa per l’installazione e la configurazione (è pur sempre un ambiente nuovo) rappresenta comunque una soluzione concreta e affidabile.
La procedura di installazione su CentOS 6 è la seguente:
innanzitutto è necessario installare dei requisiti
yum install -y libXmu kernel-headers gcc dkms kernel-devel
dopodichè è possibile scaricare ed installare con rpm l’installazione di VirtualBox 4 oppure è possibile aggiungere il repository e lasciare che sia il sistema yum a fare il lavoro sporco 🙂
Per aggiungere il repository posizioniamoci nella cartella corretta:
cd /etc/yum.repos.d/
e scarichiamo i riferimenti:
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
infine procediamo all’aggiornamento dei pacchetti disponibili ed all’installazione:
yum update
yum install VirtualBox-4.2

Il pacchetto VirtualBox-4.2 scarica anche l’extension pack, ma nel mio caso non era attivo (il comando VBoxHeadless non avviava correttamente l’output RDP).
Per installare l’extension pack eseguire il seguente compando:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.6-74713.vbox-extpack
Qualora mancasse qualche requisito, la compilazione del driver di rete non andrà a buon fine. Una volta visto l’errore ed installato l’occorrente basta eseguire il comando:
/etc/init.d/vboxdrv setup

Deframmentare / recuperare un filesystem XFS (per la serie: anche linux ha i suoi problemi)

A volte può capitare che il server vada in crash senza apparente motivo. Dopo mesi, richieste di assistenza a chi pensavo fosse più competente di me in materia di server linux, e tanta disperazione ho capito a cosa erano dovuti i frequenti blocchi del server: al filesystem XFS!
XFS è un filesystem adatto a gestire grosse moli di dati, gestire file grandi diverse centinaia di megabytes velocemente. Sfortunatamente XFS soffre pesantemente della frammentazione ed il disco tende a riempirsi velocemente e senza realmente contenere dati!
D’altra parte ci sono due utilità che ci permettono di deframmentare il file system XFS

  1. xfs_db – letteralmente XFS Debug Information – che permette di esaminare il filesystem ed ottenere informazioni utili
  2. xfs_fsr – File System Organizer – che migliora l’organizzazione dei filesystem montati. L’algoritmo opera con i singoli file, li compatta e migliora l’organizzazione all’interno del disco (mettendo i pezzi dei file in blocchi continui)
    per esempio consideriamo il comandoroot@linuxMachine:~$ sudo xfs_db -c frag -r /dev/sda1
    actual 189356, ideal 148090, fragmentation factor 21.79%

    dopo la procedura risulta

    root@linuxMachine:~$ sudo xfs_db -c frag -r /dev/sda1
    actual 148180, ideal 148090, fragmentation factor 0.03%

    Lo spazio disponibile a questo punto sarà molto di più ed l’accesso al disco sarà decisamente più veloce!

Svuotare una cartella (es. cartella /tmp/) piena di files

A qualcuno che vuol fare pulizia nel proprio hard disk (o l’hard disk del proprio server) può capitare di voler svuotare una cartella (ad es. l’inutile cartella /tmp/), ma dopo aver immesso il comando:

# rm -rf *

si ottiene come risultato:
/bin/rm: Argument list too long.

La soluzione per aggirare il problema è quella di combinare il comando find al comando xargs

# find . -name ‘*’ | xargs rm

Il comando find permette di individuare tutti i file che hanno un determinato nome (basato su una espressione regolare), mentre xargs è un comando che permette di gestire il passaggio di parametri da riga di comando ad altri programmi come rm, gestendo le limitazioni del sistema operativo come numero di parametri e lunghezza dei singoli parametri.

Convertire tutte le tabelle di un DB MySQL da MyISAM a InnoDB con uno script linux

E’ possibile convertire in un colpo solo tutte le tabelle di un database MySQL da MyISAM a InnoDB tramite due comandi digitati dalla shell di linux:

 mysql -p -e "show tables in nome_database;" | tail --lines=+2 | xargs -i echo "ALTER TABLE {} ENGINE=INNODB;" > converti_engine.sql

Il primo comando si connette al database, recupera tutti i nomi delle tabelle (e delle viste!) e le combina, tramite il comando xargs, con il comando SQL che permette di cambiare l’engine a InnoDB. Ovviamente nome_database è da sostituire con il nome dello schema in questione. Il risultato è uno script SQL che verrà lanciato in seguito. L’unico accorgimento da adottare è quello di rimuovere le eventuali righe che contengono l’alter table di viste (che darebbero errore durante l’interpretazione e bloccherebbero lo script).

Controllato lo script, è sufficiente eseguirlo con il comando di seguito:

mysql -u root -p nome_database < converti_engine.sql

che chiederà la password ed eseguirà lo script appena preparato.

 

Linux – Spazio su disco esaurito, ma lo spazio c’è! Soluzione: Inodes esauriti!

Una strana situazione che, talvolta, si può presentare su server linux che stanno accesi da anni è quella di ottenere il messaggio: No space left on device. A questo punto l’operazione più logica da fare è digitare

df -h

ma quando si scopre che c’è ancora spazio su disco disponibile, c’è subito da accertarsi con il comando

df -i

che gli Inode non siano terminati.

Qualora il comando restituisca il 100% utilizzato, allora è il momento di individuare in quale directory sono contenuti (una miriade) i file che impegnano tutta la tabella del filesystem.

a questo punto è sufficiente digitare il comando

for i in /*; do echo $i; find $i |wc -l; done

che elencherà tutte le cartelle contenute nella root / con il numero di file contenuti. Individuata un cartella contenente molti file (per esempio /var/), basta andare nel dettaglio col comando

for i in /var/*; do echo $i; find $i |wc -l; done

Una volta individuata la cartella, verosimilmente contenente dei file temporanei, di spool, o una cartella utente che si è riempita nel tempo, basta svuotare la cartella con il comando:

rm -rf /percorso/con/una/miriade/di/file

digitando df -i la situazione dovrebbe tornare sotto controllo. Al più è consigliabile fare un riavvio della macchina per assicurarsi che tutto riparta correttamente.

Configurazione automatica di Windows in assenza di server DHCP

APIPA è il sistema utilizzato da Microsoft Windows (nelle versioni XP, Vista e 7) per assegnare indirizzi IP in assenza di una configurazione manuale oppure in assenza di un server DHCP. Tali indirizzi vengono assegnati nella classe 169.254.0.0/16 e permettono, in una rete sprovvista di server DHCP, di rendere visibili i PC Windows con la rete configurata in maniera automatica..

Talvolta però questi indirizzi vengono assegnati anche in presenza di server DHCP, per ritardi o problemi alla rete. Per forzare la richiesta del nuovo IP al server i comandi da eseguire (da prompt dei comandi) sono in sequenza:

ipconfig  /release
ipconfig  /renew