LVM2 파티션의 크기를 조정하려면 다음 두 명령을 실행해야 합니다:
# lvextend -L+1G /dev/myvg/homevol
# resize2fs /dev/myvg/homevol
그러나 를 실행하면 lvextend
변경 사항이 파티션에 적용된 것을 볼 수 있습니다(Gnome Disk에 표시됨). 그렇다면 왜 아직도 이 작업을 수행해야 합니까 resize2fs
?
답변1
lvextend
옵션 없이 이 명령을 --resizefs
사용하면 LVM 측에서는 블록 장치를 논리 볼륨으로 확장하기만 합니다. LV의 파일 시스템 유형(또는 파일 시스템이 존재하는지 여부)에 관계없이 이러한 작업은 항상 유사합니다.
LV에 ext2/3/4 파일 시스템이 포함된 경우 다음 단계는 파일 시스템이 사용 가능한 공간이 더 많다는 것을 알 수 있도록 파일 시스템 메타데이터를 업데이트하고 추가된 공간을 관리하는 데 필요한 메타데이터 구조를 생성/확장하는 것입니다. ext2/3/4 파일 시스템의 경우 여기에는 최소한 다음이 포함됩니다.
- 추가 공간을 위한 새 inode 생성
- 파일 시스템이 공간을 추가하는 블록이 사용 중인지 또는 사용 가능한지 여부를 알 수 있도록 하는 확장 블록 할당 데이터 구조
- 앞서 언급한 데이터 구조 확장을 방해하는 경우 일부 데이터 블록이 이동될 수 있습니다.
ext2/3/4 파일 시스템 유형은 매우 유사하고 resize2fs
단일 도구를 사용하여 크기를 조정할 수 있지만 이 부분은 파일 시스템 유형에 따라 다릅니다. XFS 파일 시스템의 경우 도구를 대신 사용할 수 있습니다 xfs_growfs
. 다른 파일 시스템에는 자체 확장 기능이 있을 수 있습니다. 논리 볼륨에 파일 시스템이 포함되어 있지 않지만 대신 "원시" 데이터베이스 또는 Oracle ASM 볼륨과 같은 것이 포함되어 있는 경우 다른 절차를 적용해야 합니다.
모든 파일 시스템은 내부 작동 방식이 다르므로 파일 시스템 확장 조건도 다양합니다. 파일 시스템 확장을 위한 공통 API를 설계하는 데 시간이 좀 걸렸습니다. 이를 통해 fsadm resize
여러 파일 시스템 유형을 확장하기 위한 통합 구문을 제공하는 명령을 구현할 수 있었습니다. 옵션 은 이 명령 --resizefs
만 사용합니다 .lvextend
fsadm resize
즉 lvextend
, .lvs
vgs
lvdisplay
vgdisplay
df
답변2
LVM 계층은 그 안에 있는 파일 시스템의 컨테이너일 뿐입니다. 별도의 추가 (또는 ) 옵션을 lvextend
실행하지 않고도 논리 볼륨 내에서 파일 시스템의 크기를 조정할 수 있습니다 .resize2fs
-r
--resizefs
lvextend -r ...
답변3
파일 시스템과 논리 볼륨은 서로 다른 추상화이기 때문입니다. 볼륨은 디스크 조각(파티션과 같은) 또는 최소한 "가상"에 해당하는 부분입니다. 그것은 단지 블록 장치 일뿐입니다. 파일 시스템은 파일(및 디렉터리 등)과 해당 장치 간의 매핑을 제공하는 내부(또는 원하는 경우 그 위에)의 구조입니다. 그렇지 않은 경우 resize2fs
파티션은 더 커지지만 파일 시스템은 사용 가능한 공간을 활용하지 않습니다.
실제로 파일 시스템을 만들 수 있습니다초기의전체 파티션을 차지하지 않습니다. mke2fs
매뉴얼 페이지 에서 :
파일 시스템 크기는 fs-size로 지정됩니다. fs-size에 접미사가 없으면 -bblocksize 옵션이 지정되지 않는 한 2KB의 거듭제곱으로 해석됩니다. 이 경우 fs-size는 블록 크기 블록 수로 해석됩니다. fs-size 접미사가 "k", "m", "g", "t"(대문자 또는 소문자)인 경우 KB, MB, GB, TB 등으로 2의 거듭제곱으로 해석됩니다. fs-size를 생략하면 mke2fs는 장치 크기에 따라 파일 시스템을 생성합니다.
보시다시피 기본값은 파티션을 채우는 것이며 일반적으로 이렇게 할 이유는 없지만 원할 경우 그렇게 할 수 있습니다.
별도의 명령을 실행하지 않고도 볼륨 확장 후 파일 시스템 확장을 담당하는 lvextend
옵션 --resizefs
(또는 그냥 )이 있는 경우 참고하세요 .-r
답변4
명령으로 생성된 새 공간을 차지하도록 파일 resize2fs
시스템을 강제로 확장하거나 축소합니다. 프로세스:fs
lvextend
with fs:
-- shrink --> 1. shrink fs 2. shrink volume
-- expand --> 1. expand volume, 2. expand fs