파티션 없이 가상 LVM 디스크에 설치

파티션 없이 가상 LVM 디스크에 설치

text/console 설치 프로그램을 사용하여 KVM/libvirt vm에 Ubuntu 서버를 설치하려고 합니다.

두 개의 LVM 볼륨을 루트로 넘겨주고 VM을 가상 디스크로 교체하려고 합니다.
그들은 vda및 로 올바르게 감지 vdb되지만 설치 프로그램은 이를 디스크로 분할하도록 강제하는 것 같으며 이로 인해 LVM의 유연성이 손상됩니다.

파티션을 사용하는 대신 가상 디스크를 직접 포맷하여 Ubuntu를 설치하려면 어떻게 해야 합니까? 아니면 이것이 나쁜 생각입니까?

동기 부여:

요점은 스토리지 계층 구조에서 불필요한 추상화 수준을 제거하여 복잡성을 줄이는 것입니다.

  1. 물리적 드라이브:host:/dev/sd{a,b}
  2. 파티셔닝:host:/dev/sd{a,b}1
  3. SW-레이드:host:/dev/md1
  4. LVM:host:/dev/vg0/mylv_root
  5. VirtIO 디스크guest:/dev/vda
  6. 파티셔닝:guest:/dev/vda1
  7. 파일 시스템:guest:/

이 레이아웃에서는 단일 VM에 추가 공간을 할당할 때 다음 단계를 거쳐야 합니다.

  1. lvresize
  2. parted, 특히 못생긴
  3. resize2fs

할당된 공간을 반대 방향으로 줄이는 것입니다(이는 훨씬 더 보기 흉합니다).

백업(예: )의 경우 psusi에서 설명하는 lvcreate --snapshot추가 단계가 있습니다 .kpartex

이 추상화가 어떤 가치를 제공하는지 알 수 없기 때문에 방정식에서 6.을 제거하고 싶습니다. 그러나 추가 복잡성, 성능에 미칠 수 있는 영향 및 작은 공간 낭비로 인해 비용이 발생합니다.

해키 솔루션:

이를 사용하여 kpartx루트 파일 시스템을 "부트스트랩 파티션"(다른 임시 논리 볼륨 내)에서 대상 논리 볼륨으로 이동한 다음 직접 커널 부팅을 통해 부팅할 수 있었습니다.

kpartx -a /dev/vg0/mylv_bootstrapper
dd if=/dev/mapper/vg0-mylv_bootstrapper1 of=/dev/vg0/mylv_root bs=4M
e2fsck -f /dev/vg0/mylv_root
# Edit fstab inside /dev/vg0/mylv_root accordingly
resize2fs /dev/vg0/mylv_root
kpartx -d /dev/vg0/mylv_bootstrapper

하지만:

  1. 이상하게 해키한 느낌이 듭니다.
  2. 커널이 업그레이드될 때마다 호스트에 있는 게스트의 커널 버전을 수동으로 업데이트해야 하기 때문에 직접 커널 부팅이라는 아이디어는 별로 마음에 들지 않습니다.

답변1

글쎄요, LVM인지 아닌지에 관계없이 공간을 분할/포맷해야 합니다.

예, KVM은 장치를 "vda" 및 "vdb"로 인식합니다.

일반적으로 KVM은 원시 파티션/LVM, IMO를 사용하지만 가상 디스크를 사용하는 것이 훨씬 더 안정적입니다. 동일한 공간을 차지하며 언제든지 가상 디스크에서 LVM을 사용하거나 가상 디스크 크기를 조정할 수 있습니다.

답변2

실제로 나는 세 가지 대답이 있다는 것을 발견했습니다. 논리 볼륨이 포맷된 경우(예: host# mkfs.ext4 /dev/vg0/mylv_root), 설치 프로그램은 이를 감지하여 "가상 디스크의 파티션 1"로 사용하도록 허용합니다. 그런 다음 파티션을 다시 포맷할 수도 있습니다.

그러나 Grub은 설치에 실패하며 대신 직접 커널 부팅을 사용할 수 있습니다.

관련 정보