OpenStack Glance has a client-server architecture that provides a REST API to the user through which requests to the server can be performed.
A Glance Domain Controller manages the internal server operations that is divided into layers. Specific tasks are implemented by each layer.
All the file (Image data) operations are performed using glance_store library, which is responsible for interaction with external storage back ends and (or) local filesystem(s). The glance_store library provides a uniform interface to access the backend stores.
Glance uses a central database (Glance DB) that is shared amongst all the components in the system and is sql-based by default. Other types of database backends are somewhat supported and used by operators but are not extensively tested upstream.
Image 1. OpenStack Glance Architecture