게스트가 생성될 때 사전 할당되는 대신 사용량에 따라 게스트 하드 드라이브를 늘릴 수 있습니까?
최대 크기를 지정하거나 크기를 전혀 지정하지 않고 게스트가 필요한 만큼의 HDD를 소비하도록 하고 싶습니다.
게스트에서 관리하기 어려울 것이라고 생각합니다. 특히 게스트가 하드 드라이브를 포맷하고 일정량의 저장 공간이 필요한 경우(Windows 또는 MacOS 게스트를 생각해 보세요)
답변1
설마.
가장 가까운 방법은 VM이 네트워크를 통해 커널을 부팅하도록 하는 것입니다(예: PXE 및/또는 bootp/dhcp 사용). 그런 다음 VM 호스트 시스템에서 제공하는 "네트워크" 파일 시스템(예: NFSv3 또는 v4)에서 rootfs를 마운트합니다. 일종의 할당제 시스템을 결합한 것입니다. 예를 들어
- 사용몫- 이는 특정 VM을 특정 uid 및/또는 gid로 실행하는 것을 의미합니다.
- NFS 공유는 전용 ZFS 데이터 세트를 사용하여 지원됩니다. ZFS에는 할당량(이 데이터 세트가 풀에서 사용할 수 있는 최대 크기 설정) 및 예약(이 데이터 세트에 예약된 디스크 공간의 최소 크기 할당)을 관리하기 위한 자체 도구가 있습니다. 예를 들어 참조하십시오.ZFS 할당량 및 예약을 설정하는 방법
NFS를 통해 루트 파일 시스템과 /usr, /var 및 기타 디렉터리를 마운트하는 데에도 다양한 문제가 있으며, 그 중 가장 중요한 것은 네트워크 프로토콜을 사용하여 실제 로컬 저장소에 액세스하는 데 따른 성능 오버헤드입니다. 이러한 문제 중 극복할 수 없는 문제는 없지만 처리해야 할 PITA입니다.
게다가 게스트가 Linux나 기타 UNIX 계열 운영 체제를 실행하는 경우에만 실제로 실행 가능한 옵션입니다.
원시 파일, qcow2 파일, 디스크 파티션, LVM 볼륨, ZFS zvols 또는 기타 블록 장치(또는 파일/에뮬레이트된 블록 장치)를 사용하여 VM에 가상 "디스크"를 제공하는 것이 훨씬 간단합니다. 가상 머신의 "디스크" 크기를 늘리기 위한 여러 단계이지만 잘 정의되고 매우 간단한 프로세스가 있습니다.
- 기본 파일, 파티션, LV, ZVOL 등의 크기를 늘립니다.
- 초과 공간이 파티션에 할당되도록 가상 디스크를 다시 분할합니다.
- 파티션의 새로운 공간을 모두 사용하도록 파일 시스템 크기를 조정합니다.
1단계는 기본 스토리지의 성격에 따라 달라집니다. 예를 들어 ZFS zvol의 크기 제한을 늘리려면 LV 등의 크기를 확장하는 데 사용할 수 있는 qcow2 이미지 파일을 늘릴 수 있는 를 zfs set volsize=10G pool/zvol
실행 합니다.qemu-img
lvextend
fdisk
2단계에는 등 의 파티션 편집 도구를 실행하는 작업이 포함됩니다. gdisk
parted
(VM 게스트 내부 또는 VM이 종료되는 동안 호스트에서 이 작업을 수행할 수 있음)
3단계에는 파티션의 포맷된 파일 시스템(예: resize2fs
ext2/3/4, xfs_grows
XFS)에 적합한 도구를 사용하는 것이 포함됩니다. 이는 일반적으로 VM 게스트에서 수행하는 것이 가장 쉽지만 VM이 실행되는 동안 호스트 시스템에서 수행할 수도 있습니다. 껐다 . 그런데,NTFS-3Gntfsresize
Linux에서 NTFS 파티션의 크기를 조정하는 도구가 포함되어 있습니다 . Mac VM에 비슷한 것이 있는지는 모르겠지만 Mac의 내부 Mac VM을 사용하여 크기를 조정할 수 있습니다.diskutil
답변2
예, 가능합니다. 게스트에서 실행 중인 운영 체제는 중요하지 않습니다. 당신이 해야 할 일은 희소한 qcow2 이미지를 제공하는 것뿐입니다. 거의 0 크기에서 시작하여 정의된 최대 크기까지 커집니다. 게스트 OS가 더 많은 디스크 공간을 차지하면 자동으로 커지지만 게스트 OS 내부에서 파일을 삭제하면 이 사이트 프로세스에 대한 다른 질문에서 일부 설명했듯이 줄어들지 않는다는 점을 명심하세요.
기본 디스크 이미지 확장을 허용하기 위해 PS 게스트 내부에는 공간 관리가 필요하지 않습니다. 게스트 운영 체제가 디스크 블록 클레임을 발행하면 qemu는 호스트의 디스크를 증가시킵니다.