소개
Ubuntu Server에서 스토리지와 디스크를 관리하는 것은 관리자, 특히 클라우드 플랫폼(AWS, Azure, Google Cloud)이나 가상화 플랫폼(VMware, Hyper-V, Proxmox)과 같은 동적 환경에서 중요한 기술입니다. OS 디스크 확장, 데이터 디스크 초기화, 스토리지 구성 최적화와 같은 작업은 일반적인 시나리오입니다. 자동화 도구가 이러한 프로세스를 단순화하는 경우가 많지만, 효과적인 문제 해결과 수동 개입을 위해서는 기본 단계를 확실하게 이해하는 것이 필수적입니다.
이 가이드에서는 파일 시스템 유형, 파티셔닝, 포맷, 디스크 최적화를 포함하여 Ubuntu Server에서 스토리지와 디스크를 관리하는 방법을 살펴봅니다. 물리 환경과 가상화 환경 모두에 맞춘 실용적인 예제를 통해, 이 가이드는 스토리지 관리 작업을 효율적으로 처리할 수 있는 지식을 제공합니다.
이전 문서:
01. Ubuntu Server 소개 – SysOSX: AI & Cloud
02. 첫 Ubuntu Server 설정 방법: 초보자 가이드 – SysOSX: AI & Cloud
03. Ubuntu Server용 Linux 명령줄 익히기 – SysOSX: AI & Cloud
04. Ubuntu Server 사용자 및 권한 관리: 종합 가이드 – SysOSX: AI & Cloud
05. Ubuntu Server 네트워킹 기초: 종합 가이드 – SysOSX: AI & Cloud
06. Ubuntu Server에 소프트웨어 설치 및 관리: 완전 가이드 – SysOSX: AI & Cloud
07. Ubuntu Server 패치 및 업데이트: 종합 가이드 – SysOSX: AI & Cloud
08. Ubuntu Server 보안 강화: 하드닝 및 보호를 위한 실용적인 단계 – SysOSX: AI & Cloud
10. Ubuntu Server 시스템 모니터링 도구: 종합 가이드 – SysOSX: AI & Cloud
11. Ubuntu 서버를 위한 중앙 집중식 로깅: 필독 가이드 – SysOSX: AI & Cloud
12. Ubuntu Server 감사 및 규정 준수: 모범 사례 – SysOSX: AI & Cloud
13. 호스팅 및 웹 애플리케이션을 위한 Ubuntu Server 설정: 궁극의 가이드 – SysOSX: AI & Cloud
14. 단일 Ubuntu Server에서 여러 웹사이트 호스팅: 유용한 팁 – SysOSX: AI & Cloud
파일 시스템 유형 이해
파일 시스템은 데이터가 디스크에 저장되고 액세스되는 방식을 정의합니다. 적합한 파일 시스템을 선택하는 것은 성능, 안정성, 호환성에 매우 중요합니다. 다음은 Ubuntu 서버에서 가장 일반적인 파일 시스템입니다:
Ubuntu의 일반적인 파일 시스템
- Ext4(네 번째 확장 파일 시스템)
- Ubuntu 서버의 기본 파일 시스템.
- 저널링, 대용량 파일 지원, 뛰어난 성능을 제공합니다.
- 범용 워크로드에 이상적입니다.
- 포맷 명령:
sudo mkfs.ext4 /dev/sdX1
- XFS
- 대용량 파일과 높은 I/O 워크로드를 위해 설계된 고성능 저널링 파일 시스템.
- 엔터프라이즈 및 클라우드 환경에서 흔히 사용됩니다.
- 포맷 명령:
sudo mkfs.xfs /dev/sdX1
- Btrfs(B-트리 파일 시스템)
- 스냅샷 지원, 데이터 압축, RAID 기능을 제공하는 고급 파일 시스템.
- 복잡한 워크로드와 빈번한 백업이 필요한 환경에 적합합니다.
- NTFS
- 주로 Windows 환경과의 호환성을 위해 사용됩니다.
- 듀얼 부팅 시스템이나 Linux와 Windows 간에 공유되는 디스크에 유용합니다.
- FAT32와 exFAT
- 이동식 드라이브와 크로스 플랫폼 호환성에 사용되는 경량 파일 시스템.
적합한 파일 시스템 선택
- Ext4: 범용 워크로드.
- XFS: 엔터프라이즈 또는 클라우드 환경의 고성능 워크로드.
- Btrfs: 스냅샷 및 압축과 같은 고급 기능.
- NTFS/FAT32: 크로스 플랫폼 호환성.
Ubuntu Server에서 디스크 파티셔닝
파티셔닝은 물리 디스크를 논리적 섹션으로 나누어 데이터 구성과 관리를 개선합니다. 이는 시스템 파일, 백업, 애플리케이션 데이터를 분리하는 데 특히 유용합니다.
Ubuntu Server에서 디스크를 파티션하는 단계
- 디스크 식별:
lsblk명령을 사용하여 사용 가능한 모든 디스크와 파티션을 나열합니다:lsblk

- 파티션 만들기:
fdisk또는parted을(를) 사용하여 새 파티션을 만듭니다. 예를 들어fdisk:sudo fdisk /dev/sdXn을(를) 눌러 새 파티션을 만듭니다.- 파티션 크기와 유형을 지정합니다.
w을(를) 눌러 변경 사항을 디스크에 기록합니다.
- 파티션 확인:
lsblk을(를) 다시 실행하여 새 파티션이 만들어졌는지 확인합니다.
Ubuntu Server에서 데이터 디스크 포맷
포맷은 파일 시스템을 만들어 파티션을 사용할 수 있도록 준비합니다.
Ubuntu Server에서 데이터 디스크를 포맷하는 단계
- 필요한 도구 설치:
mkfs유틸리티가 설치되어 있는지 확인하세요(대부분의 배포판에 기본적으로 포함되어 있습니다). - 파티션 포맷:
mkfs명령을 사용하여 파티션을 포맷합니다. 예:sudo mkfs.ext4 /dev/sdX1 - 마운트 지점 만들기:
중요 참고 사항: 클라우드 환경에서는/mnt을(를) 마운트 지점으로 사용하지 마세요./mnt디렉터리는 클라우드 플랫폼(Azure 또는 AWS 등)에서 임시 디스크용으로 예약되는 경우가 많으며, 재부팅이나 시스템 업데이트 시 지워질 수 있습니다. 대신/data또는/storage와(과) 같은 사용자 지정 디렉터리를 사용하세요. 예:
sudo mkdir /data
- 파티션 마운트:
포맷한 파티션을 새로 만든 디렉터리에 마운트하세요:
sudo mount /dev/sdX1 /data
- 마운트 유지:
파티션이 부팅 시 자동으로 마운트되도록/etc/fstab파일에 추가하세요:
echo '/dev/sdX1 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab
마운트 유지: 클라우드 환경에서 UUID 사용
파티션이 부팅 시 자동으로 마운트되도록 하려면 /etc/fstab 파일에 추가하는 것이 필수적입니다. 그러나 클라우드 환경에서는 장치 이름을 직접 참조하는 대신 UUID(범용 고유 식별자)를 사용하여 디스크를 마운트하는 것이 좋습니다(예: /dev/sdX1). 장치 이름은 시스템 재부팅 후, 특히 가상화 또는 클라우드 환경에서 변경될 수 있으며, 이는 마운트 실패로 이어질 수 있습니다. UUID를 사용하면 일관되고 안정적인 마운트가 보장됩니다.
UUID를 사용하여 마운트를 유지하는 단계
- 파티션의 UUID 찾기:
blkid명령을 사용하여 파티션의 UUID를 가져옵니다:
sudo blkid
- 출력 예:
/dev/sdX1: UUID="123e4567-e89b-12d3-a456-426614174000" TYPE="ext4"
/etc/fstab파일을 편집합니다:/etc/fstab파일에 장치 이름 대신 UUID를 사용한 항목을 추가하세요.
예:echo 'UUID=123e4567-e89b-12d3-a456-426614174000 /data ext4 defaults 0 2' | sudo tee -a /etc/fstab- 구성 확인:
파티션을 마운트 해제한 뒤mount -a명령을 사용하여 다시 마운트함으로써 구성을 테스트하세요:
sudo umount /data
sudo mount -a
- 재부팅하고 확인:
시작 시 디스크가 올바르게 마운트되는지 확인하기 위해 시스템을 재부팅하세요:sudo reboot
클라우드 환경에서 UUID를 사용하는 이유
- 일관성: 장치 이름(
/dev/sdX등)은 클라우드 플랫폼의 동적 장치 열거로 인해 재부팅 후 변경될 수 있습니다. - 안정성: UUID는 각 파티션마다 고유하고 일정하게 유지되므로 안정적인 마운트가 보장됩니다.
- 모범 사례: AWS, Azure, Google Cloud와 같은 클라우드 제공업체는 프로덕션 환경에서 디스크를 마운트할 때 UUID 또는 레이블을 사용할 것을 권장합니다.
클라우드 및 가상화 시나리오: 디스크 확장과 초기화
시나리오 1: OS 디스크 확장
AWS, Azure, Google Cloud와 같은 클라우드 플랫폼에서는 물리 계층에서 OS 디스크를 확장할 수 있습니다. 많은 플랫폼이 OS 디스크를 자동으로 감지하고 확장합니다. 그러나 새 공간을 활용하기 위해 파일 시스템 크기를 조정하려면 수동 개입이 필요할 수 있습니다.
Ubuntu Server에서 OS 디스크를 확장하는 단계:
- 디스크 공간 확인:
확장된 디스크 공간을 다음 명령으로 확인하세요:lsblk:lsblk - 파일 시스템 크기 조정:
resize2fs을(를) Ext4 파일 시스템에 사용합니다:sudo resize2fs /dev/sdX1
시나리오 2: 데이터 디스크 초기화, 이전 섹션을 참조하세요
디스크 사용량 모니터링 및 최적화
디스크 사용량 모니터링
- 디스크 공간 사용량 확인:
df명령을 사용하여 디스크 공간 사용량을 표시합니다:df -h - 디렉터리 사용량 분석:
du명령을 사용하여 특정 디렉터리의 크기를 확인합니다:du -sh /var/log - 고급 모니터링:
ncdu을(를) 설치하여 대화형 디스크 사용량 분석을 수행하세요:
sudo apt install ncdu
ncdu /

디스크 사용량 최적화
- 임시 파일 제거:
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
- 디스크 공간을 차지하는 큰 파일 찾기
find명령을 사용하여 큰 파일을 찾습니다:
sudo find / -type f -size +100M
참고 자료
다음 문서에서는 데이터베이스 서버 설정 을 Ubuntu 서버에서 자세히 다룹니다. 배울 내용은 다음과 같습니다:
- MySQL 또는 MariaDB을(를) 설치하고 구성하여 애플리케이션에서 사용할 수 있도록 합니다.
- 민감한 데이터를 보호하기 위해 데이터베이스 서버를 안전하게 보호하세요.
- 프로덕션 환경을 위해 데이터베이스 성능을 최적화하세요.
데이터베이스를 클라우드에 배포하든 온프레미스에 배포하든, 이 가이드는 데이터베이스 인프라를 효과적으로 관리하는 데 도움이 되는 실행 가능한 통찰을 제공합니다.
놓치지 마세요. 계속 지켜봐 주세요!
5 thoughts on “15. Managing Storage and Disks on Ubuntu Server: Simple Guide”