OpenStack搭建swift儲存並配置glance後端儲存為swift
第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 |
+--------------------------------------------+