diff options
| -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/ | ||
