Glance

망나니엔지니어·2024년 4월 2일

Openstack 설치

목록 보기
9/10
post-thumbnail

2. Openstack Component

Glance

Glance란?

OpenStack에서 이미지 서비스를 관리하는 구성 요소이다. "이미지"는 가상 머신(VM)이나 인스턴스를 시작할 때 사용되는 디스크 이미지를 의미한다. Glance를 통해 사용자는 다양한 형식의 가상 머신 이미지를 추가, 삭제, 검색, 등록할 수 있고, 이미지의 메타데이터 관리도 가능하다. 이를 통해 사용자는 클라우드 환경에서 필요에 따라 가상 머신을 빠르고 효율적으로 배포 및 관리할 수 있다.
아래는 Glance Component의 Workflow 예시이다.

Glance DB 생성 및 Glance 사용자 권한 부여

[Con01에서 진행]
mysql -uroot -p

create database glance;
> glance database 생성

create user glance@localhost identified by '[Password]';
create user glance@localhost identified by 'glance';
> glance가 localhost에서 접근 가능하도록 생성

create user glance@'%' identified by '[Password]';
create user glance@'%' identified by 'glance';
> glance가 모든 host에서 접근 가능하도록 생성

grant all privileges on glance.* to glance@localhost;
> glance@localhost 사용자에게 glance Database에 대한 모든 권한 부여
grant all privileges on glance.* to glance@'%';
> glance@'%' 사용자에게 glance Database에 대한 모든 권한 부여

Openstack Glance User 생성

[Con01에서 진행]
openstack user create --domain default --passowrd-prompt glance

Openstack Glance Service 생성

[Con01에서 진행]
openstack service create --name glance --description "Openstack Image" image

Glance User Role 설정

[Con01에서 진행]
openstack role add --project service --user glance admin

Glance Endpoint 생성

[Con01에서 진행]
openstack endpoint create --region <RegionName> <Service> <Endpoint Type> <Endpoint>:<Port>

openstack endpoint create --region RegionOne image public http://192.168.0.10:19292
openstack endpoint create --region RegionOne image internal http://192.168.0.10:19292
openstack endpoint create --region RegionOne image admin http://192.168.0.10:19292

Glance 설치 및 Config 설정

[모든 node에서 진행]
apt install glance

vi /etc/glance/glance-api.conf


...
[database]
connection = mysql+pymysql://glance:glance@192.168.0.10:13306/glance

[keystone_authtoken]
www_authenticate_uri = http://192.168.0.10:15000
auth_url = http://192.168.0.10:15000
memcached_servers = 192.168.0.11:11211,192.168.0.12:11211,192.168.0.13:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = glance

[paste_deploy]
flavor = keystone

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

Glance DB Sync

[Con01에서 진행]
/bin/sh -c "glance-manage db_sync" glance

Haproxy 설정

[모든 node에서 진행]
vi /etc/haproxy/haproxy.cfg

...
listen glance
  bind 192.168.0.10:19292
  balance source
  option tcpka
  option httpchk
  server con01 192.168.0.11:9292 check inter 2000 rise 2 fall 5
  server con02 192.168.0.12:9292 check inter 2000 rise 2 fall 5
  server con03 192.168.0.13:9292 check inter 2000 rise 2 fall 5

Haproxy 설정 및 Glance 설정 적용

[모든 node에서 진행]
systemctl restart haproxy
systemctl restart glance-api.service

Image Upload Test

[Con01에서 진행]
* Openstack Test를 위한 경량 OS인 CirrOS 업로드 테스트
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

openstack image create --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public cirros

Image 확인

[Con01에서 진행]
openstack image list

+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 422ec206-1a32-4a69-902c-d943e87dd20f | cirros | active |
+--------------------------------------+--------+--------+
  • 반드시 참고해야 하는 것은, 삼중화 구성시 Image metadata는 Controller 3대중 1대에만 떨어진다.
    하여, glance-api.conf 설정 중 filesystem_store_datadir 옵션의 디렉토리로 내려가 보면 3대중 한곳에만 메타데이터가 존재하여, api 호출이 해당 메타데이터 값이 존재하지 않는 Controller로 호출시 Error가 발생한다.
    Error 방지를 위하여 /var/lib/glance/images/ 디렉토리에 대한 Sync 방법을 모색하여 설정하여야 한다.
    (ex. NFS를 이용한 Directory Sync등)
profile
인프라 엔지니어부터

0개의 댓글