디스크·파일 시스템·LVM과 마운트
블록 장치의 공간과 파일 시스템의 공간은 다릅니다. 파티션, 논리 볼륨, 파일 시스템, 마운트를 층별로 이해합니다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- 디스크·PV·VG·LV·파일 시스템·마운트의 포함 관계를 설명한다.
- 논리 볼륨 확장과 파일 시스템 확장을 별도로 추적한다.
- df·du·inode·quota 결과가 다른 이유를 구분한다.
01디스크·파티션·파일 시스템·마운트의 네 단계
- 블록 장치블록 장치는 일정 크기의 논리 블록을 읽고 쓰는 인터페이스다.
- 파티션과 파일 구조파티션 테이블은 그 장치의 어느 구간을 나누어 사용할지 기록하고, 파일 시스템은 그 구간 안에서 이름·디렉터리··빈 공간을 관리할 구조를 만든다.
- 경로 트리에 연결mount는 만들어진 파일 시스템을 전체 경로 트리에 연결한다.
- 파티션 타입과 포맷파티션 타입을 로 지정한 것만으로 ext4가 생성되거나 사용 가능한 디렉터리가 생기는 것은 아니다.
- /dev/sdX, /dev/nvme0n1, /dev/vdX는 서로 다른 장치 계열의 명명 관례다.
- 파일 시스템·UUIDsd 뒤 문자는 연결 순서가 달라지면 바뀔 수 있고 장치 경로와 파일 시스템 UUID는 다른 식별자다.
- 장치·서명·경로 조회lsblk는 장치 계층, blkid는 파일 시스템 서명과 식별자, findmnt는 현재 경로 연결을 보여 준다.
- 디스크같은 디스크 크기를 보더라도 MB=10^6바이트와 MiB=2^20바이트의 단위 차이로 숫자가 달라질 수 있으며 운영체제 이름으로 단위를 고정해서 설명하지 않는다.
lsblk -o NAME,TYPE,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTS
blkid
findmnt
sudo fdisk -l교육용 설정·명령 예시. 실행 환경과 대상 경로를 가정하며 이 페이지를 만들면서 실행하지 않았다.
02MBR과 GPT, 2048 섹터의 계산
- 512·MBR전통적인 512바이트 MBR 섹터는 부트 코드 영역, 네 개의 파티션 항목, 마지막 서명으로 구성된다.
- 확장·파티션네 항목 중 하나를 확장 파티션으로 사용하고 그 안에 논리 파티션을 연결할 수 있다.
- 파티션·확장기본 파티션 네 개에 확장 파티션을 다섯 번째로 추가하는 구조는 아니다.
- GPT·파티션GPT는 별도의 헤더·파티션 항목 배열과 백업 정보를 사용하며 MBR의 primary/extended 구분을 그대로 적용하지 않는다.
- 512·2048512바이트 논리 섹터 기준 2048 × 512 = 1,048,576바이트 = 1MiB다.
- 파티션첫 파티션을 그 위치에서 시작하는 것은 정렬을 위한 흔한 선택이지 0~2047 섹터 전체가 MBR이라는 뜻이 아니다.
- 섹터 크기와 단위장치의 논리 섹터 크기가 다르면 같은 섹터 번호의 바이트 위치도 달라진다.
- GPTUEFI는 보통 FAT 형식의 EFI System Partition에서 부트로더 파일을 읽으며, BIOS+GPT의 부팅 방식과 분리해서 이해한다.
102MiB 디스크에서 101MiB 파티션이 나오는 이유 계산하기
디스크 크기·논리 섹터·파티션 시작과 끝을 계산하고, 파티션 생성과 파일 시스템 준비를 구별한다.
실습 구성과 전제
- 작은 가상 디스크 여러 개를 연결한 실습 화면이다. /dev/sda 같은 장치 이름은 환경마다 달라지므로 실제 대상은 크기와 식별자로 확인한다.
- 아래 명령은 조회용이다. 파티션 생성·포맷 명령은 기존 자료를 손상시킬 수 있으므로 이 실습에 포함하지 않는다.
디스크 전체를 섹터 수로 환산한다
- 첫 화면의 한 디스크는 106,954,752바이트, 208,896섹터다. 논리 섹터 512바이트를 곱하면 두 값이 일치한다.
- 106,954,752 ÷ 1,048,576 = 102이므로 이 도구의 102MiB 표시는 2의 거듭제곱 단위에 따른 값이다. MB와 MiB를 같은 수치 단위로 섞지 않는다.
bashlsblk -o NAME,SIZE,TYPE,LOG-SEC,PHY-SEC,FSTYPE,MOUNTPOINTS sudo fdisk -l /dev/sda장치 이름을 확인한 뒤 해당 디스크의 섹터·파티션 정보를 읽는다.
원본 크기로 보기 ↗- 각 가상 디스크는 102MiB와 106954752 bytes로 표시된다.
- Sector size 줄은 logical/physical 모두 512 bytes이고 총 208896 sectors가 보인다.
확인 기준계산에는 실제 출력의 논리 섹터 크기를 사용한다. 모든 디스크가 항상 512바이트라고 일반화하지 않는다.
포함 범위의 끝을 반영해 파티션 크기를 계산한다
- 두 번째 화면의 시작은 2048, 끝은 208895이다. 양 끝을 포함하므로 섹터 수는 208895−2048+1 = 206848이다.
- 206848×512 = 105906176바이트 = 101MiB다. 앞의 2048섹터는 1MiB에 해당하지만 그 전체가 MBR 자체인 것은 아니다. 전통적인 MBR 레코드는 첫 섹터에 있고 시작 정렬 여유 등이 별도로 존재한다.
원본 크기로 보기 ↗- Disklabel type은 dos이고 sda1의 Start=2048, End=208895, Sectors=206848이 보인다.
- 크기는 101M, Id는 83, Type은 Linux로 표시된다.
확인 기준Id 83 표시는 파티션 타입이다. 이것만으로 구성··ext4 포맷이 완료되었다고 판단하지 않는다.
파일 시스템과 마운트 상태를 별도로 연결한다
- 파티션은 사용할 블록 범위를 정한다. 파일 시스템은 그 범위에 디렉터리··데이터 배치를 만들며, 마운트는 이를 경로 트리에 연결한다.
- lsblk의 TYPE, FSTYPE, MOUNTPOINTS를 차례로 읽으면 파티션만 생성된 상태인지, 포맷되었지만 마운트되지 않았는지 구분할 수 있다.
bashlsblk -f findmnt --source /dev/sda1파일 시스템 종류와 현재 마운트를 조회하는 예시다.
확인 기준파티션이 보이는데 디렉터리에서 파일을 못 찾으면 마운트 여부와 실제 원본 장치를 확인한다. 크기 차이를 곧바로 손실이나 오류라고 판단하지 않는다.
실습에서 확인한 동작 원리
- 바이트 수는 섹터 수×논리 섹터 크기로 검산하고, 파티션의 시작·끝은 포함 범위로 계산한다.
- 디스크, 파티션, 파일 시스템, 마운트는 별도의 준비 단계다.
설정·출력 추가로 확인하기 28장
아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.
실습 화면 묶음 01 15장
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 명령·상태 출력이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「sda, sdb 초기화」 문맥에 삽입된 원본 명령·상태 출력이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「sdc, sdd 를 striping 모드로 묶어라 - raid 0」 문맥에 삽입된 원본 명령·상태 출력이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 명령·상태 출력이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 명령·상태 출력이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「striping (raid0)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「striping (raid0)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「riad 1 에서 하나 에러 상황」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 7장
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인.
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인.
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인. 원문에서 「레이드 생성법」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인. 원문에서 「리눅스에 연결 가능한 물리 디스크의 종류」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인. 원문에서 「상태 확인」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인. 원문에서 「파티셔닝」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 물리 디스크·파티션·RAID 생성 및 상태 확인. 원문에서 「파티셔닝」에 배치된 그림 또는 화면이다.
실습 화면 묶음 03 1장
원본 크기로 보기 ↗- 「log」 문맥에 삽입된 원본 실습·개념 참고 화면이다. 디스크·파일 시스템·LVM과 마운트 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 04 5장
원본 크기로 보기 ↗- 수업 원본 자료 · 사용자 디스크 사용량과 quota 설정. 원문에서 「disk quota」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 사용자 디스크 사용량과 quota 설정. 원문에서 「disk quota」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 사용자 디스크 사용량과 quota 설정. 원문에서 「disk quota」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 사용자 디스크 사용량과 quota 설정. 원문에서 「disk quota」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 사용자 디스크 사용량과 quota 설정. 원문에서 「disk quota」에 배치된 그림 또는 화면이다.
동작·명령 참고 문서
03포맷·저널·슈퍼블록이 담당하는 일
- mkfs의 작업mkfs는 빈 블록 범위에 파일 시스템 메타데이터를 생성한다.
- 파티션기존 파티션에 실행하면 이전 자료를 훼손할 수 있으므로 새 실습 디스크와 기존 운영 데이터의 구분이 필수다.
- 슈퍼블록·파일 시스템슈퍼블록은 파일 시스템 종류와 크기, 블록 배치 등의 핵심 정보를 담는 구조이며 정확한 필드와 백업 배치는 파일 시스템마다 다르다.
- 슈퍼블록모든 슈퍼블록의 한 바이트 오류가 같은 결과를 만든다는 일반화는 성립하지 않는다.
- 저널의 목적저널은 메타데이터 변경 등의 일관성 회복을 위해 작업 기록을 남기는 기법이다.
- 중단 후 일관성 복구정상 반영이 중단되면 파일 시스템 구현이 기록을 이용해 상태를 복구한다.
- 저널과 과거 복원저널이 있다고 삭제한 사용자 파일의 이전 내용을 언제나 되돌릴 수 있는 것은 아니므로 백업과 다르다.
- 디스크ext4 자체가 디스크를 다른 컴퓨터에 연결했을 때 내용을 숨기는 암호화 기능을 자동 제공하는 것도 아니다.
- 파일 시스템, 접근 권한, 저장 장치 암호화는 별도 기능이다.
04fstab 여섯 필드와 부팅 시 연결
- fstabfstab은 source, mountpoint, filesystem type, options, dump flag, fsck 순서의 여섯 필드다.
- UUIDUUID를 source로 사용하면 sd 문자 변화와 경로 연결을 분리할 수 있다.
- 파일 시스템root ext 파일 시스템에 fsck 순서 1, 다른 ext 파일 시스템에 2를 쓰는 구성이 흔하지만 XFS처럼 부팅 fsck 순서를 같은 방식으로 사용하지 않는 파일 시스템은 보통 0이다.
- 값은 파일 시스템과 배포판의 부팅 정책에 맞춘다.
- 마운트 지점nofail은 장치가 없어도 부팅을 계속할 수 있게 하는 선택이며 반드시 있어야 하는 데이터 장치에서는 서비스가 빈 마운트 지점에 쓰는 문제가 생길 수 있다.
- 마운트_netdev는 네트워크가 필요한 장치라는 의존성 정보를 주고 x-.automount는 접근 시 마운트를 유도하는 구성이다.
- nodev·nosuid·noexecnodev·nosuid·noexec는 각각 장치 파일 해석·특수 실행 권한·직접 실행과 관계된 경계를 제공하며 모든 공격을 막는 만능 설정은 아니다.
# 실제 UUID로 바꾸는 fstab 형식 예시
UUID=<filesystem-uuid> /srv/data ext4 defaults,nodev,nosuid 0 2
# 읽기 검증
findmnt --verify --verbose
# mount -a는 검사가 아니라 실제 마운트 적용 작업이다.교육용 설정·명령 예시. 실행 환경과 대상 경로를 가정하며 이 페이지를 만들면서 실행하지 않았다.
05LVM은 PV의 공간을 VG로 모아 LV에 배정한다
- ·는 이 관리할 물리 볼륨이며 디스크 전체 또는 파티션 위에 만들 수 있다.
- ·는 하나 이상의 를 모은 공간 풀이고, 는 그 안에서 파일 시스템이나 다른 용도에 제공하는 논리 블록 장치다.
- 은 공간을 단위로 관리한다.
- · 두 개를 로 모았다고 자동으로 미러 복제가 되는 것은 아니며 일반 선형 , striped , 등 배치 방식에 따라 장애 특성이 다르다.
- 확장 과정은 아래 계층에서 위 계층으로 진행된다.
- 디스크·파티션디스크와 파티션이 커진 뒤 필요하면 를 확장하고, 의 빈 공간에서 에 를 더 배정한 다음 파일 시스템을 키운다.
- 만 커져도 df가 보여 주는 파일 시스템 크기는 바로 커지지 않을 수 있다.
- 마운트XFS는 보통 마운트된 상태에서 성장시키고 축소는 지원하지 않는다.
- 확장ext4는 resize2fs를 사용하지만 축소에는 별도의 오프라인 순서와 검사가 필요하므로 확장 명령을 거꾸로 쓰는 방식이 아니다.
pvs
vgs
lvs -a -o lv_name,vg_name,lv_size,segtype,devices
# 계층 예시: /dev/sdb1 -> PV -> vgdata -> lvdocs -> ext4 -> /srv/data
# lvextend는 LV, resize2fs/xfs_growfs는 파일 시스템 계층을 변경한다.교육용 설정·명령 예시. 실행 환경과 대상 경로를 가정하며 이 페이지를 만들면서 실행하지 않았다.
06선형 LV의 논리 영역이 물리 영역으로 매핑되는 방법
- 논리 는 연속된 논리 블록 장치처럼 보이지만 공간은 단위로 할당될 수 있다. 파일 시스템의 블록 크기와 크기는 서로 다른 층의 단위다.
- 일반적인 linear 매핑은 논리 시작 위치·길이와 기반 장치·그 장치의 시작 오프셋을 연결한다. 한 의 앞부분과 뒷부분이 서로 다른 에 놓일 수 있다.
- 의 여유 공간 free는 아직 에 할당하지 않은 공간이다. 파일 시스템에서 이미 할당된 안의 빈 블록과 같지 않으므로 df의 Available과 숫자가 달라도 모순이 아니다.
- 확장의 두 경계만 늘리면 파일 시스템이 사용할 수 있는 메타데이터 범위가 자동으로 모두 늘어나는 것은 아니다. 파일 시스템 확장 작업 또는 이를 함께 수행하는 지원 옵션이 필요하다.
- 선형과 다른 유형striped··thin·snapshot 는 단순 선형과 다른 매핑·메타데이터·여유 공간 조건을 갖는다. 여기의 계산은 일반 thick linear 만 대상으로 한다.
074MiB extent로 LV를 2GiB 늘리는 계산
- 가상 배치가 4MiB이고 에 사용 가능한 가 총 8192개, 현재 할당한 수가 5120개라고 가정한다. 메타데이터 등은 이미 제외한 숫자다.
- 용량 환산 전체는 8192×4MiB=32768MiB=32GiB, 할당량은 20GiB, 남은 3072개는 12GiB다. MB와 MiB를 섞지 않고 1GiB=1024MiB로 계산한다.
- 증설에 필요한 수대상 를 2GiB 늘리려면 2048MiB÷4MiB=512개 가 필요하다. 할당 후 free는 2560개, 즉 10GiB가 된다.
- 상위 계층 반영가 커진 뒤 파일 시스템을 지원 절차로 확장하면 df에 새 공간이 반영될 수 있다. 파일 시스템 메타데이터·예약 공간 때문에 df 전체가 와 정확히 같을 필요는 없다.
- 실패 분기 free가 있어도 특정 배치 정책· 조건을 만족하지 못하면 원하는 할당이 실패할 수 있다. 총합 여유만으로 ·striped 구성의 배치 가능성을 보장하지 않는다.
| 단계 | 할당 | 남은 |
|---|---|---|
| 증설 전 | 5120 | 3072 |
| 512개 추가 후 | 5632 | 2560 |
08부팅 마운트 실패와 용량 부족을 출력으로 나누기
- 장치와 파일 시스템lsblk에서 장치 크기는 늘었는데 df가 같다면 partition///FS 중 어느 단계까지 크기가 반영됐는지 비교한다. 포맷은 이 크기 불일치를 조회하는 작업이 아니다.
- 경로의 실제 마운트findmnt -T /srv/data로 그 경로를 담당하는 파일 시스템을 본다. 의도한 마운트가 실패해 상위 root에 쓰고 있으면 데이터 디스크가 비어도 root가 가득 찰 수 있다.
- fstab 식별자UUID·파일 시스템 형식·옵션 중 하나가 틀리면 장치 존재와 별개로 mount unit이 실패한다. /dev 이름의 변화와 파일 시스템 UUID의 변화를 구분한다.
- df -h의 공간은 남고 df -i의 가 고갈됐다면 작은 파일 다수 때문에 새 이름을 만들지 못할 수 있다. 두 자원을 다른 제한으로 읽는다.
- 네트워크 의존성나 원격 파일 시스템은 네트워크 준비·재연결 조건을 함께 갖는다. nofail은 부팅 계속 여부에 관여할 뿐 데이터가 실제 준비되었다는 보장은 아니다.
09용량을 다르게 보여 주는 이유
- 파일 시스템df는 파일 시스템의 공간 사용량을, du는 경로를 따라 확인한 파일의 공간 사용량을 보여 준다.
- 마운트삭제됐지만 열린 파일, 마운트 경계, 접근 불가능한 경로, 희소 파일 때문에 수치가 다를 수 있다.
- ·quota공간이 남아 있어도 부족이나 사용자 quota로 저장이 실패할 수 있다.
lsblk -f
findmnt
df -hT
df -i블록 장치·파일 시스템·마운트·용량· 사용량을 조회한다.
10사용자가 보는 경로 아래의 저장 계층
- 마운트·파일 시스템애플리케이션이 /srv/data 안에 파일을 저장하면 먼저 그 경로를 포함하는 마운트와 파일 시스템이 선택된다.
- 파일 시스템파일 시스템은 파일 오프셋을 자신의 블록 배치로 관리하고, 아래의 는 논리 블록을 의 물리 공간에 매핑한다.
- ·는 하나 이상의 에서 확보한 공간을 묶는다.
- 모든 시스템이 을 사용하는 것은 아니므로 실제 환경에서는 lsblk·findmnt· 조회 결과를 연결해 존재하는 계층만 그린다.
- 디스크추가 디스크로 공간을 늘리는 경우에도 여러 단계의 용량이 따로 존재한다.
- ·와 에 여유 공간이 생겼다고 기존 가 저절로 커지는 것은 아니다.
- ·파일 시스템가 커져도 파일 시스템이 그 공간을 사용하도록 확장되지 않았다면 df의 용량은 그대로일 수 있다.
- 반대로 파일 시스템보다 아래 장치를 먼저 축소하면 유효한 데이터 블록을 잃을 위험이 있다.
- 확장확장과 축소를 대칭적인 명령 순서로 외우지 말고 각 층의 지원 조건과 현재 크기를 확인해야 한다.
- 파일의 읽을 위치 결정일반적인 선형 위의 파일 시스템에서 캐시에 없는 파일 데이터를 읽는 경우를 가정한다. 파일 시스템은 파일 오프셋을 해당 파일의 논리 블록 위치로 바꾼다.
- 의 블록 요청 생성파일 시스템이 기반 블록 장치인 의 특정 논리 블록을 읽도록 요청한다. 크기와 파일 시스템이 사용할 수 있는 크기는 별개다.
- 물리 위치로 매핑의 매핑 정보가 의 논리 영역을 의 물리 영역에 대응시킨다. 는 이 공간을 모아 할당하는 관리 단위다.
- 장치 I/O와 데이터 반환실제 디스크 등의 장치에서 블록을 읽고 상위 계층으로 반환한다. 파일 시스템은 요청한 파일 범위의 바이트를 애플리케이션에 전달한다.
설명과 함께 보는 보조 도식
경로에서 물리 공간으로 내려가기
일반적인 LVM 위 파일 시스템 구성의 논리 관계다.
마운트 확인
경로가 어느 파일 시스템에 속하는지 찾는다.
- 조회
- findmnt
전체 단계를 한 번에 읽기
- 01
마운트 확인
경로가 어느 파일 시스템에 속하는지 찾는다.
- 조회
- findmnt
- 02
장치 확인
그 파일 시스템의 기반이 LV인지 확인한다.
- 구분
- 파일 시스템 크기와 LV 크기
- 03
할당 구조 확인
LV가 속한 VG와 여유 공간을 대조한다.
- 구분
- 할당량과 남은 공간
- 04
물리 기반 확인
VG를 구성하는 PV와 실제 장치를 확인한다.
- 확인
- 식별자·장치 연결
- 05
확장 결과 대조
상위 층이 새 공간을 인식했는지 각 크기를 따로 확인한다.
- 검증
- LV 크기와 df 용량
11공간이 남았는데 쓰지 못하는 경우
- 파일 시스템df는 해당 파일 시스템이 보는 전체 공간 사용을 보여 주고 du는 지정 경로에서 접근 가능한 파일들의 사용량을 합산한다.
- 사용량 차이의 원인열린 뒤 삭제된 파일, 다른 마운트, 희소 파일과 권한 때문에 차이가 생긴다.
- 공간이 남아도 가 고갈되면 새 파일을 만들지 못할 수 있고 사용자 quota를 넘었으면 특정 계정의 저장만 실패할 수 있다.
- 이때 전체 디스크를 추가하기 전에 어떤 제한에 걸렸는지 분리하는 편이 원인을 정확히 짚는다.
- 미마운트 경로에 쓰기마운트가 실패한 상태에서 애플리케이션이 평범한 빈 디렉터리에 파일을 쓰면 데이터가 원래 루트 파일 시스템에 저장될 수 있다.
- 마운트로 가려진 파일이후 장치를 마운트하면 그 파일들이 가려져 사라진 것처럼 보인다.
- 마운트 지점의 존재와 실제 마운트 성공을 구분해야 하는 이유다.
- UUID재부팅 전후에는 UUID·유형·옵션과 장치 준비 순서를 대조한다.
- 파일 시스템·포맷파일 시스템을 검사하거나 포맷하는 명령은 조회 명령과 달리 데이터에 영향을 줄 수 있으므로 대상 확인 없이 실행하지 않는다.
| 구성·관찰 대상 | 확인하는 정보 | 구분할 문제 |
|---|---|---|
| findmnt | 경로와 실제 마운트 | 디렉터리만 있고 장치는 미연결 |
| lsblk· 조회 | 장치··· 관계 | 장치는 늘었지만 는 그대로 |
| df 용량· | 파일 시스템 공간과 객체 수 | 공간 부족과 부족 |
| du·quota | 경로별 사용과 계정 제한 | 숨은 사용량과 사용자 제한 |
이해했는지 확인하기
- 장치와 파일 시스템, 마운트 지점을 연결한다.
- LV 용량과 파일 시스템 용량을 각각 확인한다.
- 저장 실패 시 공간·inode·quota를 구분한다.