목차

인스턴스 볼륨 갯수 제한

오픈스택의 인스턴스에 볼륨을 추가할때 기본적으로 추가 가능한 볼륨의 갯수는 추가 가능한 pci-slot 갯수 한도 내에서 추가가 가능하다.

일반적인 상황에서 최대 28개 장치만 추가가 가능하며 이경우 libvirtd.log에 아래와 같은 로그를 확인 할 수 있다.

[root@overcloud-novacomputepci-0 libvirt]# tail -f libvirtd.log
2023-05-11 04:05:00.348+0000: 3859: error : virDomainPCIAddressGetNextAddr:1151 : internal error: No more available PCI slots
2023-05-11 04:05:12.060+0000: 3861: error : virDomainPCIAddressGetNextAddr:1151 : internal error: No more available PCI slots

이런 현상이 발생하는 이유는 인스턴스의 기본 디스크 장치가 virtio를 사용하기 때문이며 이렇게 추가된 장치는 시스템 내에서 vdX와 같은 장치명으로 보이게 된다.
기본 virtio장치 환경에서는 최대 28개의 virtio장치를 사용할 수 있는데 여기에는 NIC도 포함이기 때문에 NIC + Disk 의 갯수가 28개를 넘지 못하게 된다.

이걸 해결하기 위해서는 디스크 장치를 virtio-scsi장치로 변경하고 디스크를 scsi장치로 등록하면 된다.
이렇게 설정하기 위해서는 인스턴스 생성에 사용되는 이미지의 속성에 아래 내용을 추가하면 된다.

레드햇 공식 문서에도 보면 아래와 같은 내용을 확인할 수 있다.

인스턴스에 26개 이상의 볼륨을 연결해야 하는 경우 인스턴스를 생성하는 데 사용하는 이미지에 다음 속성이 있어야 합니다.

  • hw_scsi_model=virtio-scsi
  • hw_disk_bus=scsi

설정하는 방법은 아래와 같다.

CLI에서 설정

glance image-update --property hw_scsi_model=virtio-scsi <image>
glance image-update --property hw_disk_bus=scsi <image>

Horizon Dashboard에서 설정

사용할 이미지의 메타데이터에 아래와 같은 속성을 추가한다.

참조링크