[Troubleshooting] Cinder 관련 에러

박도준·2021년 12월 2일
0

[클라우드] - OpenStack

목록 보기
10/10

상황

개발 환경

  • ubuntu 18.04
  • devstack으로 환경 구성
  • train

에러 발생 상황
대시보드에서 인스턴스 생성 중 에러 발생


에러 내용

  • 메세지
Build of instance 32da73bc-9a70-4dc6-9179-22f3a9146670 aborted: Volume ea867644-981f-4d61-af41-f438008de92e did not finish being created even after we waited 0 seconds or 1 attempts. And its status is error.
  • 세부 정보
Traceback (most recent call last): File "/opt/stack/nova/nova/compute/manager.py", line 2211, in _do_build_and_run_instance filter_properties, request_spec) File "/opt/stack/nova/nova/compute/manager.py", line 2521, in _build_and_run_instance bdms=block_device_mapping, tb=tb) File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ self.force_reraise() File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise six.reraise(self.type_, self.value, self.tb) File "/opt/stack/nova/nova/compute/manager.py", line 2471, in _build_and_run_instance request_group_resource_providers_mapping) as resources: File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__ return self.gen.next() File "/opt/stack/nova/nova/compute/manager.py", line 2699, in _build_resources reason=e.format_message()) BuildAbortException: Build of instance 32da73bc-9a70-4dc6-9179-22f3a9146670 aborted: Volume ea867644-981f-4d61-af41-f438008de92e did not finish being created even after we waited 0 seconds or 1 attempts. And its status is error.

에러 분석

에러 메세지를 살펴보면 volume 관련하여 error가 발생한 것을 알 수 있다.
오픈스택에서 volume 관련 컴포넌트는 cinder이다.

우선 cinder 서비스가 제대로 동작하고 있는지 확인해본다.

$ openstack volume service list

해당 결과를 캡쳐하지 못해 글로 설명하면, cinder-scheduler의 state는 up 이였지만, cinder-volumedown이였다.


cinder 서비스의 상태를 확인해본다.

$ systemctl status devstack@c-vol.service

상태는 active 이지만, lvmdriver-1 관련해서 에러가 발생하고 있다.
해당 서비스(devstack@c-vol.service)를 재시작하고 인스턴스를 새로 생성해도 같은 에러가 발생했다.

조금 더 자세히 살펴보기 위해 c-vol.service의 로그를 살펴본다.
이때 lvmdriver-1와 관련된 에러만 보기 위해 grep 명령어도 함께 이용한다.

$ journalctl --unit devstack@c-vol.service | grep "lvmdriver-1"

그러면 lvmdriver-1 is uninitialized 라는 메세지가 있는 것을 확인할 수 있다.

devstack을 이용해 설치하면 두 가지 볼륨 타입이 있는데 lvmdriver-1default 이다. 이는 각각 stack-volumes-lvmdriver-1stack-volumes-default의 이름으로 볼륨 그룹이 생성된다.

하지만 확인해보면 두 그룹 모두 생성되어 있지 않다.

$ vgdisplay

에러메세지와 로그를 바탕으로 생각해보면 해당 볼륨 그룹이 생성되어 있지 않아 발생한 문제로 판단이 된다.


해결 방법

lvmdriver-1과 default의 backing file을 이용하여 볼륨 그룹을 생성한다.

$ cd /opt/stack/data
$ losetup -f --show stack-volumes-default-backing-file
$ losetup -f --show stack-volumes-lvmdriver-1-backing-file

그리고 서비스도 재시작해주고, 상태를 확인한다.

$ systemctl restart devstack@c-vol.service
$ openstack volume service list

cinder-volume의 state가 up으로 된 것을 확인하였고, 인스턴스를 생성해보니 정상적으로 생성되었다.


참고 자료

https://snowapril.github.io/cloud-computing/2020/10/03/cinder-service-down/

profile
Better late than never

0개의 댓글