Markdown Preview
OpenStack 수동 설치 3 — Glance 이미지 서비스 설치
Frontmatter
OpenStack Glance 이미지 서비스를 설치하고 DB, 서비스 사용자, 엔드포인트를 구성한 뒤 패키지를 설치·설정·동기화하고 CirrOS 이미지를 등록·검증하는 단계별 가이드입니다.
Keystone 설치가 끝났다면 다음 단계는 이미지 서비스 Glance다. Glance는 가상 머신이 부팅할 OS 이미지를 등록하고 저장하며, Nova가 인스턴스를 만들 때 해당 이미지를 제공한다.
이 단계부터 OpenStack 서비스 설치의 공통 패턴이 반복된다.
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 데이터베이스 생성
sudo mysqlCREATE 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;mysql -u glance -p -e "SHOW DATABASES;"2. 서비스 사용자 생성
source ~/admin-openrc
openstack user create --domain default --password-prompt glance
openstack role add --project service --user glance adminopenstack role assignment list --user glance --names3. 서비스와 엔드포인트 등록
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:9292openstack endpoint list --service glancepublic, internal, admin 세 개가 모두 보여야 한다.
4. 패키지 설치
sudo apt install -y glance5. glance-api.conf 설정
/etc/glance/glance-api.conf의 주요 섹션을 아래처럼 설정한다.[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 동기화와 서비스 재시작
sudo su -s /bin/sh -c "glance-manage db_sync" glance
sudo systemctl restart glance-apisystemctl status glance-api
ss -lntp | grep 9292
sudo mysql -e "USE glance; SHOW TABLES;" | head7. CirrOS 이미지 등록
source ~/admin-openrc
wget http://download.cirros-cloud.net/0.6.3/cirros-0.6.3-x86_64-disk.imgopenstack image create "cirros" \
--file cirros-0.6.3-x86_64-disk.img \
--disk-format qcow2 \
--container-format bare \
--public --progressopenstack image listsudo ls -lh /var/lib/glance/images/이미지 상태가
active이고 백엔드 디렉터리에 이미지 ID 이름의 파일이 있으면 정상이다.오류를 확인하는 순서
증상 | 확인 항목 |
401 Unauthorized | glance 사용자 비밀번호와 role assignment |
EndpointNotFound | image 엔드포인트 3종과 URL |
glance-api 기동 실패 | 백엔드 섹션 위치와 설정 문법 |
이미지가 queued에서 멈춤 | /var/lib/glance/images/ 권한과 저장 백엔드 |
DB 오류 | MariaDB 사용자 권한과 connection 문자열 |
journalctl -u glance-api -n 100
sudo tail -100 /var/log/glance/glance-api.log핵심 정리
- Glance는 이미지 메타데이터를 DB에, 실제 이미지 파일을 저장 백엔드에 보관한다.
- 서비스 사용자와 endpoint를 Keystone에 먼저 등록해야 한다.
- 설치 완료 기준은 API 기동이 아니라 실제 이미지가 active 상태로 등록되는 것이다.
재발 방지 체크리스트
Glance DB와 계정이 생성됐다.
glance 서비스 사용자에 admin 역할을 부여했다.image 엔드포인트 3종이 등록됐다.
glance-api가 포트 9292에서 응답한다.
CirrOS 이미지가
active 상태다.실제 이미지 파일이 저장 디렉터리에 존재한다.
다음 단계
다음 글에서는 Nova가 compute 자원 재고를 조회할 때 사용하는 Placement 서비스를 설치한다.