virtfs 디스크 사용량이 높습니다

virtfs 디스크 사용량이 높습니다

나는 그것을 알아내고 싶다(1) 내 서버에서 실제로 사용되는 공간은 얼마나 됩니까?그리고(2) 더 많이 사용하면 어떻게 되나요?. 원래 포스팅했는데ServerFault에 대한 이 질문의 버전, 하지만 그들은 나를 여기서 쫓아 냈습니다.

배경: 저는 virtfs(cPanel 덕분에)를 사용하여 서버를 실행하고 있으며 각 사용자가 실제로 업로드/생성하는 데이터 양에 비해 디스크 사용량이 매우 높다는 것을 확인했습니다. 사용 가능한 공간을 거의 모두 사용하고 있다는 경고 이메일을 받았습니다.

출력은 다음과 같습니다 df -h /.

Filesystem      Size  Used Avail Use% Mounted on
/dev/simfs       30G   25G  5.9G  81% /

du -h / | grep "[0-9][MG]" | sort -n -r가장 많은 공간을 사용하는 경로 목록을 생성하기 위해 실행했습니다 . 출력은 다음과 같습니다.

68G    /
44G    /home
43G    /home/virtfs
11G    /home/virtfs/john
11G    /home/virtfs/paul
11G    /home/virtfs/george
11G    /home/virtfs/ringo
11G    /backup
5.3G   /usr
5.3G   /home/virtfs/john/usr
5.3G   /home/virtfs/paul/usr
5.3G   /home/virtfs/george/usr
5.3G   /home/virtfs/ringo/usr
5.2G   /var
5.2G   /home/virtfs/john/var
5.2G   /home/virtfs/paul/var
5.2G   /home/virtfs/george/var
5.2G   /home/virtfs/ringo/var
4.6G   /var/lib
4.6G   /home/virtfs/john/var/lib
4.6G   /home/virtfs/paul/var/lib
4.6G   /home/virtfs/george/var/lib
4.6G   /home/virtfs/ringo/var/lib
4.3G   /home/virtfs/paul/usr/local
4.2G   /usr/local
4.2G   /home/virtfs/john/usr/local
4.2G   /home/virtfs/george/usr/local
4.2G   /home/virtfs/ringo/usr/local
3.8G   /usr/local/cpanel
3.8G   /home/virtfs/john/usr/local/cpanel
3.8G   /home/virtfs/paul/usr/local/cpanel
3.8G   /home/virtfs/george/usr/local/cpanel
3.8G   /home/virtfs/ringo/usr/local/cpanel
3.0G   /var/lib/mysql.orig
3.0G   /home/virtfs/john/var/lib/mysql.orig
3.0G   /home/virtfs/paul/var/lib/mysql.orig
3.0G   /home/virtfs/george/var/lib/mysql.orig
3.0G   /home/virtfs/ringo/var/lib/mysql.orig
2.6G   /backup/weekly
2.2G   /backup/cpbackup
2.1G   /var/lib/mysql.orig/ringo_demo
2.1G   /home/virtfs/john/var/lib/mysql.orig/ringo_demo
2.1G   /home/virtfs/paul/var/lib/mysql.orig/ringo_demo
2.1G   /home/virtfs/george/var/lib/mysql.orig/ringo_demo
2.1G   /home/virtfs/ringo/var/lib/mysql.orig/ringo_demo
1.9G   /cpanel_backups
1.7G   /backup/monthly
1.6G   /var/lib/mysql
1.6G   /home/virtfs/john/var/lib/mysql
1.6G   /home/virtfs/paul/var/lib/mysql
1.6G   /home/virtfs/george/var/lib/mysql
1.6G   /home/virtfs/ringo/var/lib/mysql
1.2G   /usr/local/cpanel/bin
1.2G   /home/virtfs/john/usr/local/cpanel/bin
1.2G   /home/virtfs/paul/usr/local/cpanel/bin
1.2G   /home/virtfs/george/usr/local/cpanel/bin
1.2G   /home/virtfs/ringo/usr/local/cpanel/bin
1.1G   /root

(아니요, 내 사용자가 실제로 비틀즈의 이름을 따서 명명된 것은 아닙니다...) 거의 모든 디스크 사용량이 virtfs 중복성 때문인 것 같습니다 /usr/local/cpanel/....

내 사용자는 실제로 보고된 만큼 많은 공간을 사용하고 있지 않습니다. 예를 들어, 위에서 보고된 1.6GB 공간 전체를 단독으로 사용하는 것은 없습니다 /var/lib/mysql. 웹 인터페이스에서 cPanel의 자체 보고서를 살펴보면 이러한 계정의 디스크 사용량이 본질적으로 0에서 237MB를 넘지 않는 범위에 있음을 발견했습니다. 보고된 11GB와는 거리가 멀습니다.

그래서 내 질문은 다음과 같습니다.

  1. 실제로 얼마나 많은 공간이 사용되는지 확인하는 방법은 무엇입니까?
  2. 서버에 데이터를 10GB 더 추가하면 어떻게 되나요? df30GB 중 35GB를 사용하고 있다고 생각하기 때문에 어떻게든 충돌이 발생할까요 ? 아니면 아직 30GB 미만의 공간을 사용하고 있으므로 모든 것이 잘 작동합니까?

참고: 이 질문은아니요cPanel에 관해서는 virtfs와 사용 가능한 디스크 공간을 결정하는 데 사용할 수 있는 도구에 관한 것입니다.

답변1

VirtFS가 소비하는 공간은 분리된 VirtFS 마운트로 인해 발생할 수 있습니다.

다음 명령을 사용하여 바인드 마운트된 디렉터리를 마운트 해제할 수 있습니다.

for i in `cat /proc/mounts | awk '/virtfs/ {print $2}'`; do umount $i;done

또는 cPanel을 사용하고 있으므로 해당 스크립트를 사용하여 다음을 수행할 수 있습니다.

/scripts/clear_orphaned_virtfs_mounts --clearall

이 후에 시도해 보세요 df -h.

cPanel의 VirtFS 및 Jailed Shell 구현에 대해 자세히 읽어보는 것은 시간을 할애할 가치가 있습니다.여기.

두 번째 질문은 공간을 더 추가해도 VirtFS에 자동으로 마운트되지 않으므로 괜찮을 것입니다.

답변2

나는 답을 찾았습니다. 사실 저는 서버의 거의 모든 공간을 사용하고 있었는데, 그 이유 중 하나는 디스크에 백업 저장소가 너무 많았기 때문입니다. 이것은 쉽게 해결됩니다.

동일한 문제가 있는 사람을 위해: 사용 중인 디스크 공간이 얼마나 되는지 확인하는 방법은 다음과 같습니다.

첫째, df이는 파일 시스템에서 사용하는 공간에 대한 정확한 정보를 제공합니다. 내 cPanel 버전(11.50)은 실제로 이 정보를 깨뜨리지 않습니다. 이는 디스크 사용량에 관해 내가 받는 이메일이 정확하다는 것을 의미합니다. 오늘부터 df다음을 제공합니다.

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/simfs      31457280 27281568   4175712  87% /
none             3145728        4   3145724   1% /dev

내가 이 숫자의 출처를 조사한 방법은 두 가지 명령을 실행하는 것이었습니다.

# get the per-directory usage for /
du --max-depth=1 / 2>> /dev/null

# get the per-directory usage for /home
du --max-depth=1 /home 2>> /dev/null

이러한 명령은 많은 출력을 생성하며 그 중 몇 줄만 관련됩니다.

$ du --max-depth=1 / 2>> /dev/null

    ...
    44294300 /home
    ...
    13223520 /backup
    70300192 /

$ du --max-depth=1 /home 2>> /dev/null

    227176   /home/george
    ...
    43093568 /home/virtfs
    ...
    44294844 /home

(/home의 크기는 실행될 때 파일 시스템이 변경되었기 때문에 이러한 명령 간에 약간 다릅니다.)

이것은 나에게 다음과 같이 알려줍니다.

  1. 내 총 사용량은 실제로 27GB입니다.
  2. /home/virtfsdu시스템 파일의 초과 계산 등으로 인해 실제 존재하는 것보다 42GB 더 많은 것으로 보고됩니다.
  3. 나는많은디스크에 실제로 필요하지 않은 백업이 몇 개 있습니다. 이제 그들을 재배치할 시간입니다.

누군가가 이것이 도움이 되기를 바랍니다. 궁금하신 점은 댓글로 질문해주세요.

관련 정보