우분투-장치에 남은 공간이 없습니다 (NTFS)


11

많은 데이터를 저장하는 서버가 있고 수백만 개의 파일이있는 많은 중첩 디렉토리를 유지합니다.

하나의 큰 디렉토리 (~ 700GB)를 한 디스크에서 다른 디스크로 이동하려고하면 오류가 발생합니다.

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

"No space left on device"

또한 디스크에 작은 txt 파일을 만들려고해도 작동하지 않습니다.

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

온라인에서 많은 옵션을 확인했지만 아무것도 작동하지 않았습니다.

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

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

사람들은 온라인으로 읽을 때 많은 양의 파일에 액세스 할 때 비슷한 문제가 발생하고 fs.inotify.max_user_watches를 많은 양으로 설정하면 문제를 해결할 수 있다고 말했지만 8192에서 1000000으로 늘 렸지만 도움이되지 않았습니다.


시도 했습니까 lsof +L1? man lsof : + L1 형식의 스펙은 링크 해제 된 열린 파일을 선택합니다.
AB

메커니즘 mv을 사용할 이유가 없습니다 inotify. 여기를 살펴 보십시오 : 일부 프로세스는 여전히 대상 파일 시스템에서 링크되지 않은 파일을 사용 중일 수 있습니다.
John WH Smith 12

삭제 된 파일은 다음과 같은 용도로 계속 표시됩니다 df.
Stephen Kitt

@StephenKitt 아니오. inode 참조로 인해 파일 서브 시스템이 보유한 링크되지 않은 파일이 있습니다. 완전히 사용하지 않고 연결 해제 된 ( "삭제 된") 항목은 표시되지 않습니다. 여기를 참조하십시오 .
존 WH 스미스

1
ntfsinfo -m /dev/DEV실마리를 확인하십시오 . 그것은 ntfs-3g의 일부입니다. 또한 단일 NTFS 볼륨에는 최대 2 ^ 32 개의 파일 만있을 수 있습니다. NTFS inode를 정확하게보고하는 기본 Linux / unix 도구를 신뢰하지 않습니다.
mikky

답변:


1

다음을 실행하십시오.

lsof -s | sort -nrk 7 | head

다음과 같은 출력이 표시됩니다.

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

노트; 위의 예는 공간 사용량을 찾기 위해 판단을 사용해야하는 예일뿐입니다.

출력 정보 :

  • 7 열은 사용중인 공간의 크기입니다.
  • 열 4는 파일 설명자입니다.

파일 디스크립터에서 컨텐츠를 제거하여 해당 공간을 다시 확보 할 수 있습니다.

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

분명히 이것은 해당 파일 디스크립터의 모든 데이터를 파괴합니다.


문제가 다시 발생하면 시도해볼 것입니다
PeterN

0

tar를 사용하여 모든 데이터를 복사 한 후 나중에 제거 할 수 있습니다.

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

이것은 모든 소유권, 권한 및 링크를 유지합니다


복사본이 작동하지 않았습니다.뿐만 아니라 간단한 빈 파일을 만들면 남은 공간이 없습니다.
PeterN

0

rsync -avrz storage3 storage4나중에 파일 을 사용 하고 삭제했지만 Linux (Ubuntu)를 사용하는 경우 NTFS 파일 시스템을 사용하여 공유를 갖는 이유에 대한 또 다른 질문이 있습니다. 해당 공유가 Windows 상자에있는 경우 robocopy를 사용하여 해당 파일을 Windows에서 Windows로 이동하십시오. Robocopy는 주로 rsync처럼 작동합니다.

rsync 설명서 페이지 : http://linux.die.net/man/1/rsync

robocopy에 대한 도움말 페이지 : https://technet.microsoft.com/en-us/library/cc733145.aspx

Linux 용 3g-ntfs 드라이버 지원 페이지 : www.tuxera.com/community/open-source-ntfs-3g/

3g-ntfs에 대한 FAQ : www.tuxera.com/community/ntfs-3g-faq/

우분투 설치에서 사용중인 NTFS 파일 시스템 드라이버 내부에서 무언가 수정해야한다고 생각합니다. 사용중인 NTFS 배포, 디스크 마운트 방법, 앉아있는 우분투 상자에 로컬로 연결되어 있는지 또는 마운트되어 있습니까? SAN에서 iSCSI를 사용합니까?

이 문제 해결에는 "NTFS에있는 파일을 이동할 수없고 우분투를 실행하기 위해 파일을 이동하고 있습니다."보다 더 많은 문제가 있습니다.


언급했듯이 복사가 작동하지 않았으므로 모든 종류의 rsync 명령을 시도했습니다. 그러나 storage4에 빈 파일을 만들더라도 예외가 반환되었습니다. \ n NTFS를 사용하는 이유는 Windows를 실행하는 다른 서버가 있고 한 서버에서 다른 서버로 디스크를 쉽게 전송할 수 있기를 원했기 때문입니다. 돌이켜 보면 NTFS로 인해 발생하는 모든 문제로 인해 NTFS를 사용하지 않았을 것입니다. 우분투는 NTFS 마운트로 매우 불안정합니다. \ n 디스크는 SATA 케이블을 통해 SAN의 어떤 것도없고 컴퓨터의 마더 보드에 직접 연결됩니다. 리눅스 시스템에 직접 마운트되어 있습니다.
PeterN

MS 기술을 사용할 때 순수한 MS가되고 NTFS가 필요한 경우 Microsoft Windows 파일 서버를 사용하고 그렇지 않으면 ext4 또는 다른 Linux 파일 시스템으로 이동하여 디스크를 Smb와 공유하는 두 가지 사항을 조언합니다.
OMG-1

스스로 문제를 해결하고 창과 리눅스를 결합하려고하지 마십시오. 많은 도움이 장기적으로 당신을 구할 수 없으며 결국 이것은 항상 눈물로 끝날 것입니다. 아이 노드 나 파일 핸들에 문제가있는 것처럼 보이지만 NTFS를 혼합하면 시한 폭탄이됩니다. 환경에서 Linux와 NTFS의 상호 작용이 필요한 경우 NTFS를 Windows 서버에 놓고 그런 식으로 상호 작용하십시오. 동일한 시스템에 결합하지 않습니다.
Baazigar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.