폴더를 디스크에 여유 공간보다 작은 경우에도 디렉토리를 서버에 복사하려고하지만 서버가 가득 찼습니다. Size Used Avail Use%

문제

112GB의 디렉토리를 214GB의 여유 공간이있는 서버의 RAID에 복사하려고합니다 scp. 그러나 일부 파일을 복사 한 후 디스크가 꽉 찼다는 메시지가 표시되고 확인 후 디스크가 실제로 꽉 찼음을 알 수 있습니다. 이것이 어떻게 가능한지 이해하지 못하며 이해하고 해결하고 싶습니다.

세부

CentOS 7을 사용하고 있습니다. 디렉토리를 복사하기 전에 RAID에 OS를 설치했습니다. 이것은 df -h설치 직후 의 결과입니다 .

[user@localhost ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  897M   50G   2% /
devtmpfs                 7,8G     0  7,8G   0% /dev
tmpfs                    7,8G     0  7,8G   0% /dev/shm
tmpfs                    7,8G  8,9M  7,8G   1% /run
tmpfs                    7,8G     0  7,8G   0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M  15% /boot
/dev/mapper/centos-home  214G   33M  214G   1% /home
tmpfs                    1,6G     0  1,6G   0% /run/user/1000

우분투 17.04를 실행하는 노트북에서 scp를 통해 dir을 복사하려고합니다. 이것은 dir의 크기입니다.

rick@rick-Inspiron-5448:~$ sudo du -hs /home/rick/
112G    /home/rick/

보시다시피 서버 RAID에는 214GB 미만의 여유 공간이 있으며 복사하려는 디렉토리의 크기는 112GB입니다.

사용하여 복사

$ scp -r /home/rick/ user@192.168.0.132:/home/user/backup

몇 시간 동안 정상적으로 작동 한 다음 다음과 같은 출력이 반복적으로 나타납니다.

scp: /home/user/backup/rick/<filename>: No space left on device

그런 다음 입력 df -h하면 디스크가 실제로 꽉 찼는 지 확인할 수 있습니다!

[user@localhost ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  897M   50G   2% /
devtmpfs                 7,8G     0  7,8G   0% /dev
tmpfs                    7,8G     0  7,8G   0% /dev/shm
tmpfs                    7,8G  8,8M  7,8G   1% /run
tmpfs                    7,8G     0  7,8G   0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M  15% /boot
/dev/mapper/centos-home  214G  214G   20K 100% /home
tmpfs                    1,6G     0  1,6G   0% /run/user/1000

따라서이 ID에서 214GB의 여유 공간이있는 디스크에 112GB를 복사하려고 시도했지만 복사가 완료되기 전에 디스크가 채워졌습니다. 여기에 뭔가 빠졌음을 알지만 무엇을 볼 수 없습니다.

서버에 구성된 RAID에 대한 정보입니다.

RAID 정보

내 상황을 명확히하기 위해 제공 할 수있는 다른 세부 사항이 있으면 알려주십시오.


최신 정보

@AFH 의견은 문제가 i 노드와 관련이 있다고 제안 했으므로

$ df -i
Filesystem                Inodes  IUsed    IFree IUse% Mounted on
/dev/mapper/centos-root 26214400  25686 26188714    1% /
devtmpfs                 2024232    474  2023758    1% /dev
tmpfs                    2026995      1  2026994    1% /dev/shm
tmpfs                    2026995    579  2026416    1% /run
tmpfs                    2026995     16  2026979    1% /sys/fs/cgroup
/dev/sda1                 524288    328   523960    1% /boot
/dev/mapper/centos-home   127080 126903      177  100% /home
tmpfs                    2026995      1  2026994    1% /run/user/1000

또한 출력 fdisk

$ sudo fdisk -l
Disk /dev/sda: 292.3 GB, 292326211584 bytes, 570949632 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b2997

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   570949631   284425216   8e  Linux LVM

따라서 실제로 inode가 가득 찼습니다. 그것을 해결하는 방법에 대한 제안?



답변

백업 사본에 심볼릭 링크가 있습니까? 그렇다면 rsync를 사용하여 내용을 복사하십시오. -r 옵션이있는 Scp도 기호 링크를 따릅니다.


답변

따라서 실제로 inode가 가득 찼습니다. 그것을 해결하는 방법에 대한 제안?

파일 시스템을 다시 포맷하지 않으면 inode 수를 늘릴 수 없습니다.

현재 사용 가능한 공간이 약 120GB이므로 inode가 없기 때문에 사용할 수 없습니다.

시도 할 수있는 것은 :

  • 다음을 사용하여 LVM 파티션 (DANGEROUS)의 파일 시스템 크기를 약 110GB 줄입니다 resize2fs.
  • 파일 시스템에 정확히 맞게 LVM 파티션을 줄입니다 (위험).
  • 여유 공간에 새 파티션을 만듭니다
  • 이제 새로운 파티션을 마운트 할 수 있습니다.

예를 들어 110GB의 공간 (/ home / user / downloads 등)에 맞는 몇 개의 디렉토리가 있는지 확인하고 해당 디렉토리의 컨텐츠를 새 파티션으로 이동 한 다음 이전 디렉토리에 파티션을 마운트하십시오. . 이제 이동 된 파일의 크기와 동일한 여유 공간 (및 inode)을 사용할 수 있습니다.

전체 작업에는 신중한 계획이 필요하므로 전체 백업을 적극 권장합니다.


답변

얼마 후 나는 문제를 해결하는 방법을 알아 냈다. 문제는 scp파일을 복사 할 때 wine대상 폴더가 포함 된 폴더의 크기가 원본과 완전히 다르다는 것입니다.

그것이 wine더 많은 i-node를 차지하는 사본 과 관련이 있는지 또는 와인이 폴더 내부에서 재귀 적으로 복사되고 있는지 확실하지 않지만 df -h,로 체크 하면 wine폴더는 소스에서 1.5GB, 서버에서 101GB입니다. 그것은 운명이었다 scp.

서버에서 디스크를 지우고 rsync대신 백업을 사용하여 scp정상적으로 작동했습니다.

도와 주신 모든 분들께 감사합니다. 힘든 주말이었습니다.


답변