~ubuntu-branches/ubuntu/trusty/swift/trusty-updates

« back to all changes in this revision

Viewing changes to doc/source/admin_guide.rst

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Soren Hansen, Chuck Short
  • Date: 2012-09-07 19:02:36 UTC
  • mfrom: (1.2.12)
  • Revision ID: package-import@ubuntu.com-20120907190236-fqrmbzm7v6zivs8d
Tags: 1.7.0-0ubuntu1
[ Soren Hansen ]
* Update debian/watch to account for symbolically named tarballs and
  use newer URL.
* Run unit tests at build time.
* Fix Launchpad URLs in debian/watch.

[ Chuck Short ]
* New upstream release
* debian/control: Add pubthon-moc as a build dep
* debian/rules: Dont fail if testsuite fails.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
Managing the Rings
7
7
------------------
8
8
 
9
 
You need to build the storage rings on the proxy server node, and
10
 
distribute them to all the servers in the cluster. Storage rings
11
 
contain information about all the Swift storage partitions and how
12
 
they are distributed between the different nodes and disks. For more
13
 
information see :doc:`overview_ring`.
 
9
You may build the storage rings on any server with the appropriate
 
10
version of Swift installed.  Once built or changed (rebalanced), you
 
11
must distribute the rings to all the servers in the cluster.  Storage
 
12
rings contain information about all the Swift storage partitions and
 
13
how they are distributed between the different nodes and disks.
 
14
 
 
15
Swift 1.6.0 is the last version to use a Python pickle format.
 
16
Subsequent versions use a different serialization format.  **Rings
 
17
generated by Swift versions 1.6.0 and earlier may be read by any
 
18
version, but rings generated after 1.6.0 may only be read by Swift
 
19
versions greater than 1.6.0.**  So when upgrading from version 1.6.0 or
 
20
earlier to a version greater than 1.6.0, either upgrade Swift on your
 
21
ring building server **last** after all Swift nodes have been successfully
 
22
upgraded, or refrain from generating rings until all Swift nodes have
 
23
been successfully upgraded.
 
24
 
 
25
If you need to downgrade from a version of swift greater than 1.6.0 to
 
26
a version less than or equal to 1.6.0, first downgrade your ring-building
 
27
server, generate new rings, push them out, then continue with the rest
 
28
of the downgrade.
 
29
 
 
30
For more information see :doc:`overview_ring`.
14
31
 
15
32
Removing a device from the ring::
16
33
 
492
509
 
493
510
Metrics for `account-replicator`:
494
511
 
495
 
==================================  ====================================================
496
 
Metric Name                         Description
497
 
----------------------------------  ----------------------------------------------------
498
 
`account-replicator.diffs`          Count of syncs handled by sending differing rows.
499
 
`account-replicator.diff_caps`      Count of "diffs" operations which failed because
500
 
                                    "max_diffs" was hit.
501
 
`account-replicator.no_changes`     Count of accounts found to be in sync.
502
 
`account-replicator.hashmatches`    Count of accounts found to be in sync via hash
503
 
                                    comparison (`broker.merge_syncs` was called).
504
 
`account-replicator.rsyncs`         Count of completely missing accounts where were sent
505
 
                                    via rsync.
506
 
`account-replicator.remote_merges`  Count of syncs handled by sending entire database
507
 
                                    via rsync.
508
 
`account-replicator.attempts`       Count of database replication attempts.
509
 
`account-replicator.failures`       Count of database replication attempts which failed
510
 
                                    due to corruption (quarantined) or inability to read
511
 
                                    as well as attempts to individual nodes which
512
 
                                    failed.
513
 
`account-replicator.removes`        Count of databases deleted because the
514
 
                                    delete_timestamp was greater than the put_timestamp
515
 
                                    and the database had no rows or because it was
516
 
                                    successfully sync'ed to other locations and doesn't
517
 
                                    belong here anymore.
518
 
`account-replicator.successes`      Count of replication attempts to an individual node
519
 
                                    which were successful.
520
 
`account-replicator.timing`         Timing data for each database replication attempt
521
 
                                    not resulting in a failure.
522
 
==================================  ====================================================
 
512
=====================================  ====================================================
 
513
Metric Name                            Description
 
514
-------------------------------------  ----------------------------------------------------
 
515
`account-replicator.diffs`             Count of syncs handled by sending differing rows.
 
516
`account-replicator.diff_caps`         Count of "diffs" operations which failed because
 
517
                                       "max_diffs" was hit.
 
518
`account-replicator.no_changes`        Count of accounts found to be in sync.
 
519
`account-replicator.hashmatches`       Count of accounts found to be in sync via hash
 
520
                                       comparison (`broker.merge_syncs` was called).
 
521
`account-replicator.rsyncs`            Count of completely missing accounts where were sent
 
522
                                       via rsync.
 
523
`account-replicator.remote_merges`     Count of syncs handled by sending entire database
 
524
                                       via rsync.
 
525
`account-replicator.attempts`          Count of database replication attempts.
 
526
`account-replicator.failures`          Count of database replication attempts which failed
 
527
                                       due to corruption (quarantined) or inability to read
 
528
                                       as well as attempts to individual nodes which
 
529
                                       failed.
 
530
`account-replicator.removes.<device>`  Count of databases on <device> deleted because the
 
531
                                       delete_timestamp was greater than the put_timestamp
 
532
                                       and the database had no rows or because it was
 
533
                                       successfully sync'ed to other locations and doesn't
 
534
                                       belong here anymore.
 
535
`account-replicator.successes`         Count of replication attempts to an individual node
 
536
                                       which were successful.
 
537
`account-replicator.timing`            Timing data for each database replication attempt
 
538
                                       not resulting in a failure.
 
539
=====================================  ====================================================
523
540
 
524
541
Metrics for `container-auditor`:
525
542
 
535
552
 
536
553
Metrics for `container-replicator`:
537
554
 
538
 
====================================  ====================================================
539
 
Metric Name                           Description
540
 
------------------------------------  ----------------------------------------------------
541
 
`container-replicator.diffs`          Count of syncs handled by sending differing rows.
542
 
`container-replicator.diff_caps`      Count of "diffs" operations which failed because
543
 
                                      "max_diffs" was hit.
544
 
`container-replicator.no_changes`     Count of containers found to be in sync.
545
 
`container-replicator.hashmatches`    Count of containers found to be in sync via hash
546
 
                                      comparison (`broker.merge_syncs` was called).
547
 
`container-replicator.rsyncs`         Count of completely missing containers where were sent
548
 
                                      via rsync.
549
 
`container-replicator.remote_merges`  Count of syncs handled by sending entire database
550
 
                                      via rsync.
551
 
`container-replicator.attempts`       Count of database replication attempts.
552
 
`container-replicator.failures`       Count of database replication attempts which failed
553
 
                                      due to corruption (quarantined) or inability to read
554
 
                                      as well as attempts to individual nodes which
555
 
                                      failed.
556
 
`container-replicator.removes`        Count of databases deleted because the
557
 
                                      delete_timestamp was greater than the put_timestamp
558
 
                                      and the database had no rows or because it was
559
 
                                      successfully sync'ed to other locations and doesn't
560
 
                                      belong here anymore.
561
 
`container-replicator.successes`      Count of replication attempts to an individual node
562
 
                                      which were successful.
563
 
`container-replicator.timing`         Timing data for each database replication attempt
564
 
                                      not resulting in a failure.
565
 
====================================  ====================================================
 
555
=======================================  ====================================================
 
556
Metric Name                              Description
 
557
---------------------------------------  ----------------------------------------------------
 
558
`container-replicator.diffs`             Count of syncs handled by sending differing rows.
 
559
`container-replicator.diff_caps`         Count of "diffs" operations which failed because
 
560
                                         "max_diffs" was hit.
 
561
`container-replicator.no_changes`        Count of containers found to be in sync.
 
562
`container-replicator.hashmatches`       Count of containers found to be in sync via hash
 
563
                                         comparison (`broker.merge_syncs` was called).
 
564
`container-replicator.rsyncs`            Count of completely missing containers where were sent
 
565
                                         via rsync.
 
566
`container-replicator.remote_merges`     Count of syncs handled by sending entire database
 
567
                                         via rsync.
 
568
`container-replicator.attempts`          Count of database replication attempts.
 
569
`container-replicator.failures`          Count of database replication attempts which failed
 
570
                                         due to corruption (quarantined) or inability to read
 
571
                                         as well as attempts to individual nodes which
 
572
                                         failed.
 
573
`container-replicator.removes.<device>`  Count of databases deleted on <device> because the
 
574
                                         delete_timestamp was greater than the put_timestamp
 
575
                                         and the database had no rows or because it was
 
576
                                         successfully sync'ed to other locations and doesn't
 
577
                                         belong here anymore.
 
578
`container-replicator.successes`         Count of replication attempts to an individual node
 
579
                                         which were successful.
 
580
`container-replicator.timing`            Timing data for each database replication attempt
 
581
                                         not resulting in a failure.
 
582
=======================================  ====================================================
566
583
 
567
584
Metrics for `container-server` ("Not Found" is not considered an error and requests
568
585
which increment `errors` are not included in the timing data):
742
759
`object-updater.failures`     Count of failed continer updates.
743
760
============================  ====================================================
744
761
 
745
 
Metrics for `proxy-server` (in the table, `<type>` may be `Account`, `Container`,
746
 
or `Object`, and corresponds to the internal Controller object which handled the
747
 
request):
748
 
 
749
 
=========================================  ====================================================
750
 
Metric Name                                Description
751
 
-----------------------------------------  ----------------------------------------------------
752
 
`proxy-server.errors`                      Count of errors encountered while serving requests
753
 
                                           before the controller type is determined.  Includes
754
 
                                           invalid Content-Length, errors finding the internal
755
 
                                           controller to handle the request, invalid utf8, and
756
 
                                           bad URLs.
757
 
`proxy-server.<type>.errors`               Count of errors encountered after the controller
758
 
                                           type is known.  The details of which responses are
759
 
                                           errors depend on the controller type and request
760
 
                                           type (GET, PUT, etc.).  Failed
761
 
                                           authentication/authorization and "Not Found"
762
 
                                           responses are not counted as errors.
763
 
`proxy-server.<type>.client_timeouts`      Count of client timeouts (client did not read from
764
 
                                           queue within `client_timeout` seconds).
765
 
`proxy-server.<type>.client_disconnects`   Count of detected client disconnects.
766
 
`proxy-server.<type>.method_not_allowed`   Count of MethodNotAllowed responses sent by the
767
 
`proxy-server.<type>.auth_short_circuits`  Count of requests which short-circuited with an
768
 
                                           authentication/authorization failure.
769
 
`proxy-server.<type>.GET.timing`           Timing data for GET requests (excluding requests
770
 
                                           with errors or failed authentication/authorization).
771
 
`proxy-server.<type>.HEAD.timing`          Timing data for HEAD requests (excluding requests
772
 
                                           with errors or failed authentication/authorization).
773
 
`proxy-server.<type>.POST.timing`          Timing data for POST requests (excluding requests
774
 
                                           with errors or failed authentication/authorization).
775
 
                                           Requests with a client disconnect ARE included in
776
 
                                           the timing data.
777
 
`proxy-server.<type>.PUT.timing`           Timing data for PUT requests (excluding requests
778
 
                                           with errors or failed authentication/authorization).
779
 
                                           Account PUT requests which return MethodNotAllowed
780
 
                                           because allow_account_management is disabled ARE
781
 
                                           included.
782
 
`proxy-server.<type>.DELETE.timing`        Timing data for DELETE requests (excluding requests
783
 
                                           with errors or failed authentication/authorization).
784
 
                                           Account DELETE requests which return
785
 
                                           MethodNotAllowed because allow_account_management is
786
 
                                           disabled ARE included.
787
 
`proxy-server.Object.COPY.timing`          Timing data for object COPY requests (excluding
788
 
                                           requests with errors or failed
789
 
                                           authentication/authorization).
790
 
=========================================  ====================================================
791
 
 
792
 
Metrics for `tempauth` (in the table, `<reseller_prefix>` represents the actual configured
793
 
reseller_prefix or "`NONE`" if the reseller_prefix is the empty string):
 
762
Metrics for `proxy-server` (in the table, `<type>` is the proxy-server
 
763
controller responsible for the request and will be one of "account",
 
764
"container", or "object"):
 
765
 
 
766
========================================  ====================================================
 
767
Metric Name                               Description
 
768
----------------------------------------  ----------------------------------------------------
 
769
`proxy-server.errors`                     Count of errors encountered while serving requests
 
770
                                          before the controller type is determined.  Includes
 
771
                                          invalid Content-Length, errors finding the internal
 
772
                                          controller to handle the request, invalid utf8, and
 
773
                                          bad URLs.
 
774
`proxy-server.<type>.handoff_count`       Count of node hand-offs; only tracked if log_handoffs
 
775
                                          is set in the proxy-server config.
 
776
`proxy-server.<type>.handoff_all_count`   Count of times *only* hand-off locations were
 
777
                                          utilized; only tracked if log_handoffs is set in the
 
778
                                          proxy-server config.
 
779
`proxy-server.<type>.client_timeouts`     Count of client timeouts (client did not read within
 
780
                                          `client_timeout` seconds during a GET or did not
 
781
                                          supply data within `client_timeout` seconds during
 
782
                                          a PUT).
 
783
`proxy-server.<type>.client_disconnects`  Count of detected client disconnects during PUT
 
784
                                          operations (does NOT include caught Exceptions in
 
785
                                          the proxy-server which caused a client disconnect).
 
786
========================================  ====================================================
 
787
 
 
788
Metrics for `proxy-logging` middleware (in the table, `<type>` is either the
 
789
proxy-server controller responsible for the request: "account", "container",
 
790
"object", or the string "SOS" if the request came from the `Swift Origin Server`_
 
791
middleware.  The `<verb>` portion will be one of "GET", "HEAD", "POST", "PUT",
 
792
"DELETE", "COPY", or "BAD_METHOD".  The list of valid HTTP methods is
 
793
configurable via the `log_statsd_valid_http_methods` config variable and the
 
794
default setting yields the above behavior.
 
795
 
 
796
.. _Swift Origin Server: https://github.com/dpgoetz/sos
 
797
 
 
798
============================================  ====================================================
 
799
Metric Name                                   Description
 
800
--------------------------------------------  ----------------------------------------------------
 
801
`proxy-server.<type>.<verb>.<status>.timing`  Timing data for requests.  The <status> portion is
 
802
                                              the numeric HTTP status code for the request (eg.
 
803
                                              "200" or "404")
 
804
`proxy-server.<type>.<verb>.<status>.xfer`    The count of the sum of bytes transferred in (from
 
805
                                              clients) and out (to clients) for requests.  The
 
806
                                              <type>, <verb>, and <status> portions of the metric
 
807
                                              are just like the timing metric.
 
808
============================================  ====================================================
 
809
 
 
810
Metrics for `tempauth` middleware (in the table, `<reseller_prefix>` represents
 
811
the actual configured reseller_prefix or "`NONE`" if the reseller_prefix is the
 
812
empty string):
794
813
 
795
814
=========================================  ====================================================
796
815
Metric Name                                Description