루트 디렉터리의 디스크 공간을 늘리는 방법은 무엇입니까?

루트 디렉터리의 디스크 공간을 늘리는 방법은 무엇입니까?

그래서 서버를 확인해 df -h보니 centos-root 용량이 99%였습니다.

불과 며칠 전만 해도 뿌리수는 87%에 불과했다. 어떤 이유에서인지 너무 빨리 증가합니다. 공간을 적게 사용하는 방법에 대한 제안이 있으십니까?

[root@host ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G  713M  99% /
devtmpfs                 3.8G     0  3.8G   0% /dev
tmpfs                    3.8G     0  3.8G   0% /dev/shm
tmpfs                    3.8G  401M  3.4G  11% /run
tmpfs                    3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/mapper/centos-home  873G  136G  738G  16% /home
/dev/sda1                494M  172M  323M  35% /boot
[root@host ~]# du -csh /*
0       /bin
146M    /boot
0       /dev
23M     /etc
136G    /home
0       /lib
0       /lib64
0       /media
0       /mnt
24K     /nginxweblog
990M    /opt
du: cannot access `/proc/61778/task/61778/fd/4': No such file or directory
du: cannot access `/proc/61778/task/61778/fdinfo/4': No such file of directory
du: cannot access `/proc/61778/fd/4': No such file of directory
du: cannot access `/proc/61778/fdinfo/4': No such file of directory
0       /proc
41M     /root
401M    /run
0       /sbin
0       /srv
0       /sys
376K    /tmp
2.6G    /usr
14G     /var
153G    total
[root@host ~]# cd /; du -sh * 2> /dev/null
0       bin
146M    boot
0       dev
23M     etc
136G    home
0       lib
0       lib64
0       media
0       mnt
24K     nginxweblog
990M    opt
0       proc
41M     root
401M    run
0       sbin
0       srv
0       sys
376K    tmp
2.6G    usr
14G     var
[root@host ~]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   1   3   0 wz--n- 931.02g    0
[root@host ~]# cd /var/log
[root@host log]# ls
anaconda       cron           dmseg      lastlog           maillog-20160201   messages-20160124  ppp              secure-20160124   spooler-20160124  yum.log
audit          cron-20160111  dmesg.old  maillog           mariadb            messages-20160201  samba            secure-20160201   spooler-20160201  yum.log-20150101
boot.log       cron-20160117  firewalld  maillog-20160111  messages           nginx              secure           spooler           tallylog          yum.log-20160101
btmp           cron-20160124  grubby     maillog-20160117  messages-20160111  ntpstats           secure-20160111  spooler-20160111  tuned
btmp-20160201  cron-20160201  httpd      maillog-20160124  messages-20160117  php-fpm            secure-20160117  spooler-20160117  wtmp
[root@host ~]# du -csh /var/*
0       /var/adm
1.3M    /var/cache
0       /var/crash
36K     /var/db
0       /var/empty
0       /var/games
0       /var/gopher
0       /var/kerberos
13G     /var/lib
0       /var/local
0       /var/lock 
90M     /var/log
0       /var/mail
0       /var/nis
0       /var/opt
0       /var/preserve
0       /var/run
51M     /var/spool
4.0K    /var/tmp
0       /var/var
4.0K    /var/www
0       /var/yp
14G     total
[root@host andi]# du -csh /var/lib/*
64K     /var/lib/alternatives
8.0K    /var/lib/authconfig
0       /var/lib/cs
0       /var/lib/dav
0       /var/lib/dbus
0       /var/lib/dhclient
0       /var/lib/dnsmasq
0       /var/lib/games
0       /var/lib/initial-setup
0       /var/lib/initramfs
4.0K    /var/lib/logrotate.status
0       /var/lib/misc
13G     /var/lib/mysql
8.0K    /var/lib/NetworkManager
40K     /var/lib/nginx
0       /var/lib/ntp
0       /var/lib/os-prober
320K    /var/lib/pear
64K     /var/lib/php
0       /var/lib/phpMyAdmin
4.0K    /var/lib/plymouth
0       /var/lib/polkit-1
4.0K    /var/lib/postfix
4.0K    /var/lib/rhsm
58M     /var/lib/rpm
0       /var/lib/rpm-state
4.0K    /var/lib/rsyslog
0       /var/lib/samba
0       /var/lib/stateless
16K     /var/lib/systemd
0       /var/lib/tpm
0       /var/lib/udisks2
0       /var/lib/upower
0       /var/lib/virtuoso
13M     /var/lib/yum
13G     total

답변1

산출그리고df사용된 디스크로 정렬하지 말고 기록 중인 삭제된 파일을 검색하세요. 파일 쓰기 프로세스를 중지(다시 시작)하거나 상자를 다시 시작하십시오.

 lsof | awk '/deleted/ && $5 ~ /w/'

로그 회전을 구현하고 로그가 그렇게 놀라운 속도로 계속 증가하는 이유를 알아내고 근본 원인을 수정합니다.

답변2

짧은 대답은 데이터를 삭제하거나 루트 파일 시스템의 실제 크기를 늘려 공간을 추가하는 것입니다.

긴 대답;

이렇게 큰 디스크가 있고 lvm도 사용하는 경우 /var, /tmp, /var/log, /opt 등에 대해 별도의 파일 시스템을 생성하는 것이 좋습니다.

먼저 루트로 다음 명령을 실행하여 무엇이 디스크 공간을 차지하고 있는지 알아보세요. cd /; du -sh * 2> /dev/null

이미 명령을 실행한 것 같습니다.

/var가 너무 많은 공간을 차지하고 있으므로 별도의 파일 시스템에 저장하는 것이 좋을 수도 있습니다. "vgs" 명령의 출력을 공유할 수 있습니까?

수행해야 할 단계는 다음과 같습니다.자세한 단계는 여기를 참조하세요.

  • 시스템을 재부팅하고 grub 메뉴에서 아무 키나 누른 다음 커널 줄에 다음을 추가합니다.systemd.unit=rescue.target
  • 루트 비밀번호를 묻는 메시지가 나타나면 루트 비밀번호를 입력하세요.
  • lvchange --activate y
  • lvreduce -r -L 800G /dev/mapper/centos-home새로운 크기 700G, 800G를 지정할 수 있습니다.
  • lvextend -r -L 100G /dev/mapper/centos-root루트를 100G 파일 시스템으로 설정하려는 경우 -r 옵션을 잊지 마십시오. 그렇지 않으면 resize2fs /dev/mapper/centos-root를 실행해야 합니다.

답변3

질문 작성자는 다음과 같은 해결책을 제시합니다.

최종 편집: 해결책을 찾았습니다(적어도 일시적으로). service php-fgm restart저장공간을 99%에서 34%로 줄이는 기능 을 수행했습니다 . 하지만 보다 영구적인 솔루션을 얻으려면 내 서버에서 로그 회전 및 기타 작업을 수행해야 할 것 같습니다.

답변4

너 큰 것 같아mysql재파티셔닝을 사용할 수 있도록 데이터베이스와 작은 파티션고팟아니면 장소를 바꾸든지mysql데이터를 /home에 저장합니다. 이는 때때로 안전하지 않거나(해커) 버그가 있습니다.

무엇을 바꿔야 할까요?mysql데이터를 저장합니다.

새 디렉토리가 다음과 같다고 가정합니다./home/mynewsqldir

1.충분히 명백합니다.

service stop mysql

2.데이터베이스를 새 위치에 복사

cp -R /var/lib/mysql /home/mynewsqldir

cp -R /var/lib/mysql/users /home/mynewsqldir

삼.지원내 cnf문서

cp /etc/mysql/my.cnf /home/my.cnf.backup

4.원본 텍스트 수정내 cnf파일 및 찾기데이터 디렉토리그리고소켓줄을 그은 다음

datadir=/home/mynewsqldir

socket=/home/mynewsqldir

5.보안을 위해 디렉터리 권한 업데이트

chown -R mysql:mysql /home/mynewsqldir

6.이름을 바꿔라mysql디렉토리/var/lib/혹시라도 문제가 발생할 경우를 대비해 모든 것이 예상대로 작동하면 제거할 수 있습니다.

7.업데이트 예정인 보안 문제아파모어

ln -s /home/mynewsqldir/ /var/lib/mysql

echo "alias /var/lib/mysql/ -> /home/mynewsqldir/," >> /etc/apparmor.d/tunables/alias

8.새로고침아파모어파일 구성 및 시작하기mysql

sudo /etc/init.d/apparmor reload

start mysql

관련 정보