내 목표는 여러 관리자(별도 설치)가 있더라도 하나의 관리자 VM LV(VolA) 대 사용자 LV(VolU1, VolU2, VolU3 ...)에 대한 안전 여유를 확보할 수 있을 만큼 유연한 LVM 씬 프로비저닝을 위한 기본 구성입니다. 각각의 관리 가상 머신에서 매우 다른 양의 디스크 공간을 사용합니다.
예를 들어 한 관리자는 System1의 VolA에서 4GB를 사용할 수 있지만 다른 관리자는 System2의 VolA에서 50GB를 사용할 수 있습니다. 즉, 50GB의 고정 크기 볼륨은 첫 번째 관리자가 허용할 수 없으며(그 반대도 마찬가지) 유연성을 위해 VolA를 다른 "사용자" VM 볼륨과 함께 씬 풀에 배치해야 합니다. 이러한 시스템에 대한 설치를 수동으로 맞춤화하는 것은 불가능합니다.
추가 요구사항:
- 관리 VM은 스토리지 호스트이며 가상 풀에서 실행됩니다.
- 사용자 VM은 동일한 풀을 차지합니다.
- 과잉공급; 모든 LV 가상 크기 = 물리적 디스크 크기.
사용자 VM에서 사용자 경험 부족, 버그 또는 DoS 시도로 인해 문제가 발생합니다.남은 여유 공간을 모두 할당사용자 볼륨(VolU1, VolU2 등...)에 대해 VolA를 여유 공간 없이 남겨두고 관리 VM을 부팅하거나 정상적으로 작동할 수 없게 합니다.
솔루션/안전 장치는 최대한 자동적이고 수동적이어야 합니다. 이상적인 솔루션은 모든 사용자 LV에 대해 설정된 LVM 속성으로, poolFree < N
VolA에는 그러한 제한이 없는 반면, 공간을 할당할 수 있는 경우에만 가능합니다. 하지만 Linux LVM에서 이러한 기능을 찾을 수 없어 제안이 필요합니다.
dmeventd
일부 연구 결과 , 임계값에 도달했을 때 명령(예: '모든 VM 일시 중지')을 실행하기 위해 설정을 사용하는 것이 해결책이 될 수 있는 것으로 보입니다 . 온라인에서 찾은 최신 매뉴얼 페이지에는 lvm.conf 설정 dmeventd
으로 이것이 가능하다고 나와 있습니다 . dmeventd/thin_command
이 기능은 2017년 5월에 추가된 것 같아서 백포트를 찾아야 할 것 같습니다.
또 다른 옵션은 rsyslog.conf에 다음과 같은 규칙을 추가하는 것입니다.
:msg, contains, "some dmeventd message" ^my_pause_vm_script
답변1
사용자가 관리 호스트와 동일한 가상 풀을 과도하게 할당하는 것을 방지하려면 이 할당에 대해 다른 접근 방식을 취하는 것이 좋습니다.
관리 워크로드를 별도의 가상 풀로 분리할 수 있습니다. 초과 할당하는 경우 일시적인 초과 할당을 처리하기 위해 풀에 보다 탄력적으로 할당 가능한 백업 스토리지를 제공하는 것이 일반적으로 좋은 접근 방식입니다. 이를 수행하는 가장 좋은 방법은 크고 느린 LUN을 풀의 저렴한 "긴급" PV로 예약하는 것입니다.
나는 LVM이 자체 구성을 사용하여 이러한 비상 확장을 수행할 수 있다는 것을 알고 있지만 거의 자체 방식으로 벗어날 수 없는 햄 샌드위치에 이 글을 쓰고 있으므로 나중에 해당 문서를 찾아야 할 것입니다.