Andrea Berardi wrote: > Ciao a tutti, > dopo aver montato un fs via NFS su un server FTP da un fileserver di > backend, ho abilitato le quote e ho verificato che funzionano. > Purtroppo si presenta un problema quando gli utenti, la cui home risiede > sul fs NFS, cercano di eccedere il loro spazio disponibile uploadando > files via FTP (il server ftp è ProFTPd): al client ftp NON viene > mostrato alcun messaggio di errore ma il seguente: > > "226 Transfer complete. > 4806872 bytes sent in 0.45 secs (10377.8 kB/s)" > che indica apparentemente che l'operazione di write è andata abuon fine, > ma in realtà, eseguendo poi un `ls -lh` ci si accorge che il file > uploadato ha size = 0 Kb. > > > Al contrario utilizzando altri software per scrivere sempre su quel fs > NFS, ad esempio cp, si viene notificati dell'errore: > "cp: closing `./gapil.pdf`: Disk quota exceeded" > > Il problema si manifesta esclusivamente utilizzando ProFTPd "su" NFS: > infatti se si abilitano le quote su un fs locale il client viene > correttamente notificato dell'errore: > "552 Transfer aborted. Disk quota exceeded" > > > Spero che qualcuno mi possa dare qualche suggerimento. >
Mi rispondo da solo sperando di essere d'aiuto a qualcuno che si è trovato o si troverà con lo stesso problema. Innanzitutto è bene dire che non si tratta di un problema specifico di ProFTPd, ma la stessa "anomlia" è riscontrabile anche con altri server applicativi (ho provato anche vsftpd): il problema infatti non è causato dal server ftp, ma dalla modalità con cui vengono eseguite le operazione di I/O sul fs. La soluzione del problema consiste nello specificare l'opzione di "sync" per il mount del fs anche dal client NFS e non solo come opzione nel file /etc/exports del server. Infatti, in caso non si specifichi tale opzione, tutte le operazioni di I/O sul fs vengono "cacheate" e il server ftp che scrive via nfs non ha modo di accorgersi del quota-exceeded se non quando chiama una close(FD): in tal modo il server FTP risponde solitamente alla richiesta di STORE del client con un reply-code 226 che indica il successo nell'operazione di scrittura, e all'atto della chiusura del file-descriptor non può far altro che loggare l'errore 552: "Quota disk exceeded". Spero di essere stato chiaro nella spiegazione. Ciao a tutti, Syneus. -- | .' ' `. Andrea Berardi aka Syneus | : :' : Debian User | `. `'` | `- Linux Registered User #395193 | Debian GNU/Linux http://counter.li.org/ | http://www.debian.org -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]