From 45fb0a6a865db2c8dff41b1271d57cb2d588ed6c Mon Sep 17 00:00:00 2001 From: Brian Moss Date: Thu, 11 Jun 2015 12:06:11 +1000 Subject: [PATCH] Convert objectstorage files to RST Cloud Admin Guide files converted: objectstorage-account-reaper.rst objectstorage-arch.rst objectstorage-replication.rst objectstorage-ringbuilder.rst objectstorage-tenant-specific-image-storage.rst Change-Id: I9d6416d4dfdf3bd71d59eef64b9ba3af07e15a8a Implements: blueprint reorganise-user-guides --- .../source/figures/objectstorage-arch.png | Bin 0 -> 57618 bytes .../source/figures/objectstorage-nodes.png | Bin 0 -> 59411 bytes .../source/objectstorage.rst | 11 +- .../source/objectstorage_account_reaper.rst | 50 +++++ .../source/objectstorage_arch.rst | 81 ++++++++ .../source/objectstorage_replication.rst | 96 ++++++++++ .../source/objectstorage_ringbuilder.rst | 181 ++++++++++++++++++ ...tstorage_tenant_specific_image_storage.rst | 31 +++ 8 files changed, 443 insertions(+), 7 deletions(-) create mode 100644 doc/admin-guide-cloud-rst/source/figures/objectstorage-arch.png create mode 100644 doc/admin-guide-cloud-rst/source/figures/objectstorage-nodes.png create mode 100644 doc/admin-guide-cloud-rst/source/objectstorage_account_reaper.rst create mode 100644 doc/admin-guide-cloud-rst/source/objectstorage_arch.rst create mode 100644 doc/admin-guide-cloud-rst/source/objectstorage_replication.rst create mode 100644 doc/admin-guide-cloud-rst/source/objectstorage_ringbuilder.rst create mode 100644 doc/admin-guide-cloud-rst/source/objectstorage_tenant_specific_image_storage.rst diff --git a/doc/admin-guide-cloud-rst/source/figures/objectstorage-arch.png b/doc/admin-guide-cloud-rst/source/figures/objectstorage-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..3b7978b673e90c6442653be5c67e967ba149b05c GIT binary patch literal 57618 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 PPyq=EiU_>opLFOS`o__! literal 0 HcmV?d00001 diff --git a/doc/admin-guide-cloud-rst/source/figures/objectstorage-nodes.png b/doc/admin-guide-cloud-rst/source/figures/objectstorage-nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..e7a0396f5f7868a958b6fdc592f647f10f0d2296 GIT binary patch literal 59411 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%0Dx;#+H@^g@snSx+$5N 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 has not been reaped since " + +You can control when this is logged with the ``reap_warn_after`` value in the +``[account-reaper]`` section of the :file:`account-server.conf` file. +The default value is 30 days. diff --git a/doc/admin-guide-cloud-rst/source/objectstorage_arch.rst b/doc/admin-guide-cloud-rst/source/objectstorage_arch.rst new file mode 100644 index 0000000000..7bc1a37456 --- /dev/null +++ b/doc/admin-guide-cloud-rst/source/objectstorage_arch.rst @@ -0,0 +1,81 @@ +==================== +Cluster architecture +==================== + +Access tier +~~~~~~~~~~~ +Large-scale deployments segment off an access tier, which is considered +the Object Storage system's central hub. The access tier fields the +incoming API requests from clients and moves data in and out of the +system. This tier consists of front-end load balancers, ssl-terminators, +and authentication services. It runs the (distributed) brain of the +Object Storage system: the proxy server processes. + +**Object Storage architecture** + +| + +.. image:: figures/objectstorage-arch.png + +| + +Because access servers are collocated in their own tier, you can scale +out read/write access regardless of the storage capacity. For example, +if a cluster is on the public Internet, requires SSL termination, and +has a high demand for data access, you can provision many access +servers. However, if the cluster is on a private network and used +primarily for archival purposes, you need fewer access servers. + +Since this is an HTTP addressable storage service, you may incorporate a +load balancer into the access tier. + +Typically, the tier consists of a collection of 1U servers. These +machines use a moderate amount of RAM and are network I/O intensive. +Since these systems field each incoming API request, you should +provision them with two high-throughput (10GbE) interfaces - one for the +incoming "front-end" requests and the other for the "back-end" access to +the object storage nodes to put and fetch data. + +Factors to consider +------------------- +For most publicly facing deployments as well as private deployments +available across a wide-reaching corporate network, you use SSL to +encrypt traffic to the client. SSL adds significant processing load to +establish sessions between clients, which is why you have to provision +more capacity in the access layer. SSL may not be required for private +deployments on trusted networks. + +Storage nodes +~~~~~~~~~~~~~ +In most configurations, each of the five zones should have an equal +amount of storage capacity. Storage nodes use a reasonable amount of +memory and CPU. Metadata needs to be readily available to return objects +quickly. The object stores run services not only to field incoming +requests from the access tier, but to also run replicators, auditors, +and reapers. You can provision object stores provisioned with single +gigabit or 10 gigabit network interface depending on the expected +workload and desired performance. + +**Object Storage (swift)** + +| + +.. image:: figures/objectstorage-nodes.png + +| + +Currently, a 2 TB or 3 TB SATA disk delivers good performance for the +price. You can use desktop-grade drives if you have responsive remote +hands in the datacenter and enterprise-grade drives if you don't. + +Factors to consider +------------------- +You should keep in mind the desired I/O performance for single-threaded +requests . This system does not use RAID, so a single disk handles each +request for an object. Disk performance impacts single-threaded response +rates. + +To achieve apparent higher throughput, the object storage system is +designed to handle concurrent uploads/downloads. The network I/O +capacity (1GbE, bonded 1GbE pair, or 10GbE) should match your desired +concurrent throughput needs for reads and writes. diff --git a/doc/admin-guide-cloud-rst/source/objectstorage_replication.rst b/doc/admin-guide-cloud-rst/source/objectstorage_replication.rst new file mode 100644 index 0000000000..ef8707cd0d --- /dev/null +++ b/doc/admin-guide-cloud-rst/source/objectstorage_replication.rst @@ -0,0 +1,96 @@ +=========== +Replication +=========== + +Because each replica in Object Storage functions independently and +clients generally require only a simple majority of nodes to respond to +consider an operation successful, transient failures like network +partitions can quickly cause replicas to diverge. These differences are +eventually reconciled by asynchronous, peer-to-peer replicator +processes. The replicator processes traverse their local file systems +and concurrently perform operations in a manner that balances load +across physical disks. + +Replication uses a push model, with records and files generally only +being copied from local to remote replicas. This is important because +data on the node might not belong there (as in the case of hand offs and +ring changes), and a replicator cannot know which data it should pull in +from elsewhere in the cluster. Any node that contains data must ensure +that data gets to where it belongs. The ring handles replica placement. + +To replicate deletions in addition to creations, every deleted record or +file in the system is marked by a tombstone. The replication process +cleans up tombstones after a time period known as the *consistency +window*. This window defines the duration of the replication and how +long transient failure can remove a node from the cluster. Tombstone +cleanup must be tied to replication to reach replica convergence. + +If a replicator detects that a remote drive has failed, the replicator +uses the ``get_more_nodes`` interface for the ring to choose an +alternate node with which to synchronize. The replicator can maintain +desired levels of replication during disk failures, though some replicas +might not be in an immediately usable location. + +.. note:: + + The replicator does not maintain desired levels of replication when + failures such as entire node failures occur; most failures are + transient. + +The main replication types are: + +- Database replication + Replicates containers and objects. + +- Object replication + Replicates object data. + +Database replication +~~~~~~~~~~~~~~~~~~~~ +Database replication completes a low-cost hash comparison to determine +whether two replicas already match. Normally, this check can quickly +verify that most databases in the system are already synchronized. If +the hashes differ, the replicator synchronizes the databases by sharing +records added since the last synchronization point. + +This synchronization point is a high water mark that notes the last +record at which two databases were known to be synchronized, and is +stored in each database as a tuple of the remote database ID and record +ID. Database IDs are unique across all replicas of the database, and +record IDs are monotonically increasing integers. After all new records +are pushed to the remote database, the entire synchronization table of +the local database is pushed, so the remote database can guarantee that +it is synchronized with everything with which the local database was +previously synchronized. + +If a replica is missing, the whole local database file is transmitted to +the peer by using rsync(1) and is assigned a new unique ID. + +In practice, database replication can process hundreds of databases per +concurrency setting per second (up to the number of available CPUs or +disks) and is bound by the number of database transactions that must be +performed. + +Object replication +~~~~~~~~~~~~~~~~~~ +The initial implementation of object replication performed an rsync to +push data from a local partition to all remote servers where it was +expected to reside. While this worked at small scale, replication times +skyrocketed once directory structures could no longer be held in RAM. +This scheme was modified to save a hash of the contents for each suffix +directory to a per-partition hashes file. The hash for a suffix +directory is no longer valid when the contents of that suffix directory +is modified. + +The object replication process reads in hash files and calculates any +invalidated hashes. Then, it transmits the hashes to each remote server +that should hold the partition, and only suffix directories with +differing hashes on the remote server are rsynced. After pushing files +to the remote server, the replication process notifies it to recalculate +hashes for the rsynced suffix directories. + +The number of uncached directories that object replication must +traverse, usually as a result of invalidated suffix directory hashes, +impedes performance. To provide acceptable replication speeds, object +replication is designed to invalidate around 2 percent of the hash space +on a normal node each day. diff --git a/doc/admin-guide-cloud-rst/source/objectstorage_ringbuilder.rst b/doc/admin-guide-cloud-rst/source/objectstorage_ringbuilder.rst new file mode 100644 index 0000000000..225dc438e9 --- /dev/null +++ b/doc/admin-guide-cloud-rst/source/objectstorage_ringbuilder.rst @@ -0,0 +1,181 @@ +============ +Ring-builder +============ + +Use the swift-ring-builder utility to build and manage rings. This +utility assigns partitions to devices and writes an optimized Python +structure to a gzipped, serialized file on disk for transmission to the +servers. The server processes occasionally check the modification time +of the file and reload in-memory copies of the ring structure as needed. +If you use a slightly older version of the ring, one of the three +replicas for a partition subset will be incorrect because of the way the +ring-builder manages changes to the ring. You can work around this +issue. + +The ring-builder also keeps its own builder file with the ring +information and additional data required to build future rings. It is +very important to keep multiple backup copies of these builder files. +One option is to copy the builder files out to every server while +copying the ring files themselves. Another is to upload the builder +files into the cluster itself. If you lose the builder file, you have to +create a new ring from scratch. Nearly all partitions would be assigned +to different devices and, therefore, nearly all of the stored data would +have to be replicated to new locations. So, recovery from a builder file +loss is possible, but data would be unreachable for an extended time. + +Ring data structure +~~~~~~~~~~~~~~~~~~~ +The ring data structure consists of three top level fields: a list of +devices in the cluster, a list of lists of device ids indicating +partition to device assignments, and an integer indicating the number of +bits to shift an MD5 hash to calculate the partition for the hash. + +Partition assignment list +~~~~~~~~~~~~~~~~~~~~~~~~~ +This is a list of ``array('H')`` of devices ids. The outermost list +contains an ``array('H')`` for each replica. Each ``array('H')`` has a +length equal to the partition count for the ring. Each integer in the +``array('H')`` is an index into the above list of devices. The partition +list is known internally to the Ring class as ``_replica2part2dev_id``. + +So, to create a list of device dictionaries assigned to a partition, the +Python code would look like:: + + devices = [self.devs[part2dev_id[partition]] for + part2dev_id in self._replica2part2dev_id] + +That code is a little simplistic because it does not account for the +removal of duplicate devices. If a ring has more replicas than devices, +a partition will have more than one replica on a device. + +``array('H')`` is used for memory conservation as there may be millions +of partitions. + +Replica counts +~~~~~~~~~~~~~~ +To support the gradual change in replica counts, a ring can have a real +number of replicas and is not restricted to an integer number of +replicas. + +A fractional replica count is for the whole ring and not for individual +partitions. It indicates the average number of replicas for each +partition. For example, a replica count of 3.2 means that 20 percent of +partitions have four replicas and 80 percent have three replicas. + +The replica count is adjustable. + +Example:: + + $ swift-ring-builder account.builder set_replicas 4 + $ swift-ring-builder account.builder rebalance + +You must rebalance the replica ring in globally distributed clusters. +Operators of these clusters generally want an equal number of replicas +and regions. Therefore, when an operator adds or removes a region, the +operator adds or removes a replica. Removing unneeded replicas saves on +the cost of disks. + +You can gradually increase the replica count at a rate that does not +adversely affect cluster performance. + +For example:: + + $ swift-ring-builder object.builder set_replicas 3.01 + $ swift-ring-builder object.builder rebalance + ... + + $ swift-ring-builder object.builder set_replicas 3.02 + $ swift-ring-builder object.builder rebalance + ... + +Changes take effect after the ring is rebalanced. Therefore, if you +intend to change from 3 replicas to 3.01 but you accidentally type +2.01, no data is lost. + +Additionally, the ``swift-ring-builder X.builder create`` command can now +take a decimal argument for the number of replicas. + +Partition shift value +~~~~~~~~~~~~~~~~~~~~~ +The partition shift value is known internally to the Ring class as +``_part_shift``. This value is used to shift an MD5 hash to calculate +the partition where the data for that hash should reside. Only the top +four bytes of the hash is used in this process. For example, to compute +the partition for the :file:`/account/container/object` path using Python:: + + partition = unpack_from('>I', + md5('/account/container/object').digest())[0] >> + self._part_shift + +For a ring generated with part\_power P, the partition shift value is +``32 - P``. + +Build the ring +~~~~~~~~~~~~~~ +The ring builder process includes these high-level steps: + +#. The utility calculates the number of partitions to assign to each + device based on the weight of the device. For example, for a + partition at the power of 20, the ring has 1,048,576 partitions. One + thousand devices of equal weight each want 1,048.576 partitions. The + devices are sorted by the number of partitions they desire and kept + in order throughout the initialization process. + + .. note:: + + Each device is also assigned a random tiebreaker value that is + used when two devices desire the same number of partitions. This + tiebreaker is not stored on disk anywhere, and so two different + rings created with the same parameters will have different + partition assignments. For repeatable partition assignments, + ``RingBuilder.rebalance()`` takes an optional seed value that + seeds the Python pseudo-random number generator. + +#. The ring builder assigns each partition replica to the device that + requires most partitions at that point while keeping it as far away + as possible from other replicas. The ring builder prefers to assign a + replica to a device in a region that does not already have a replica. + If no such region is available, the ring builder searches for a + device in a different zone, or on a different server. If it does not + find one, it looks for a device with no replicas. Finally, if all + options are exhausted, the ring builder assigns the replica to the + device that has the fewest replicas already assigned. + + .. note:: + + The ring builder assigns multiple replicas to one device only if + the ring has fewer devices than it has replicas. + +#. When building a new ring from an old ring, the ring builder + recalculates the desired number of partitions that each device wants. + +#. The ring builder unassigns partitions and gathers these partitions + for reassignment, as follows: + + - The ring builder unassigns any assigned partitions from any + removed devices and adds these partitions to the gathered list. + - The ring builder unassigns any partition replicas that can be + spread out for better durability and adds these partitions to the + gathered list. + - The ring builder unassigns random partitions from any devices that + have more partitions than they need and adds these partitions to + the gathered list. + +#. The ring builder reassigns the gathered partitions to devices by + using a similar method to the one described previously. + +#. When the ring builder reassigns a replica to a partition, the ring + builder records the time of the reassignment. The ring builder uses + this value when it gathers partitions for reassignment so that no + partition is moved twice in a configurable amount of time. The + RingBuilder class knows this configurable amount of time as + ``min_part_hours``. The ring builder ignores this restriction for + replicas of partitions on removed devices because removal of a device + happens on device failure only, and reassignment is the only choice. + +These steps do not always perfectly rebalance a ring due to the random +nature of gathering partitions for reassignment. To help reach a more +balanced ring, the rebalance process is repeated until near perfect +(less than 1 percent off) or when the balance does not improve by at +least 1 percent (indicating we probably cannot get perfect balance due +to wildly imbalanced zones or too many partitions recently moved). diff --git a/doc/admin-guide-cloud-rst/source/objectstorage_tenant_specific_image_storage.rst b/doc/admin-guide-cloud-rst/source/objectstorage_tenant_specific_image_storage.rst new file mode 100644 index 0000000000..caa55cf453 --- /dev/null +++ b/doc/admin-guide-cloud-rst/source/objectstorage_tenant_specific_image_storage.rst @@ -0,0 +1,31 @@ +============================================================= +Configure tenant-specific image locations with Object Storage +============================================================= + +For some deployers, it is not ideal to store all images in one place to +enable all tenants and users to access them. You can configure the Image +service to store image data in tenant-specific image locations. Then, +only the following tenants can use the Image service to access the +created image: + +- The tenant who owns the image +- Tenants that are defined in ``swift_store_admin_tenants`` and that + have admin-level accounts + +**To configure tenant-specific image locations** + +#. Configure swift as your ``default_store`` in the :file:`glance-api.conf` file. + +#. Set these configuration options in the :file:`glance-api.conf` file: + + - swift_store_multi_tenant + Set to ``True`` to enable tenant-specific storage locations. + Default is ``False``. + + - swift_store_admin_tenants + Specify a list of tenant IDs that can grant read and write access to all + Object Storage containers that are created by the Image service. + +With this configuration, images are stored in an Object Storage service +(swift) endpoint that is pulled from the service catalog for the +authenticated user.