우분투-장치에 남은 공간이 없습니다 (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.