1. 程式人生 > 其它 >OpenStack搭建swift儲存並配置glance後端儲存為swift

OpenStack搭建swift儲存並配置glance後端儲存為swift

技術標籤:OpenStackopenstack

第1章 搭建swift物件儲存控制節點

前提

搭建好pike版本的OpenStack環境。

1.1 先決條件

代理服務依賴於諸如身份認證服務所提供的認證和授權機制。但是,與其他服務不同,它也提供了一個內部機制可以在沒有任何其他OpenStack服務的情況下執行。不過為了簡單起見,本指南引用keystone中的身份認證服務。在你配置物件儲存服務前,你必須建立服務憑證和API端點。

註解

物件儲存服務不使用控制節點上的SQL資料庫。而是使用在每個儲存節點的分散式SQLite資料庫。

1.2 主機名解析

控制節點和儲存節點

vim /etc/hosts
192.168.140.5 controller
192.168.229.118 object1

1.3 建立身份認證服務的憑證

建立 swift 使用者:

openstack user create --domain default --password=swift swift

給 swift 使用者新增 admin 角色:

openstack role add --project service --user swift admin

1.4 建立 swift 服務條目

openstack service create --name swift --description "OpenStack Object Storage" object-store

1.5 建立物件儲存服務 API 端點

openstack endpoint create --region RegionOne object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s

openstack endpoint create --region RegionOne object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s

openstack endpoint create --region RegionOne object-store admin http://controller:8080/v1

1.6 安全並配置元件

註解
預設配置檔案在各發行版本中可能不同。你可能需要新增這些部分,選項而不是修改已經存在的部分和選項。另外,在配置片段中的省略號(…)表示預設的配置選項你應該保留。

1.7 安裝軟體包

yum -y install openstack-swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached

1.8 從物件儲存源儲存庫中獲取代理服務配置檔案

curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/pike

說明:下載下來的檔案裡面有地址,將其換掉再次下載。

curl -o /etc/swift/proxy-server.conf https://opendev.org/openstack/swift/raw/branch/stable/pike/etc/proxy-server.conf-sample

1.9 配置proxy

編輯檔案 /etc/swift/proxy-server.conf 並完成如下動作:

在 [DEFAULT] 部分,配置繫結埠,使用者和配置目錄。

[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
在[pipeline:main]部分,刪除tempurl和tempauth模組並增加authtoken和keystoneauth模組
[pipeline:main]
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server

註解
不要改變模組的順序。
註解
更多關於啟用其他模組的額外功能的資訊,請參考Deployment Guide http://docs.openstack.org/developer/swift/deployment_guide.html。

在 [app:proxy-server] 部分,啟動自動賬戶建立。

[app:proxy-server]
use = egg:swift#proxy
...
account_autocreate = True

在 [filter:keystoneauth] 部分,配置操作員角色。

[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user

在 [filter:authtoken] 部分,配置認證服務訪問。

[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = swift
password = swift
delay_auth_decision = True

使用你在身份認證服務中選擇的 swift 使用者密碼來替換 SWIFT_PASS 。

註解

註釋或者刪除掉在 [filter:authtoken] 部分的所有其他的內容。

在 [filter:cache] 部分,配置 memcached 的位置:

[filter:cache]
use = egg:swift#memcache
...
memcache_servers = controller:11211

第2章 搭建swift儲存節點

本章節描述怎樣為操作帳號,容器和物件服務安裝和配置儲存節點。為簡單起見,這裡配置一個儲存節點,每個包含兩個空本地塊儲存裝置。這個嚮導用的是/dev/sdb和 /dev/sdc,但是你可以用不同的值代替您的特定節點。
儘管物件儲存通過 :term:extended attributes (xattr)支援所有檔案系統,但測試表明使用 :term:XFS時效能最好可靠性最高。 更多關於橫向擴充套件你環境的資訊,參考 Deployment Guide http://docs.openstack.org/developer/swift/deployment_guide.html。

2.1 先決條件

在你在儲存節點上安裝和配置物件儲存服務之前,你必須準備好儲存裝置。

註解
在每個儲存節點上執行這些步驟。

安裝支援的工具包:

yum -y install xfsprogs rsync

使用XFS格式化/dev/sdb和/dev/sdc裝置:

mkfs.xfs /dev/sdb
mkfs.xfs /dev/sdc

建立掛載點目錄結構:

mkdir -p /srv/node/sdb
mkdir -p /srv/node/sdc

編輯/etc/fstab檔案並新增以下內容:

/dev/sdb /srv/node/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
/dev/sdc /srv/node/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

掛載裝置:

mount /dev/sdb /srv/node/sdb
mount /dev/sdc /srv/node/sdc

建立並編輯/etc/rsyncd.conf檔案幷包含以下內容:

uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = MANAGEMENT_INTERFACE_IP_ADDRESS

[account]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/account.lock

[container]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/container.lock

[object]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/object.lock

替換 MANAGEMENT_INTERFACE_IP_ADDRESS為儲存節點管理網路的IP地址。

註解
rsync服務不需要認證,所以考慮將它安裝在私有網路的環境中

啟動rsyncd服務和配置它隨系統啟動:

systemctl enable rsyncd.service
systemctl start rsyncd.service

2.2 安裝並配置元件說明

註解
預設配置檔案在各發行版本中可能不同。你可能需要新增這些部分,選項而不是修改已經存在的部分和選項。另外,在配置片段中的省略號(…)表示預設的配置選項你應該保留。

註解
在每個儲存節點上執行這些步驟。

2.3 安裝軟體包

yum -y install openstack-swift-account openstack-swift-container openstack-swift-object

2.4 從物件儲存源儲存庫中獲取配置檔案

curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/pike

新地址為

curl -o /etc/swift/account-server.conf https://opendev.org/openstack/swift/raw/branch/stable/pike/etc/account-server.conf-sample
curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/pike

新地址為

curl -o /etc/swift/container-server.conf https://opendev.org/openstack/swift/raw/branch/stable/pike/etc/container-server.conf-sample
curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample?h=stable/pike

新地址為

curl -o /etc/swift/object-server.conf https://opendev.org/openstack/swift/raw/branch/stable/pike/etc/object-server.conf-sample

說明:下載下來的檔案裡面有地址,將其換掉再次下載。

2.5 配置account

編輯 /etc/swift/account-server.conf 檔案並完成下面操作:

在[DEFAULT]部分,配置繫結IP地址,繫結埠,使用者,配置目錄和掛載目錄:

[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6002
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = True

替換 MANAGEMENT_INTERFACE_IP_ADDRESS為儲存節點管理網路的IP地址。

在[pipeline:main]部分,啟用合適的模組:

[pipeline:main]
pipeline = healthcheck recon account-server

註解

更多關於啟用其他模組的額外功能的資訊,請參考Deployment Guide http://docs.openstack.org/developer/swift/deployment_guide.html。

在[filter:recon]部分,配置recon (meters)快取目錄:

[filter:recon]
use = egg:swift#recon
...
recon_cache_path = /var/cache/swift

2.6 配置container

編輯/etc/swift/container-server.conf檔案並完成下列操作:

在[DEFAULT]部分,配置繫結IP地址,繫結埠,使用者,配置目錄和掛載目錄:

[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6001
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = True

替換 MANAGEMENT_INTERFACE_IP_ADDRESS為儲存節點管理網路的IP地址。

在[pipeline:main]部分,啟用合適的模組:

[pipeline:main]
pipeline = healthcheck recon container-server

註解

更多關於啟用其他模組的額外功能的資訊,請參考Deployment Guide http://docs.openstack.org/developer/swift/deployment_guide.html。

在[filter:recon]部分,配置recon (meters)快取目錄:

[filter:recon]
use = egg:swift#recon
...
recon_cache_path = /var/cache/swift

2.7 配置object

編輯/etc/swift/object-server.conf檔案並完成下列操作:

在[DEFAULT]部分,配置繫結IP地址,繫結埠,使用者,配置目錄和掛載目錄:

[DEFAULT]
...
bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
bind_port = 6000
user = swift
swift_dir = /etc/swift
devices = /srv/node
mount_check = True

替換 MANAGEMENT_INTERFACE_IP_ADDRESS為儲存節點管理網路的IP地址。

在[pipeline:main]部分,啟用合適的模組:

[pipeline:main]
pipeline = healthcheck recon object-server

註解

更多關於啟用其他模組的額外功能的資訊,請參考Deployment Guide http://docs.openstack.org/developer/swift/deployment_guide.html。

在[filter:recon]部分,配置recon(meters)快取和lock目錄:

[filter:recon]
use = egg:swift#recon
...
recon_cache_path = /var/cache/swift
recon_lock_path = /var/lock

2.8 確認掛載點目錄結構是否有合適的所有權

chown -R swift:swift /srv/node

2.9 建立偵察目錄並確保其正確所有權

mkdir -p /var/cache/swift
chown -R root:swift /var/cache/swift
chmod -R 775 /var/cache/swift

第3章 建立,分發並初始化rings

在開始啟動物件儲存服務前,你必須建立初始化account,container和object rings。ring builder建立每個節點使用者決定和部署儲存體系的配置檔案。簡單的說,這個指南使用一個region和包括兩個最多2^10 (1024) 個分割槽的zone,每個物件3個副本和在移動分割槽超過1次時最少1小時時間。對物件儲存,一個分割槽意味著儲存裝置的一個目錄而不是傳統的分割槽表。
更多資訊,參考Deployment Guide http://docs.openstack.org/developer/swift/deployment_guide.html。

註解
在控制節點上執行這些步驟。

3.1 建立賬戶ring

帳戶伺服器使用帳戶 ring 來維護一個容器的列表。

切換到 /etc/swift目錄。

建立基本 account.builder 檔案:

swift-ring-builder account.builder create 10 2 1

註解
其中:10,代表account 總的分割槽數目是2^10=1024,2代表分割槽副本的數量
這個命令執行後沒有輸出。

新增每個節點到 ring 中:

swift-ring-builder account.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6002 --device DEVICE_NAME --weight DEVICE_WEIGHT

將 STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替換為儲存節點管理網路的IP地址。將 DEVICE_NAME替換為同一個儲存節點儲存裝置名稱。例如,使用 :ref:swift-storage中的第一個儲存節點的 /dev/sdb 儲存裝置

swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6002 --device sdb --weight 100

對每個儲存節點上的每個儲存裝置重複此命令。在這個例子的架構中,使用該命令的四個變數:

swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6002 --device sdb --weight 100
swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6002 --device sdc --weight 100

驗證 ring 的內容:

swift-ring-builder account.builder
account.builder, build version 4
1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1
The overload factor is 0.00% (0.000000)
Devices:    id  region  zone      ip address  port  replication ip  replication port      name weight partitions balance meta
             0       1     1       10.0.0.51  6002       10.0.0.51              6002      sdb  100.00          0 -100.00
             1       1     1       10.0.0.51  6002       10.0.0.51              6002      sdc  100.00          0 -100.00
             2       1     2       10.0.0.52  6002       10.0.0.52              6002      sdb  100.00          0 -100.00
             3       1     2       10.0.0.52  6002       10.0.0.52              6002      sdc  100.00          0 -100.00

平衡 ring:

swift-ring-builder account.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00.  Dispersion is now 0.00

3.2 建立容器ring

容器伺服器使用容器環來維護物件的列表。但是,它不跟蹤物件的位置。

切換到 /etc/swift目錄。

建立基本container.builder檔案:

swift-ring-builder container.builder create 10 2 1

註解

這個命令執行後沒有輸出。

新增每個節點到 ring 中:

swift-ring-builder container.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6001 --device DEVICE_NAME --weight DEVICE_WEIGHT

將 STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替換為儲存節點管理網路的IP地址。將 DEVICE_NAME替換為同一個儲存節點儲存裝置名稱。例如,使用 :ref:swift-storage中的第一個儲存節點的 /dev/sdb 儲存裝置

swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6001 --device sdb --weight 100

對每個儲存節點上的每個儲存裝置重複此命令。在這個例子的架構中,使用該命令的四個變數:

swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6001 --device sdb --weight 100
swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6001 --device sdc --weight 100

驗證 ring 的內容:

swift-ring-builder container.builder
container.builder, build version 4
1024 partitions, 3.000000 replicas, 1 regions, 2 zones, 4 devices, 100.00 balance, 0.00 dispersion
The minimum number of hours before a partition can be reassigned is 1
The overload factor is 0.00% (0.000000)
Devices:    id  region  zone      ip address  port  replication ip  replication port      name weight partitions balance meta
             0       1     1       10.0.0.51  6001       10.0.0.51              6001      sdb  100.00          0 -100.00
             1       1     1       10.0.0.51  6001       10.0.0.51              6001      sdc  100.00          0 -100.00
             2       1     2       10.0.0.52  6001       10.0.0.52              6001      sdb  100.00          0 -100.00
             3       1     2       10.0.0.52  6001       10.0.0.52              6001      sdc  100.00          0 -100.00

平衡 ring:

swift-ring-builder container.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00.  Dispersion is now 0.00

3.3 建立物件ring

物件伺服器使用物件環來維護物件在本地裝置上的位置列表。

切換到 /etc/swift目錄。

建立基本object.builder檔案:

swift-ring-builder object.builder create 10 2 1

註解

這個命令執行後沒有輸出。

新增每個節點到 ring 中:

swift-ring-builder object.builder add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6000 --device DEVICE_NAME --weight DEVICE_WEIGHT

將 STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS 替換為儲存節點管理網路的IP地址。將 DEVICE_NAME替換為同一個儲存節點儲存裝置名稱。例如,使用 :ref:swift-storage中的第一個儲存節點的 /dev/sdb 儲存裝置

swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6000 --device sdb --weight 100

對每個儲存節點上的每個儲存裝置重複此命令。在這個例子的架構中,使用該命令的四個變數:

swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6000 --device sdb --weight 100
swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.229.118 --port 6000 --device sdc --weight 100

驗證 ring 的內容:

swift-ring-builder object.builder

平衡 ring:

swift-ring-builder object.builder rebalance
Reassigned 1024 (100.00%) partitions. Balance is now 0.00.  Dispersion is now 0.00

3.4 分發環配置檔案

複製account.ring.gz,container.ring.gz和object.ring.gz 檔案到每個儲存節點和其他運行了代理服務的額外節點的 /etc/swift 目錄。

scp container.ring.gz object1:/etc/swift/
scp account.ring.gz object1:/etc/swift/
scp object.ring.gz object1:/etc/swift/

3.5 授權

chown -R root.swift /etc/swift/

第4章 完成安裝

註解

預設配置檔案在各發行版本中可能不同。你可能需要新增這些部分,選項而不是修改已經存在的部分和選項。另外,在配置片段中的省略號(…)表示預設的配置選項你應該保留。

4.1 從物件儲存源儲存庫中獲取配置檔案

curl -o /etc/swift/swift.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/pike

說明:下載下來的檔案裡面有地址,將其換掉再次下載。

curl -o /etc/swift/swift.conf https://opendev.org/openstack/swift/raw/branch/stable/pike/etc/swift.conf-sample

4.2 配置swift

編輯 /etc/swift/swift.conf 檔案並完成以下動作:

在[swift-hash]部分,為你的環境配置雜湊路徑字首和字尾:

[swift-hash]
...
swift_hash_path_suffix = HASH_PATH_SUFFIX
swift_hash_path_prefix = HASH_PATH_PREFIX

將其中的 HASH_PATH_PREFIX和 HASH_PATH_SUFFIX替換為唯一的值。

警告

這些值要保密,並且不要修改或丟失。

在[storage-policy:0]部分,配置預設儲存策略:

[storage-policy:0]
...
name = Policy-0
default = yes

4.3 分發配置檔案

複製swift.conf檔案到每個儲存節點和其他允許了代理服務的額外節點的 /etc/swift 目錄。

在所有節點上,確認配置檔案目錄是否有合適的所有權:

scp /etc/swift/swift.conf object1:/etc/swift/
chown -R root:swift /etc/swift

4.4 啟動物件儲存代理服務

在控制節點和其他運行了代理服務的節點上,啟動物件儲存代理服務及其依賴服務,並將它們配置為隨系統啟動:

systemctl enable openstack-swift-proxy.service memcached.service
systemctl start openstack-swift-proxy.service memcached.service

4.5 啟動物件儲存服務

在儲存節點上,啟動物件儲存服務,並將其設定為隨系統啟動:

systemctl enable openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service
systemctl start openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service

systemctl enable openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service
systemctl start openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service
systemctl enable openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service
systemctl start openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service

第5章 驗證操作

驗證物件儲存服務的操作。

註解
在控制節點上執行這些步驟。

5.1 警告

如果您正在使用red hat enterprise linux 7或centos 7,並且這些步驟中的一個或多個不起作用,請檢查/var/log/audit/audit.log檔案中是否有se linux訊息指示拒絕對swift程序執行操作。如果存在,將/srv/node目錄的安全上下文更改為swift_data_t型別、object_r角色和system_u使用者的最低安全級別(s0 ):

5.2 匯入demo憑證

. demo-openrc

顯示服務狀態:

swift stat
                        Account: AUTH_ed0b60bf607743088218b0a533d5943f
                     Containers: 0
                        Objects: 0
                          Bytes: 0
Containers in policy "policy-0": 0
   Objects in policy "policy-0": 0
     Bytes in policy "policy-0": 0
    X-Account-Project-Domain-Id: default
                    X-Timestamp: 1444143887.71539
                     X-Trans-Id: tx1396aeaf17254e94beb34-0056143bde
                   Content-Type: text/plain; charset=utf-8
                  Accept-Ranges: bytes

5.3 建立container1容器

openstack container create container1
+---------------------------------------+------------+------------------------------------+
| account                               | container  | x-trans-id                         |
+---------------------------------------+------------+------------------------------------+
| AUTH_ed0b60bf607743088218b0a533d5943f | container1 | tx8c4034dc306c44dd8cd68-0056f00a4a |
+---------------------------------------+------------+------------------------------------+

5.4 上傳一個測試檔案到container1容器

openstack object create container1 FILE
+--------+------------+----------------------------------+
| object | container  | etag                             |
+--------+------------+----------------------------------+
| FILE   | container1 | ee1eca47dc88f4879d8a229cc70a07c6 |
+--------+------------+----------------------------------+

用本地要上傳到 container1 容器的檔名替換 FILE。

5.5 列出container1容器裡的所有檔案

openstack object list container1
+------+
| Name |
+------+
| FILE |
+------+

5.6 從container1容器裡下載一個測試檔案

openstack object save container1 FILE

用上傳到 container1 容器的檔名替換 FILE。

註解
這個命令執行後沒有輸出。

5.7 Dashboard介面如圖

在這裡插入圖片描述

第6章 配置glance使用swift做後端儲存

6.1 改glance-api配置

vim /etc/glance/glance-api.conf
[glance_store]
#stores = file,http
#default_store = file
#filesystem_store_datadir = /var/lib/glance/images/

#註釋掉原來的file儲存選項,新增如下配置

[glance_store]
stores = glance.store.swift.Store,glance.store.filesystem.Store
default_store = swift

swift_store_auth_version = 2
swift_store_auth_address = http://controller:5000
swift_store_user = service:swift
swift_store_key = swift
#swift_store_container = swift
swift_store_create_container_on_put = True  #上傳映象時自動建立容器
swift_store_large_object_size = 5120 #最大容量
swift_store_large_object_chunk_size = 200 #最多200個容器
#swift_enable_snet = False

6.2 重啟glance-api服務

systemctl restart openstack-glance-api

6.3 配置glance使用者的環境變數

cat glance-openrc 
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=service
export OS_USERNAME=glance
export OS_PASSWORD=glance
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

6.4 測試glance使用者建立

[[email protected] ~]# source glance-openrc 
[[email protected] ~]# openstack image create "cirros-swift-1"   --file /root/cirros-0.3.5-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public 
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | f8ab98ff5e73ebab884d80c9dc9c7290                     |
| container_format | bare                                                 |
| created_at       | 2021-02-05T03:37:33Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/8c517472-dcee-41cd-8a96-2a7bc4acf2b3/file |
| id               | 8c517472-dcee-41cd-8a96-2a7bc4acf2b3                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros-swift-1                                       |
| owner            | 2d710689900c4d3eb9f47a42815270f5                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13267968                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2021-02-05T03:37:45Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+

6.5 檢視

說明:檢視必須是glance使用者。

[[email protected] ~]# source glance-openrc 
[[email protected] ~]# openstack container list
+--------+
| Name   |
+--------+
| glance |
+--------+

[[email protected] ~]# openstack object list glance
+--------------------------------------------+
| Name                                       |
+--------------------------------------------+
| 8c517472-dcee-41cd-8a96-2a7bc4acf2b3       |
| 8c517472-dcee-41cd-8a96-2a7bc4acf2b3-00001 |
+--------------------------------------------+

6.6 刪除物件和容器

[[email protected] ~]# openstack object delete glance 8c517472-dcee-41cd-8a96-2a7bc4acf2b3
[[email protected] ~]# openstack object list glance
+--------------------------------------------+
| Name                                       |
+--------------------------------------------+
| 8c517472-dcee-41cd-8a96-2a7bc4acf2b3-00001 |
+--------------------------------------------+
[[email protected] ~]# openstack object delete glance 8c517472-dcee-41cd-8a96-2a7bc4acf2b3-00001
[[email protected] ~]# openstack object list glance[[email protected] ~]# openstack object glance delete 8c517472-dcee-41cd-8a96-2a7bc4acf2b3^C
[[email protected] ~]# openstack container delete glance
[[email protected] ~]# openstack container list

6.7 測試admin使用者建立

說明:admin使用者也可以上傳映象到swift,但是檢視上傳的映象以及容器要用glance使用者。

[[email protected] ~]# source admin-openrc 
[[email protected] ~]# openstack image create "cirros-swift-1"   --file /root/cirros-0.3.5-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public 
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | f8ab98ff5e73ebab884d80c9dc9c7290                     |
| container_format | bare                                                 |
| created_at       | 2021-02-05T03:44:58Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/76b12859-a324-47fb-9326-f1d59f4d86c9/file |
| id               | 76b12859-a324-47fb-9326-f1d59f4d86c9                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros-swift-1                                       |
| owner            | 93a364405fe14fe7815ffc5916405feb                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13267968                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2021-02-05T03:45:04Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+
[[email protected] ~]# openstack container list

6.8 檢視

[[email protected] ~]# source glance-openrc 
[[email protected] ~]# openstack container list
+--------+
| Name   |
+--------+
| glance |
+--------+
[[email protected] ~]# openstack object list glance
+--------------------------------------------+
| Name                                       |
+--------------------------------------------+
| 76b12859-a324-47fb-9326-f1d59f4d86c9       |
| 76b12859-a324-47fb-9326-f1d59f4d86c9-00001 |
+--------------------------------------------+