소개
이 실습에서는 리눅스 시스템에서 디스크 공간 사용량을 모니터링하는 데 필수적인 도구인 df 명령어를 살펴봅니다. 여러분은 바쁜 웹 서버를 관리하는 시스템 관리자 역할을 맡아 df를 사용하여 디스크 사용량을 분석하고, 잠재적인 저장 공간 문제를 식별하며, 서버의 원활한 운영을 보장하는 과정을 경험하게 됩니다. 이 실습은 초보자를 위해 설계되었으므로 리눅스가 처음이더라도 걱정하지 마세요. 각 단계를 친절하게 안내해 드립니다.
이 실습에서는 리눅스 시스템에서 디스크 공간 사용량을 모니터링하는 데 필수적인 도구인 df 명령어를 살펴봅니다. 여러분은 바쁜 웹 서버를 관리하는 시스템 관리자 역할을 맡아 df를 사용하여 디스크 사용량을 분석하고, 잠재적인 저장 공간 문제를 식별하며, 서버의 원활한 운영을 보장하는 과정을 경험하게 됩니다. 이 실습은 초보자를 위해 설계되었으므로 리눅스가 처음이더라도 걱정하지 마세요. 각 단계를 친절하게 안내해 드립니다.
시스템 관리자로서의 첫 번째 임무는 웹 서버의 디스크 공간 사용 현황을 파악하는 것입니다. 옵션 없이 df 명령어를 실행하면 마운트된 모든 파일 시스템의 스냅샷을 빠르게 확인할 수 있습니다.
먼저, 프로젝트 디렉토리로 이동합니다:
cd ~/project
이제 기본적인 df 명령어를 실행해 보겠습니다:
df
팁: 가상 머신 저장소의 동적인 변화로 인해 df 명령어의 출력 결과가 예시와 일치하지 않을 수 있으며, 이는 무시해도 괜찮습니다.
다음과 유사한 출력이 나타날 것입니다:
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 20971520 1314600 19656920 7% /
tmpfs 65536 0 65536 0% /dev
tmpfs 4068320 0 4068320 0% /sys/fs/cgroup
shm 65536 0 65536 0% /dev/shm
/dev/vdb 104806400 17442788 87363612 17% /etc/hosts
tmpfs 102400 51200 51200 50% /mnt/ramdisk
출력 항목의 의미는 다음과 같습니다:
Filesystem: 장치 또는 파티션의 이름을 나타냅니다.1K-blocks: 1 킬로바이트 블록 단위로 계산된 파일 시스템의 총 크기입니다.Used: 사용 중인 1K 블록의 수입니다.Available: 사용 가능한 1K 블록의 수입니다.Use%: 파일 시스템의 사용 백분율입니다.Mounted on: 파일 시스템이 디렉토리 트리의 어느 위치에 연결 (마운트) 되어 있는지 보여줍니다.컨테이너 환경에서 흔히 사용되는 overlay 파일 시스템을 확인해 보세요. /dev/vdb 장치는 가상 디스크일 가능성이 높으며, /mnt/ramdisk에 마운트된 tmpfs는 RAM 기반의 파일 시스템임을 알 수 있습니다.
df의 기본 출력은 크기를 1K 블록 단위로 표시하므로 직관적으로 파악하기 어려울 수 있습니다. 예를 들어 20640796 개의 1K 블록이 몇 기가바이트인지 계산하는 것은 번거로운 일입니다. 다행히 -h 옵션 ("human-readable"의 약자) 을 사용하면 출력을 훨씬 이해하기 쉽게 만들 수 있습니다.
다음 명령어를 실행하세요:
df -h
다음과 유사한 출력이 나타날 것입니다:
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/vdb 100G 17G 84G 17% /etc/hosts
tmpfs 100M 50M 50M 50% /mnt/ramdisk
이제 크기가 GB 와 MB 단위로 표시되는 것을 볼 수 있습니다. 한눈에 파악하기가 훨씬 수월해졌습니다. 예를 들어, 메인 파일 시스템 (overlay) 의 크기는 20G 이며, 1.3G 만 사용 중이고 19G 가 남아 있음을 즉시 알 수 있습니다.
시스템 관리자에게 서버에 어떤 유형의 파일 시스템이 있는지 아는 것은 매우 중요합니다. 파일 시스템 유형마다 기능과 성능 특성이 다르기 때문입니다. -T 옵션을 사용하면 이 정보를 확인할 수 있습니다.
다음 명령어를 실행하세요:
df -T
다음과 유사한 출력이 나타날 것입니다:
Filesystem Type 1K-blocks Used Available Use% Mounted on
overlay overlay 20971520 1314600 19656920 7% /
tmpfs tmpfs 65536 0 65536 0% /dev
tmpfs tmpfs 4068320 0 4068320 0% /sys/fs/cgroup
shm tmpfs 65536 0 65536 0% /dev/shm
/dev/vdb xfs 104806400 17442728 87363672 17% /etc/hosts
tmpfs tmpfs 102400 51200 51200 50% /mnt/ramdisk
이 출력에는 각 마운트된 파일 시스템의 종류를 보여주는 Type 열이 추가되었습니다. 표시된 유형들을 살펴보겠습니다:
overlay: 주로 컨테이너 환경에서 사용되는 유니온 파일 시스템의 일종입니다.tmpfs: 메모리나 스왑 파티션에 상주하는 임시 파일 시스템입니다.xfs: 고성능 저널링 파일 시스템으로, 여기서는 /etc/hosts 마운트에 사용되었습니다.파일 시스템 유형을 이해하면 문제 해결과 시스템 성능 최적화에 큰 도움이 됩니다.
리눅스에서 아이노드 (inode) 는 파일의 권한, 소유권, 디스크 상의 위치와 같은 중요한 정보를 저장하는 데이터 구조입니다. 시스템의 각 파일은 하나의 아이노드를 사용합니다. 흥미로운 점은 디스크 공간이 충분하더라도 아이노드가 고갈되면 새로운 파일을 생성할 수 없다는 것입니다. 이것이 아이노드 사용량을 모니터링해야 하는 이유입니다.
-i 옵션을 사용하여 아이노드 사용량을 확인해 보겠습니다:
df -i
다음과 유사한 출력이 나타날 것입니다:
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 52428800 539001 51889799 2% /
tmpfs 1017080 206 1016874 1% /dev
tmpfs 1017080 17 1017063 1% /sys/fs/cgroup
shm 1017080 1 1017079 1% /dev/shm
/dev/vdb 52428800 539001 51889799 2% /etc/hosts
tmpfs 1017080 2 1017078 1% /mnt/ramdisk
출력 항목의 의미는 다음과 같습니다:
Inodes: 파일 시스템의 총 아이노드 수IUsed: 현재 사용 중인 아이노드 수IFree: 사용 가능한 여유 아이노드 수IUse%: 아이노드 사용 백분율이 예시에서 메인 파일 시스템 (overlay) 은 사용 가능한 아이노드의 2% 만 사용하고 있습니다. 이는 매우 양호한 상태로, 아이노드 부족으로 인해 새 파일을 만들지 못하는 상황과는 거리가 멀다는 것을 의미합니다.
지금까지 개별 옵션들을 살펴보았으니, 이제 이들을 조합하여 서버의 저장소 상황을 더 종합적으로 파악해 보겠습니다. 여러 옵션을 함께 사용하면 필요한 모든 정보를 한 번에 얻을 수 있습니다.
다음 명령어를 실행하세요:
df -hT
이 명령어는 읽기 쉬운 형식 (-h) 과 파일 시스템 유형 (-T) 옵션을 결합한 것입니다.
다음과 유사한 출력이 나타날 것입니다:
Filesystem Type Size Used Avail Use% Mounted on
overlay overlay 20G 1.3G 19G 7% /
tmpfs tmpfs 64M 0 64M 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm tmpfs 64M 0 64M 0% /dev/shm
/dev/vdb xfs 100G 17G 84G 17% /etc/hosts
tmpfs tmpfs 100M 50M 50M 50% /mnt/ramdisk
이 출력은 파일 시스템 유형과 사람이 읽기 편한 크기 단위를 포함하여 파일 시스템에 대한 포괄적인 개요를 제공합니다. 시스템의 저장소 상태를 빠르고 상세하게 확인하기에 아주 좋은 방법입니다.
시스템 관리 업무를 하다 보면 특정 파일 시스템의 상태만 확인해야 할 때가 많습니다. 예를 들어, 루트 파일 시스템의 공간을 빠르게 확인하고 싶을 수 있습니다. df 명령어 뒤에 마운트 지점을 지정하면 이를 수행할 수 있습니다.
루트 파일 시스템에 집중해 보겠습니다. 다음 명령어를 실행하세요:
df -h /
다음과 유사한 출력이 나타날 것입니다:
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
이 명령어는 루트 파일 시스템의 공간 사용량만 간략하게 보여줍니다. 다른 파일 시스템의 정보는 필요 없고 특정 위치에 대해서만 관심이 있을 때 특히 유용합니다.
서버 관리 업무의 일환으로 사용자들이 홈 디렉토리에서 충분한 공간을 사용할 수 있는지 확인해야 합니다. 많은 시스템에서 사용자 홈 디렉토리는 /home 디렉토리에 위치합니다. /home 디렉토리의 사용 가능한 공간을 확인해 보겠습니다.
다음 명령어를 실행하세요:
df -h /home
다음과 유사한 출력이 나타날 수 있습니다:
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
이 결과는 /home 디렉토리가 루트 디렉토리 (/) 와 동일한 파일 시스템에 있음을 보여줍니다. 이 경우 사용자 홈 디렉토리를 위해 19G 라는 넉넉한 공간이 남아 있음을 알 수 있습니다.
만약 파일 시스템이 가득 차 가고 있다면 (높은 Use% 값), 어떤 사용자가 공간을 가장 많이 차지하고 있는지 조사하거나 저장 용량 증설을 고려해야 합니다.
때로는 df 출력에서 특정 유형의 파일 시스템을 제외하고 싶을 때가 있습니다. 예를 들어, 메모리에 저장되어 실제 물리적 디스크 사용량을 나타내지 않는 임시 파일 시스템을 제외하고 싶을 수 있습니다. 이럴 때 -x 옵션을 사용합니다.
다음 명령어를 실행하여 tmpfs 파일 시스템을 제외해 보겠습니다:
df -h -x tmpfs
다음과 유사한 출력이 나타날 것입니다:
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
/dev/vdb 100G 17G 84G 17% /etc/hosts
출력 결과에서 tmpfs 파일 시스템들이 더 이상 나열되지 않는 것을 확인하세요. 가상 파일 시스템을 필터링하고 실제 물리적 디스크 사용량에만 집중하고 싶을 때 유용합니다.
마지막으로 모든 파일 시스템의 전체 요약 정보를 표시해 보겠습니다. --total 옵션을 사용하면 됩니다. 이는 모든 파일 시스템에 걸친 전반적인 디스크 사용량을 확인하고 싶을 때 특히 유용합니다.
다음 명령어를 실행하세요:
df -h --total
다음과 유사한 출력이 나타날 것입니다:
Filesystem Size Used Avail Use% Mounted on
overlay 20G 1.3G 19G 7% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/vdb 100G 17G 84G 17% /etc/hosts
tmpfs 100M 50M 50M 50% /mnt/ramdisk
total 125G 18G 107G 15% -
이 명령어는 모든 파일 시스템의 디스크 사용량을 합산하여 보여줍니다. 마지막 줄의 total 행을 통해 전체 125G 중 18G 가 사용 중이며, 이는 전체 가용 공간의 약 15% 에 해당한다는 것을 알 수 있습니다.
이 실습에서는 리눅스 시스템에서 디스크 공간 사용량을 모니터링하고 분석하기 위해 df 명령어를 사용하는 방법을 배웠습니다. 다음과 같은 다양한 df 명령어 옵션들을 살펴보았습니다:
df의 기본 사용법-h를 이용한 읽기 쉬운 형식 출력-T를 이용한 파일 시스템 유형 표시-i를 이용한 아이노드 사용량 분석-x를 이용한 특정 파일 시스템 유형 제외--total을 이용한 전체 요약 정보 표시이러한 기술은 효과적인 시스템 관리와 리눅스 서버의 최적 성능 유지를 위해 필수적입니다. 시스템 관리자로서의 여정을 계속하다 보면 df 명령어가 도구 상자에서 매우 가치 있는 도구임을 깨닫게 될 것입니다.
이 실습에서 다루지 않은 추가적인 df 옵션은 다음과 같습니다:
-a: 가상 (pseudo), 중복, 접근 불가능한 파일 시스템을 포함한 모든 파일 시스템 표시-k: 크기를 킬로바이트 단위로 표시 (기본값)-m: 크기를 메가바이트 단위로 표시-P: POSIX 출력 형식 사용--sync: 사용량 정보를 가져오기 전에 sync 호출-t: 특정 유형의 파일 시스템만 나열df는 강력한 도구이지만, 디스크 사용량을 모니터링하는 여러 도구 중 하나일 뿐이라는 점을 기억하세요. 리눅스 학습을 진행하면서 du(디스크 사용량), ncdu(NCurses 기반 디스크 사용량) 및 다양한 시스템 모니터링 도구들도 함께 살펴보시기 바랍니다.