오픈스택의 인스턴스에 볼륨을 추가할때 기본적으로 추가 가능한 볼륨의 갯수는 추가 가능한 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
설정하는 방법은 아래와 같다.
glance image-update --property hw_scsi_model=virtio-scsi <image> glance image-update --property hw_disk_bus=scsi <image>