Ubuntu - Não há espaço no dispositivo (NTFS)

11

Eu tenho um servidor que armazena muitos dados, mantenho muitos diretórios aninhados com milhões de arquivos.

Ao tentar mover um diretório grande (~ 700 GB) de um disco para outro, recebo um erro:

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

"No space left on device"

Além disso, tentar criar um pequeno arquivo txt no disco não funciona:

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

Eu verifiquei muitas opções online, nenhuma funcionou.

saída df -h:

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

saída df -i:

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

Lendo on-line, as pessoas disseram que problemas semelhantes acontecem por causa do acesso a uma enorme quantidade de arquivos e que a configuração de fs.inotify.max_user_watches para uma quantidade alta pode resolvê-lo, aumentei de 8192 para 1000000, mas não ajudou.

PeterN
fonte
Você já tentou lsof +L1? man lsof: uma especificação do formulário + L1 selecionará arquivos abertos que foram desvinculados.
AB
Não há razão para mvusar o inotifymecanismo. Dê uma olhada aqui : alguns processos ainda podem estar usando arquivos desvinculados do sistema de arquivos de destino.
John WH Smith
Excluídos os arquivos ainda iria aparecer no uso dado por df...
Stephen Kitt
@StephenKitt No. Os arquivos não vinculados mantidos pelo subsistema de arquivos devido à referência ao inode serão. Aqueles que foram completamente não utilizados e desvinculados ("excluídos") não aparecem. Veja aqui .
John WH Smith
1
Verifique se ntfsinfo -m /dev/DEVhá pistas. Faz parte do NTFS-3G. Observe também que só pode haver até 2 ^ 32 arquivos em um único volume NTFS. Eu não confiaria em nenhuma ferramenta nativa de linux / unix para relatar inodes com precisão em NTFS.
Mikky #

Respostas:

1

Execute o seguinte:

lsof -s | sort -nrk 7 | head

Você verá a saída assim:

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; o exposto acima é apenas um exemplo que você precisará usar para avaliar o uso do espaço.

Sobre a saída:

  • A coluna 7 é o tamanho do espaço em uso.
  • A coluna 4 é o descritor de arquivo.

Você pode remover o conteúdo no descritor de arquivo para recuperar esse espaço:

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

Obviamente, isso destruirá todos os dados nesse descritor de arquivo.


fonte
Se os problemas ocorrer novamente, vou dar-lhe uma tentativa
PeterN
0

Você pode tentar um tar para copiar todos os dados e removê-lo depois:

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

Isso preservará toda a propriedade, permissões e links

Chad Smith
fonte
Nenhuma cópia trabalhou .. Não só isso, criando um arquivo vazio simples retornou nenhum espaço exceção esquerda
PeterN
0

Eu teria usado rsync -avrz storage3 storage4e excluído os arquivos posteriormente, mas tenho outra pergunta: por que você tem esses compartilhamentos usando o sistema de arquivos NTFS, se você estiver usando Linux (Ubuntu), então eu teria optado pelo ext4 ou ReiserFS, ButterFS. Se esses compartilhamentos estiverem localizados em uma caixa do Windows, tente mover esses arquivos do Windows para o Windows usando robocopy, o que é excelente nesse aspecto. Robocopy funciona principalmente como rsync.

página de manual do rsync: http://linux.die.net/man/1/rsync

página de ajuda para robocopy: https://technet.microsoft.com/en-us/library/cc733145.aspx

página de suporte para drivers 3g-ntfs para Linux: www.tuxera.com/community/open-source-ntfs-3g/

Perguntas frequentes sobre o 3g-ntfs: www.tuxera.com/community/ntfs-3g-faq/

Eu suspeito que algo deve ser corrigido dentro dos drivers do sistema de arquivos NTFS que você está usando na instalação do Ubuntu, qual distribuição do NTFS você está usando, como montou os discos, eles são anexados localmente à caixa do ubuntu em que você está sentado ou estão montados usando iSCSI de uma SAN?

Há mais nessa solução de problemas do que apenas "Não consigo mover meus arquivos, eles estão localizados no NTFS e estou executando o ubuntu para movê-los".

OMG-1
fonte
Como mencionado, nenhuma cópia funcionou, tentei todos os tipos de comandos rsync. Mas, mesmo a criação de um arquivo vazio no storage4 retornou uma exceção. \ n A razão para usar o NTFS é porque temos outros servidores, que executam janelas, e queríamos permitir a fácil transferência de discos de um servidor para outro. Em retrospecto, eu não teria usado o NTFS por causa de todos os problemas que ele traz, o Ubuntu é muito instável com uma montagem NTFS. \ n Os discos são conectados via cabo SATA diretamente à placa-mãe do computador, sem SAN ou qualquer coisa. É uma montagem direta no sistema linux.
PeterN
Aconselho você a duas coisas: ao usar as tecnologias MS, vá para MS puro, use um servidor de arquivos do Microsoft Windows, se você precisar de NTFS; caso contrário, use o ext4 ou outro sistema de arquivos Linux e compartilhe o disco com o Smb.
OMG-1
Salve-se de alguns problemas e nunca tente combinar janelas e linux. Nenhuma quantidade de ajuda irá salvá-lo a longo prazo; eventualmente, isso sempre terminará em lágrimas. Parece um problema com identificadores de inode ou arquivo, mas quando você coloca o NTFS na mistura ... bomba-relógio. Se o seu ambiente precisar de interação do linux e do NTFS, coloque o NTFS em um servidor Windows e faça a interação dessa maneira. Não tentando combinar no mesmo sistema.
Baazigar