Ubuntu - Spazio insufficiente sul dispositivo (NTFS)


11

Ho un server che memorizza molti dati, ho molte directory nidificate con milioni di file.

Durante il tentativo di spostare una directory di grandi dimensioni (~ 700 GB) da un disco all'altro, viene visualizzato un errore:

mv /media/storage3/dir /media/storage4/

"No space left on device"

Inoltre, il tentativo di creare un piccolo file txt sul disco non funziona:

Error opening file '/media/storage4/Untitled Document': No space left on device

Ho controllato molte opzioni online, nessuna ha funzionato.

df -h output:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdg7        77G  9.2G   64G  13% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev             32G  4.0K   32G   1% /dev
tmpfs           6.3G  1.4M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G   76K   32G   1% /run/shm
none            100M   48K  100M   1% /run/user
/dev/sdg6        19G  6.7G   11G  39% /home
/dev/sdb1       440G  278G  140G  67% /var
/dev/sda1       2.8T  2.0T  764G  73% /media/storage1
/dev/sdh1       2.8T  1.6T  1.3T  56% /media/storage2
/dev/sdi1       2.8T  1.7T  1.2T  60% /media/storage3
/dev/sdf1       2.8T  876G  1.9T  32% /media/storage4

df -i output:

Filesystem         Inodes    IUsed      IFree IUse% Mounted on
/dev/sdg7         5079040   514215    4564825   11% /
none              8242449        2    8242447    1% /sys/fs/cgroup
udev              8239750      611    8239139    1% /dev
tmpfs             8242449      696    8241753    1% /run
none              8242449        5    8242444    1% /run/lock
none              8242449        4    8242445    1% /run/shm
none              8242449       28    8242421    1% /run/user
/dev/sdg6         1220608   218613    1001995   18% /home
/dev/sdb1        29310976 12863877   16447099   44% /var
/dev/sda1       858436804 41630853  816805951    5% /media/storage1
/dev/sdh1      1356948436 38728057 1318220379    3% /media/storage2
/dev/sdi1      1217505624 34748869 1182756755    3% /media/storage3
/dev/sdf1      2048962648 36308921 2012653727    2% /media/storage4

Leggendo online, la gente ha detto che problemi simili si verificano a causa dell'accesso a una grande quantità di file e che l'impostazione di fs.inotify.max_user_watches su una quantità elevata potrebbe risolverlo, l'ho aumentato da 8192 a 1000000 ma non ha aiutato.


Ci hai provato lsof +L1? man lsof: una specifica del modulo + L1 selezionerà i file aperti che sono stati scollegati.
AB,

Non vi è alcun motivo per mvutilizzare il inotifymeccanismo. Dai un'occhiata qui : alcuni processi potrebbero ancora utilizzare file non collegati dal filesystem di destinazione.
John WH Smith,

I file eliminati verranno comunque visualizzati nell'uso fornito da df...
Stephen Kitt il

@StephenKitt No. I file non collegati che sono conservati dal sottosistema di file a causa del riferimento all'inode. Quelli che sono stati completamente inutilizzati e non collegati ("eliminati") non vengono visualizzati. Vedi qui .
John WH Smith,

1
Controlla gli ntfsinfo -m /dev/DEVindizi. Fa parte di ntfs-3g. Si noti inoltre che su un singolo volume NTFS possono essere presenti fino a 2 ^ 32 file. Non mi fiderei di alcun attrezzo linux / unix nativo per segnalare con precisione il conteggio degli inode NTFS.
Mikky

Risposte:


1

Eseguire quanto segue:

lsof -s | sort -nrk 7 | head

Vedrai l'output in questo modo:

firefox    2997                     j   52rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   50rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j    3rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   39rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   31ur     REG              252,0 10485760    5505182 /some/path

Nota; quanto sopra è solo un esempio che dovrai usare il tuo giudizio per trovare l'uso dello spazio.

Informazioni sull'output:

  • La colonna 7 è la dimensione dello spazio in uso.
  • La colonna 4 è il descrittore di file.

Puoi rimuovere il contenuto dal descrittore di file per recuperare quello spazio:

cat /dev/null > /proc/2997/fd/50

Ovviamente questo distruggerà tutti i dati su quel descrittore di file.


Se i problemi si ripresentano, lo proverò
PeterN,

0

Puoi provare un tar per copiare tutti i dati, quindi rimuoverlo in seguito:

cd /media/storage3/; tar cfp - ./dir | ( cd /media/storage4; tar xfp - )

Ciò conserverà tutta la proprietà, le autorizzazioni e i collegamenti


Nessuna copia ha funzionato .. Non solo, la creazione di un semplice file vuoto non ha restituito spazio a eccezione
PeterN

0

Avrei usato rsync -avrz storage3 storage4e poi cancellato i file in seguito, ma ho un'altra domanda sul motivo per cui hai quelle condivisioni usando il filesystem NTFS se stai usando Linux (Ubuntu), allora sarei andato per ext4 o ReiserFS, ButterFS. SE quelle condivisioni si trovano su una finestra di Windows, prova a spostare quei file da Windows a Windows usando robocopy, il che è eccellente sotto questo aspetto. Robocopy funziona principalmente come rsync.

pagina man per rsync: http://linux.die.net/man/1/rsync

pagina della guida per robocopy: https://technet.microsoft.com/en-us/library/cc733145.aspx

pagina di supporto per i driver 3g-ntfs per Linux: www.tuxera.com/community/open-source-ntfs-3g/

FAQ per 3g-ntfs: www.tuxera.com/community/ntfs-3g-faq/

Ho il sospetto che qualcosa dovrebbe essere risolto all'interno dei driver del filesystem NTFS che stai usando nella tua installazione di Ubuntu, quale distribuzione di NTFS stai usando, come hai montato i dischi, sono localmente collegati alla scatola di Ubuntu su cui sei seduto o sono montati? usando iSCSI da una SAN?

C'è di più in questa risoluzione dei problemi di, solo "Non riesco a spostare i miei file che si trovano su NTFS e sto eseguendo Ubuntu per spostarli".


Come detto, nessuna copia ha funzionato, ho provato tutti i tipi di comandi rsync. Ma anche la creazione di un file vuoto su storage4 ha restituito un'eccezione. \ n La ragione per usare NTFS è perché abbiamo altri server, che eseguono Windows, e volevamo consentire un facile trasferimento di dischi da un server all'altro. In retrospettiva, non avrei usato NTFS a causa di tutti i problemi che comporta, Ubuntu è molto instabile con un mount NTFS. \ n I dischi sono collegati tramite cavo SATA direttamente alla scheda madre sul computer, senza SAN o altro. È un montaggio diretto sul sistema Linux.
PeterN,

Ti consiglierei due cose, quando usi le tecnologie MS vai pure MS, usa un Fileserver di Microsoft Windows se hai bisogno di avere NTFS, altrimenti vai con ext4 o altri filesystem Linux e condividi il disco con Smb.
OMG-1

Salva te stesso alcuni problemi e non provare mai a combinare Windows e Linux. Nessuna quantità di aiuto ti salverà a lungo termine, alla fine questo finirà sempre in lacrime. Sembra un problema con gli handle di inode o di file, ma quando si inserisce NTFS nel mix ... bomba a orologeria. Se il tuo ambiente necessita dell'interazione di Linux e NTFS, metti NTFS su un server Windows e fai l'interazione in quel modo. Non provare a combinare sullo stesso sistema.
Baazigar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.