[Linux] MariaDB start 실패 오류 (원인: 디스크 용량 부족)

zanin·2024년 1월 10일

트러블 슈팅

목록 보기
1/1
post-thumbnail

작업 환경

  • AWS EC2의 우분투 20.04 환경에 mariadb 설치 --> DB 서버로 사용중
  • (프리티어 계정) 인스턴스 사양 --> vCPU 1코어, 메모리 1GB

문제 발생

  • 갑자기 mariadb의 연결이 끊기고 재접속이 되지 않음.

문제 원인 탐색

  • mariadb 재설치 시도 전, 파일 백업을 위해 cp 명령어 사용

    --> 리눅스 용량 문제로 cp 명령어를 실행할 수 없다는 오류 문구 출력됨

  • 해당 오류가 mariadb 접속불가 상황과 관련있을 것이라 의심

  • df 명령어로 디스크 용량 확인

    • /dev/root 용량이 7.9G/7.9G 로 100% 사용중

해결 과정

  • 목표 : /dev/root 용량 확보

Try 1

  • 시도 1 : lsof / 명령어로 불필요하게 용량을 잡아먹고 있는 쓰레기 데이터 찾아 삭제하기
  • 용의자 1) syslog

    --> (삭제 전)

    --> (삭제 후)

  • 1-1) syslog 삭제했으나 mariadb restart 실패
  • 용의자 2) amazon log

  • 2-1) amazon error log 삭제했으나 mariadb restart 실패
  • 용의자 3) 여러개 남아있는 mariadb의 PID

  • 3-1) 남아있는 mariadb PID를 다 삭제시켰으나 mariadb restart 실패

  • 시도 1 결과 (실패)
    - 변화 없는 /dev/root 사용량

Try 2

  • 시도 2 : mariadb의 사용하지 않는 테이블 삭제하기
  • 1) mariadb 오류구문 재확인

  • 2) journalctl -xeu mariadb.service 명령어로 오류구문 자세히 확인

    • 2-1) 용량이 계속 언급되는 것으로 보아 용량 문제 맞는 것으로 생각됨
  • 3) mariadb에서 사용하지 않을 테이블 삭제

    • 3-1) 테이블이 들어있던 /laBelup 용량은 31M --> 9.8M으로 줄었으나 mariadb restart 실패

    • 3-2) /dev/root 사용량도 이것저것 지워보기 전과 일치함. 변화없음

  • 시도 2 결과 (실패)
    • /dev/root의 용량은 위의 과정들과 관련이 없는 듯함

Try 3

  • 시도 3 : AWS EC2 인스턴스 볼륨 용량 증설
  • 1) 현재 사용중인 AWS EC2 인스턴스에 연결된 EBS 볼륨 용량을 8GB에서 25GB로 수정함

    • 주의사항!!!
      • AWS 프리티어로 무료 제공되는 EBS 스토리지 용량은 30GB 까지임
        --> 실행중이지 않은 인스턴스에 연결된 EBS 볼륨까지 모두 포함된 용량이 30GB
        --> 생성된 모든 인스턴스의 볼륨 용량을 합산해서 30GB가 넘지 않아야 과금되지 않음!!
  • 2) lsblk 명령어로 리눅스 /dev/root에 해당하는 파티션 이름이 /dev/xvda 1 임을 확인

    • 2-1) 파티션 용량 늘리기 위한 growpart 명령어를 수행할 용량이 부족하다는 오류 발생

    • 2-2) 명령 수행할 /tmp의 용량을 10M만큼만 우선 늘려준 뒤 다시 growpart /dev/xvda 1 명령어 수행

    • 2-3) resize2fs /dev/xvda1명령어로 /dev/root 해당 파티션 용량 25G로 할당 성공

    • 2-4) 여전히 mariadb restart 실패

  • 3) journalctl -xeu mariadb.service 명령어로 새로운 오류구문 확인

    • 3-1) /var/lib/mysql 디렉터리의 ib_logfile0을 ib_logfile1로 이름 변경해줌

      • mv ib_logfile0 ib_logfile1 명령어 사용
    • 3-2) mariadb 재시작

      • systemctl restart mariadb 명령어로 mariadb 재시작 성공

      • 테이블과 데이터 조회도 성공

  • 시도 3 결과 (성공)
    • mariadb 문제없이 작동함

결론

  • 리눅스 디스크 용량 부족이 문제의 원인
  • 다시 용량이 부족할 상황을 대비해 어떤 파일의 용량이 큰 비중을 차지하는지 확인

    • 필요에 의해 설치한 모듈들의 비중이 가장 큼
    • 필수적인 용량 증설이었음
  • /var/lib/mysql에서 이름 변경했던 ib_logfile1이 다음 날 다시 확인해보니 ib_logfile0으로 복구되어 있음

    • 파일 역할과 자동으로 이름이 복구된 이유 알아보기

참고

profile
zanin [검색어] 입력하면 다 나오는 게 목표

0개의 댓글