O Swift, ou OpenStack Object Storage, é o módulo do OpenStack que gerencia o armazenamento de dados na nuvem. A fim de evitar um ponto único de falha, OpenStack implementa esse gerenciamento de maneira distribuída. Por conta disso, um nó Swift não pode ser "montado" como um sistema de arquivos. Apesar disso, a API OpenStack provê acesso aos arquivos de maneira conveniente.
A seguir temos alguns conceitos associados ao módulo.
Um anel (ring) é um mapeamento entre uma entidade armazenada em um sistema de arquivos Swift e sua localização física, gerenciando a replicação dos dados através de zonas, que podem ser dispositivos como disco rígidos a datacenters. Cada zona possui uma replica da partição pela qual um anél se responsabiliza.
Um objeto é uma entidade de armazenamento e metadados que representam arquivos no sistema de arquivos Swift. Um objeto deve estar em um container. Associado a essa definição, o sistema Swift conta com um servidor de objetos, que tem como tarefa armazenar, recuperar e deletar os objetos nos dispositivos locais.
Um container é um compartimento para armazenar dados. Pode-se fazer uma comparação de analogia com as pastas em um sistema UNIX, com a diferença de que containers não podem ser aninhados. Associado ao conceito de containers, o sistema Swift conta com um servidor para esse tipo de entidade, que tem como tarefa principal lidar com a listagem de objetos, mostrando que objetos estão em que containers. Esses dados de listagem, assim como estatísticas como quantidade e tamanho dos objetos armazenados, são registrados em tabelas de banco de dados, e não há registro de informações sobre os locais físicos dos objetos armazenados.
O conceito de conta é relativo às permissões de acesso às entidades presentes no sistema de arquivos Swift. Existe um servidor de contas, semelhante ao servidor de containers, mas que lida com a listagem de containers de acordo com as permissões de acesso de cada conta.
O conceito de replicação é muito importante no Swift, pois permite a distribuição dos dados através dos servidores. Essa replicação garante o acesso as versões mais recentes dos objetos armazenados. O processo de replicação também é responsável pela remoção dos arquivos dos dispositivos físicos: quando um objeto é deletado, o servidor de objetos registra a remoção como uma nova versão do objeto. Assim o processo replicador identifica a remoção, impedindo o acesso ao arquivo assim como removendo-o através dos clusters de armazenamento.