Skip to document
pieroot log
Markdown Preview

OpenStack 수동 설치 3 — Glance 이미지 서비스 설치

Frontmatter

OpenStack Glance 이미지 서비스를 설치하고 DB, 서비스 사용자, 엔드포인트를 구성한 뒤 패키지를 설치·설정·동기화하고 CirrOS 이미지를 등록·검증하는 단계별 가이드입니다.

OpenStack 수동 설치 3 — Glance 이미지 서비스 설치
Keystone 설치가 끝났다면 다음 단계는 이미지 서비스 Glance다. Glance는 가상 머신이 부팅할 OS 이미지를 등록하고 저장하며, Nova가 인스턴스를 만들 때 해당 이미지를 제공한다.
이 단계부터 OpenStack 서비스 설치의 공통 패턴이 반복된다.
mermaid
flowchart LR
    A["DB 생성"] --> B["서비스 사용자"]
    B --> C["서비스와 엔드포인트"]
    C --> D["패키지와 설정"]
    D --> E["DB 동기화"]
    E --> F["재시작과 검증"]

이 글에서 다루는 내용

  • Glance DB 생성
  • Keystone 서비스 사용자와 image 엔드포인트 등록
  • 로컬 파일 저장 백엔드 설정
  • DB 스키마 반영과 API 확인
  • CirrOS 이미지 업로드 및 검증
🧪
전제 환경
  • OpenStack 2026.1 (Gazpacho)
  • Keystone과 service 프로젝트 구성 완료
  • ~/admin-openrc 사용 가능
  • GLANCE_DBPASS, GLANCE_PASS는 실제 비밀번호로 교체

1. Glance 데이터베이스 생성

bash
sudo mysql
sql
CREATE DATABASE glance;
CREATE USER 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost';
CREATE USER 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%';
FLUSH PRIVILEGES;
EXIT;
bash
mysql -u glance -p -e "SHOW DATABASES;"

2. 서비스 사용자 생성

bash
source ~/admin-openrc
openstack user create --domain default --password-prompt glance
openstack role add --project service --user glance admin
notion image
bash
openstack role assignment list --user glance --names

3. 서비스와 엔드포인트 등록

bash
openstack service create --name glance \
  --description "OpenStack Image" image

openstack endpoint create --region RegionOne image public \
  http://192.168.56.101:9292
openstack endpoint create --region RegionOne image internal \
  http://controller:9292
openstack endpoint create --region RegionOne image admin \
  http://controller:9292
notion image
notion image
bash
openstack endpoint list --service glance
notion image
public, internal, admin 세 개가 모두 보여야 한다.

4. 패키지 설치

bash
sudo apt install -y glance

5. glance-api.conf 설정

/etc/glance/glance-api.conf의 주요 섹션을 아래처럼 설정한다.
plain text
[DEFAULT]
enabled_backends = fs:file

[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = GLANCE_PASS

[paste_deploy]
flavor = keystone

[glance_store]
default_backend = fs

[fs]
filesystem_store_datadir = /var/lib/glance/images/
⚠️
enabled_backends는 [DEFAULT], default_backend는 [glance_store]에 있어야 한다. [database]의 기본 SQLite 연결도 제거해야 한다.
[keystone_authtoken]의 비밀번호는 DB 비밀번호가 아니라 Keystone에 만든 glance 사용자의 비밀번호다.

6. DB 동기화와 서비스 재시작

bash
sudo su -s /bin/sh -c "glance-manage db_sync" glance
sudo systemctl restart glance-api
bash
systemctl status glance-api
ss -lntp | grep 9292
sudo mysql -e "USE glance; SHOW TABLES;" | head

7. CirrOS 이미지 등록

bash
source ~/admin-openrc
wget http://download.cirros-cloud.net/0.6.3/cirros-0.6.3-x86_64-disk.img
bash
openstack image create "cirros" \
  --file cirros-0.6.3-x86_64-disk.img \
  --disk-format qcow2 \
  --container-format bare \
  --public --progress
notion image
bash
openstack image list
notion image
bash
sudo ls -lh /var/lib/glance/images/
notion image
이미지 상태가 active이고 백엔드 디렉터리에 이미지 ID 이름의 파일이 있으면 정상이다.

오류를 확인하는 순서

증상
확인 항목
401 Unauthorized
glance 사용자 비밀번호와 role assignment
EndpointNotFound
image 엔드포인트 3종과 URL
glance-api 기동 실패
백엔드 섹션 위치와 설정 문법
이미지가 queued에서 멈춤
/var/lib/glance/images/ 권한과 저장 백엔드
DB 오류
MariaDB 사용자 권한과 connection 문자열
bash
journalctl -u glance-api -n 100
sudo tail -100 /var/log/glance/glance-api.log

핵심 정리

  1. Glance는 이미지 메타데이터를 DB에, 실제 이미지 파일을 저장 백엔드에 보관한다.
  1. 서비스 사용자와 endpoint를 Keystone에 먼저 등록해야 한다.
  1. 설치 완료 기준은 API 기동이 아니라 실제 이미지가 active 상태로 등록되는 것이다.

재발 방지 체크리스트

Glance DB와 계정이 생성됐다.
glance 서비스 사용자에 admin 역할을 부여했다.
image 엔드포인트 3종이 등록됐다.
glance-api가 포트 9292에서 응답한다.
CirrOS 이미지가 active 상태다.
실제 이미지 파일이 저장 디렉터리에 존재한다.

다음 단계

다음 글에서는 Nova가 compute 자원 재고를 조회할 때 사용하는 Placement 서비스를 설치한다.

참고 자료