diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2014-05-23 23:49:49 -0400 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2014-05-23 23:49:49 -0400 |
commit | 649327f80dc331943d448e87f73ecaadcc78a22a (patch) | |
tree | 2d640deedbc19b925f5539a31da26f2f7a6249c8 /meta-openstack | |
parent | fb1d6f23fa01c0217ed3f6778d8033dd0030db2a (diff) | |
download | meta-cloud-services-649327f80dc331943d448e87f73ecaadcc78a22a.tar.gz |
docs: move more READMEs into Documentation
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta-openstack')
-rw-r--r-- | meta-openstack/Documentation/README.networking (renamed from meta-openstack/README.networking) | 0 | ||||
-rw-r--r-- | meta-openstack/Documentation/README.networking_flat (renamed from meta-openstack/README.networking_flat) | 0 | ||||
-rw-r--r-- | meta-openstack/Documentation/README.networking_l3_router (renamed from meta-openstack/README.networking_l3_router) | 0 | ||||
-rw-r--r-- | meta-openstack/Documentation/README.networking_vlan (renamed from meta-openstack/README.networking_vlan) | 0 | ||||
-rw-r--r-- | meta-openstack/Documentation/README.spice (renamed from meta-openstack/README.spice) | 0 | ||||
-rw-r--r-- | meta-openstack/Documentation/README.tempest (renamed from meta-openstack/README.tempest) | 0 | ||||
-rw-r--r-- | meta-openstack/README.swift | 447 |
7 files changed, 0 insertions, 447 deletions
diff --git a/meta-openstack/README.networking b/meta-openstack/Documentation/README.networking index 2299de3..2299de3 100644 --- a/meta-openstack/README.networking +++ b/meta-openstack/Documentation/README.networking | |||
diff --git a/meta-openstack/README.networking_flat b/meta-openstack/Documentation/README.networking_flat index ab18f6f..ab18f6f 100644 --- a/meta-openstack/README.networking_flat +++ b/meta-openstack/Documentation/README.networking_flat | |||
diff --git a/meta-openstack/README.networking_l3_router b/meta-openstack/Documentation/README.networking_l3_router index a16f8c4..a16f8c4 100644 --- a/meta-openstack/README.networking_l3_router +++ b/meta-openstack/Documentation/README.networking_l3_router | |||
diff --git a/meta-openstack/README.networking_vlan b/meta-openstack/Documentation/README.networking_vlan index 6d48e2b..6d48e2b 100644 --- a/meta-openstack/README.networking_vlan +++ b/meta-openstack/Documentation/README.networking_vlan | |||
diff --git a/meta-openstack/README.spice b/meta-openstack/Documentation/README.spice index a6b93b2..a6b93b2 100644 --- a/meta-openstack/README.spice +++ b/meta-openstack/Documentation/README.spice | |||
diff --git a/meta-openstack/README.tempest b/meta-openstack/Documentation/README.tempest index 884a28a..884a28a 100644 --- a/meta-openstack/README.tempest +++ b/meta-openstack/Documentation/README.tempest | |||
diff --git a/meta-openstack/README.swift b/meta-openstack/README.swift deleted file mode 100644 index d7d63bf..0000000 --- a/meta-openstack/README.swift +++ /dev/null | |||
@@ -1,447 +0,0 @@ | |||
1 | Summary | ||
2 | ======= | ||
3 | |||
4 | This document is not intended to provide detail of how Swift in general | ||
5 | works, but rather it highlights the details of how Swift cluster is | ||
6 | setup and OpenStack is configured to allow various Openstack components | ||
7 | interact with Swift. | ||
8 | |||
9 | |||
10 | Swift Overview | ||
11 | ============== | ||
12 | |||
13 | Openstack Swift is an object storage service. Clients can access swift | ||
14 | objects through RESTful APIs. Swift objects can be grouped into a | ||
15 | "container" in which containers are grouped into "account". Each account | ||
16 | or container in Swift cluster is represented by a SQLite database which | ||
17 | contains information related to that account or container. Each | ||
18 | Swift object is just user data input. | ||
19 | |||
20 | Swift cluster can include a massive number of storage devices. Any Swift | ||
21 | storage device can be configured to store container databases and/or | ||
22 | account databases and/or objects. Each Swift account database can be | ||
23 | identified by tuple (account name). Each Swift container database can | ||
24 | be identified by tuple (account name, container name). Each swift object | ||
25 | can be identified by tuple (account name, container name, object name). | ||
26 | |||
27 | Swift uses "ring" static mapping algorithm to identify what storage device | ||
28 | hosting account database, container database, or object contain (similar | ||
29 | to Ceph uses Crush algorithm to identify what OSD hosting Ceph object). | ||
30 | A Swift cluster has 3 rings (account ring, container ring, and object ring) | ||
31 | used for finding location of account database, container database, or | ||
32 | object file respectively. | ||
33 | |||
34 | Swift service includes the following core services: proxy-server which | ||
35 | provides the RESTful APIs for Swift clients to access; account-server | ||
36 | which manages accounts; container-server which manages containers; | ||
37 | and object-server which manages objects. | ||
38 | |||
39 | |||
40 | Swift Cluster Setup | ||
41 | =================== | ||
42 | |||
43 | The Swift default cluster is setup to have the followings: | ||
44 | |||
45 | * All Swift main process services including proxy-server, account-server | ||
46 | container-server, object-server run on Controller node. | ||
47 | * 3 zones in which each zone has only 1 storage device. | ||
48 | The underneath block devices for these 3 storage devices are loopback | ||
49 | devices. The size of the backing up loopback files is 2Gbytes by default | ||
50 | and can be changed at compile time through variable SWIFT_BACKING_FILE_SIZE. | ||
51 | If SWIFT_BACKING_FILE_SIZE="0G" then is for disabling loopback devices | ||
52 | and using local filesystem as Swift storage device. | ||
53 | * All 3 Swift rings have 2^12 partitions and 2 replicas. | ||
54 | |||
55 | The Swift default cluster is mainly for demonstration purpose. One might | ||
56 | wants to have a different Swift cluster setup than this setup (e.g. using | ||
57 | real hardware block device instead of loopback devices). | ||
58 | |||
59 | The script /etc/swift/swift_setup.sh is provided to ease the task of setting | ||
60 | up a complicated Swift cluster. It reads a cluster config file, which describes | ||
61 | what storage devices are included in what rings, and constructs the cluster. | ||
62 | |||
63 | For details of how to use swift_setup.sh and the format of Swift cluster | ||
64 | config file please refer to the script's help: | ||
65 | |||
66 | $ swift_setup.sh | ||
67 | |||
68 | |||
69 | Glance and Swift | ||
70 | ================ | ||
71 | |||
72 | Glance can store images into Swift cluster when "default_store = swift" | ||
73 | is set in /etc/glance/glance-api.conf. | ||
74 | |||
75 | By default "default_store" has value of "file" which tells Glance to | ||
76 | store images into local filesystem. "default_store" value can be set | ||
77 | during compile time through variable GLANCE_DEFAULT_STORE. | ||
78 | |||
79 | The following configuration options in /etc/glance/glance-api.conf affect | ||
80 | on how glance interacts with Swift cluster: | ||
81 | |||
82 | swift_store_auth_version = 2 | ||
83 | swift_store_auth_address = http://127.0.0.1:5000/v2.0/ | ||
84 | swift_store_user = service:glance | ||
85 | swift_store_key = password | ||
86 | swift_store_container = glance | ||
87 | swift_store_create_container_on_put = True | ||
88 | swift_store_large_object_size = 5120 | ||
89 | swift_store_large_object_chunk_size = 200 | ||
90 | swift_enable_snet = False | ||
91 | |||
92 | With these default settings, the images will be stored under | ||
93 | Swift account: "service" tenant ID and Swift cluster container: | ||
94 | "glance". | ||
95 | |||
96 | |||
97 | Cinder Backup and Swift | ||
98 | ======================= | ||
99 | |||
100 | Cinder-backup has ability to store volume backup into Swift | ||
101 | cluster with the following command: | ||
102 | |||
103 | $ cinder backup-create <cinder volume ID> | ||
104 | |||
105 | where <cinder volume ID> is ID of an existing Cinder volume if | ||
106 | the configure option "backup_driver" in /etc/cinder/cinder.conf | ||
107 | is set to "cinder.backup.drivers.ceph". | ||
108 | |||
109 | Cinder-backup is not be able to create a backup for any cinder | ||
110 | volume which backed by NFS or Glusterfs. This is because NFS | ||
111 | and Gluster cinder-volume backend drivers do not support the | ||
112 | backup functionality. In other words, only cinder volume | ||
113 | backed by lvm-iscsi and ceph-rbd are able to be backed-up | ||
114 | by cinder-backup. | ||
115 | |||
116 | The following configuration options in /etc/cinder/cinder.conf affect | ||
117 | on how cinder-backup interacts with Swift cluster: | ||
118 | |||
119 | backup_swift_url=http://controller:8888/v1/AUTH_ | ||
120 | backup_swift_auth=per_user | ||
121 | #backup_swift_user=<None> | ||
122 | #backup_swift_key=<None> | ||
123 | backup_swift_container=cinder-backups | ||
124 | backup_swift_object_size=52428800 | ||
125 | backup_swift_retry_attempts=3 | ||
126 | backup_swift_retry_backoff=2 | ||
127 | backup_compression_algorithm=zlib | ||
128 | |||
129 | With these defaults settings, the tenant ID of the keystone user that | ||
130 | runs "cinder backup-create" command will be used as Swift cluster | ||
131 | account name, along with "cinder-backups" Swift cluster container name | ||
132 | in which the volume backups will be saved into. | ||
133 | |||
134 | |||
135 | Build Configuration Options | ||
136 | =========================== | ||
137 | |||
138 | * Controller build config options: | ||
139 | |||
140 | --enable-board=intel-xeon-core \ | ||
141 | --enable-rootfs=ovp-openstack-controller \ | ||
142 | --enable-kernel=preempt-rt \ | ||
143 | --enable-addons=wr-ovp-openstack,wr-ovp \ | ||
144 | --with-template=feature/openstack-tests | ||
145 | |||
146 | * Compute build config options: | ||
147 | |||
148 | --enable-board=intel-xeon-core \ | ||
149 | --enable-rootfs=ovp-openstack-compute \ | ||
150 | --enable-kernel=preempt-rt \ | ||
151 | --enable-addons=wr-ovp-openstack,wr-ovp | ||
152 | |||
153 | |||
154 | Test Steps | ||
155 | ========== | ||
156 | |||
157 | This section describes test steps and expected results to demonstrate that | ||
158 | Swift is integrated properly into OpenStack. | ||
159 | |||
160 | Please note: the following commands are carried on Controller node, unless | ||
161 | otherwise explicitly indicated. | ||
162 | |||
163 | $ Start Controller and Compute node | ||
164 | $ . /etc/nova/openrc | ||
165 | $ dd if=/dev/urandom of=50M_c1.org bs=1M count=50 | ||
166 | $ dd if=/dev/urandom of=50M_c2.org bs=1M count=50 | ||
167 | $ dd if=/dev/urandom of=100M_c2.org bs=1M count=100 | ||
168 | $ swift upload c1 50M_c1.org && swift upload c2 50M_c2.org && swift upload c2 100M_c2.org | ||
169 | $ swift list | ||
170 | |||
171 | c1 | ||
172 | c2 | ||
173 | |||
174 | $ swift stat c1 | ||
175 | |||
176 | Account: AUTH_4ebc0e00338f405c9267866c6b984e71 | ||
177 | Container: c1 | ||
178 | Objects: 1 | ||
179 | Bytes: 52428800 | ||
180 | Read ACL: | ||
181 | Write ACL: | ||
182 | Sync To: | ||
183 | Sync Key: | ||
184 | Accept-Ranges: bytes | ||
185 | X-Timestamp: 1396457818.76909 | ||
186 | X-Trans-Id: tx0564472425ad47128b378-00533c41bb | ||
187 | Content-Type: text/plain; charset=utf-8 | ||
188 | |||
189 | (Should see there is 1 object) | ||
190 | |||
191 | $ swift stat c2 | ||
192 | |||
193 | root@controller:~# swift stat c2 | ||
194 | Account: AUTH_4ebc0e00338f405c9267866c6b984e71 | ||
195 | Container: c2 | ||
196 | Objects: 2 | ||
197 | Bytes: 157286400 | ||
198 | Read ACL: | ||
199 | Write ACL: | ||
200 | Sync To: | ||
201 | Sync Key: | ||
202 | Accept-Ranges: bytes | ||
203 | X-Timestamp: 1396457826.26262 | ||
204 | X-Trans-Id: tx312934d494a44bbe96a00-00533c41cd | ||
205 | Content-Type: text/plain; charset=utf-8 | ||
206 | |||
207 | (Should see there are 2 objects) | ||
208 | |||
209 | $ swift stat c3 | ||
210 | |||
211 | Container 'c3' not found | ||
212 | |||
213 | $ mv 50M_c1.org 50M_c1.save && mv 50M_c2.org 50M_c2.save && mv 100M_c2.org 100M_c2.save | ||
214 | $ swift download c1 50M_c1.org && swift download c2 50M_c2.org && swift download c2 100M_c2.org | ||
215 | $ md5sum 50M_c1.save 50M_c1.org && md5sum 50M_c2.save 50M_c2.org && md5sum 100M_c2.save 100M_c2.org | ||
216 | |||
217 | a8f7d671e35fcf20b87425fb39bdaf05 50M_c1.save | ||
218 | a8f7d671e35fcf20b87425fb39bdaf05 50M_c1.org | ||
219 | 353233ed20418dbdeeb2fad91ba4c86a 50M_c2.save | ||
220 | 353233ed20418dbdeeb2fad91ba4c86a 50M_c2.org | ||
221 | 3b7cbb444c2ba93819db69ab3584f4bd 100M_c2.save | ||
222 | 3b7cbb444c2ba93819db69ab3584f4bd 100M_c2.org | ||
223 | |||
224 | (The md5sums of each pair "zzz.save" and "zzz.org" files must be the same) | ||
225 | |||
226 | $ swift delete c1 50M_c1.org && swift delete c2 50M_c2.org | ||
227 | $ swift stat c1 | ||
228 | |||
229 | Account: AUTH_4ebc0e00338f405c9267866c6b984e71 | ||
230 | Container: c1 | ||
231 | Objects: 0 | ||
232 | Bytes: 0 | ||
233 | Read ACL: | ||
234 | Write ACL: | ||
235 | Sync To: | ||
236 | Sync Key: | ||
237 | Accept-Ranges: bytes | ||
238 | X-Timestamp: 1396457818.77284 | ||
239 | X-Trans-Id: tx58e4bb6d06b84276b8d7f-00533c424c | ||
240 | Content-Type: text/plain; charset=utf-8 | ||
241 | |||
242 | (Should see there is no object) | ||
243 | |||
244 | $ swift stat c2 | ||
245 | |||
246 | Account: AUTH_4ebc0e00338f405c9267866c6b984e71 | ||
247 | Container: c2 | ||
248 | Objects: 1 | ||
249 | Bytes: 104857600 | ||
250 | Read ACL: | ||
251 | Write ACL: | ||
252 | Sync To: | ||
253 | Sync Key: | ||
254 | Accept-Ranges: bytes | ||
255 | X-Timestamp: 1396457826.25872 | ||
256 | X-Trans-Id: txdae8ab2adf4f47a4931ba-00533c425b | ||
257 | Content-Type: text/plain; charset=utf-8 | ||
258 | |||
259 | (Should see there is 1 object) | ||
260 | |||
261 | $ swift upload c1 50M_c1.org && swift upload c2 50M_c2.org | ||
262 | $ rm *.org | ||
263 | $ swift download c1 50M_c1.org && swift download c2 50M_c2.org && swift download c2 100M_c2.org | ||
264 | $ md5sum 50M_c1.save 50M_c1.org && md5sum 50M_c2.save 50M_c2.org && md5sum 100M_c2.save 100M_c2.org | ||
265 | |||
266 | 31147c186e7dd2a4305026d3d6282861 50M_c1.save | ||
267 | 31147c186e7dd2a4305026d3d6282861 50M_c1.org | ||
268 | b9043aacef436dfbb96c39499d54b850 50M_c2.save | ||
269 | b9043aacef436dfbb96c39499d54b850 50M_c2.org | ||
270 | b1a1b6b34a6852cdd51cd487a01192cc 100M_c2.save | ||
271 | b1a1b6b34a6852cdd51cd487a01192cc 100M_c2.org | ||
272 | |||
273 | (The md5sums of each pair "zzz.save" and "zzz.org" files must be the same) | ||
274 | |||
275 | $ neutron net-create mynetwork | ||
276 | $ Modify "/etc/glance/glance-api.conf" to have "default_store = swift" | ||
277 | $ /etc/init.d/glance-api restart | ||
278 | $ glance image-create --name myfirstimage --is-public true --container-format bare --disk-format qcow2 --file /root/images/cirros-0.3.0-x86_64-disk.img | ||
279 | $ glance image-list | ||
280 | |||
281 | +--------------------------------------+--------------+-------------+------------------+---------+--------+ | ||
282 | | ID | Name | Disk Format | Container Format | Size | Status | | ||
283 | +--------------------------------------+--------------+-------------+------------------+---------+--------+ | ||
284 | | 79f52103-5b22-4aa5-8159-2d146b82b0b2 | myfirstimage | qcow2 | bare | 9761280 | active | | ||
285 | +--------------------------------------+--------------+-------------+------------------+---------+--------+ | ||
286 | |||
287 | $ export OS_TENANT_NAME=service && export OS_USERNAME=glance | ||
288 | $ swift list glance | ||
289 | |||
290 | 79f52103-5b22-4aa5-8159-2d146b82b0b2 | ||
291 | |||
292 | (The object name in the "glance" container must be the same as glance image id just created) | ||
293 | |||
294 | $ swift download glance 79f52103-5b22-4aa5-8159-2d146b82b0b2 | ||
295 | $ md5sum 79f52103-5b22-4aa5-8159-2d146b82b0b2 /root/images/cirros-0.3.0-x86_64-disk.img | ||
296 | |||
297 | 50bdc35edb03a38d91b1b071afb20a3c 79f52103-5b22-4aa5-8159-2d146b82b0b2 | ||
298 | 50bdc35edb03a38d91b1b071afb20a3c /root/images/cirros-0.3.0-x86_64-disk.img | ||
299 | |||
300 | (The md5sum of these 2 files must be the same) | ||
301 | |||
302 | $ ls /etc/glance/images/ | ||
303 | (This should be empty) | ||
304 | |||
305 | $ . /etc/nova/openrc | ||
306 | $ nova boot --image myfirstimage --flavor 1 myinstance | ||
307 | $ nova list | ||
308 | |||
309 | +--------------------------------------+------------+--------+------------+-------------+----------+ | ||
310 | | ID | Name | Status | Task State | Power State | Networks | | ||
311 | +--------------------------------------+------------+--------+------------+-------------+----------+ | ||
312 | | bc9662a0-0dac-4bff-a7fb-b820957c55a4 | myinstance | ACTIVE | - | Running | | | ||
313 | +--------------------------------------+------------+--------+------------+-------------+----------+ | ||
314 | |||
315 | $ From dashboard, log into VM console to make sure the VM is really running | ||
316 | $ nova delete bc9662a0-0dac-4bff-a7fb-b820957c55a4 | ||
317 | $ glance image-delete 79f52103-5b22-4aa5-8159-2d146b82b0b2 | ||
318 | $ export OS_TENANT_NAME=service && export OS_USERNAME=glance | ||
319 | $ swift list glance | ||
320 | |||
321 | (Should be empty) | ||
322 | |||
323 | $ . /etc/nova/openrc && . /etc/cinder/add-cinder-volume-types.sh | ||
324 | $ cinder create --volume_type lvm_iscsi --display_name=lvm_vol_1 1 | ||
325 | $ cinder list | ||
326 | |||
327 | +--------------------------------------+-----------+--------------+------+-------------+----------+-------------+ | ||
328 | | ID | Status | Display Name | Size | Volume Type | Bootable | Attached to | | ||
329 | +--------------------------------------+-----------+--------------+------+-------------+----------+-------------+ | ||
330 | | 3e388ae0-2e20-42a2-80da-3f9f366cbaed | available | lvm_vol_1 | 1 | lvm_iscsi | false | | | ||
331 | +--------------------------------------+-----------+--------------+------+-------------+----------+-------------+ | ||
332 | |||
333 | $ cinder backup-create 3e388ae0-2e20-42a2-80da-3f9f366cbaed | ||
334 | $ cinder backup-list | ||
335 | |||
336 | +--------------------------------------+--------------------------------------+-----------+------+------+--------------+----------------+ | ||
337 | | ID | Volume ID | Status | Name | Size | Object Count | Container | | ||
338 | +--------------------------------------+--------------------------------------+-----------+------+------+--------------+----------------+ | ||
339 | | 1444f5d0-3a87-40bc-a7a7-f3c672768b6a | 3e388ae0-2e20-42a2-80da-3f9f366cbaed | available | None | 1 | 22 | cinder-backups | | ||
340 | +--------------------------------------+--------------------------------------+-----------+------+------+--------------+----------------+ | ||
341 | |||
342 | $ swift list | ||
343 | |||
344 | c1 | ||
345 | c2 | ||
346 | cinder-backups | ||
347 | |||
348 | (Should see new Swift container "cinder-backup") | ||
349 | |||
350 | $ swift list cinder-backups | ||
351 | |||
352 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00001 | ||
353 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00002 | ||
354 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00003 | ||
355 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00004 | ||
356 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00005 | ||
357 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00006 | ||
358 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00007 | ||
359 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00008 | ||
360 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00009 | ||
361 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00010 | ||
362 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00011 | ||
363 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00012 | ||
364 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00013 | ||
365 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00014 | ||
366 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00015 | ||
367 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00016 | ||
368 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00017 | ||
369 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00018 | ||
370 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00019 | ||
371 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00020 | ||
372 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00021 | ||
373 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a_metadata | ||
374 | |||
375 | $ reboot | ||
376 | $ . /etc/nova/openrc && swift list cinder-backups | ||
377 | |||
378 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00001 | ||
379 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00002 | ||
380 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00003 | ||
381 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00004 | ||
382 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00005 | ||
383 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00006 | ||
384 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00007 | ||
385 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00008 | ||
386 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00009 | ||
387 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00010 | ||
388 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00011 | ||
389 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00012 | ||
390 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00013 | ||
391 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00014 | ||
392 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00015 | ||
393 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00016 | ||
394 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00017 | ||
395 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00018 | ||
396 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00019 | ||
397 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00020 | ||
398 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a-00021 | ||
399 | volume_3e388ae0-2e20-42a2-80da-3f9f366cbaed/20140402193029/az_nova_backup_1444f5d0-3a87-40bc-a7a7-f3c672768b6a_metadata | ||
400 | |||
401 | $ cinder backup-delete 1444f5d0-3a87-40bc-a7a7-f3c672768b6a | ||
402 | $ swift list cinder-backups | ||
403 | |||
404 | (Should be empty) | ||
405 | |||
406 | |||
407 | Swift Built-In Unit Tests | ||
408 | ========================= | ||
409 | |||
410 | This section describes how to run Swift and Swift client built-in unit | ||
411 | tests which are located at: | ||
412 | |||
413 | /usr/lib64/python2.7/site-packages/swift/test | ||
414 | /usr/lib64/python2.7/site-packages/swiftclient/tests | ||
415 | |||
416 | with nosetests test-runner. Please make sure that the test accounts | ||
417 | setting in /etc/swift/test.conf reflects the keystone user accounts | ||
418 | setting. | ||
419 | |||
420 | To run swift built-in unit test with nosetests: | ||
421 | |||
422 | $ To accommodate the small space of loop dev, | ||
423 | modify /etc/swift/swift.conf to have "max_file_size = 5242880" | ||
424 | $ /etc/init.d/swift restart | ||
425 | $ cd /usr/lib64/python2.7/site-packages/swift | ||
426 | $ nosetests -v test | ||
427 | |||
428 | Ran 1633 tests in 272.930s | ||
429 | |||
430 | FAILED (errors=5, failures=4) | ||
431 | |||
432 | To run swiftclient built-in unit test with nosetests: | ||
433 | |||
434 | $ cd /usr/lib64/python2.7/site-packages/swiftclient | ||
435 | $ nosetests -v tests | ||
436 | |||
437 | Ran 108 tests in 2.277s | ||
438 | |||
439 | FAILED (failures=1) | ||
440 | |||
441 | |||
442 | References | ||
443 | ========== | ||
444 | |||
445 | * http://docs.openstack.org/developer/swift/deployment_guide.html | ||
446 | * http://docs.openstack.org/grizzly/openstack-compute/install/yum/content/ch_installing-openstack-object-storage.html | ||
447 | * https://swiftstack.com/openstack-swift/architecture/ | ||