LVM
Logical Volume Manager · 논리 볼륨 관리자
은 물리 저장 공간을 와 로 모아 논리 볼륨 에 배정하는 저장소 관리 체계이다. 파일 시스템이 사용하는 논리 주소와 실제 장치 영역을 분리하므로 장치의 묶음과 용량 배정을 유연하게 바꿀 수 있다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 여러 물리 영역을 볼륨 그룹의 공간 풀로 관리한다.
- 논리 볼륨에 단위로 공간을 배정하고 주소를 매핑한다.
- 파일 시스템과 별개인 블록 장치 계층에서 용량 확장·배치 변경을 제공한다.
02어떤 순서로 동작하나
- 준비
전용 장치나 파티션을 물리 볼륨으로 등록하여 메타데이터와 사용 영역을 관리한다.
- 구성
를 볼륨 그룹에 모아 크기와 사용 가능한 공간 풀을 만든다.
- 매핑
논리 를 의 물리 에 배정한다. 선형·스트라이프·thin 등 유형에 따라 배치와 위험이 다르다.
- 파일 시스템 사용
위에 파일 시스템을 만들고 마운트하여 파일을 저장한다. 확장 뒤 파일 시스템도 지원 절차로 확장해야 늘어난 공간을 쓴다.
03먼저 알아둘 용어와 구성요소
- 는 이 관리할 물리 볼륨이며 디스크 전체 또는 파티션 위에 만들 수 있다.
- 는 하나 이상의 를 모은 공간 풀이고, 는 그 안에서 파일 시스템이나 다른 용도에 제공하는 논리 블록 장치다.
- 의 공간을 할당받아 파일 시스템 등에 제공하는 논리 블록 장치이다. 논리 주소의 연속성과 실제 배치가 같을 필요는 없다.
- 는 연속된 논리 블록 장치처럼 보이지만 공간은 단위로 할당될 수 있다. 파일 시스템의 블록 크기와 크기는 서로 다른 층의 단위다.
- 일반적인 linear 매핑은 논리 시작 위치·길이와 기반 장치·그 장치의 시작 오프셋을 연결한다. 한 의 앞부분과 뒷부분이 서로 다른 에 놓일 수 있다.
- 만 늘리면 파일 시스템이 사용할 수 있는 메타데이터 범위가 자동으로 모두 늘어나는 것은 아니다. 파일 시스템 확장 작업 또는 이를 함께 수행하는 지원 옵션이 필요하다.
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파일 시스템 종류와 현재 마운트를 조회하는 예시다.
확인 기준파티션이 보이는데 디렉터리에서 파일을 못 찾으면 마운트 여부와 실제 원본 장치를 확인한다. 크기 차이를 곧바로 손실이나 오류라고 판단하지 않는다.
실습에서 확인한 동작 원리
- 바이트 수는 섹터 수×논리 섹터 크기로 검산하고, 파티션의 시작·끝은 포함 범위로 계산한다.
- 디스크, 파티션, 파일 시스템, 마운트는 별도의 준비 단계다.
동작·명령 참고 문서
04예제로 따라가기
- 가 4MiB이고 2GiB를 추가하려면 2048MiB÷4MiB=512개의 여유 가 필요하다.
- 크기를 늘린 뒤에도 df가 이전 크기를 보이면 상위 파일 시스템이 아직 확장되지 않았는지 확인한다.
- 에 공간이 남아 있어도 특정 배치 정책이나 thin pool 메타데이터의 제약 때문에 원하는 할당이 실패할 수 있으므로 총합만 보지 않는다.
05혼동하기 쉬운 점과 확인 기준
- striped··thin·snapshot 는 단순 선형과 다른 매핑·메타데이터·여유 공간 조건을 갖는다. 여기의 계산은 일반 thick linear 만 대상으로 한다.
- lsblk에서 장치 크기는 늘었는데 df가 같다면 partition///FS 중 어느 단계까지 크기가 반영됐는지 비교한다. 포맷은 이 크기 불일치를 조회하는 작업이 아니다.
- df -h의 공간은 남고 df -i의 가 고갈됐다면 작은 파일 다수 때문에 새 이름을 만들지 못할 수 있다. 두 자원을 다른 제한으로 읽는다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.